@@ -4,16 +4,22 @@ import type { BuildInternals } from '../internal.js';
44import type { StaticBuildOptions } from '../types.js' ;
55import { ASTRO_VITE_ENVIRONMENT_NAMES } from '../../constants.js' ;
66
7- const SSR_VIRTUAL_MODULE_ID = 'virtual:astro:legacy-ssr-entry' ;
8- export const RESOLVED_SSR_VIRTUAL_MODULE_ID = '\0' + SSR_VIRTUAL_MODULE_ID ;
7+ type LegacyAdapter = Extract < AstroAdapter , { entryType ?: 'legacy-dynamic' } > ;
8+
9+ function isLegacyAdapter ( adapter : AstroAdapter ) : adapter is LegacyAdapter {
10+ return adapter . entryType === undefined || adapter . entryType === 'legacy-dynamic' ;
11+ }
12+
13+ export const LEGACY_SSR_ENTRY_VIRTUAL_MODULE = 'virtual:astro:legacy-ssr-entry' ;
14+ export const RESOLVED_LEGACY_SSR_ENTRY_VIRTUAL_MODULE = '\0' + LEGACY_SSR_ENTRY_VIRTUAL_MODULE ;
915
1016const ADAPTER_VIRTUAL_MODULE_ID = 'virtual:astro:adapter-entrypoint' ;
1117const RESOLVED_ADAPTER_VIRTUAL_MODULE_ID = '\0' + ADAPTER_VIRTUAL_MODULE_ID ;
1218
1319const ADAPTER_CONFIG_VIRTUAL_MODULE_ID = 'virtual:astro:adapter-config' ;
1420const RESOLVED_ADAPTER_CONFIG_VIRTUAL_MODULE_ID = '\0' + ADAPTER_CONFIG_VIRTUAL_MODULE_ID ;
1521
16- function vitePluginAdapter ( adapter : AstroAdapter ) : VitePlugin {
22+ function vitePluginAdapter ( adapter : LegacyAdapter ) : VitePlugin {
1723 return {
1824 name : '@astrojs/vite-plugin-astro-adapter' ,
1925 enforce : 'post' ,
@@ -49,7 +55,7 @@ export default _serverEntrypoint.default;`,
4955 * Makes adapter config (args, exports, features, entrypoint) available at runtime
5056 * so the adapter can access its own configuration during SSR.
5157 */
52- function vitePluginAdapterConfig ( adapter : AstroAdapter ) : VitePlugin {
58+ function vitePluginAdapterConfig ( adapter : LegacyAdapter ) : VitePlugin {
5359 return {
5460 name : '@astrojs/vite-plugin-astro-adapter-config' ,
5561 enforce : 'post' ,
@@ -70,17 +76,14 @@ function vitePluginAdapterConfig(adapter: AstroAdapter): VitePlugin {
7076 } ,
7177 handler ( ) {
7278 return {
73- code : `export const args = ${ adapter . args ? JSON . stringify ( adapter . args , null , 2 ) : 'undefined' } ;
74- export const exports = ${ adapter . exports ? JSON . stringify ( adapter . exports ) : 'undefined' } ;
75- export const adapterFeatures = ${ adapter . adapterFeatures ? JSON . stringify ( adapter . adapterFeatures , null , 2 ) : 'undefined' } ;
76- export const serverEntrypoint = ${ JSON . stringify ( adapter . serverEntrypoint ) } ;` ,
79+ code : `export const args = ${ adapter . args ? JSON . stringify ( adapter . args , null , 2 ) : 'undefined' } ;` ,
7780 } ;
7881 } ,
7982 } ,
8083 } ;
8184}
8285
83- function vitePluginSSR ( internals : BuildInternals , adapter : AstroAdapter ) : VitePlugin {
86+ function vitePluginSSR ( internals : BuildInternals , adapter : LegacyAdapter ) : VitePlugin {
8487 return {
8588 name : '@astrojs/vite-plugin-astro-ssr-server' ,
8689 enforce : 'post' ,
@@ -89,15 +92,15 @@ function vitePluginSSR(internals: BuildInternals, adapter: AstroAdapter): VitePl
8992 } ,
9093 resolveId : {
9194 filter : {
92- id : new RegExp ( `^${ SSR_VIRTUAL_MODULE_ID } $` ) ,
95+ id : new RegExp ( `^${ LEGACY_SSR_ENTRY_VIRTUAL_MODULE } $` ) ,
9396 } ,
9497 handler ( ) {
95- return RESOLVED_SSR_VIRTUAL_MODULE_ID ;
98+ return RESOLVED_LEGACY_SSR_ENTRY_VIRTUAL_MODULE ;
9699 } ,
97100 } ,
98101 load : {
99102 filter : {
100- id : new RegExp ( `^${ RESOLVED_SSR_VIRTUAL_MODULE_ID } $` ) ,
103+ id : new RegExp ( `^${ RESOLVED_LEGACY_SSR_ENTRY_VIRTUAL_MODULE } $` ) ,
101104 } ,
102105 handler ( ) {
103106 const exports : string [ ] = [ ] ;
@@ -131,14 +134,17 @@ function vitePluginSSR(internals: BuildInternals, adapter: AstroAdapter): VitePl
131134}
132135
133136export function pluginSSR ( options : StaticBuildOptions , internals : BuildInternals ) : VitePlugin [ ] {
134- // We check before this point if there's an adapter, so we can safely assume it exists here.
135- const adapter = options . settings . adapter ! ;
137+ const adapter = options . settings . adapter ;
136138 const ssr = options . settings . buildOutput === 'server' ;
137139
138- const plugins : VitePlugin [ ] = [ vitePluginAdapter ( adapter ) , vitePluginAdapterConfig ( adapter ) ] ;
140+ const plugins : VitePlugin [ ] = [ ] ;
141+
142+ if ( adapter && isLegacyAdapter ( adapter ) ) {
143+ plugins . push ( vitePluginAdapter ( adapter ) , vitePluginAdapterConfig ( adapter ) ) ;
139144
140- if ( ssr ) {
141- plugins . unshift ( vitePluginSSR ( internals , adapter ) ) ;
145+ if ( ssr ) {
146+ plugins . unshift ( vitePluginSSR ( internals , adapter ) ) ;
147+ }
142148 }
143149
144150 return plugins ;
0 commit comments