Skip to content

Commit eeaa7d4

Browse files
committed
give .cjs ext for CommonJS files
1 parent 962262f commit eeaa7d4

File tree

3 files changed

+33
-30
lines changed

3 files changed

+33
-30
lines changed

package.json

+5-5
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@
44
"description": "MessagePack for ECMA-262/JavaScript/TypeScript",
55
"author": "The MessagePack community",
66
"license": "ISC",
7-
"main": "./dist.cjs/index.js",
7+
"main": "./dist.cjs/index.cjs",
88
"module": "./dist.esm/index.mjs",
99
"cdn": "./dist.umd/msgpack.min.js",
1010
"unpkg": "./dist.umd/msgpack.min.js",
1111
"types": "./dist.esm/index.d.ts",
1212
"sideEffects": false,
1313
"scripts": {
1414
"build": "npm publish --dry-run",
15-
"prepare": "npm run clean && webpack --bail && tsc --build tsconfig.dist.cjs.json tsconfig.dist.esm.json && ts-node tools/esmify.ts dist.esm/*.js dist.esm/*/*.js",
15+
"prepare": "npm run clean && webpack --bail && tsc --build tsconfig.dist.cjs.json tsconfig.dist.esm.json && tsimp tools/fix-ext.mts --mjs dist.esm/*.js dist.esm/*/*.js && tsimp tools/fix-ext.mts --cjs dist.cjs/*.js dist.cjs/*/*.js",
1616
"prepublishOnly": "npm run test:dist",
1717
"clean": "rimraf build dist dist.*",
1818
"test": "mocha 'test/**/*.test.ts'",
@@ -89,10 +89,10 @@
8989
"webpack-cli": "latest"
9090
},
9191
"files": [
92-
"mod.ts",
9392
"src/**/*.*",
94-
"dist/**/*.*",
93+
"dist.cjs/**/*.*",
94+
"dist.esm/**/*.*",
9595
"dist.umd/**/*.*",
96-
"dist.esm/**/*.*"
96+
"mod.ts"
9797
]
9898
}

tools/esmify.ts

-25
This file was deleted.

tools/fix-ext.mts

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import fs from "node:fs";
2+
3+
const mode = process.argv[2]; // --cjs or --mjs
4+
const files = process.argv.slice(3);
5+
6+
const ext = mode === "--cjs" ? "cjs" : "mjs";
7+
8+
console.info(`Fixing ${mode} files with extension ${ext}`);
9+
10+
for (const file of files) {
11+
const fileMjs = file.replace(/\.js$/, `.${ext}`);
12+
console.info(`Processing ${file} => ${fileMjs}`);
13+
// .js => .mjs
14+
const content = fs.readFileSync(file).toString("utf-8");
15+
const newContent = content
16+
.replace(/\bfrom "(\.\.?\/[^"]+).js";/g, `from "$1.${ext}";`)
17+
.replace(/\bimport "(\.\.?\/[^"]+)";/g, 'import "$1.mjs";')
18+
.replace(/\brequire\("(\.\.?\/[^"]+).js"\)/g, `require("$1.${ext}");`)
19+
.replace(/\/\/# sourceMappingURL=(.+)\.js\.map$/, `//# sourceMappingURL=$1.${ext}.map`);
20+
fs.writeFileSync(fileMjs, newContent);
21+
fs.unlinkSync(file);
22+
23+
// .js.map => .mjs.map
24+
const mapping = JSON.parse(fs.readFileSync(`${file}.map`).toString("utf-8"));
25+
mapping.file = mapping.file.replace(/\.js$/, ext);
26+
fs.writeFileSync(`${fileMjs}.map`, JSON.stringify(mapping));
27+
fs.unlinkSync(`${file}.map`);
28+
}

0 commit comments

Comments
 (0)