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' }
}
await build(browserOptions)
-// Node build
+/**
+* @type {import('esbuild').BuildOptions}
+*/
export const nodeOptions = {
...sharedOptions,
+ format: 'esm',
entryPoints: [
{ in: './src/main.ts', out: 'nodejs.min' }
],
<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) {
}
})()
</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>