Skip to content

Commit e3c8f1e

Browse files
authored
feat: add CJS exports; fixes #1223 (#1491)
BREAKING CHANGE: Changes exports paths. Should work without changes required.
1 parent be58cf1 commit e3c8f1e

File tree

5 files changed

+48
-9
lines changed

5 files changed

+48
-9
lines changed

package.json

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -90,19 +90,29 @@
9090
"default": "./src/index.js"
9191
},
9292
"require": {
93-
"types": "./dist/index-cjs.d.ts",
94-
"default": "./dist/index-cjs.cjs"
93+
"types": "./dist/cjs/index.cjs.d.cts",
94+
"default": "./dist/cjs/index.cjs.cts"
9595
}
9696
},
9797
"./getJsdocProcessorPlugin.js": {
98-
"types": "./dist/getJsdocProcessorPlugin.d.ts",
99-
"import": "./src/getJsdocProcessorPlugin.js",
100-
"require": "./dist/getJsdocProcessorPlugin.cjs"
98+
"import": {
99+
"types": "./dist/getJsdocProcessorPlugin.d.ts",
100+
"default": "./src/getJsdocProcessorPlugin.js"
101+
},
102+
"require": {
103+
"types": "./dist/cjs/getJsdocProcessorPlugin.d.cts",
104+
"default": "./dist/cjs/getJsdocProcessorPlugin.cjs"
105+
}
101106
},
102107
"./iterateJsdoc.js": {
103-
"types": "./dist/iterateJsdoc.d.ts",
104-
"import": "./src/iterateJsdoc.js",
105-
"require": "./dist/iterateJsdoc.cjs"
108+
"import": {
109+
"types": "./dist/iterateJsdoc.d.ts",
110+
"default": "./src/iterateJsdoc.js"
111+
},
112+
"require": {
113+
"types": "./dist/cjs/iterateJsdoc.d.cts",
114+
"default": "./dist/cjs/iterateJsdoc.cjs"
115+
}
106116
}
107117
},
108118
"name": "eslint-plugin-jsdoc",
@@ -145,7 +155,8 @@
145155
"ruleTypes": "node ./src/bin/generateRuleTypes.js",
146156
"tsc": "tsc",
147157
"tsc-build": "tsc -p tsconfig-prod.json",
148-
"build": "node ./src/bin/buildEntryFileForTS.js && rimraf ./dist && NODE_ENV=production babel ./src --out-file-extension .cjs --out-dir ./dist --copy-files --source-maps --ignore ./src/bin/*.js --no-copy-ignored && replace 'require\\(\"\\.(.*?)\\.[^.]*?\"\\)' 'require(\".$1.cjs\")' 'dist' -r --include=\"*.cjs\" && pnpm tsc-build",
158+
"tsc-cjs": "tsc -p tsconfig-cjs.json",
159+
"build": "node ./src/bin/buildEntryFileForTS.js && rimraf ./dist && NODE_ENV=production babel ./src --out-file-extension .cjs --out-dir ./dist --copy-files --source-maps --ignore ./src/bin/*.js --no-copy-ignored && replace 'require\\(\"\\.(.*?)\\.[^.]*?\"\\)' 'require(\".$1.cjs\")' 'dist' -r --include=\"*.cjs\" && pnpm tsc-build && pnpm tsc-cjs",
149160
"attw": "attw --pack .",
150161
"check-docs": "node ./src/bin/generateDocs.js --check",
151162
"create-docs": "pnpm run create-options && node ./src/bin/generateDocs.js",

src/getJsdocProcessorPlugin.cts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import {getJsdocProcessorPlugin} from './getJsdocProcessorPlugin.js';
2+
3+
exports.getJsdocProcessorPlugin = getJsdocProcessorPlugin;

src/index.cjs.cts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import items from './index-cjs.js';
2+
3+
export = items;

src/iterateJsdoc.cts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import iterateJsdoc, {getSettings, parseComment} from './iterateJsdoc.js';
2+
3+
export = iterateJsdoc;
4+
5+
exports.getSettings = getSettings;
6+
exports.parseComment = parseComment;

tsconfig-cjs.json

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"compilerOptions": {
3+
"target": "es2023", // Or your desired target
4+
"module": "commonjs", // Crucial for CommonJS output
5+
"allowJs": true,
6+
"declaration": true, // Generates declaration files (.d.ts)
7+
"outDir": "./dist/cjs", // Output directory for CommonJS files
8+
"esModuleInterop": true, // Improves interoperability between ESM and CJS
9+
"forceConsistentCasingInFileNames": true,
10+
"strict": true,
11+
"skipLibCheck": true
12+
},
13+
"include": [
14+
"src/*.cts"
15+
] // Your source files
16+
}

0 commit comments

Comments
 (0)