Files
2026-07-13 13:34:48 +08:00

59 lines
1.2 KiB
TypeScript

import esbuild from 'esbuild'
const common: esbuild.BuildOptions = {
bundle: true,
minify: true,
sourcemap: true,
}
const buildNode = () =>
esbuild.build({
...common,
platform: 'node',
format: 'cjs',
external: ['axios', 'browser-or-node'],
outfile: 'dist/index.cjs',
entryPoints: ['src/index.ts'],
})
const buildBrowser = () =>
esbuild.build({
...common,
platform: 'browser',
format: 'esm',
external: ['crypto', 'axios', 'browser-or-node'],
outfile: 'dist/index.mjs',
entryPoints: ['src/index.ts'],
})
const buildBundle = () =>
esbuild.build({
...common,
platform: 'node',
outfile: 'dist/bundle.cjs',
entryPoints: ['src/index.ts'],
})
const main = async (argv: string[]) => {
if (argv.includes('--node')) {
return buildNode()
}
if (argv.includes('--browser')) {
return buildBrowser()
}
if (argv.includes('--bundle')) {
return buildBundle()
}
throw new Error('Please specify --node, --browser, or --bundle')
}
void main(process.argv.slice(2))
.then(() => {
console.info('Done')
process.exit(0)
})
.catch((error) => {
console.error(error)
process.exit(1)
})