Skip to content

Commit a1c02e1

Browse files
authored
Revert vercel adapter to v1 filesystem API (#3149)
* revert to v1 filesystem API * changeset
1 parent a1e980f commit a1c02e1

File tree

2 files changed

+34
-24
lines changed

2 files changed

+34
-24
lines changed

.changeset/quiet-terms-fail.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@sveltejs/adapter-vercel': patch
3+
---
4+
5+
Revert to v1 filesystem API

packages/adapter-vercel/index.js

+29-24
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@ import { relative } from 'path';
33
import { fileURLToPath } from 'url';
44
import esbuild from 'esbuild';
55

6-
// By writing to .output, we opt in to the Vercel filesystem API:
7-
// https://vercel.com/docs/file-system-api
8-
const VERCEL_OUTPUT = '.output';
6+
const dir = '.vercel_build_output';
97

108
/** @type {import('.')} **/
119
export default function () {
@@ -15,17 +13,24 @@ export default function () {
1513
async adapt(builder) {
1614
const tmp = builder.getBuildDirectory('vercel-tmp');
1715

18-
builder.rimraf(VERCEL_OUTPUT);
16+
builder.rimraf(dir);
1917
builder.rimraf(tmp);
2018

19+
const files = fileURLToPath(new URL('./files', import.meta.url));
20+
21+
const dirs = {
22+
static: `${dir}/static`,
23+
lambda: `${dir}/functions/node/render`
24+
};
25+
2126
builder.log.minor('Prerendering static pages...');
27+
2228
await builder.prerender({
23-
dest: `${VERCEL_OUTPUT}/static`
29+
dest: `${dir}/static`
2430
});
2531

2632
builder.log.minor('Generating serverless function...');
2733

28-
const files = fileURLToPath(new URL('./files', import.meta.url));
2934
const relativePath = relative(tmp, builder.getServerDirectory());
3035

3136
builder.copy(files, tmp, {
@@ -44,33 +49,33 @@ export default function () {
4449

4550
await esbuild.build({
4651
entryPoints: [`${tmp}/entry.js`],
47-
outfile: `${VERCEL_OUTPUT}/server/pages/__render.js`,
52+
outfile: `${dirs.lambda}/index.js`,
4853
target: 'node14',
4954
bundle: true,
5055
platform: 'node'
5156
});
5257

53-
writeFileSync(
54-
`${VERCEL_OUTPUT}/server/pages/package.json`,
55-
JSON.stringify({ type: 'commonjs' })
56-
);
58+
writeFileSync(`${dirs.lambda}/package.json`, JSON.stringify({ type: 'commonjs' }));
5759

5860
builder.log.minor('Copying assets...');
59-
builder.writeClient(`${VERCEL_OUTPUT}/static`);
60-
builder.writeStatic(`${VERCEL_OUTPUT}/static`);
6161

62-
builder.log.minor('Writing manifests...');
62+
builder.writeStatic(dirs.static);
63+
builder.writeClient(dirs.static);
64+
65+
builder.log.minor('Writing routes...');
66+
67+
builder.mkdirp(`${dir}/config`);
6368
writeFileSync(
64-
`${VERCEL_OUTPUT}/routes-manifest.json`,
65-
JSON.stringify({
66-
version: 3,
67-
dynamicRoutes: [
68-
{
69-
page: '/__render',
70-
regex: '^/.*'
71-
}
72-
]
73-
})
69+
`${dir}/config/routes.json`,
70+
JSON.stringify([
71+
{
72+
handle: 'filesystem'
73+
},
74+
{
75+
src: '/.*',
76+
dest: '.vercel/functions/render'
77+
}
78+
])
7479
);
7580
}
7681
};

0 commit comments

Comments
 (0)