diff options
Diffstat (limited to 'packages/integrations/netlify/src/integration-functions.ts')
| -rw-r--r-- | packages/integrations/netlify/src/integration-functions.ts | 22 | 
1 files changed, 20 insertions, 2 deletions
| diff --git a/packages/integrations/netlify/src/integration-functions.ts b/packages/integrations/netlify/src/integration-functions.ts index a950167e5..b8d56ad65 100644 --- a/packages/integrations/netlify/src/integration-functions.ts +++ b/packages/integrations/netlify/src/integration-functions.ts @@ -8,12 +8,26 @@ import { createRedirects } from './shared.js';  export const NETLIFY_EDGE_MIDDLEWARE_FILE = 'netlify-edge-middleware';  export const ASTRO_LOCALS_HEADER = 'x-astro-locals'; -export function getAdapter(args: Args = {}): AstroAdapter { +export function getAdapter({ functionPerRoute, edgeMiddleware, ...args }: Args): AstroAdapter {  	return {  		name: '@astrojs/netlify/functions',  		serverEntrypoint: '@astrojs/netlify/netlify-functions.js',  		exports: ['handler'],  		args, +		adapterFeatures: { +			functionPerRoute, +			edgeMiddleware, +		}, +		supportedAstroFeatures: { +			hybridOutput: 'stable', +			staticOutput: 'stable', +			serverOutput: 'stable', +			assets: { +				supportKind: 'stable', +				isSharpCompatible: true, +				isSquooshCompatible: true, +			}, +		},  	};  } @@ -21,12 +35,16 @@ interface NetlifyFunctionsOptions {  	dist?: URL;  	builders?: boolean;  	binaryMediaTypes?: string[]; +	edgeMiddleware?: boolean; +	functionPerRoute?: boolean;  }  function netlifyFunctions({  	dist,  	builders,  	binaryMediaTypes, +	functionPerRoute = false, +	edgeMiddleware = false,  }: NetlifyFunctionsOptions = {}): AstroIntegration {  	let _config: AstroConfig;  	let _entryPoints: Map<RouteData, URL>; @@ -53,7 +71,7 @@ function netlifyFunctions({  				_entryPoints = entryPoints;  			},  			'astro:config:done': ({ config, setAdapter }) => { -				setAdapter(getAdapter({ binaryMediaTypes, builders })); +				setAdapter(getAdapter({ binaryMediaTypes, builders, functionPerRoute, edgeMiddleware }));  				_config = config;  				ssrEntryFile = config.build.serverEntry.replace(/\.m?js/, ''); | 
