diff --git a/README.md b/README.md index 1de571d5..53b96315 100644 --- a/README.md +++ b/README.md @@ -527,13 +527,12 @@ On Amazon S3, this means adding the following line to your bucket policy, inside ```ts // Set only the base URL by passing a string -penumbra.setWorkerLocation('/penumbra-workers/'); +penumbra.setWorkerLocation('/penumbra-workers/worker.penumbra.js'); // Set all worker URLs by passing a WorkerLocation object penumbra.setWorkerLocation({ base: '/penumbra-workers/', penumbra: 'worker.penumbra.js', - StreamSaver: 'StreamSaver.js', }); // Set a single worker's location diff --git a/build.js b/build.js new file mode 100644 index 00000000..94ae7ca4 --- /dev/null +++ b/build.js @@ -0,0 +1,54 @@ +const { + NodeGlobalsPolyfillPlugin, +} = require('@esbuild-plugins/node-globals-polyfill'); + +const { build } = require('esbuild'); + +/** + * @type {import('esbuild').BuildOptions} + */ +const sharedOptions = { + entryPoints: ['./src/index.ts', './src/worker.penumbra.js'], + sourcemap: true, + bundle: true, +}; + +/** + * @type {import('esbuild').BuildOptions} + */ +const browserOptions = { + platform: 'browser', + plugins: [ + NodeGlobalsPolyfillPlugin({ + process: true, + buffer: true, + }), + ], + define: { + global: 'globalThis', + }, +}; + +/** + * @type {import('esbuild').BuildOptions} + */ +const cjsOptions = { + ...sharedOptions, + ...browserOptions, + format: 'iife', + minify: true, + outdir: './dist/cjs/', + globalName: 'penumbra', +}; +build(cjsOptions).catch(() => process.exit(1)); + +/** + * @type {import('esbuild').BuildOptions} + */ +const esmOptions = { + ...sharedOptions, + ...browserOptions, + format: 'esm', + outdir: './dist/esm/', +}; +build(esmOptions).catch(() => process.exit(1)); diff --git a/demo/index.html b/demo/cjs.html similarity index 88% rename from demo/index.html rename to demo/cjs.html index 72d8efbd..2a8d2c3b 100644 --- a/demo/index.html +++ b/demo/cjs.html @@ -30,8 +30,8 @@
Open your console (Option+Command+I) to view test results.
+