From 8c03131b595d46754e4a46578aedeceb285386ff Mon Sep 17 00:00:00 2001 From: Krzysztof Modras Date: Tue, 2 Jul 2024 15:22:24 +0200 Subject: [PATCH] Typescript declarations in cts and mts formats --- .../adblocker-extended-selectors/package.json | 21 ++++++++++----- .../rollup.config.ts | 26 ++++++++++++++++--- .../tsconfig.json | 8 ++---- tsconfig.json | 3 --- yarn.lock | 24 ++++++++++++++--- 5 files changed, 59 insertions(+), 23 deletions(-) diff --git a/packages/adblocker-extended-selectors/package.json b/packages/adblocker-extended-selectors/package.json index 46d62b0056..be1291139b 100644 --- a/packages/adblocker-extended-selectors/package.json +++ b/packages/adblocker-extended-selectors/package.json @@ -9,13 +9,18 @@ "license": "MPL-2.0", "type": "module", "exports": { - "require": "./dist/cjs/adblocker.cjs", - "import": "./dist/esm/adblocker.js", - "types": "./dist/types/adblocker.d.ts" + "require": { + "default": "./dist/adblocker.cjs", + "types": "./dist/adblocker.d.cts" + }, + "import": { + "default": "./dist/adblocker.js", + "types": "./dist/adblocker.d.mts" + } }, - "main": "dist/cjs/adblocker.cjs", - "module": "dist/esm/adblocker.js", - "types": "dist/types/adblocker.d.ts", + "main": "dist/adblocker.cjs", + "module": "dist/adblocker.js", + "types": "dist/adblocker.d.ts", "files": [ "LICENSE", "dist" @@ -31,7 +36,7 @@ "scripts": { "clean": "rimraf dist coverage", "lint": "eslint src adblocker.ts", - "build": "tsc --build ./tsconfig.json && rollup --config ./rollup.config.ts --configPlugin typescript", + "build": "rollup --config ./rollup.config.ts --configPlugin typescript", "test": "nyc mocha --config ../../.mocharc.json" }, "bugs": { @@ -40,6 +45,7 @@ "devDependencies": { "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-terser": "^0.4.4", + "@rollup/plugin-typescript": "^11.1.6", "@types/chai": "^4.3.6", "@types/jsdom": "^21.1.3", "@types/mocha": "^10.0.1", @@ -51,6 +57,7 @@ "nyc": "^17.0.0", "rimraf": "^5.0.1", "rollup": "^4.17.2", + "rollup-plugin-dts": "^6.1.1", "ts-node": "^10.9.1", "typescript": "^5.5.2" }, diff --git a/packages/adblocker-extended-selectors/rollup.config.ts b/packages/adblocker-extended-selectors/rollup.config.ts index 20debe5407..895e293d9a 100644 --- a/packages/adblocker-extended-selectors/rollup.config.ts +++ b/packages/adblocker-extended-selectors/rollup.config.ts @@ -8,10 +8,13 @@ import resolve from '@rollup/plugin-node-resolve'; import terser from '@rollup/plugin-terser'; +import typescript from '@rollup/plugin-typescript'; +import { dts } from 'rollup-plugin-dts'; + export default [ { - input: './dist/src/adblocker.js', + input: './adblocker.ts', output: { file: './dist/adblocker.umd.min.js', format: 'umd', @@ -19,6 +22,7 @@ export default [ sourcemap: true, }, plugins: [ + typescript(), resolve(), terser({ output: { @@ -28,22 +32,36 @@ export default [ ], }, { - input: './dist/src/adblocker.js', + input: './adblocker.ts', output: [ { - dir: './dist/esm', + dir: './dist', format: 'esm', preserveModules: true, entryFileNames: '[name].js', sourcemap: true, }, { - dir: './dist/cjs', + dir: './dist', format: 'cjs', preserveModules: true, entryFileNames: '[name].cjs', sourcemap: true, }, ], + plugins: [ + typescript({ compilerOptions: { declaration: true, declarationDir: './dist/types' } }), + ], }, + { + input: 'dist/types/adblocker.d.ts', + output: [ + { file: `dist/adblocker.d.cts` }, + { file: `dist/adblocker.d.mts` }, + { file: `dist/adblocker.d.ts` }, + ], + plugins: [ + dts(), + ], + } ]; diff --git a/packages/adblocker-extended-selectors/tsconfig.json b/packages/adblocker-extended-selectors/tsconfig.json index e06c19c8ea..e58c4955c2 100644 --- a/packages/adblocker-extended-selectors/tsconfig.json +++ b/packages/adblocker-extended-selectors/tsconfig.json @@ -1,14 +1,10 @@ { "extends": "../../tsconfig", "compilerOptions": { - "outDir": "./dist/src", - "declarationDir": "./dist/types", + "outDir": "./dist", }, "include": [ "./adblocker.ts", - "./src/parse.ts", - "./src/types.ts", - "./src/eval.ts", - "./src/extended.ts" + "./src/*.ts", ] } diff --git a/tsconfig.json b/tsconfig.json index 07026c1aab..37f3158572 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,9 +1,6 @@ { "compilerOptions": { "composite": true, - "declaration": true, - "declarationMap": true, - "sourceMap": true, "target": "es2018", "module": "preserve", "moduleResolution": "Bundler", diff --git a/yarn.lock b/yarn.lock index 96d118bb8c..341fd82c70 100644 --- a/yarn.lock +++ b/yarn.lock @@ -134,7 +134,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.24.7": +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.24.2, @babel/code-frame@npm:^7.24.7": version: 7.24.7 resolution: "@babel/code-frame@npm:7.24.7" dependencies: @@ -453,6 +453,7 @@ __metadata: dependencies: "@rollup/plugin-node-resolve": "npm:^15.2.3" "@rollup/plugin-terser": "npm:^0.4.4" + "@rollup/plugin-typescript": "npm:^11.1.6" "@types/chai": "npm:^4.3.6" "@types/jsdom": "npm:^21.1.3" "@types/mocha": "npm:^10.0.1" @@ -464,6 +465,7 @@ __metadata: nyc: "npm:^17.0.0" rimraf: "npm:^5.0.1" rollup: "npm:^4.17.2" + rollup-plugin-dts: "npm:^6.1.1" ts-node: "npm:^10.9.1" typescript: "npm:^5.5.2" languageName: unknown @@ -1757,7 +1759,7 @@ __metadata: languageName: node linkType: hard -"@rollup/plugin-typescript@npm:^11.1.3": +"@rollup/plugin-typescript@npm:^11.1.3, @rollup/plugin-typescript@npm:^11.1.6": version: 11.1.6 resolution: "@rollup/plugin-typescript@npm:11.1.6" dependencies: @@ -6579,7 +6581,7 @@ __metadata: languageName: node linkType: hard -"magic-string@npm:^0.30.3": +"magic-string@npm:^0.30.10, magic-string@npm:^0.30.3": version: 0.30.10 resolution: "magic-string@npm:0.30.10" dependencies: @@ -8693,6 +8695,22 @@ __metadata: languageName: node linkType: hard +"rollup-plugin-dts@npm:^6.1.1": + version: 6.1.1 + resolution: "rollup-plugin-dts@npm:6.1.1" + dependencies: + "@babel/code-frame": "npm:^7.24.2" + magic-string: "npm:^0.30.10" + peerDependencies: + rollup: ^3.29.4 || ^4 + typescript: ^4.5 || ^5.0 + dependenciesMeta: + "@babel/code-frame": + optional: true + checksum: 10/8a66833a5af32f77d9bbc746339097d4af2382e5160f7629d85dcecb4efad12cbfebd37c79147fa688f073c333d71f53135e08a225a3fc3e9a3b3f92c46b2381 + languageName: node + linkType: hard + "rollup@npm:^4.0.2, rollup@npm:^4.17.2": version: 4.18.0 resolution: "rollup@npm:4.18.0"