Skip to content

Commit 2471611

Browse files
mjbvzCopilot
andcommitted
Cleanup
Co-authored-by: Copilot <copilot@github.com>
1 parent 12ce175 commit 2471611

2 files changed

Lines changed: 44 additions & 22 deletions

File tree

extensions/esbuild-extension-common.mts

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,6 @@ type BuildOptions = Partial<esbuild.BuildOptions> & {
1212
outdir: string;
1313
};
1414

15-
/**
16-
* Build the source code once using esbuild.
17-
*/
18-
async function build(options: BuildOptions, didBuild?: (outDir: string) => unknown): Promise<void> {
19-
await esbuild.build(options);
20-
await didBuild?.(options.outdir);
21-
}
22-
2315
interface RunConfig {
2416
readonly platform: 'node' | 'browser';
2517
readonly format?: 'cjs' | 'esm';
@@ -80,12 +72,31 @@ export async function run(config: RunConfig, args: string[], didBuild?: (outDir:
8072
if (didBuild) {
8173
resolvedOptions.plugins = [
8274
...(resolvedOptions.plugins || []),
83-
{ name: 'did-build', setup(pluginBuild) { pluginBuild.onEnd(() => { didBuild(outdir); }); } },
75+
{
76+
name: 'did-build', setup(pluginBuild) {
77+
pluginBuild.onEnd(async result => {
78+
if (result.errors.length > 0) {
79+
return;
80+
}
81+
82+
try {
83+
await didBuild(outdir);
84+
} catch (error) {
85+
console.error('didBuild failed:', error);
86+
}
87+
});
88+
},
89+
}
8490
];
8591
}
8692
const ctx = await esbuild.context(resolvedOptions);
8793
await ctx.watch();
8894
} else {
89-
return build(resolvedOptions, didBuild).catch(() => process.exit(1));
95+
try {
96+
await esbuild.build(resolvedOptions);
97+
await didBuild?.(outdir);
98+
} catch {
99+
process.exit(1);
100+
}
90101
}
91102
}

extensions/esbuild-webview-common.mts

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,10 @@ import path from 'node:path';
1010
import esbuild from 'esbuild';
1111

1212
export type BuildOptions = Partial<esbuild.BuildOptions> & {
13-
entryPoints: string[] | Record<string, string> | { in: string; out: string }[];
14-
outdir: string;
13+
readonly entryPoints: esbuild.BuildOptions['entryPoints'];
14+
readonly outdir: string;
1515
};
1616

17-
/**
18-
* Build the source code once using esbuild.
19-
*/
20-
async function build(options: BuildOptions, didBuild?: (outDir: string) => unknown): Promise<void> {
21-
await esbuild.build(options);
22-
await didBuild?.(options.outdir);
23-
}
24-
2517
export async function run(
2618
config: {
2719
srcDir: string;
@@ -60,12 +52,31 @@ export async function run(
6052
if (didBuild) {
6153
resolvedOptions.plugins = [
6254
...(resolvedOptions.plugins || []),
63-
{ name: 'did-build', setup(pluginBuild) { pluginBuild.onEnd(() => { didBuild(outdir); }); } },
55+
{
56+
name: 'did-build', setup(pluginBuild) {
57+
pluginBuild.onEnd(async result => {
58+
if (result.errors.length > 0) {
59+
return;
60+
}
61+
62+
try {
63+
await didBuild(outdir);
64+
} catch (error) {
65+
console.error('didBuild failed:', error);
66+
}
67+
});
68+
},
69+
}
6470
];
6571
}
6672
const ctx = await esbuild.context(resolvedOptions);
6773
await ctx.watch();
6874
} else {
69-
return build(resolvedOptions, didBuild).catch(() => process.exit(1));
75+
try {
76+
await esbuild.build(resolvedOptions);
77+
await didBuild?.(outdir);
78+
} catch {
79+
process.exit(1);
80+
}
7081
}
7182
}

0 commit comments

Comments
 (0)