Files
gemini-cli/packages/devtools/esbuild.client.js

31 lines
1015 B
JavaScript
Raw Permalink Normal View History

/**
* @license
* Copyright 2025 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
import esbuild from 'esbuild';
import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
mkdirSync('dist/client', { recursive: true });
await esbuild.build({
entryPoints: ['client/src/main.tsx'],
bundle: true,
minify: true,
format: 'esm',
target: 'es2020',
jsx: 'automatic',
outfile: 'dist/client/main.js',
});
// Embed client assets as string constants so the devtools server can be
// bundled into the CLI without needing readFileSync + __dirname at runtime.
const indexHtml = readFileSync('client/index.html', 'utf-8');
const clientJs = readFileSync('dist/client/main.js', 'utf-8');
writeFileSync(
'src/_client-assets.ts',
`/**\n * @license\n * Copyright 2025 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// Auto-generated by esbuild.client.js — do not edit\nexport const INDEX_HTML = ${JSON.stringify(indexHtml)};\nexport const CLIENT_JS = ${JSON.stringify(clientJs)};\n`,
);