Skip to content

Commit 33a6a01

Browse files
authored
fix: esm-shim (#20)
1 parent 64f78f7 commit 33a6a01

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

package.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,15 @@
3030
"version": "0.0.0-development",
3131
"license": "MIT",
3232
"main": "./dist/blessed.js",
33+
"module": "./dist/blessed.mjs",
3334
"types": "./dist/blessed.d.ts",
35+
"exports": {
36+
".": {
37+
"types": "./dist/blessed.d.ts",
38+
"import": "./dist/blessed.mjs",
39+
"require": "./dist/blessed.js"
40+
}
41+
},
3442
"bin": "./bin/tput.ts",
3543
"preferGlobal": false,
3644
"repository": "git://github.com/eirikb/neo-neo-blessed.git",

tsup.config.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ export default defineConfig(options => ({
44
entry: {
55
blessed: 'lib/blessed.ts',
66
},
7-
format: ['cjs'],
7+
format: ['cjs', 'esm'],
88
target: 'es2022',
99
dts: {
1010
compilerOptions: {
@@ -26,6 +26,15 @@ export default defineConfig(options => ({
2626
skipNodeModulesBundle: true,
2727
platform: 'node',
2828
external: ['./dist/blessed.js', './dist/blessed'],
29+
// ESM compatibility for legacy CommonJS codebase
30+
esbuildOptions(options, context) {
31+
if (context.format === 'esm') {
32+
// Inject CommonJS globals for Node.js ESM compatibility
33+
options.banner = {
34+
js: 'import { createRequire } from "module"; const require = createRequire(import.meta.url); const module = { exports: {} };',
35+
};
36+
}
37+
},
2938
onSuccess: async () => {
3039
console.log('Build completed successfully!');
3140
},

0 commit comments

Comments
 (0)