Skip to content

Commit cb2b30e

Browse files
committed
setup dist.cjs
1 parent d9c6363 commit cb2b30e

File tree

4 files changed

+23
-13
lines changed

4 files changed

+23
-13
lines changed

package.json

+5-4
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,22 @@
44
"description": "MessagePack for ECMA-262/JavaScript/TypeScript",
55
"author": "The MessagePack community",
66
"license": "ISC",
7-
"main": "./dist/index.js",
7+
"main": "./dist.cjs/index.js",
88
"module": "./dist.esm/index.mjs",
99
"cdn": "./dist.umd/msgpack.min.js",
1010
"unpkg": "./dist.umd/msgpack.min.js",
11-
"types": "./dist/index.d.ts",
11+
"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.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.ts --mjs dist.esm/*.js dist.esm/*/*.js && tsimp tools/fix-ext.ts --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'",
1919
"test:dist": "npm run lint && npm run test && npm run test:deno",
2020
"test:cover": "npm run cover:clean && npx nyc --no-clean npm run 'test' && npm run cover:report",
2121
"test:deno": "deno test test/deno_test.ts",
22+
"test:bun": "bun test test/bun.spec.ts",
2223
"test:fuzz": "npm exec --yes -- jsfuzz@git+https://gitlab.com/gitlab-org/security-products/analyzers/fuzzers/jsfuzz.git#39e6cf16613a0e30c7a7953f62e64292dbd5d3f3 --fuzzTime 60 --no-versifier test/decode.jsfuzz.js corpus",
2324
"cover:clean": "rimraf .nyc_output coverage/",
2425
"cover:report": "npx nyc report --reporter=text-summary --reporter=html --reporter=json",
@@ -81,7 +82,7 @@
8182
"rimraf": "latest",
8283
"ts-loader": "latest",
8384
"ts-node": "latest",
84-
"tsimp": "^2.0.12",
85+
"tsimp": "latest",
8586
"typescript": "latest",
8687
"webpack": "latest",
8788
"webpack-cli": "latest"

tools/esmify.ts renamed to tools/fix-ext.ts

+11-5
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,28 @@
33

44
import fs from "fs";
55

6-
const files = process.argv.slice(2);
6+
const mode = process.argv[2]; // --cjs or --mjs
7+
const files = process.argv.slice(3);
8+
9+
const ext = mode === "--cjs" ? "cjs" : "mjs";
10+
11+
console.info(`Fixing ${mode} files with extension ${ext}`);
712

813
for (const file of files) {
9-
const fileMjs = file.replace(/\.js$/, ".mjs");
14+
const fileMjs = file.replace(/\.js$/, `.${ext}`);
1015
console.info(`Processing ${file} => ${fileMjs}`);
1116
// .js => .mjs
1217
const content = fs.readFileSync(file).toString("utf-8");
13-
const newContent = content.replace(/\bfrom "(\.\.?\/[^"]+)";/g, 'from "$1.mjs";')
18+
const newContent = content.replace(/\bfrom "(\.\.?\/[^"]+).js";/g, `from "$1.${ext}";`)
19+
.replace(/\brequire\("(\.\.?\/[^"]+).js"\)/g, `require("$1.${ext}");`)
1420
.replace(/\/\/# sourceMappingURL=(.+)\.js\.map$/,
15-
"//# sourceMappingURL=$1.mjs.map");
21+
`//# sourceMappingURL=$1.${ext}.map`);
1622
fs.writeFileSync(fileMjs, newContent);
1723
fs.unlinkSync(file);
1824

1925
// .js.map => .mjs.map
2026
const mapping = JSON.parse(fs.readFileSync(`${file}.map`).toString("utf-8"));
21-
mapping.file = mapping.file.replace(/\.js$/, ".mjs");
27+
mapping.file = mapping.file.replace(/\.js$/, ext);
2228
fs.writeFileSync(`${fileMjs}.map`, JSON.stringify(mapping));
2329
fs.unlinkSync(`${file}.map`);
2430
}

tsconfig.dist.json renamed to tsconfig.dist.cjs.json

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
{
22
"extends": "./tsconfig.json",
33
"compilerOptions": {
4-
"outDir": "./dist",
5-
"declaration": true,
4+
"module": "CommonJS",
5+
"outDir": "./dist.cjs",
6+
"declaration": false,
67
"noEmitOnError": true,
78
"noEmit": false,
89
"rewriteRelativeImportExtensions": true,

tsconfig.dist.esm.json

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
{
22
"extends": "./tsconfig.json",
33
"compilerOptions": {
4-
"module": "es2020",
4+
"module": "ES2020",
55
"outDir": "./dist.esm",
6-
"declaration": false,
6+
"declaration": true,
77
"noEmitOnError": true,
8+
"noEmit": false,
9+
"rewriteRelativeImportExtensions": true,
810
"incremental": false
911
},
1012
"include": ["src/**/*.ts"]

0 commit comments

Comments
 (0)