fancive_obsidian-parallel-r.../esbuild.config.mjs
wujunchen 1fada9f472 feat: add TypeScript build and provider architecture
Introduce an esbuild/TypeScript source layout while keeping the generated Obsidian main.js entrypoint. Add provider-format adapters, structured-output requests, settings-aware bounded cache, prompt controls, concurrency guards, and regression tests.

Change-Id: I8ecbc4c6eff3925249778732bd75747619b818e4
2026-04-25 14:12:17 +08:00

36 lines
739 B
JavaScript

import esbuild from 'esbuild';
import { builtinModules } from 'module';
const production = process.argv[2] === 'production';
const watch = process.argv[2] === 'watch';
const external = [
'obsidian',
'electron',
...builtinModules,
...builtinModules.map(m => `node:${m}`),
];
const context = await esbuild.context({
entryPoints: ['main.ts'],
bundle: true,
platform: 'node',
format: 'cjs',
target: 'es2020',
external,
sourcemap: production ? false : 'inline',
treeShaking: true,
minify: production,
outfile: 'main.js',
banner: {
js: "'use strict';",
},
});
if (watch) {
await context.watch();
console.log('Watching for changes...');
} else {
await context.rebuild();
await context.dispose();
}