Should fix messed up import suggestions and simplifies all tsconfigs through inheritance. One main issue was that packages were inheriting `baseURL: "."` from the root tsconfig. This caused incorrect import suggestions that start with "packages/...". This PR ensures that packages do not inherit this baseURL: "." property, while ensuring the root, non-inherited tsconfig still keeps it to get tests to work (the importMap needs it)
31 lines
901 B
JavaScript
31 lines
901 B
JavaScript
// @ts-check
|
|
|
|
/**
|
|
* Parse tsconfig.json and ensure
|
|
* - compilerOptions.paths['@payload-config'] is set to ['./test/_community/config.ts']
|
|
* - Ends with a newline
|
|
*/
|
|
|
|
import { parse, stringify } from 'comment-json'
|
|
|
|
import path from 'path'
|
|
import fs from 'fs/promises'
|
|
import { fileURLToPath } from 'url'
|
|
import { existsSync } from 'fs'
|
|
|
|
const filename = fileURLToPath(import.meta.url)
|
|
const dirname = path.dirname(filename)
|
|
|
|
const tsConfigBasePath = path.resolve(dirname, '../tsconfig.base.json')
|
|
const tsConfigPath = existsSync(tsConfigBasePath)
|
|
? tsConfigBasePath
|
|
: path.resolve(dirname, '../tsconfig.json')
|
|
|
|
|
|
const tsConfigContent = await fs.readFile(tsConfigPath, 'utf8')
|
|
const tsConfig = parse(tsConfigContent)
|
|
|
|
tsConfig.compilerOptions.paths['@payload-config'] = ['./test/_community/config.ts']
|
|
const output = stringify(tsConfig, null, 2) + `\n`
|
|
await fs.writeFile(tsConfigPath, output)
|