diff --git a/build.cjs b/build.cjs deleted file mode 100755 index cbf7259..0000000 --- a/build.cjs +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/env node - -const fs = require("fs/promises"); -const child_process = require("child_process"); - -async function main() { - const dir = await fs.opendir("src"); - for await (const dirent of dir) { - if (["-pre.ts", "-main.ts", "-post.ts"].some(x => dirent.name.endsWith(x))) { - child_process.exec(`tsup-node src/${dirent.name} --out-dir dist --format esm`, (error, stdout, stderr) => { - if (error) { - console.error(`exec error: ${error}`); - return; - } - console.log(`stdout: ${stdout}`); - console.error(`stderr: ${stderr}`); - }); - } - } -} - -main().then(); diff --git a/package.json b/package.json index bcf23d3..4958c76 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "format:write": "prettier --write **/*.ts", "format:check": "prettier --check **/*.ts", "lint": "npx eslint . -c eslint.config.mjs", - "build": "./build.cjs", + "build": "tsup", "build:watch": "npm run package -- --watch", "test": "NODE_OPTIONS=\"$NODE_OPTIONS --experimental-vm-modules\" jest --detectOpenHandles", "all": "npm run format:write && npm run lint && npm run test && npm run build", diff --git a/tsup.config.ts b/tsup.config.ts index 5d5657b..6011320 100644 --- a/tsup.config.ts +++ b/tsup.config.ts @@ -1,24 +1,31 @@ -import { defineConfig } from 'tsup' +import { readdirSync } from "fs"; +import { defineConfig } from "tsup"; + +const entry = readdirSync("src", { withFileTypes: true }) + .filter((dirent) => dirent.isFile()) + .map((dirent) => dirent.name) + .filter((name) => ["-pre.ts", "-main.ts", "-post.ts"].some((suffix) => name.endsWith(suffix))) + .sort() + .map((name) => `src/${name}`); export default defineConfig({ - noExternal: [ - /(.*)/ - ], - dts: false, - splitting: false, - clean: false, - skipNodeModulesBundle: true, - shims: true, - cjsInterop: false, - target: "es2022", - format: 'esm', - outDir: "dist/", - banner: { - js: `import { createRequire as __createRequire } from 'module'; const require = __createRequire(import.meta.url);`, - }, - outExtension({ format }) { - return { - js: `.mjs`, - } - }, -}) \ No newline at end of file + entry, + noExternal: [/(.*)/], + dts: false, + splitting: false, + clean: false, + skipNodeModulesBundle: true, + shims: true, + cjsInterop: false, + target: "es2022", + format: ["esm"], + outDir: "dist/", + banner: { + js: `import { createRequire as __createRequire } from 'module'; const require = __createRequire(import.meta.url);`, + }, + outExtension() { + return { + js: ".mjs", + }; + }, +});