//! SPDX-License-Identifier: GPL-3.0-or-later
import { build } from 'esbuild'
+import { browserOptions, iifeOptions, nodeOptions } from './config.mjs'
-/**
-* @type {import('esbuild').BuildOptions}
-*/
-const sharedOptions = {
- bundle: true,
- minify: false,
- sourcemap: 'both',
- platform: 'browser',
- loader: {
- '.d.ts': 'copy'
- },
- legalComments: 'inline',
- outdir: 'dist',
- target: 'esnext'
-}
-
-/**
-* @type {import('esbuild').BuildOptions}
-*/
-export const iifeOptions = {
- ...sharedOptions,
- format: 'iife',
- globalName: 'libnemo',
- entryPoints: [
- { in: './src/main.ts', out: 'global.min' },
- { in: './src/types.d.ts', out: 'types.d' }
- ],
- dropLabels: ['NODE'],
- inject: ['./polyfill/buffer.mjs']
-}
-await build(iifeOptions)
-
-/**
-* @type {import('esbuild').BuildOptions}
-*/
-export const browserOptions = {
- ...sharedOptions,
- format: 'esm',
- entryPoints: [
- { in: './src/main.ts', out: 'browser.min' },
- { in: './src/types.d.ts', out: 'types.d' }
- ],
- dropLabels: ['NODE'],
- inject: ['./polyfill/buffer.mjs']
-}
await build(browserOptions)
-
-/**
-* @type {import('esbuild').BuildOptions}
-*/
-export const nodeOptions = {
- ...sharedOptions,
- format: 'esm',
- entryPoints: [
- { in: './src/main.ts', out: 'nodejs.min' }
- ],
- dropLabels: ['BROWSER'],
- external: ['node:worker_threads'],
- inject: ['./polyfill/fake-indexeddb.mjs']
-}
+await build(iifeOptions)
await build(nodeOptions)
//! SPDX-License-Identifier: GPL-3.0-or-later
import { build } from 'esbuild'
-import { browserOptions, nodeOptions } from './build-dev.mjs'
+import { browserOptions, nodeOptions } from './config.mjs'
browserOptions.drop = nodeOptions.drop = ['console', 'debugger']
browserOptions.minify = nodeOptions.minify = true
browserOptions.sourcemap = nodeOptions.sourcemap = false
-// Browser build
await build(browserOptions)
-
-// Node build
await build(nodeOptions)
--- /dev/null
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-License-Identifier: GPL-3.0-or-later
+
+/**
+* @type {import('esbuild').BuildOptions}
+*/
+const sharedOptions = {
+ bundle: true,
+ minify: false,
+ sourcemap: 'both',
+ platform: 'browser',
+ loader: {
+ '.d.ts': 'copy'
+ },
+ legalComments: 'inline',
+ outdir: 'dist',
+ target: 'esnext'
+}
+
+/**
+* @type {import('esbuild').BuildOptions}
+*/
+export const browserOptions = {
+ ...sharedOptions,
+ format: 'esm',
+ entryPoints: [
+ { in: './src/main.ts', out: 'browser.min' },
+ { in: './src/types.d.ts', out: 'types.d' }
+ ],
+ dropLabels: ['NODE'],
+ inject: ['./polyfill/buffer.mjs']
+}
+
+/**
+* @type {import('esbuild').BuildOptions}
+*/
+export const iifeOptions = {
+ ...sharedOptions,
+ format: 'iife',
+ globalName: 'libnemo',
+ entryPoints: [
+ { in: './src/main.ts', out: 'global.min' },
+ { in: './src/types.d.ts', out: 'types.d' }
+ ],
+ dropLabels: ['NODE'],
+ inject: ['./polyfill/buffer.mjs']
+}
+
+/**
+* @type {import('esbuild').BuildOptions}
+*/
+export const nodeOptions = {
+ ...sharedOptions,
+ format: 'esm',
+ entryPoints: [
+ { in: './src/main.ts', out: 'nodejs.min' }
+ ],
+ dropLabels: ['BROWSER'],
+ external: ['node:worker_threads'],
+ inject: ['./polyfill/fake-indexeddb.mjs']
+}