From 4cac9902ab88b94841a6d14f4c773102f34f26f5 Mon Sep 17 00:00:00 2001 From: Sasha <64744993+r1tsuu@users.noreply.github.com> Date: Fri, 21 Feb 2025 03:23:15 +0200 Subject: [PATCH 1/3] fix: auto generate types faster and more reliably to avoid issues when spawning threads --- packages/payload/src/index.ts | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/packages/payload/src/index.ts b/packages/payload/src/index.ts index 17dc214bf43..a3412c35bd2 100644 --- a/packages/payload/src/index.ts +++ b/packages/payload/src/index.ts @@ -72,6 +72,7 @@ import { decrypt, encrypt } from './auth/crypto.js' import { APIKeyAuthentication } from './auth/strategies/apiKey.js' import { JWTAuthentication } from './auth/strategies/jwt.js' import { generateImportMap, type ImportMap } from './bin/generateImportMap/index.js' +import { generateTypes } from './bin/generateTypes.js' import { checkPayloadDependencies } from './checkPayloadDependencies.js' import localOperations from './collections/operations/local/index.js' import { consoleEmailAdapter } from './email/consoleEmailAdapter.js' @@ -636,12 +637,7 @@ export class BasePayload { // Generate types on startup if (process.env.NODE_ENV !== 'production' && this.config.typescript.autoGenerate !== false) { - // We cannot run it directly here, as generate-types imports json-schema-to-typescript, which breaks on turbopack. - // see: https://github.com/vercel/next.js/issues/66723 - void this.bin({ - args: ['generate:types'], - log: false, - }) + void generateTypes(this.config, { log: false }) } this.db = this.config.db.init({ payload: this }) @@ -848,12 +844,7 @@ export const reload = async ( // Generate types if (config.typescript.autoGenerate !== false) { - // We cannot run it directly here, as generate-types imports json-schema-to-typescript, which breaks on turbopack. - // see: https://github.com/vercel/next.js/issues/66723 - void payload.bin({ - args: ['generate:types'], - log: false, - }) + void generateTypes(config, { log: false }) } // Generate component map From d2760021d5827d60f8072f520ff6bf2bdd3a1a51 Mon Sep 17 00:00:00 2001 From: Sasha <64744993+r1tsuu@users.noreply.github.com> Date: Fri, 21 Feb 2025 03:46:10 +0200 Subject: [PATCH 2/3] fix jest esm with json schema to typescript --- .vscode/settings.json | 4 ++-- package.json | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index b1311e38257..4985abc9dcf 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -18,10 +18,10 @@ "typescript.tsdk": "node_modules/typescript/lib", // Load .git-blame-ignore-revs file "gitlens.advanced.blame.customArguments": ["--ignore-revs-file", ".git-blame-ignore-revs"], - "jestrunner.jestCommand": "pnpm exec cross-env NODE_OPTIONS=\"--no-deprecation\" node 'node_modules/jest/bin/jest.js'", + "jestrunner.jestCommand": "pnpm exec cross-env NODE_OPTIONS=\"--no-deprecation --experimental-vm-modules\" node 'node_modules/jest/bin/jest.js'", "jestrunner.changeDirectoryToWorkspaceRoot": false, "jestrunner.debugOptions": { - "runtimeArgs": ["--no-deprecation"] + "runtimeArgs": ["--no-deprecation", "--experimental-vm-modules"] }, // Essentially disables bun test buttons "bun.test.filePattern": "bun.test.ts" diff --git a/package.json b/package.json index 9c4336508d4..bc4e4728651 100644 --- a/package.json +++ b/package.json @@ -96,11 +96,11 @@ "test:e2e:headed": "cross-env NODE_OPTIONS=--no-deprecation NODE_NO_WARNINGS=1 DISABLE_LOGGING=true playwright test --headed", "test:e2e:prod": "pnpm prepare-run-test-against-prod && pnpm runts ./test/runE2E.ts --prod", "test:e2e:prod:ci": "pnpm prepare-run-test-against-prod:ci && pnpm runts ./test/runE2E.ts --prod", - "test:int": "cross-env NODE_OPTIONS=\"--no-deprecation\" NODE_NO_WARNINGS=1 DISABLE_LOGGING=true jest --forceExit --detectOpenHandles --config=test/jest.config.js --runInBand", - "test:int:postgres": "cross-env NODE_OPTIONS=\"--no-deprecation\" NODE_NO_WARNINGS=1 PAYLOAD_DATABASE=postgres DISABLE_LOGGING=true jest --forceExit --detectOpenHandles --config=test/jest.config.js --runInBand", - "test:int:sqlite": "cross-env NODE_OPTIONS=\"--no-deprecation\" NODE_NO_WARNINGS=1 PAYLOAD_DATABASE=sqlite DISABLE_LOGGING=true jest --forceExit --detectOpenHandles --config=test/jest.config.js --runInBand", + "test:int": "cross-env NODE_OPTIONS=\"--no-deprecation --experimental-vm-modules\" NODE_NO_WARNINGS=1 DISABLE_LOGGING=true jest --forceExit --detectOpenHandles --config=test/jest.config.js --runInBand", + "test:int:postgres": "cross-env NODE_OPTIONS=\"--no-deprecation --experimental-vm-modules\" NODE_NO_WARNINGS=1 PAYLOAD_DATABASE=postgres DISABLE_LOGGING=true jest --forceExit --detectOpenHandles --config=test/jest.config.js --runInBand", + "test:int:sqlite": "cross-env NODE_OPTIONS=\"--no-deprecation --experimental-vm-modules\" NODE_NO_WARNINGS=1 PAYLOAD_DATABASE=sqlite DISABLE_LOGGING=true jest --forceExit --detectOpenHandles --config=test/jest.config.js --runInBand", "test:types": "tstyche", - "test:unit": "cross-env NODE_OPTIONS=\"--no-deprecation\" NODE_NO_WARNINGS=1 DISABLE_LOGGING=true jest --forceExit --detectOpenHandles --config=jest.config.js --runInBand", + "test:unit": "cross-env NODE_OPTIONS=\"--no-deprecation --experimental-vm-modules\" NODE_NO_WARNINGS=1 DISABLE_LOGGING=true jest --forceExit --detectOpenHandles --config=jest.config.js --runInBand", "translateNewKeys": "pnpm --filter translations run translateNewKeys" }, "lint-staged": { From 1dc7ccd557b4904d7d0fb3edcd7356dc972289d9 Mon Sep 17 00:00:00 2001 From: Sasha <64744993+r1tsuu@users.noreply.github.com> Date: Fri, 21 Feb 2025 04:02:39 +0200 Subject: [PATCH 3/3] ensure global jest --- test/jest.setup.js | 1 + 1 file changed, 1 insertion(+) diff --git a/test/jest.setup.js b/test/jest.setup.js index b92a4fc53b3..547cb29d8ab 100644 --- a/test/jest.setup.js +++ b/test/jest.setup.js @@ -1,4 +1,5 @@ import { jest } from '@jest/globals' +global.jest = jest import console from 'console' global.console = console