summaryrefslogtreecommitdiff
path: root/packages/integrations/vercel/src/serverless/adapter.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/integrations/vercel/src/serverless/adapter.ts')
-rw-r--r--packages/integrations/vercel/src/serverless/adapter.ts20
1 files changed, 15 insertions, 5 deletions
diff --git a/packages/integrations/vercel/src/serverless/adapter.ts b/packages/integrations/vercel/src/serverless/adapter.ts
index 5b65c331e..3c7ba15de 100644
--- a/packages/integrations/vercel/src/serverless/adapter.ts
+++ b/packages/integrations/vercel/src/serverless/adapter.ts
@@ -14,7 +14,15 @@ function getAdapter(): AstroAdapter {
};
}
-export default function vercelEdge(): AstroIntegration {
+export interface VercelServerlessConfig {
+ includeFiles?: string[];
+ excludeFiles?: string[];
+}
+
+export default function vercelServerless({
+ includeFiles,
+ excludeFiles,
+}: VercelServerlessConfig = {}): AstroIntegration {
let _config: AstroConfig;
let buildTempFolder: URL;
let functionFolder: URL;
@@ -59,10 +67,12 @@ export default function vercelEdge(): AstroIntegration {
},
'astro:build:done': async ({ routes }) => {
// Copy necessary files (e.g. node_modules/)
- const { handler } = await copyDependenciesToFunction(
- new URL(serverEntry, buildTempFolder),
- functionFolder
- );
+ const { handler } = await copyDependenciesToFunction({
+ entry: new URL(serverEntry, buildTempFolder),
+ outDir: functionFolder,
+ includeFiles: includeFiles?.map((file) => new URL(file, _config.root)) || [],
+ excludeFiles: excludeFiles?.map((file) => new URL(file, _config.root)) || [],
+ });
// Remove temporary folder
await removeDir(buildTempFolder);