Auto-indexing service and GraphQL API for AT Protocol Records
quickslice.slices.network/
atproto
gleam
graphql
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});