Skip to content

Commit 10ef038

Browse files
authored
add esm support
1 parent 43ab950 commit 10ef038

File tree

9 files changed

+75
-13
lines changed

9 files changed

+75
-13
lines changed

.eslintignore

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,6 @@ coverage/**
22
dist/**
33
scripts/**
44
**/*.sh
5-
rollup.config.js
6-
populate-readme.js
5+
rollup.config.*.js
6+
populate-readme.cjs
7+
create-pkg-json.cjs

create-pkg-json.cjs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
const fs = require('fs');
2+
const path = require('path');
3+
4+
fs.writeFileSync(
5+
path.join(__dirname, 'dist', 'cjs', 'package.json'),
6+
'{ "type": "commonjs" }',
7+
);
8+
9+
fs.writeFileSync(
10+
path.join(__dirname, 'dist', 'mjs', 'package.json'),
11+
'{ "type": "module" }',
12+
);

package.json

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,18 @@
33
"version": "0.6.0",
44
"description": "imgproxy param builder",
55
"author": "Matteias Collet <matteias.collet@bluewin.ch>",
6-
"main": "dist/index.js",
6+
"type": "module",
7+
"main": "dist/cjs/index.js",
8+
"module": "dist/mjs/index.js",
9+
"exports": {
10+
".": {
11+
"import": "./dist/mjs/index.js",
12+
"require": "./dist/cjs/index.js"
13+
}
14+
},
715
"scripts": {
816
"prebuild": "rimraf dist",
9-
"build": "rollup -c",
17+
"build": "rollup -c rollup.config.cjs.js && rollup -c rollup.config.esm.js && node create-pkg-json.cjs",
1018
"test": "jest --verbose",
1119
"docs": "typedoc",
1220
"deps:force-upgrade": "npm-check-updates -u && rm -rf node_modules && rm -f package-lock.json && npm i"
File renamed without changes.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export default {
1515
],
1616
plugins: [
1717
typescript({
18-
tsconfig: 'tsconfig.build.json',
18+
tsconfig: 'tsconfig.cjs.json',
1919
}),
2020
],
2121
external: [],

rollup.config.esm.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import typescript from 'rollup-plugin-typescript2';
2+
import pkg from './package.json';
3+
4+
export default {
5+
input: 'src/index.ts',
6+
output: [
7+
{
8+
file: pkg.module,
9+
format: 'esm',
10+
exports: 'named',
11+
sourcemap: true,
12+
strict: true,
13+
compact: true,
14+
},
15+
],
16+
plugins: [
17+
typescript({
18+
tsconfig: 'tsconfig.esm.json',
19+
}),
20+
],
21+
external: [],
22+
};
Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
11
{
22
"compilerOptions": {
3-
"outDir": "dist",
4-
"module": "esnext",
5-
"target": "es6",
6-
"lib": ["es6", "es2016", "es2017"],
3+
"outDir": "dist/cjs",
4+
"module": "ES2015",
5+
"target": "ES2020",
6+
"moduleResolution": "node",
77
"sourceMap": true,
88
"allowJs": false,
9-
"jsx": "react",
109
"declaration": true,
1110
"emitDeclarationOnly": false,
12-
"moduleResolution": "node",
1311
"forceConsistentCasingInFileNames": true,
1412
"noImplicitReturns": true,
1513
"noImplicitThis": true,

tsconfig.esm.json

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{
2+
"compilerOptions": {
3+
"outDir": "dist/esm",
4+
"module": "ES2015",
5+
"target": "ES2020",
6+
"moduleResolution": "node",
7+
"sourceMap": true,
8+
"allowJs": false,
9+
"declaration": true,
10+
"emitDeclarationOnly": false,
11+
"forceConsistentCasingInFileNames": true,
12+
"noImplicitReturns": true,
13+
"noImplicitThis": true,
14+
"noImplicitAny": true,
15+
"strictNullChecks": true,
16+
"suppressImplicitAnyIndexErrors": true,
17+
"noUnusedLocals": true,
18+
"noUnusedParameters": true,
19+
"esModuleInterop": true
20+
},
21+
"include": ["src/**/*"],
22+
}

tsconfig.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
"outDir": "dist",
44
"module": "esnext",
55
"target": "es6",
6-
"lib": ["es6", "es2016", "es2017"],
76
"sourceMap": true,
87
"allowJs": false,
98
"jsx": "react",
@@ -21,5 +20,5 @@
2120
"esModuleInterop": true
2221
},
2322
"include": ["src/**/*", "test/**/*", "./*.ts"],
24-
"exclude": ["node_modules", "dist", "rollup.config.js"]
23+
"exclude": ["node_modules", "dist", "rollup.config.*"]
2524
}

0 commit comments

Comments
 (0)