aboutsummaryrefslogtreecommitdiff
path: root/scripts/bundle.ts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/bundle.ts')
-rw-r--r--scripts/bundle.ts40
1 files changed, 40 insertions, 0 deletions
diff --git a/scripts/bundle.ts b/scripts/bundle.ts
new file mode 100644
index 00000000..793f27a1
--- /dev/null
+++ b/scripts/bundle.ts
@@ -0,0 +1,40 @@
+import { buildSync } from 'esbuild';
+import { sync as globSync } from 'glob';
+import locales from '../src/locales';
+
+console.log('Building dist for node (cjs)...');
+buildSync({
+ entryPoints: globSync('./src/**/*.ts'),
+ // We can use the following entry points when esbuild supports cjs+splitting
+ // entryPoints: [
+ // './src/index.ts',
+ // ...Object.keys(locales).map((locale) => `./src/locale/${locale}.ts`),
+ // './src/iban.ts',
+ // './src/mersenne.ts',
+ // ],
+ outdir: './dist/cjs',
+ bundle: false, // Creates 390MiB bundle ...
+ sourcemap: false,
+ minify: true,
+ // splitting: true, // Doesn't work with cjs
+ format: 'cjs',
+ platform: 'node',
+ target: 'node12',
+});
+
+console.log('Building dist for node type=module (esm)...');
+buildSync({
+ entryPoints: [
+ './src/index.ts',
+ ...Object.keys(locales).map((locale) => `./src/locale/${locale}.ts`),
+ './src/iban.ts',
+ './src/mersenne.ts',
+ ],
+ outdir: './dist/esm',
+ bundle: true,
+ sourcemap: false,
+ minify: true,
+ splitting: true,
+ format: 'esm',
+ target: 'node12.20',
+});