an atproto based link aggregator
at main 46 lines 1.2 kB view raw
1/** 2 * Build the ingester as a standalone JS bundle for production. 3 * Resolves all imports and bundles dependencies. 4 */ 5 6import * as esbuild from 'esbuild'; 7 8await esbuild.build({ 9 entryPoints: ['src/ingester/main.ts'], 10 bundle: true, 11 platform: 'node', 12 target: 'node22', 13 format: 'esm', 14 outfile: 'build/ingester.js', 15 sourcemap: true, 16 external: [ 17 // Native modules that can't be bundled 18 '@libsql/linux-x64-gnu', 19 '@libsql/linux-x64-musl', 20 '@libsql/client', 21 '@libsql/core', 22 '@libsql/hrana-client', 23 'libsql', 24 // OpenTelemetry uses dynamic requires 25 '@opentelemetry/api', 26 '@opentelemetry/sdk-node', 27 '@opentelemetry/auto-instrumentations-node', 28 '@opentelemetry/exporter-trace-otlp-proto', 29 '@opentelemetry/exporter-metrics-otlp-proto', 30 '@opentelemetry/sdk-metrics', 31 '@opentelemetry/resources', 32 '@opentelemetry/semantic-conventions' 33 ], 34 banner: { 35 js: ` 36import { createRequire } from 'module'; 37import { fileURLToPath } from 'url'; 38import { dirname } from 'path'; 39const require = createRequire(import.meta.url); 40const __filename = fileURLToPath(import.meta.url); 41const __dirname = dirname(__filename); 42`.trim() 43 } 44}); 45 46console.log('Ingester built to build/ingester.js');