From 43b7ba82da253a8f486a1617fc229fd9f1c3c2e6 Mon Sep 17 00:00:00 2001 From: Alessio Gravili Date: Thu, 9 May 2024 10:37:11 -0400 Subject: [PATCH] chore: fix dev:generate-types not working (#6284) --- test/generateTypes.ts | 22 +++++++++++++++------- test/loader/load.js | 21 +++++++++++++++++++-- 2 files changed, 34 insertions(+), 9 deletions(-) diff --git a/test/generateTypes.ts b/test/generateTypes.ts index 463c43a3d..b563976f4 100644 --- a/test/generateTypes.ts +++ b/test/generateTypes.ts @@ -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()) diff --git a/test/loader/load.js b/test/loader/load.js index 9eec6e7bd..9463d16ae 100644 --- a/test/loader/load.js +++ b/test/loader/load.js @@ -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)