From 13d10c7f5f7582b02c321684c803448613502383 Mon Sep 17 00:00:00 2001 From: Jackson Morgan Date: Fri, 16 May 2025 11:58:43 -0400 Subject: [PATCH] ESM Migration for rdf-utils and dataset --- jest.config.js | 21 +++++++++++----- packages/dataset/jest.config.cjs | 1 + packages/dataset/package.json | 7 +++--- packages/dataset/tsconfig.cjs.json | 7 +++--- packages/dataset/tsconfig.esm.json | 8 +++--- .../{jest.config.js => jest.config.cjs} | 1 + packages/rdf-utils/tsconfig.cjs.json | 5 ++-- packages/rdf-utils/tsconfig.esm.json | 6 +++-- tsconfig.base.json | 25 ++++++++++--------- tsconfig.cjs.json | 3 ++- tsconfig.esm.json | 8 +----- tsconfig.json | 1 + 12 files changed, 54 insertions(+), 39 deletions(-) rename packages/rdf-utils/{jest.config.js => jest.config.cjs} (78%) diff --git a/jest.config.js b/jest.config.js index e59c578..1f1b79f 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,20 +1,29 @@ -// eslint-disable-next-line @typescript-eslint/no-var-requires +// jest.config.js const path = require("path"); const monorepoRoot = path.resolve(__dirname); module.exports = { - preset: "ts-jest/presets/default-esm", - extensionsToTreatAsEsm: [".ts"], + preset: "ts-jest/presets/js-with-ts", + testEnvironment: "node", moduleNameMapper: { "^(\\.{1,2}/.*)\\.js$": "$1", - [`^@ldo/(.*)$`]: `${monorepoRoot}/packages/$1/src/index.ts`, + "^@ldo/(.*)$": `${monorepoRoot}/packages/$1/src/index.ts`, }, - testEnvironment: "node", coveragePathIgnorePatterns: [ "/node_modules/", "/dist/", "/coverage/", "/test/", ], - globals: {}, + transform: { + "^.+\\.ts$": [ + "ts-jest", + { + tsconfig: "/tsconfig.cjs.json", + }, + ], + }, + testPathIgnorePatterns: ["/node_modules/", "/dist/"], + transformIgnorePatterns: ["/node_modules/", "/dist/"], + modulePathIgnorePatterns: ["/dist/"], }; diff --git a/packages/dataset/jest.config.cjs b/packages/dataset/jest.config.cjs index ed5c934..4d654cc 100644 --- a/packages/dataset/jest.config.cjs +++ b/packages/dataset/jest.config.cjs @@ -9,4 +9,5 @@ module.exports = { "!src/**/*.d.ts", // "!src/index.ts", // Optional, if index.ts only re-exports ], + modulePathIgnorePatterns: ["/dist/"], }; diff --git a/packages/dataset/package.json b/packages/dataset/package.json index 6c641a6..be88d36 100644 --- a/packages/dataset/package.json +++ b/packages/dataset/package.json @@ -15,9 +15,10 @@ "./package.json": "./package.json" }, "scripts": { - "build": "rimraf dist && tsc --project tsconfig.esm.json && tsc --project tsconfig.cjs.json", - "watch": "tsc --watch", - "test": "cross-env NODE_OPTIONS=--experimental-vm-modules jest --coverage", + "build": "rimraf dist && npm run build:cjs && npm run build:esm", + "build:cjs": "tsc --project tsconfig.cjs.json", + "build:esm": "tsc --project tsconfig.esm.json", + "test": "jest --coverage", "example:extendedDataset": "ts-node ./example/extendedDatasetExample.ts", "example:loadData": "ts-node ./example/loadDataExample.ts", "prepublishOnly": "npm run test && npm run build", diff --git a/packages/dataset/tsconfig.cjs.json b/packages/dataset/tsconfig.cjs.json index 186f74e..affce40 100644 --- a/packages/dataset/tsconfig.cjs.json +++ b/packages/dataset/tsconfig.cjs.json @@ -1,9 +1,10 @@ { - "extends": "../../tsconfig.base.json", + "extends": "../../tsconfig.cjs.json", "compilerOptions": { - "outDir": "./dist/cjs" + "outDir": "./dist/cjs", + "rootDir": "./src" }, "include": [ - "./src" + "src" ] } \ No newline at end of file diff --git a/packages/dataset/tsconfig.esm.json b/packages/dataset/tsconfig.esm.json index 852f538..09f99c2 100644 --- a/packages/dataset/tsconfig.esm.json +++ b/packages/dataset/tsconfig.esm.json @@ -1,9 +1,11 @@ { - "extends": "../../tsconfig.base.json", + "extends": "../../tsconfig.esm.json", "compilerOptions": { - "outDir": "./dist/esm" + "outDir": "./dist/esm", + "rootDir": "./src", + "declarationDir": "./dist/types" }, "include": [ - "./src" + "src" ] } \ No newline at end of file diff --git a/packages/rdf-utils/jest.config.js b/packages/rdf-utils/jest.config.cjs similarity index 78% rename from packages/rdf-utils/jest.config.js rename to packages/rdf-utils/jest.config.cjs index bad5f64..6bc8baa 100644 --- a/packages/rdf-utils/jest.config.js +++ b/packages/rdf-utils/jest.config.cjs @@ -3,4 +3,5 @@ const sharedConfig = require("../../jest.config.js"); module.exports = { ...sharedConfig, rootDir: "./", + modulePathIgnorePatterns: ["/dist/"], }; diff --git a/packages/rdf-utils/tsconfig.cjs.json b/packages/rdf-utils/tsconfig.cjs.json index 3fcb8f9..affce40 100644 --- a/packages/rdf-utils/tsconfig.cjs.json +++ b/packages/rdf-utils/tsconfig.cjs.json @@ -1,9 +1,10 @@ { "extends": "../../tsconfig.cjs.json", "compilerOptions": { - "outDir": "./dist/cjs" + "outDir": "./dist/cjs", + "rootDir": "./src" }, "include": [ - "./src" + "src" ] } \ No newline at end of file diff --git a/packages/rdf-utils/tsconfig.esm.json b/packages/rdf-utils/tsconfig.esm.json index df20942..09f99c2 100644 --- a/packages/rdf-utils/tsconfig.esm.json +++ b/packages/rdf-utils/tsconfig.esm.json @@ -1,9 +1,11 @@ { "extends": "../../tsconfig.esm.json", "compilerOptions": { - "outDir": "./dist/esm" + "outDir": "./dist/esm", + "rootDir": "./src", + "declarationDir": "./dist/types" }, "include": [ - "./src" + "src" ] } \ No newline at end of file diff --git a/tsconfig.base.json b/tsconfig.base.json index 1579126..9078cfb 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -1,27 +1,28 @@ { "compilerOptions": { + "target": "ES2021", "module": "commonjs", - "baseUrl": ".", - "strict": true, - "esModuleInterop": true, - "noImplicitAny": false, - "removeComments": true, "lib": [ "ES2021" ], + "strict": true, + "esModuleInterop": true, + "moduleResolution": "node", + "declaration": true, + "declarationMap": true, + "sourceMap": true, "emitDecoratorMetadata": true, "experimentalDecorators": true, - "target": "ES2021", - "sourceMap": true, - "jsx": "react-jsx", - "noErrorTruncation": true, "forceConsistentCasingInFileNames": true, - "noEmit": false + "noImplicitAny": false, + "skipLibCheck": true, + "jsx": "react-jsx" }, "exclude": [ "node_modules", - "**/*.spec.ts", "**/dist", - "**/coverage" + "**/coverage", + "**/*.test.ts", + "**/*.spec.ts" ] } \ No newline at end of file diff --git a/tsconfig.cjs.json b/tsconfig.cjs.json index a735a63..dbbea2c 100644 --- a/tsconfig.cjs.json +++ b/tsconfig.cjs.json @@ -2,7 +2,8 @@ "extends": "./tsconfig.base.json", "compilerOptions": { "module": "CommonJS", + "moduleResolution": "node", "declaration": false, - "declarationMap": false, + "declarationMap": false } } \ No newline at end of file diff --git a/tsconfig.esm.json b/tsconfig.esm.json index 0e74f41..3b26f36 100644 --- a/tsconfig.esm.json +++ b/tsconfig.esm.json @@ -3,14 +3,8 @@ "compilerOptions": { "module": "NodeNext", "moduleResolution": "nodenext", - "composite": true, "declaration": true, "declarationMap": true, - "isolatedModules": true, - "paths": { - "@ldo/*": [ - "packages/*/src" - ] - } + "isolatedModules": true } } \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index a571c61..454c000 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,6 +1,7 @@ { "extends": "./tsconfig.base.json", "compilerOptions": { + "baseUrl": ".", "paths": { "@ldo/*": [ "packages/*/src"