Auto-indexing service and GraphQL API for AT Protocol Records quickslice.slices.network/
atproto gleam graphql
at main 55 lines 1.1 kB view raw
1import * as esbuild from 'esbuild'; 2 3const watch = process.argv.includes('--watch'); 4 5const sharedConfig = { 6 entryPoints: ['src/index.ts'], 7 bundle: true, 8 sourcemap: true, 9 target: ['es2020'], 10}; 11 12// UMD build (for CDN/script tag) 13const umdBuild = { 14 ...sharedConfig, 15 outfile: 'dist/quickslice-client.js', 16 format: 'iife', 17 globalName: 'QuicksliceClient', 18}; 19 20// UMD minified 21const umdMinBuild = { 22 ...sharedConfig, 23 outfile: 'dist/quickslice-client.min.js', 24 format: 'iife', 25 globalName: 'QuicksliceClient', 26 minify: true, 27 sourcemap: false, 28}; 29 30// ESM build (for bundlers) 31const esmBuild = { 32 ...sharedConfig, 33 outfile: 'dist/quickslice-client.esm.js', 34 format: 'esm', 35}; 36 37async function build() { 38 if (watch) { 39 const ctx = await esbuild.context(umdBuild); 40 await ctx.watch(); 41 console.log('Watching for changes...'); 42 } else { 43 await Promise.all([ 44 esbuild.build(umdBuild), 45 esbuild.build(umdMinBuild), 46 esbuild.build(esmBuild), 47 ]); 48 console.log('Build complete!'); 49 } 50} 51 52build().catch((err) => { 53 console.error(err); 54 process.exit(1); 55});