From: Chris Duncan Date: Sun, 29 Mar 2026 07:34:59 +0000 (-0700) Subject: Drop IIFE build. Pin build targets for consistency and compatibility. X-Git-Url: https://git.codecow.com/?a=commitdiff_plain;h=e6824626a6e9547f73aeb6251975e0584310cb8a;p=libnemo.git Drop IIFE build. Pin build targets for consistency and compatibility. --- diff --git a/esbuild/config.mjs b/esbuild/config.mjs index 5466379..7305ce5 100644 --- a/esbuild/config.mjs +++ b/esbuild/config.mjs @@ -4,60 +4,49 @@ import { browserVaultWorker, nodeVaultWorker } from './vault.mjs' /** -* @type {import('esbuild').BuildOptions} -*/ + * @type {import('esbuild').BuildOptions} + */ const sharedOptions = { bundle: true, minify: false, sourcemap: 'linked', - platform: 'browser', + format: 'esm', loader: { '.d.ts': 'copy' }, legalComments: 'inline', - outdir: 'dist', - target: 'es2024', - dropLabels: ['NODE'], - inject: ['./esbuild/inject/buffer.mjs'] + outdir: 'dist' } /** -* @type {import('esbuild').BuildOptions} -*/ + * @type {import('esbuild').BuildOptions} + */ export const browserOptions = { ...sharedOptions, - format: 'esm', + platform: 'browser', + target: 'es2022', + dropLabels: ['NODE'], entryPoints: [ { in: './src/main.ts', out: 'browser.min' } ], + inject: ['./esbuild/inject/buffer.mjs'], define: { 'VAULT_WORKER': browserVaultWorker } } /** -* @type {import('esbuild').BuildOptions} -*/ -export const iifeOptions = { - ...sharedOptions, - format: 'iife', - globalName: 'libnemo', - entryPoints: [ - { in: './src/main.ts', out: 'global.min' } - ] -} - -/** -* @type {import('esbuild').BuildOptions} -*/ + * @type {import('esbuild').BuildOptions} + */ export const nodeOptions = { ...sharedOptions, - format: 'esm', + platform: 'node', + target: 'node22', + dropLabels: ['BROWSER'], entryPoints: [ { in: './src/main.ts', out: 'nodejs.min' } ], external: ['node:worker_threads'], - dropLabels: ['BROWSER'], inject: ['./esbuild/inject/fake-indexeddb.mjs'], define: { 'VAULT_WORKER': nodeVaultWorker diff --git a/esbuild/dev.mjs b/esbuild/dev.mjs index 1011ced..c14f8fa 100644 --- a/esbuild/dev.mjs +++ b/esbuild/dev.mjs @@ -2,8 +2,7 @@ //! SPDX-License-Identifier: GPL-3.0-or-later import { build } from 'esbuild' -import { browserOptions, iifeOptions, nodeOptions } from './config.mjs' +import { browserOptions, nodeOptions } from './config.mjs' await build(browserOptions) -// await build(iifeOptions) await build(nodeOptions) diff --git a/esbuild/prod.mjs b/esbuild/prod.mjs index 769e302..eeca8b4 100644 --- a/esbuild/prod.mjs +++ b/esbuild/prod.mjs @@ -2,7 +2,7 @@ //! SPDX-License-Identifier: GPL-3.0-or-later import { build } from 'esbuild' -import { browserOptions, iifeOptions, nodeOptions } from './config.mjs' +import { browserOptions, nodeOptions } from './config.mjs' /** * @type {import('esbuild').BuildOptions} @@ -14,5 +14,4 @@ const prodOptions = { } await build({ ...browserOptions, ...prodOptions }) -await build({ ...iifeOptions, ...prodOptions }) await build({ ...nodeOptions, ...prodOptions }) diff --git a/esbuild/vault.mjs b/esbuild/vault.mjs index 51fc274..ee23049 100644 --- a/esbuild/vault.mjs +++ b/esbuild/vault.mjs @@ -9,20 +9,22 @@ import { build } from 'esbuild' const vaultWorkerOptions = { entryPoints: ['./src/lib/vault/vault-worker.ts'], format: 'esm', - target: 'es2024', legalComments: 'inline', bundle: true, + minify: true, write: false, } export const browserVaultWorker = JSON.stringify((await build({ ...vaultWorkerOptions, platform: 'browser', + target: 'es2022', dropLabels: ['NODE'], })).outputFiles?.[0].text) export const nodeVaultWorker = JSON.stringify((await build({ ...vaultWorkerOptions, platform: 'node', + target: 'node22', dropLabels: ['BROWSER'], })).outputFiles?.[0].text)