summaryrefslogtreecommitdiff
path: root/packages/integrations/netlify/src/integration-functions.ts
diff options
context:
space:
mode:
authorGravatar Matthew Phillips <matthew@skypack.dev> 2023-08-24 10:38:14 -0400
committerGravatar GitHub <noreply@github.com> 2023-08-24 10:38:14 -0400
commitf1c610636a7aeed0a272ab2669815135699b413c (patch)
treed7597c3468197559948f9fe2bafe13a8c3d71106 /packages/integrations/netlify/src/integration-functions.ts
parent608b2d732d762bf1f7f44a82b278caa8853c8c2f (diff)
parentebaccf8c1a2f37eacb6e1957c82fdf7f93b62b08 (diff)
downloadastro-f1c610636a7aeed0a272ab2669815135699b413c.tar.gz
astro-f1c610636a7aeed0a272ab2669815135699b413c.tar.zst
astro-f1c610636a7aeed0a272ab2669815135699b413c.zip
Merge pull request #8188 from withastro/next
Astro 3.0
Diffstat (limited to 'packages/integrations/netlify/src/integration-functions.ts')
-rw-r--r--packages/integrations/netlify/src/integration-functions.ts22
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/, '');