import { promises as fs } from "fs"; const globals = { __proto__: null, assert: "assert", invariant: "reactInvariant", tslib: "tslib", "@ungap/global-this": "globalThisPolyfill", }; function external(id) { return id in globals; } function copyPlugin() { return { name: "copy *.cjs to *.cjs.native.js", async writeBundle({ file }) { const buffer = await fs.readFile(file); await fs.writeFile( file + ".native.js", buffer, ); }, }; } const jobs = []; export default jobs; jobs.push({ input: "lib/invariant.js", external, output: { file: "lib/invariant.cjs", format: "cjs", exports: "named", sourcemap: true, name: "ts-invariant", globals, }, plugins: [ copyPlugin(), ], }); jobs.push({ input: "lib/tests.js", external, output: { file: "lib/tests.bundle.cjs", format: "cjs", exports: "named", sourcemap: true, name: "ts-invariant-tests-cjs-bundle", globals, }, }); jobs.push({ input: "process/index.js", external, output: { file: "process/main.cjs", format: "cjs", exports: "named", sourcemap: true, name: "ts-invariant/process", globals, }, plugins: [ copyPlugin(), ], });