chore: fix dev:generate-types not working (#6284)

This commit is contained in:
Alessio Gravili
2024-05-09 10:37:11 -04:00
committed by GitHub
parent 3785c79ac9
commit 43b7ba82da
2 changed files with 34 additions and 9 deletions

View File

@@ -6,22 +6,23 @@ import { setTestEnvPaths } from './helpers/setTestEnvPaths.js'
const [testConfigDir] = process.argv.slice(2)
import type { SanitizedConfig } from 'payload/types'
import { fileURLToPath } from 'url'
import { load } from './loader/load.js'
const filename = fileURLToPath(import.meta.url)
const dirname = path.dirname(filename)
const loadConfig = async (configPath: string) => {
const configPromise = await load(configPath)
return configPromise.default
}
let testDir
if (testConfigDir) {
testDir = path.resolve(dirname, testConfigDir)
const config = await loadConfig(path.resolve(testDir, 'config.ts'))
console.log('Generating types for config:', path.resolve(testDir, 'config.ts'))
const config: SanitizedConfig = (await load(
path.resolve(testDir, 'config.ts'),
)) as unknown as SanitizedConfig
setTestEnvPaths(testDir)
generateTypes(config)
@@ -29,7 +30,14 @@ if (testConfigDir) {
// Generate types for entire directory
testDir = dirname
const config = await loadConfig(path.resolve(testDir, 'config.ts'))
console.log(
'No testConfigDir passed. Generating types for config:',
path.resolve(testDir, 'config.ts'),
)
const config: SanitizedConfig = (await load(
path.resolve(testDir, 'config.ts'),
)) as unknown as SanitizedConfig
fs.readdirSync(dirname, { withFileTypes: true })
.filter((f) => f.isDirectory())

View File

@@ -1,7 +1,24 @@
import fs from 'fs'
import path from 'path'
import { fileURLToPath } from 'url'
const filename = fileURLToPath(import.meta.url)
const dirname = path.dirname(filename)
export const load = async (filePath) => {
const importConfigImport = await import(
'../../packages/payload/dist/utilities/importWithoutClientFiles.js'
const resolvedImportWithoutClientFilesPath = path.resolve(
dirname,
'../../packages/payload/dist/utilities/importWithoutClientFiles.js',
)
// First check if ../../packages/payload/dist/utilities/importWithoutClientFiles.js exist
// If it does not, throw a proper error
if (!fs.existsSync(resolvedImportWithoutClientFilesPath)) {
throw new Error(
'Looks like payload has not been built. Please run `pnpm build:core` in the monorepo root',
)
}
const importConfigImport = await import(resolvedImportWithoutClientFilesPath)
const importConfig = importConfigImport.importConfig
const result = await importConfig(filePath)