Skip to content

Commit d27a04a

Browse files
authored
fix: re-add export files (#486)
1 parent d9be3ce commit d27a04a

File tree

4 files changed

+57
-11
lines changed

4 files changed

+57
-11
lines changed

.eslintignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,7 @@
11
node_modules/
22
dist/
3+
4+
# Generated export files
5+
/*.js
6+
/*.mjs
7+
/*.d.ts

.gitignore

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,18 @@ docs/
99
# Ignore tsc dist folder
1010
dist/
1111

12-
# Ignore generated files
12+
# Ignore generated source files
1313
src/browser.ts
1414
src/cairo.ts
1515
src/napi-rs.ts
1616
src/skia.ts
1717
**/*.tsbuildinfo
1818

19+
# Ignore generated export files
20+
/*.js
21+
/*.mjs
22+
/*.d.ts
23+
1924
# Ignore heapsnapshot and log files
2025
*.heapsnapshot
2126
*.log

package.json

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,24 +13,24 @@
1313
"unpkg": "dist/browser.umd.js",
1414
"exports": {
1515
"./browser": {
16+
"types": "./dist/browser.d.ts",
1617
"import": "./dist/browser.mjs",
17-
"require": "./dist/browser.js",
18-
"types": "./dist/browser.d.ts"
18+
"require": "./dist/browser.js"
1919
},
2020
"./cairo": {
21+
"types": "./dist/cairo.d.ts",
2122
"import": "./dist/cairo.mjs",
22-
"require": "./dist/cairo.js",
23-
"types": "./dist/cairo.d.ts"
23+
"require": "./dist/cairo.js"
2424
},
2525
"./napi-rs": {
26+
"types": "./dist/napi-rs.d.ts",
2627
"import": "./dist/napi-rs.mjs",
27-
"require": "./dist/napi-rs.js",
28-
"types": "./dist/napi-rs.d.ts"
28+
"require": "./dist/napi-rs.js"
2929
},
3030
"./skia": {
31+
"types": "./dist/skia.d.ts",
3132
"import": "./dist/skia.mjs",
32-
"require": "./dist/skia.js",
33-
"types": "./dist/skia.d.ts"
33+
"require": "./dist/skia.js"
3434
}
3535
},
3636
"sideEffects": false,
@@ -89,7 +89,19 @@
8989
"url": "git+https://github.com/kyranet/canvas-constructor.git"
9090
},
9191
"files": [
92-
"dist"
92+
"dist",
93+
"browser.js",
94+
"browser.mjs",
95+
"browser.d.ts",
96+
"cairo.js",
97+
"cairo.mjs",
98+
"cairo.d.ts",
99+
"napi-rs.js",
100+
"napi-rs.mjs",
101+
"napi-rs.d.ts",
102+
"skia.js",
103+
"skia.mjs",
104+
"skia.d.ts"
93105
],
94106
"engines": {
95107
"node": ">=v14.18.0"

scripts/generate.mjs

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,31 @@ console.debug(`Input file: '${input.href}'`);
77

88
const text = await readFile(input, 'utf8');
99

10-
for (const entry of configuration.entries) {
10+
await Promise.all(configuration.entries.map((entry) => generateAll(entry)));
11+
12+
/** @param {import('../generator.config.json')['entries'][number]} entry */
13+
function generateAll(entry) {
14+
return Promise.all([generateCode(entry), generateExport(entry.name)]);
15+
}
16+
17+
/** @param {string} name */
18+
async function generateExport(name) {
19+
const entries = [
20+
{ name: `${name}.js`, content: `require('tslib').__exportStar(require('./dist/${name}.js'), exports);\n` },
21+
{ name: `${name}.mjs`, content: `export * from './dist/${name}.mjs';\n` },
22+
{ name: `${name}.d.ts`, content: `export * from './dist/${name}';\n` }
23+
];
24+
25+
await Promise.all(
26+
entries.map((entry) => {
27+
const output = new URL(entry.name, root);
28+
return writeFile(output, entry.content, 'utf8');
29+
})
30+
);
31+
}
32+
33+
/** @param {import('../generator.config.json')['entries'][number]} entry */
34+
async function generateCode(entry) {
1135
const output = new URL(configuration.output.replace('[name]', entry.name), root);
1236

1337
const content = replaceAll(entry.defines);

0 commit comments

Comments
 (0)