summaryrefslogtreecommitdiff
path: root/packages/integrations/netlify/src/integration-functions.ts
diff options
context:
space:
mode:
authorGravatar Emanuele Stoppa <my.burning@gmail.com> 2023-07-28 10:11:13 +0100
committerGravatar Emanuele Stoppa <my.burning@gmail.com> 2023-08-08 11:02:00 +0100
commit80f1494cdaf72e58a420adb4f7c712d4089e1923 (patch)
treeb6f8df36614d3fbc5f54bff25ff6daf49365f56f /packages/integrations/netlify/src/integration-functions.ts
parent036388f66dab68ad54b895ed86f9176958dd83c8 (diff)
downloadastro-80f1494cdaf72e58a420adb4f7c712d4089e1923.tar.gz
astro-80f1494cdaf72e58a420adb4f7c712d4089e1923.tar.zst
astro-80f1494cdaf72e58a420adb4f7c712d4089e1923.zip
feat: adapter features, deprecate astro configs (#7839)
Diffstat (limited to 'packages/integrations/netlify/src/integration-functions.ts')
-rw-r--r--packages/integrations/netlify/src/integration-functions.ts12
1 files changed, 10 insertions, 2 deletions
diff --git a/packages/integrations/netlify/src/integration-functions.ts b/packages/integrations/netlify/src/integration-functions.ts
index a950167e5..3b10e096c 100644
--- a/packages/integrations/netlify/src/integration-functions.ts
+++ b/packages/integrations/netlify/src/integration-functions.ts
@@ -8,12 +8,16 @@ 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,
+ },
};
}
@@ -21,12 +25,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 +61,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/, '');