diff --git a/package-lock.json b/package-lock.json index 4783822..2d6b9b7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@checkdigit/typescript-config", - "version": "5.0.0", + "version": "5.0.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@checkdigit/typescript-config", - "version": "5.0.0", + "version": "5.0.1", "license": "MIT", "bin": { "builder": "bin/builder.mjs" diff --git a/package.json b/package.json index d05703f..ac00a41 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@checkdigit/typescript-config", - "version": "5.0.0", + "version": "5.0.1", "description": "Check Digit standard Typescript configuration", "prettier": "@checkdigit/prettier-config", "engines": { diff --git a/src/builder/builder.mts b/src/builder/builder.mts index 958fa8e..bd6961f 100644 --- a/src/builder/builder.mts +++ b/src/builder/builder.mts @@ -200,7 +200,7 @@ export default async function ({ format: type === 'module' ? 'esm' : 'cjs', sourcesContent: false, banner: - type === 'module' && outFile !== undefined + type === 'module' ? { js: 'import { createRequire as __createRequire } from "node:module";\nconst require = __createRequire(import.meta.url);', } diff --git a/src/builder/builder.spec.mts b/src/builder/builder.spec.mts index 0d4d151..6c359cc 100644 --- a/src/builder/builder.spec.mts +++ b/src/builder/builder.spec.mts @@ -155,7 +155,14 @@ describe('test builder', () => { await write(inDir, singleModule); assert.deepEqual(await builder({ type: 'module', inDir, outDir }), []); assert.deepEqual(await read(outDir), { - 'index.mjs': 'var hello = "world";\nexport {\n hello\n};\n', + 'index.mjs': + 'import { createRequire as __createRequire } from "node:module";\n' + + 'const require = __createRequire(import.meta.url);\n' + + '\n' + + 'var hello = "world";\n' + + 'export {\n' + + ' hello\n' + + '};\n', }); // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment @@ -170,7 +177,10 @@ describe('test builder', () => { await write(inDir, singleModule); assert.deepEqual(await builder({ type: 'module', inDir, outDir, minify: true }), []); assert.deepEqual(await read(outDir), { - 'index.mjs': 'var o="world";export{o as hello};\n', + 'index.mjs': + 'import { createRequire as __createRequire } from "node:module";\n' + + 'const require = __createRequire(import.meta.url);\n' + + 'var o="world";export{o as hello};\n', }); // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment @@ -186,6 +196,9 @@ describe('test builder', () => { assert.deepEqual(await builder({ type: 'module', inDir, outDir }), []); assert.deepEqual(await read(outDir), { 'index.mjs': + 'import { createRequire as __createRequire } from "node:module";\n' + + 'const require = __createRequire(import.meta.url);\n' + + '\n' + 'function src_default() {\n' + ' return "hello world";\n' + '}\n' + @@ -250,12 +263,22 @@ describe('test builder', () => { assert.deepEqual(await builder({ type: 'module', inDir, outDir }), []); assert.deepEqual(await read(outDir), { 'index.mjs': + 'import { createRequire as __createRequire } from "node:module";\n' + + 'const require = __createRequire(import.meta.url);\n' + + '\n' + 'import { hello } from "./thing.mjs";\n' + 'var src_default = hello + "world";\n' + 'export {\n' + ' src_default as default\n' + '};\n', - 'thing.mjs': 'var hello = "world";\nexport {\n hello\n};\n', + 'thing.mjs': + 'import { createRequire as __createRequire } from "node:module";\n' + + 'const require = __createRequire(import.meta.url);\n' + + '\n' + + 'var hello = "world";\n' + + 'export {\n' + + ' hello\n' + + '};\n', }); // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment const output = await import(path.join(outDir, 'index.mjs'));