Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit b1a9bd0

Browse files
authored
Merge pull request #137 from msgpack/esm
Provides ES modules by setting "module" field in package.json
2 parents 9626ff5 + 35a949d commit b1a9bd0

File tree

6 files changed

+67
-22
lines changed

6 files changed

+67
-22
lines changed

‎.gitignore‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
node_modules/
22
dist/
3-
dist.es5/
3+
dist.*/
44
build/
55
.nyc_output/
66
coverage/

‎package.json‎

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,13 @@
55
"author": "The MessagePack community",
66
"license": "ISC",
77
"main": "./dist/index.js",
8-
"browser": "./dist.es5/msgpack.min.js",
8+
"browser": "./dist.es5+umd/msgpack.min.js",
9+
"module": "./dist.es5+esm/index.js",
910
"types": "./dist/index.d.ts",
1011
"sideEffects": false,
1112
"scripts": {
1213
"build": "npm publish --dry-run",
13-
"prepare": "npm run clean && tsc -p tsconfig.dist.json && webpack",
14+
"prepare": "npm run clean && webpack && tsc --build tsconfig.dist.json tsconfig.dist.es5+esm.json && ts-node tools/esmify.ts dist.es5+esm/*.js dist.es5+esm/*/*.js",
1415
"prepublishOnly": "run-p 'test:dist:*' && npm run test:browser",
1516
"clean": "rimraf build dist dist.*",
1617
"test": "mocha 'test/**/*.test.ts'",
@@ -88,6 +89,7 @@
8889
"files": [
8990
"src/**/*.*",
9091
"dist/**/*.*",
91-
"dist.es5/**/*.*"
92+
"dist.es5/**/*.*",
93+
"dist.es5+esm/**/*.*"
9294
]
9395
}

‎src/index.ts‎

Lines changed: 32 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,46 @@
11
// Main Functions:
22

3-
export { encode, EncodeOptions } from "./encode";
4-
export { decode, DecodeOptions } from "./decode";
5-
export { decodeAsync, decodeArrayStream, decodeStream } from "./decodeAsync";
3+
import { encode } from "./encode";
4+
export { encode };
5+
import type { EncodeOptions } from "./encode";
6+
export type { EncodeOptions };
67

7-
/**
8-
* @experimental `Decoder` is exported for experimental use.
9-
*/
10-
export { Decoder}from"./Decoder";
8+
import{decode}from"./decode";
9+
export{decode};
10+
importtype{DecodeOptions}from"./decode";
11+
export { DecodeOptions};
1112

12-
/**
13-
* @experimental `Encoder` is exported for experimental use.
14-
*/
15-
export { Encoder } from "./Encoder";
13+
import { decodeAsync, decodeArrayStream, decodeStream } from "./decodeAsync";
14+
export { decodeAsync, decodeArrayStream, decodeStream };
15+
16+
import { Decoder } from "./Decoder";
17+
export { Decoder };
18+
19+
import { Encoder } from "./Encoder";
20+
export { Encoder };
1621

1722
// Utilitiies for Extension Types:
1823

19-
export { ExtensionCodec, ExtensionCodecType, ExtensionDecoderType, ExtensionEncoderType } from "./ExtensionCodec";
20-
export { ExtData } from "./ExtData";
21-
export {
24+
import { ExtensionCodec } from "./ExtensionCodec";
25+
export { ExtensionCodec };
26+
import type { ExtensionCodecType, ExtensionDecoderType, ExtensionEncoderType } from "./ExtensionCodec";
27+
export type { ExtensionCodecType, ExtensionDecoderType, ExtensionEncoderType };
28+
import { ExtData } from "./ExtData";
29+
export { ExtData };
30+
31+
import {
2232
EXT_TIMESTAMP,
2333
encodeDateToTimeSpec,
2434
encodeTimeSpecToTimestamp,
2535
decodeTimestampToTimeSpec,
2636
encodeTimestampExtension,
2737
decodeTimestampExtension,
2838
} from "./timestamp";
39+
export {
40+
EXT_TIMESTAMP,
41+
encodeDateToTimeSpec,
42+
encodeTimeSpecToTimestamp,
43+
decodeTimestampToTimeSpec,
44+
encodeTimestampExtension,
45+
decodeTimestampExtension,
46+
};

‎tools/esmify.ts‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#!ts-node
2+
/* eslint-disable no-console */
3+
4+
import fs from "fs";
5+
6+
const files = process.argv.slice(2);
7+
8+
for (const file of files) {
9+
console.info(`Processing ${file}`);
10+
const content = fs.readFileSync(file).toString("utf8");
11+
const newContent = content.replace(/\bfrom"([^"]+)";/g, 'from "1ドル.js";');
12+
fs.writeFileSync(file, newContent);
13+
}

‎tsconfig.dist.es5+esm.json‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"extends": "./tsconfig.json",
3+
"compilerOptions": {
4+
"target": "es5",
5+
"module": "es2015",
6+
"outDir": "./dist.es5+esm",
7+
"declaration": false,
8+
"noEmitOnError": true,
9+
"incremental": false
10+
},
11+
"include": ["src/**/*.ts"]
12+
}

‎webpack.config.ts‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
import path from "path";
2-
// @ts-ignore
2+
// @ts-expect-error
33
import webpack from "webpack";
4-
// @ts-ignore
4+
// @ts-expect-error
55
import { CheckEsVersionPlugin } from "@bitjourney/check-es-version-webpack-plugin";
6-
// @ts-ignore
6+
// @ts-expect-error
77
import _ from "lodash";
88

99
const config = {
1010
mode: "production",
1111

1212
entry: "./src/index.ts",
1313
output: {
14-
path: path.resolve(__dirname, "dist.es5"),
14+
path: path.resolve(__dirname, "dist.es5+umd"),
1515
library: "MessagePack",
1616
libraryTarget: "umd",
1717
globalObject: "this",

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /