diff --git a/libs/checkpoint-validation/bin/cli.js b/libs/checkpoint-validation/bin/cli.js index 686ce94f7..cddf007dd 100755 --- a/libs/checkpoint-validation/bin/cli.js +++ b/libs/checkpoint-validation/bin/cli.js @@ -1,5 +1,7 @@ #!/usr/bin/env node - +import { register } from "node:module"; import { main } from "../dist/cli.js"; +register("@swc-node/register/esm", import.meta.url); + await main(); diff --git a/libs/checkpoint-validation/src/cli.ts b/libs/checkpoint-validation/src/cli.ts index 5d39edc30..701a86dbc 100644 --- a/libs/checkpoint-validation/src/cli.ts +++ b/libs/checkpoint-validation/src/cli.ts @@ -2,8 +2,6 @@ import { dirname, resolve as pathResolve } from "node:path"; import { fileURLToPath } from "node:url"; import { runCLI } from "@jest/core"; -// make it so we can import/require .ts files -import "@swc-node/register/esm-register"; import { parseArgs } from "./parse_args.js"; export async function main() { @@ -18,6 +16,6 @@ export async function main() { $0: "", runInBand: true, }, - [pathResolve(moduleDirname, "..", "bin", "jest.config.js")] + [pathResolve(moduleDirname, "runtime_jest_config.js")] ); } diff --git a/libs/checkpoint-validation/bin/jest.config.js b/libs/checkpoint-validation/src/runtime_jest_config.ts similarity index 64% rename from libs/checkpoint-validation/bin/jest.config.js rename to libs/checkpoint-validation/src/runtime_jest_config.ts index 825aad2b2..25c642b01 100644 --- a/libs/checkpoint-validation/bin/jest.config.js +++ b/libs/checkpoint-validation/src/runtime_jest_config.ts @@ -2,21 +2,27 @@ // For the Jest config for the tests in this project, see the `jest.config.cjs` in the root of the package workspace. import path from "node:path"; import { fileURLToPath } from "node:url"; -import { parseArgs } from "../dist/parse_args.js"; +import type { JestConfigWithTsJest } from "ts-jest"; +import { parseArgs } from "./parse_args.js"; const args = await parseArgs(process.argv.slice(2)); -/** @type {import('ts-jest').JestConfigWithTsJest} */ -export default { +const config: JestConfigWithTsJest = { preset: "ts-jest/presets/default-esm", - rootDir: path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..", "dist"), + rootDir: path.resolve( + path.dirname(fileURLToPath(import.meta.url)), + "..", + "dist" + ), testEnvironment: "node", testMatch: ["/runner.js"], transform: { - "^.+\\.[jt]sx?$": ["@swc/jest"], + "^.+\\.[jt]sx?$": "@swc/jest", }, moduleNameMapper: { "^(\\.{1,2}/.*)\\.[jt]sx?$": "$1", }, globals: args, }; + +export default config; diff --git a/libs/checkpoint-validation/tsconfig.cjs.json b/libs/checkpoint-validation/tsconfig.cjs.json index a07594eed..c24e1fccf 100644 --- a/libs/checkpoint-validation/tsconfig.cjs.json +++ b/libs/checkpoint-validation/tsconfig.cjs.json @@ -13,6 +13,7 @@ "src/cli.ts", "src/import_utils.ts", "src/runner.ts", - "src/parse_args.ts" + "src/parse_args.ts", + "src/runtime_jest_config.ts" ] } diff --git a/libs/checkpoint-validation/tsconfig.json b/libs/checkpoint-validation/tsconfig.json index 60f0e6b98..f34cccca9 100644 --- a/libs/checkpoint-validation/tsconfig.json +++ b/libs/checkpoint-validation/tsconfig.json @@ -6,7 +6,7 @@ "target": "ES2021", "lib": ["ES2021", "ES2022.Object", "DOM"], "types": ["node", "jest"], - "module": "ES2020", + "module": "ES2022", "moduleResolution": "NodeNext", "esModuleInterop": true, "declaration": true,