summaryrefslogtreecommitdiff
path: root/packages/integrations/vercel/src/serverless/adapter.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/vercel/src/serverless/adapter.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/vercel/src/serverless/adapter.ts')
-rw-r--r--packages/integrations/vercel/src/serverless/adapter.ts18
1 files changed, 16 insertions, 2 deletions
diff --git a/packages/integrations/vercel/src/serverless/adapter.ts b/packages/integrations/vercel/src/serverless/adapter.ts
index 1a2f9d82a..4fd7e22a4 100644
--- a/packages/integrations/vercel/src/serverless/adapter.ts
+++ b/packages/integrations/vercel/src/serverless/adapter.ts
@@ -29,11 +29,21 @@ const SUPPORTED_NODE_VERSIONS: Record<
18: { status: 'current' },
};
-function getAdapter(): AstroAdapter {
+function getAdapter({
+ edgeMiddleware,
+ functionPerRoute,
+}: {
+ edgeMiddleware: boolean;
+ functionPerRoute: boolean;
+}): AstroAdapter {
return {
name: PACKAGE_NAME,
serverEntrypoint: `${PACKAGE_NAME}/entrypoint`,
exports: ['default'],
+ adapterFeatures: {
+ edgeMiddleware,
+ functionPerRoute,
+ },
};
}
@@ -43,6 +53,8 @@ export interface VercelServerlessConfig {
analytics?: boolean;
imageService?: boolean;
imagesConfig?: VercelImageConfig;
+ edgeMiddleware?: boolean;
+ functionPerRoute?: boolean;
}
export default function vercelServerless({
@@ -51,6 +63,8 @@ export default function vercelServerless({
analytics,
imageService,
imagesConfig,
+ functionPerRoute = false,
+ edgeMiddleware = false,
}: VercelServerlessConfig = {}): AstroIntegration {
let _config: AstroConfig;
let buildTempFolder: URL;
@@ -112,7 +126,7 @@ export default function vercelServerless({
},
'astro:config:done': ({ setAdapter, config }) => {
throwIfAssetsNotEnabled(config, imageService);
- setAdapter(getAdapter());
+ setAdapter(getAdapter({ functionPerRoute, edgeMiddleware }));
_config = config;
buildTempFolder = config.build.server;
serverEntry = config.build.serverEntry;