diff --git a/.changeset/two-beans-try.md b/.changeset/two-beans-try.md new file mode 100644 index 000000000000..4181bdee569e --- /dev/null +++ b/.changeset/two-beans-try.md @@ -0,0 +1,16 @@ +--- +'@astrojs/web-vitals': major +'astro': major +--- + +Removes the `prerender` option from `injectRoute` in the Integrations API. + +The `injectRoute` integration method no longer accepts `prerender: true`. + +Instead, add the `prerender` export to your injected route like you would for other routes defined in the `src/pages` directory: + +```astro +--- +export const prerender = true +--- +``` diff --git a/packages/astro/src/actions/integration.ts b/packages/astro/src/actions/integration.ts index 830420836a3d..83b77429d35f 100644 --- a/packages/astro/src/actions/integration.ts +++ b/packages/astro/src/actions/integration.ts @@ -21,7 +21,6 @@ export default function astroIntegrationActionsRouteHandler({ params.injectRoute({ pattern: '/_actions/[...path]', entrypoint: 'astro/actions/runtime/route.js', - prerender: false, }); params.addMiddleware({ diff --git a/packages/astro/src/actions/runtime/route.ts b/packages/astro/src/actions/runtime/route.ts index 5827e431f62a..57b8cadd7062 100644 --- a/packages/astro/src/actions/runtime/route.ts +++ b/packages/astro/src/actions/runtime/route.ts @@ -3,6 +3,8 @@ import { formContentTypes, hasContentType } from './utils.js'; import { getAction } from './virtual/get-action.js'; import { serializeActionResult } from './virtual/shared.js'; +export const prerender = false; + export const POST: APIRoute = async (context) => { const { request, url } = context; let baseAction; diff --git a/packages/astro/src/core/routing/manifest/create.ts b/packages/astro/src/core/routing/manifest/create.ts index 834c37efe226..f9cb365692e4 100644 --- a/packages/astro/src/core/routing/manifest/create.ts +++ b/packages/astro/src/core/routing/manifest/create.ts @@ -279,7 +279,7 @@ function createInjectedRoutes({ settings, cwd }: CreateRouteManifestParams): Rou const routes: RouteData[] = []; for (const injectedRoute of settings.injectedRoutes) { - const { pattern: name, entrypoint, prerender: prerenderInjected } = injectedRoute; + const { pattern: name, entrypoint } = injectedRoute; const { resolved, component } = resolveInjectedRoute(entrypoint, config.root, cwd); const segments = removeLeadingForwardSlash(name) @@ -316,7 +316,7 @@ function createInjectedRoutes({ settings, cwd }: CreateRouteManifestParams): Rou component, generate, pathname: pathname || void 0, - prerender: prerenderInjected ?? prerender, + prerender, fallbackRoutes: [], }); } diff --git a/packages/astro/src/integrations/hooks.ts b/packages/astro/src/integrations/hooks.ts index 0c40e60cdb96..0c7882689264 100644 --- a/packages/astro/src/integrations/hooks.ts +++ b/packages/astro/src/integrations/hooks.ts @@ -192,13 +192,6 @@ export async function runHookConfigSetup({ return { ...updatedConfig }; }, injectRoute: (injectRoute) => { - if (injectRoute.entrypoint == null && 'entryPoint' in injectRoute) { - logger.warn( - null, - `The injected route "${injectRoute.pattern}" by ${integration.name} specifies the entry point with the "entryPoint" property. This property is deprecated, please use "entrypoint" instead.`, - ); - injectRoute.entrypoint = injectRoute.entryPoint as string; - } updatedSettings.injectedRoutes.push(injectRoute); }, addWatchFile: (path) => { diff --git a/packages/astro/src/types/public/integrations.ts b/packages/astro/src/types/public/integrations.ts index 0836bdc9e9bb..34768f2ce198 100644 --- a/packages/astro/src/types/public/integrations.ts +++ b/packages/astro/src/types/public/integrations.ts @@ -144,7 +144,6 @@ export type InjectedScriptStage = 'before-hydration' | 'head-inline' | 'page' | export interface InjectedRoute { pattern: string; entrypoint: string; - prerender?: boolean; } export interface ResolvedInjectedRoute extends InjectedRoute { diff --git a/packages/astro/test/fixtures/reuse-injected-entrypoint/astro.config.mjs b/packages/astro/test/fixtures/reuse-injected-entrypoint/astro.config.mjs index 266e31c07f93..26e993150381 100644 --- a/packages/astro/test/fixtures/reuse-injected-entrypoint/astro.config.mjs +++ b/packages/astro/test/fixtures/reuse-injected-entrypoint/astro.config.mjs @@ -10,25 +10,21 @@ export default defineConfig({ injectRoute({ pattern: `/injected-a`, entrypoint: './src/to-inject.astro', - prerender: true, }); injectRoute({ pattern: `/injected-b`, entrypoint: './src/to-inject.astro', - prerender: true, }); injectRoute({ pattern: `/dynamic-a/[id]`, entrypoint: './src/[id].astro', - prerender: true, }); injectRoute({ pattern: `/dynamic-b/[id]`, entrypoint: './src/[id].astro', - prerender: true, }); }, }, }, ], -}); \ No newline at end of file +}); diff --git a/packages/integrations/web-vitals/src/index.ts b/packages/integrations/web-vitals/src/index.ts index c74ab32613ee..546c09bb23de 100644 --- a/packages/integrations/web-vitals/src/index.ts +++ b/packages/integrations/web-vitals/src/index.ts @@ -25,7 +25,6 @@ export default function webVitals({ deprecated }: { deprecated?: boolean } = {}) injectRoute({ entrypoint: '@astrojs/web-vitals/endpoint', pattern: WEB_VITALS_ENDPOINT_PATH + '/[...any]', - prerender: false, }); // Client-side performance measurement script. injectScript('page', `import '@astrojs/web-vitals/client-script';`);