From c915ee79bd7383145b8e088bd256d530913fffe4 Mon Sep 17 00:00:00 2001 From: Quinn Slack Date: Fri, 6 Oct 2023 00:55:29 -0700 Subject: [PATCH] remove unused/unneeded esbuild plugins (#57408) * rm unused htmlIndexPlugin * remove esbuild experimentalNotice plugin --- client/app-shell/dev/esbuild/build.ts | 8 +-- client/build-config/src/esbuild/plugins.ts | 10 --- client/web/dev/esbuild/build.ts | 2 - client/web/dev/esbuild/htmlIndexPlugin.ts | 78 ---------------------- 4 files changed, 1 insertion(+), 97 deletions(-) delete mode 100644 client/web/dev/esbuild/htmlIndexPlugin.ts diff --git a/client/app-shell/dev/esbuild/build.ts b/client/app-shell/dev/esbuild/build.ts index 99346fa7eba..7ffa4312c28 100644 --- a/client/app-shell/dev/esbuild/build.ts +++ b/client/app-shell/dev/esbuild/build.ts @@ -3,12 +3,7 @@ import path from 'path' import * as esbuild from 'esbuild' -import { - stylePlugin, - packageResolutionPlugin, - experimentalNoticePlugin, - buildTimerPlugin, -} from '@sourcegraph/build-config' +import { stylePlugin, packageResolutionPlugin, buildTimerPlugin } from '@sourcegraph/build-config' import { isDefined } from '@sourcegraph/common' async function copyStaticFiles(sourceDir: string, destinationDir: string): Promise { @@ -37,7 +32,6 @@ export const BUILD_OPTIONS: esbuild.BuildOptions = { path: require.resolve('path-browserify'), }), buildTimerPlugin, - experimentalNoticePlugin, ].filter(isDefined), define: { global: 'window', diff --git a/client/build-config/src/esbuild/plugins.ts b/client/build-config/src/esbuild/plugins.ts index 361bc99ad2f..2fd16814639 100644 --- a/client/build-config/src/esbuild/plugins.ts +++ b/client/build-config/src/esbuild/plugins.ts @@ -1,5 +1,4 @@ import type * as esbuild from 'esbuild' -import signale from 'signale' export * from './monacoPlugin' export * from './packageResolutionPlugin' @@ -16,12 +15,3 @@ export const buildTimerPlugin: esbuild.Plugin = { build.onEnd(() => console.log(`# esbuild: build took ${Date.now() - buildStarted}ms`)) }, } - -export const experimentalNoticePlugin: esbuild.Plugin = { - name: 'experimentalNotice', - setup: (): void => { - signale.info( - 'esbuild usage is experimental. See https://docs.sourcegraph.com/dev/background-information/web/build#esbuild.' - ) - }, -} diff --git a/client/web/dev/esbuild/build.ts b/client/web/dev/esbuild/build.ts index 781b83e8c10..98fdaf3d44c 100644 --- a/client/web/dev/esbuild/build.ts +++ b/client/web/dev/esbuild/build.ts @@ -12,7 +12,6 @@ import { monacoPlugin, RXJS_RESOLUTIONS, buildMonaco, - experimentalNoticePlugin, buildTimerPlugin, } from '@sourcegraph/build-config' import { isDefined } from '@sourcegraph/common' @@ -67,7 +66,6 @@ export const BUILD_OPTIONS: esbuild.BuildOptions = { }), omitSlowDeps ? null : monacoPlugin(MONACO_LANGUAGES_AND_FEATURES), buildTimerPlugin, - experimentalNoticePlugin, ].filter(isDefined), define: { ...Object.fromEntries( diff --git a/client/web/dev/esbuild/htmlIndexPlugin.ts b/client/web/dev/esbuild/htmlIndexPlugin.ts deleted file mode 100644 index 63d446be20a..00000000000 --- a/client/web/dev/esbuild/htmlIndexPlugin.ts +++ /dev/null @@ -1,78 +0,0 @@ -import fs from 'fs' -import path from 'path' - -import type * as esbuild from 'esbuild' -import * as handlebars from 'handlebars' - -import { STATIC_ASSETS_PATH } from '@sourcegraph/build-config' - -import { type WebpackManifest, HTML_INDEX_PATH } from '../utils' - -// Note: This is only valid for Cody App. -export const assetPathPrefix = '/' - -export const getManifest = (jsEntrypoint: string, cssEntrypoint?: string): WebpackManifest => ({ - 'app.js': path.join(assetPathPrefix, jsEntrypoint ?? 'scripts/app.js'), - 'app.css': path.join(assetPathPrefix, cssEntrypoint ?? 'scripts/app.css'), - isModule: true, -}) - -const writeHtmlIndex = async (manifest: WebpackManifest): Promise => { - const template = await fs.promises.readFile('index.html.template', 'utf8') - const render = handlebars.compile(template) - const content = render({ - cssBundle: manifest['app.css'], - jsBundle: manifest['app.js'], - isModule: manifest.isModule, - }) - await fs.promises.writeFile(HTML_INDEX_PATH, content) -} - -const ENTRYPOINT_NAME = 'scripts/shell' - -/** - * An esbuild plugin to write a index.html file for Sourcegraph, for compatibility with the current - * Go backend template system. - * - * This is only used in Cody App, currently. - */ -export const htmlIndexPlugin: esbuild.Plugin = { - name: 'htmlIndex', - setup: build => { - build.initialOptions.metafile = true - - build.onEnd(async result => { - const { entryPoints } = build.initialOptions - const outputs = result?.metafile?.outputs - - if (!entryPoints) { - console.error('[htmlIndexPlugin] No entrypoints found') - return - } - const absoluteEntrypoint: string | undefined = (entryPoints as any)[ENTRYPOINT_NAME] - if (!absoluteEntrypoint) { - console.error('[htmlIndexPlugin] No entrypoint found with the name scripts/app') - return - } - const relativeEntrypoint = path.relative(process.cwd(), absoluteEntrypoint) - - if (!outputs) { - return - } - let jsEntrypoint: string | undefined - let cssEntrypoint: string | undefined - - // Find the entrypoint in the output files - for (const [asset, output] of Object.entries(outputs)) { - if (output.entryPoint === relativeEntrypoint) { - jsEntrypoint = path.relative(STATIC_ASSETS_PATH, asset) - if (output.cssBundle) { - cssEntrypoint = path.relative(STATIC_ASSETS_PATH, output.cssBundle) - } - } - } - - await writeHtmlIndex(getManifest(jsEntrypoint ?? '', cssEntrypoint)) - }) - }, -}