From 051320dd8b7be0e51a690baa7d381be71fb496b0 Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Wed, 24 May 2023 15:51:41 +0100 Subject: [PATCH] chore: remove `plugin-middleware` --- .../astro/src/core/build/plugins/README.md | 9 --- .../astro/src/core/build/plugins/index.ts | 2 - .../core/build/plugins/plugin-middleware.ts | 62 ------------------- .../src/core/build/plugins/plugin-pages.ts | 11 +++- .../src/core/build/plugins/plugin-ssr.ts | 11 +++- 5 files changed, 16 insertions(+), 79 deletions(-) delete mode 100644 packages/astro/src/core/build/plugins/plugin-middleware.ts diff --git a/packages/astro/src/core/build/plugins/README.md b/packages/astro/src/core/build/plugins/README.md index 6ac92a3f35efa..d53bdce72121e 100644 --- a/packages/astro/src/core/build/plugins/README.md +++ b/packages/astro/src/core/build/plugins/README.md @@ -2,15 +2,6 @@ This file serves as developer documentation to explain how the internal plugins work - -## `plugin-middleware` - -This plugin is responsible to retrieve the `src/middleware.{ts.js}` file and emit an entry point during the SSR build. - -The final file is emitted only if the user has the middleware file. The final name of the file is `middleware.mjs`. - -The file emitted has this content, more or less: - ```js import { onRequest } from "@astro-middleware"; export { onRequest } diff --git a/packages/astro/src/core/build/plugins/index.ts b/packages/astro/src/core/build/plugins/index.ts index f6fcacfb1b7d1..cb228a95cbf73 100644 --- a/packages/astro/src/core/build/plugins/index.ts +++ b/packages/astro/src/core/build/plugins/index.ts @@ -7,7 +7,6 @@ import { pluginComponentEntry } from './plugin-component-entry.js'; import { pluginCSS } from './plugin-css.js'; import { pluginHoistedScripts } from './plugin-hoisted-scripts.js'; import { pluginInternals } from './plugin-internals.js'; -import { pluginMiddleware } from './plugin-middleware.js'; import { pluginPages } from './plugin-pages.js'; import { pluginPrerender } from './plugin-prerender.js'; import { pluginRenderers } from './plugin-renderers.js'; @@ -19,7 +18,6 @@ export function registerAllPlugins({ internals, options, register }: AstroBuildP register(pluginAnalyzer(internals)); register(pluginInternals(internals)); register(pluginRenderers(options, internals)); - register(pluginMiddleware(options, internals)); register(pluginPages(options, internals)); register(pluginCSS(options, internals)); register(astroHeadBuildPlugin(options, internals)); diff --git a/packages/astro/src/core/build/plugins/plugin-middleware.ts b/packages/astro/src/core/build/plugins/plugin-middleware.ts deleted file mode 100644 index 12ec06659415f..0000000000000 --- a/packages/astro/src/core/build/plugins/plugin-middleware.ts +++ /dev/null @@ -1,62 +0,0 @@ -import type { Plugin as VitePlugin } from 'vite'; -import { MIDDLEWARE_PATH_SEGMENT_NAME } from '../../constants.js'; -import { addRollupInput } from '../add-rollup-input.js'; -import type { BuildInternals } from '../internal.js'; -import type { AstroBuildPlugin } from '../plugin'; -import type { StaticBuildOptions } from '../types'; - -export const MIDDLEWARE_MODULE_ID = '@astro-middleware'; -export const RESOLVED_MIDDLEWARE_MODULE_ID = '\0@astro-middleware'; - -export function vitePluginMiddleware( - opts: StaticBuildOptions, - _internals: BuildInternals -): VitePlugin { - return { - name: '@astro/plugin-middleware', - options(options) { - if (opts.settings.config.experimental.middleware) { - return addRollupInput(options, [MIDDLEWARE_MODULE_ID]); - } - }, - - resolveId(id) { - if (id === MIDDLEWARE_MODULE_ID && opts.settings.config.experimental.middleware) { - return RESOLVED_MIDDLEWARE_MODULE_ID; - } - }, - - async load(id) { - if (id === RESOLVED_MIDDLEWARE_MODULE_ID && opts.settings.config.experimental.middleware) { - const imports: string[] = []; - const exports: string[] = []; - let middlewareId = await this.resolve( - `${opts.settings.config.srcDir.pathname}/${MIDDLEWARE_PATH_SEGMENT_NAME}` - ); - if (middlewareId) { - imports.push(`import { onRequest } from "${middlewareId.id}"`); - exports.push(`export { onRequest }`); - } - const result = [imports.join('\n'), exports.join('\n')]; - - return result.join('\n'); - } - }, - }; -} - -export function pluginMiddleware( - opts: StaticBuildOptions, - internals: BuildInternals -): AstroBuildPlugin { - return { - build: 'ssr', - hooks: { - 'build:before': () => { - return { - vitePlugin: vitePluginMiddleware(opts, internals), - }; - }, - }, - }; -} diff --git a/packages/astro/src/core/build/plugins/plugin-pages.ts b/packages/astro/src/core/build/plugins/plugin-pages.ts index 32fc263ca3905..4955152879ddd 100644 --- a/packages/astro/src/core/build/plugins/plugin-pages.ts +++ b/packages/astro/src/core/build/plugins/plugin-pages.ts @@ -3,9 +3,9 @@ import { addRollupInput } from '../add-rollup-input.js'; import { type BuildInternals } from '../internal.js'; import type { AstroBuildPlugin } from '../plugin'; import type { StaticBuildOptions } from '../types'; -import { MIDDLEWARE_MODULE_ID } from './plugin-middleware.js'; import { RENDERERS_MODULE_ID } from './plugin-renderers.js'; import { extname } from 'node:path'; +import { MIDDLEWARE_PATH_SEGMENT_NAME } from '../../constants'; export const ASTRO_PAGE_MODULE_ID = '@astro-page:'; export const ASTRO_PAGE_RESOLVED_MODULE_ID = '\0@astro-page:'; @@ -64,8 +64,13 @@ function vitePluginPages(opts: StaticBuildOptions, internals: BuildInternals): V exports.push(`export { renderers };`); if (opts.settings.config.experimental.middleware) { - imports.push(`import * as _middleware from "${MIDDLEWARE_MODULE_ID}";`); - exports.push(`export const middleware = _middleware;`); + const middlewareId = await this.resolve( + `${opts.settings.config.srcDir.pathname}/${MIDDLEWARE_PATH_SEGMENT_NAME}` + ); + if (middlewareId) { + imports.push(`import * as _middleware from "${middlewareId.id}";`); + exports.push(`export const middleware = _middleware;`); + } } return `${imports.join('\n')}${exports.join('\n')}`; diff --git a/packages/astro/src/core/build/plugins/plugin-ssr.ts b/packages/astro/src/core/build/plugins/plugin-ssr.ts index c1f8789cbfc29..2fc6f1d7a3a9b 100644 --- a/packages/astro/src/core/build/plugins/plugin-ssr.ts +++ b/packages/astro/src/core/build/plugins/plugin-ssr.ts @@ -13,10 +13,10 @@ import { serializeRouteData } from '../../routing/index.js'; import { addRollupInput } from '../add-rollup-input.js'; import { getOutFile, getOutFolder } from '../common.js'; import { cssOrder, mergeInlineCss, type BuildInternals } from '../internal.js'; -import { MIDDLEWARE_MODULE_ID } from './plugin-middleware.js'; import { extname } from 'node:path'; import { RENDERERS_MODULE_ID } from './plugin-renderers.js'; import { ASTRO_PAGE_EXTENSION_POST_PATTERN, ASTRO_PAGE_MODULE_ID } from './plugin-pages.js'; +import { MIDDLEWARE_PATH_SEGMENT_NAME } from '../../constants'; export const virtualModuleId = '@astrojs-ssr-virtual-entry'; const resolvedVirtualModuleId = '\0' + virtualModuleId; @@ -50,8 +50,13 @@ function vitePluginSSR( const exports: string[] = []; let middleware; if (config.experimental?.middleware === true) { - imports.push(`import * as _middleware from "${MIDDLEWARE_MODULE_ID}"`); - middleware = 'middleware: _middleware'; + const middlewareId = await this.resolve( + `${config.srcDir.pathname}/${MIDDLEWARE_PATH_SEGMENT_NAME}` + ); + if (middlewareId) { + imports.push(`import * as _middleware from "${middlewareId.id}"`); + middleware = 'middleware: _middleware'; + } } let i = 0; const pageMap: string[] = [];