diff --git a/packages/tokens/src/bin/ConfigLoader.ts b/packages/tokens/src/bin/ConfigLoader.ts index 496f8d6..5e403cd 100644 --- a/packages/tokens/src/bin/ConfigLoader.ts +++ b/packages/tokens/src/bin/ConfigLoader.ts @@ -26,7 +26,13 @@ const getLocalConfig = async () => { return config.default; }; +/** + * Register ts-node to load typescript config files with import. ( In fact, with `require` after transpiling ). + */ const registerTypescriptLoader = () => { + // Specifying to load all .ts files as CJS is really important, otherwise ts-node will try to load them as ESM in + // projects where cunningham is used as a dependency where package.json contains "type": "module". + // So, by doing this we tell ts-node "Load all .ts files as CJS, even if they are in a project with ESM". register({ moduleTypes: { "**/*.ts": "cjs", diff --git a/packages/tokens/src/bin/tests/Cunningham.spec.ts b/packages/tokens/src/bin/tests/Cunningham.spec.ts index cc049b4..a175fda 100644 --- a/packages/tokens/src/bin/tests/Cunningham.spec.ts +++ b/packages/tokens/src/bin/tests/Cunningham.spec.ts @@ -11,15 +11,6 @@ jest.mock("../Paths", () => ({ workPath: () => __dirname, })); -jest.mock("../cunningham.dist.js", () => ({ - theme: { - colors: { - primary: "#055FD2", - secondary: "#DA0000", - }, - }, -})); - const runBin = async (args: string) => { const exec = util.promisify(child_process.exec); const promise = exec( diff --git a/turbo.json b/turbo.json index 04c7483..a39f23d 100644 --- a/turbo.json +++ b/turbo.json @@ -34,6 +34,9 @@ "lint" ], "outputs": [] + }, + "@openfun/cunningham-tokens#test": { + "dependsOn": ["build"] } } }