Skip to content

Commit

Permalink
Fix vercel build error when passing includeFiles (#7677)
Browse files Browse the repository at this point in the history
  • Loading branch information
bluwy authored Jul 17, 2023
1 parent 1a6f833 commit 1f0d0b5
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 7 deletions.
5 changes: 5 additions & 0 deletions .changeset/six-baboons-allow.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@astrojs/vercel': patch
---

Fix build error when passing `includeFiles`
10 changes: 6 additions & 4 deletions packages/integrations/vercel/src/serverless/adapter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@ export default function vercelServerless({
let buildTempFolder: URL;
let serverEntry: string;
let _entryPoints: Map<RouteData, URL>;
// Extra files to be merged with `includeFiles` during build
const extraFilesToInclude: URL[] = [];

async function createFunctionFolder(funcName: string, entry: URL, inc: URL[]) {
const functionFolder = new URL(`./functions/${funcName}.func/`, _config.outDir);
Expand Down Expand Up @@ -74,8 +76,6 @@ export default function vercelServerless({
});
}

const filesToInclude = includeFiles?.map((file) => new URL(file, _config.root)) || [];

return {
name: PACKAGE_NAME,
hooks: {
Expand Down Expand Up @@ -130,7 +130,7 @@ export default function vercelServerless({
vercelEdgeMiddlewareHandlerPath
);
// let's tell the adapter that we need to save this file
filesToInclude.push(bundledMiddlewarePath);
extraFilesToInclude.push(bundledMiddlewarePath);
}
},

Expand All @@ -140,7 +140,7 @@ export default function vercelServerless({
const mergeGlobbedIncludes = (globPattern: unknown) => {
if (typeof globPattern === 'string') {
const entries = glob.sync(globPattern).map((p) => pathToFileURL(p));
filesToInclude.push(...entries);
extraFilesToInclude.push(...entries);
} else if (Array.isArray(globPattern)) {
for (const pattern of globPattern) {
mergeGlobbedIncludes(pattern);
Expand All @@ -152,6 +152,8 @@ export default function vercelServerless({
}

const routeDefinitions: { src: string; dest: string }[] = [];
const filesToInclude = includeFiles?.map((file) => new URL(file, _config.root)) || [];
filesToInclude.push(...extraFilesToInclude);

// Multiple entrypoint support
if (_entryPoints.size) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@ import { defineConfig } from 'astro/config';
import vercel from '@astrojs/vercel/serverless';

export default defineConfig({
adapter: vercel(),
adapter: vercel({
// Pass some value to make sure it doesn't error out
includeFiles: ['included.js']
}),
output: 'server'
});
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
'works'
12 changes: 10 additions & 2 deletions packages/integrations/vercel/test/serverless-prerender.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,20 @@ describe('Serverless prerender', () => {
fixture = await loadFixture({
root: './fixtures/serverless-prerender/',
});
await fixture.build();
});

it('build successful', async () => {
await fixture.build();
expect(await fixture.readFile('../.vercel/output/static/index.html')).to.be.ok;
});

it('includeFiles work', async () => {
expect(
await fixture.readFile(
'../.vercel/output/functions/render.func/packages/integrations/vercel/test/fixtures/serverless-prerender/included.js'
)
).to.be.ok;
});
});

describe('Serverless hybrid rendering', () => {
Expand All @@ -28,10 +36,10 @@ describe('Serverless hybrid rendering', () => {
root: './fixtures/serverless-prerender/',
output: 'hybrid',
});
await fixture.build();
});

it('build successful', async () => {
await fixture.build();
expect(await fixture.readFile('../.vercel/output/static/index.html')).to.be.ok;
});
});

0 comments on commit 1f0d0b5

Please sign in to comment.