You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
1.2 KiB
74 lines
1.2 KiB
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(), |
|
], |
|
});
|
|
|