summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Juan Martín Seery <me@juanm04.com> 2022-10-24 11:24:52 -0300
committerGravatar GitHub <noreply@github.com> 2022-10-24 11:24:52 -0300
commitabf41da774516395a49aca30693dccdc4f8d7114 (patch)
tree3b67ce8ffefdf22e86a6eae90401f6362b3df61c
parent7e430a3dc980da0726ab60e7ccf82dab4dbc74ac (diff)
downloadastro-abf41da774516395a49aca30693dccdc4f8d7114.tar.gz
astro-abf41da774516395a49aca30693dccdc4f8d7114.tar.zst
astro-abf41da774516395a49aca30693dccdc4f8d7114.zip
fix(vercel): Include all files inside `dist/` instead of only `entry.mjs` (#5175)
-rw-r--r--.changeset/nine-roses-explain.md5
-rw-r--r--packages/integrations/vercel/src/edge/adapter.ts14
-rw-r--r--packages/integrations/vercel/src/lib/fs.ts14
3 files changed, 28 insertions, 5 deletions
diff --git a/.changeset/nine-roses-explain.md b/.changeset/nine-roses-explain.md
new file mode 100644
index 000000000..0b4c8e019
--- /dev/null
+++ b/.changeset/nine-roses-explain.md
@@ -0,0 +1,5 @@
+---
+'@astrojs/vercel': patch
+---
+
+Edge adapter includes all the generated files (all files inside `dist/`) instead of only `entry.mjs`
diff --git a/packages/integrations/vercel/src/edge/adapter.ts b/packages/integrations/vercel/src/edge/adapter.ts
index fb1bcee27..28a10cecd 100644
--- a/packages/integrations/vercel/src/edge/adapter.ts
+++ b/packages/integrations/vercel/src/edge/adapter.ts
@@ -2,7 +2,13 @@ import type { AstroAdapter, AstroConfig, AstroIntegration } from 'astro';
import { relative as relativePath } from 'node:path';
import { fileURLToPath } from 'node:url';
-import { copyFilesToFunction, getVercelOutput, removeDir, writeJson } from '../lib/fs.js';
+import {
+ copyFilesToFunction,
+ getFilesFromFolder,
+ getVercelOutput,
+ removeDir,
+ writeJson,
+} from '../lib/fs.js';
import { getRedirects } from '../lib/redirects.js';
const PACKAGE_NAME = '@astrojs/vercel/edge';
@@ -88,13 +94,11 @@ export default function vercelEdge({ includeFiles = [] }: VercelEdgeConfig = {})
},
'astro:build:done': async ({ routes }) => {
const entry = new URL(serverEntry, buildTempFolder);
+ const generatedFiles = await getFilesFromFolder(buildTempFolder);
// Copy entry and other server files
const commonAncestor = await copyFilesToFunction(
- [
- new URL(serverEntry, buildTempFolder),
- ...includeFiles.map((file) => new URL(file, _config.root)),
- ],
+ [...generatedFiles, ...includeFiles.map((file) => new URL(file, _config.root))],
functionFolder
);
diff --git a/packages/integrations/vercel/src/lib/fs.ts b/packages/integrations/vercel/src/lib/fs.ts
index 47b218ce5..875a0ae9c 100644
--- a/packages/integrations/vercel/src/lib/fs.ts
+++ b/packages/integrations/vercel/src/lib/fs.ts
@@ -16,6 +16,20 @@ export async function emptyDir(dir: PathLike): Promise<void> {
await fs.mkdir(dir, { recursive: true });
}
+export async function getFilesFromFolder(dir: URL) {
+ const data = await fs.readdir(dir, { withFileTypes: true });
+ let files: URL[] = [];
+ for (const item of data) {
+ if (item.isDirectory()) {
+ const moreFiles = await getFilesFromFolder(new URL(`./${item.name}/`, dir));
+ files = files.concat(moreFiles);
+ } else {
+ files.push(new URL(`./${item.name}`, dir));
+ }
+ }
+ return files;
+}
+
export const getVercelOutput = (root: URL) => new URL('./.vercel/output/', root);
/**