]> git.codecow.com Git - libnemo.git/commitdiff
Create IIFE build.
authorChris Duncan <chris@zoso.dev>
Fri, 29 Aug 2025 18:40:55 +0000 (11:40 -0700)
committerChris Duncan <chris@zoso.dev>
Fri, 29 Aug 2025 18:40:55 +0000 (11:40 -0700)
esbuild.mjs
index.html

index 2f337af5d46c9c74763911a30fd999c87209381e..b886fb5be64ae962f24e2d6fb475a7c5fed51238 100644 (file)
@@ -12,15 +12,33 @@ const sharedOptions = {
        loader: {
                '.d.ts': 'copy'
        },
-       format: 'esm',
        legalComments: 'inline',
        outdir: 'dist',
        target: 'esnext'
 }
 
-// Browser build
+/**
+* @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: ['./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' }
@@ -30,9 +48,12 @@ export const browserOptions = {
 }
 await build(browserOptions)
 
-// Node build
+/**
+* @type {import('esbuild').BuildOptions}
+*/
 export const nodeOptions = {
        ...sharedOptions,
+       format: 'esm',
        entryPoints: [
                { in: './src/main.ts', out: 'nodejs.min' }
        ],
index be85bd66dffd76c4450324fd4b6c5e0d29c25f9a..52ad248e1a33651534cc354907dd806fd21a85a3 100644 (file)
@@ -9,22 +9,6 @@ SPDX-License-Identifier: GPL-3.0-or-later
        <link rel="icon" href="data:,">
        <script type="module">
                (async () => {
-                       let libnemo
-                       try {
-                               libnemo = await import('./dist/browser.min.js')
-                       } catch (err) {
-                               console.warn(err)
-                               try {
-                                       libnemo = await import('https://unpkg.com/libnemo/dist/browser.min.js')
-                               } catch (err) {
-                                       console.warn(err)
-                                       try {
-                                               libnemo = await import('https://cdn.jsdelivr.net/npm/libnemo/dist/browser.min.js')
-                                       } catch (err) {
-                                               throw new Error(`Failed to load libnemo ${err}`)
-                                       }
-                               }
-                       }
                        function random (size = 64) {
                                let hex = ''
                                while (hex.length < size) {
@@ -91,7 +75,8 @@ SPDX-License-Identifier: GPL-3.0-or-later
                        }
                })()
        </script>
-       <script type="module" src="./test/main.test.mjs"></script>
+       <script src="./dist/global.min.js"></script>
+       <script src="./test/main.test.mjs" type="module"></script>
        <style>body{background:black;color:white;}</style>
 </head>