in esbuild.base.ts [26:67]
async setup(build) {
const { config } = resolveTSConfig({});
const willBundleDeclarations = false;
const compilerOptions = getCompilerOptions({
tsconfig: config,
pluginOptions: { tsconfig: { outdir } },
esbuildOptions: build.initialOptions,
willBundleDeclarations,
});
const compilerHost = compilerOptions.incremental
? ts.createIncrementalCompilerHost(compilerOptions)
: ts.createCompilerHost(compilerOptions);
const inputFiles = [];
build.onLoad({ filter: /(\.tsx|\.ts)$/ }, async (args) => {
inputFiles.push(args.path);
compilerHost.getSourceFile(
args.path,
compilerOptions.target ?? ts.ScriptTarget.Latest,
true,
);
});
build.onEnd(() => {
let compilerProgram;
if (compilerOptions.incremental) {
compilerProgram = ts.createIncrementalProgram({
options: compilerOptions,
host: compilerHost,
rootNames: inputFiles,
});
} else {
compilerProgram = ts.createProgram(
inputFiles,
compilerOptions,
compilerHost,
);
}
compilerProgram.emit();
});
},