diff options
| author | christine betts <[email protected]> | 2025-07-14 15:34:44 +0000 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-07-14 15:34:44 +0000 |
| commit | e9d680e8a45b18152042214891132eec60e4a09b (patch) | |
| tree | f745dd75afd81079369b4234ecbf34f1adad396e /packages/vscode-ide-companion/esbuild.js | |
| parent | 64f1d80b26af25708356e8a743ea7fab1496c7e9 (diff) | |
Introduce VSCode companion extension (#3917)
Diffstat (limited to 'packages/vscode-ide-companion/esbuild.js')
| -rw-r--r-- | packages/vscode-ide-companion/esbuild.js | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/packages/vscode-ide-companion/esbuild.js b/packages/vscode-ide-companion/esbuild.js new file mode 100644 index 00000000..522542db --- /dev/null +++ b/packages/vscode-ide-companion/esbuild.js @@ -0,0 +1,62 @@ +/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */ + +const esbuild = require('esbuild'); + +const production = process.argv.includes('--production'); +const watch = process.argv.includes('--watch'); + +/** + * @type {import('esbuild').Plugin} + */ +const esbuildProblemMatcherPlugin = { + name: 'esbuild-problem-matcher', + + setup(build) { + build.onStart(() => { + console.log('[watch] build started'); + }); + build.onEnd((result) => { + result.errors.forEach(({ text, location }) => { + console.error(`✘ [ERROR] ${text}`); + console.error( + ` ${location.file}:${location.line}:${location.column}:`, + ); + }); + console.log('[watch] build finished'); + }); + }, +}; + +async function main() { + const ctx = await esbuild.context({ + entryPoints: ['src/extension.ts'], + bundle: true, + format: 'cjs', + minify: production, + sourcemap: !production, + sourcesContent: false, + platform: 'node', + outfile: 'dist/extension.js', + external: ['vscode'], + logLevel: 'silent', + plugins: [ + /* add to the end of plugins array */ + esbuildProblemMatcherPlugin, + ], + }); + if (watch) { + await ctx.watch(); + } else { + await ctx.rebuild(); + await ctx.dispose(); + } +} + +main().catch((e) => { + console.error(e); + process.exit(1); +}); |
