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
//! 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)
//! 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}
}
await build({ ...browserOptions, ...prodOptions })
-await build({ ...iifeOptions, ...prodOptions })
await build({ ...nodeOptions, ...prodOptions })
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)