Skip to content

Commit dcce6de

Browse files
authored
Merge pull request #60 from ghiscoding/chore/hybrid-exports
fix: improve hybrid exports CJS/ESM
2 parents 7ced5a0 + debdb7d commit dcce6de

File tree

5 files changed

+34
-10
lines changed

5 files changed

+34
-10
lines changed
File renamed without changes.

packages/excel-builder-vanilla-types/package.json

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,15 @@
2121
"publishConfig": {
2222
"access": "public"
2323
},
24-
"main": "./dist/excel-builder.js",
24+
"type": "module",
25+
"main": "./dist/excel-builder.mjs",
2526
"types": "./dist/index.d.ts",
2627
"exports": {
2728
".": {
28-
"types": "./dist/index.d.ts",
29-
"default": "./dist/excel-builder.js"
29+
"import": {
30+
"types": "./dist/index.d.ts",
31+
"default": "./dist/excel-builder.mjs"
32+
}
3033
},
3134
"./package.json": "./package.json"
3235
},

packages/excel-builder-vanilla/copy-types.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ copyfiles([source, destination], {}, err => {
1010
} else {
1111
// all good, next step, create JS entry file
1212
const content = `'use strict';`;
13-
writeFile(`${destination}/dist/excel-builder.js`, content, err => {
13+
writeFile(`${destination}/dist/excel-builder.mjs`, content, err => {
1414
if (err) {
1515
console.error(err);
1616
}

packages/excel-builder-vanilla/package.json

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,17 +27,22 @@
2727
"publishConfig": {
2828
"access": "public"
2929
},
30+
"type": "module",
3031
"main": "./dist/excel-builder.cjs",
3132
"types": "./dist/index.d.ts",
3233
"exports": {
3334
".": {
34-
"types": "./dist/index.d.ts",
35-
"import": "./dist/excel-builder.js",
36-
"require": "./dist/excel-builder.cjs"
35+
"import": {
36+
"types": "./dist/index.d.ts",
37+
"default": "./dist/excel-builder.mjs"
38+
},
39+
"require": {
40+
"types": "./dist/index.d.cts",
41+
"default": "./dist/excel-builder.cjs"
42+
}
3743
},
3844
"./package.json": "./package.json"
3945
},
40-
"module": "./dist/excel-builder.js",
4146
"sideEffects": false,
4247
"funding": {
4348
"type": "ko_fi",

packages/excel-builder-vanilla/vite.config.mts

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { dirname, resolve } from 'node:path';
22
import { fileURLToPath } from 'node:url';
3+
import { writeFileSync } from 'node:fs';
34
import { defineConfig } from 'vite';
45
import dts from 'vite-plugin-dts';
56

@@ -11,11 +12,10 @@ export default defineConfig({
1112
entry: resolve(__dirname, 'src/index.ts'),
1213
formats: ['es', 'cjs', 'iife'],
1314
name: 'ExcelBuilder',
14-
// fileName: format => (format === 'es' ? 'excel-builder.js' : `excel-builder.${format}.js`),
1515
fileName: format => {
1616
switch (format) {
1717
case 'es':
18-
return 'excel-builder.js';
18+
return 'excel-builder.mjs';
1919
case 'cjs':
2020
return 'excel-builder.cjs';
2121
default:
@@ -41,6 +41,22 @@ export default defineConfig({
4141
declaration: true,
4242
declarationMap: true,
4343
},
44+
beforeWriteFile: (filePath, content) => {
45+
let safeContent = content;
46+
if (filePath.endsWith('dist/index.d.ts')) {
47+
if (!safeContent) {
48+
safeContent = 'export {};';
49+
}
50+
51+
const ctsFile = filePath.replace('d.ts', 'd.cts');
52+
writeFileSync(ctsFile, safeContent);
53+
}
54+
55+
return {
56+
filePath,
57+
content: safeContent,
58+
};
59+
},
4460
}),
4561
],
4662
});

0 commit comments

Comments
 (0)