summaryrefslogtreecommitdiff
path: root/packages/integrations/vercel/src/serverless/adapter.ts
diff options
context:
space:
mode:
authorGravatar Matthew Phillips <matthew@skypack.dev> 2022-10-12 17:25:51 -0400
committerGravatar GitHub <noreply@github.com> 2022-10-12 17:25:51 -0400
commite55af8a23233b6335f45b7a04b9d026990fb616c (patch)
tree62f47ae6e1fa56c04c045318c3a0d34674cb4a63 /packages/integrations/vercel/src/serverless/adapter.ts
parent2b7fb848bbe18942960c17a135c5a3769780512b (diff)
downloadastro-e55af8a23233b6335f45b7a04b9d026990fb616c.tar.gz
astro-e55af8a23233b6335f45b7a04b9d026990fb616c.tar.zst
astro-e55af8a23233b6335f45b7a04b9d026990fb616c.zip
Node.js standalone mode + support for astro preview (#5056)
* wip * Deprecate buildConfig and move to config.build * Implement the standalone server * Stay backwards compat * Add changesets * correctly merge URLs * Get config earlier * update node tests * Return the preview server * update remaining tests * swap usage and config ordering * Update packages/astro/src/@types/astro.ts Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca> * Update .changeset/metal-pumas-walk.md Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca> * Update .changeset/metal-pumas-walk.md Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca> * Update .changeset/stupid-points-refuse.md Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca> * Update .changeset/stupid-points-refuse.md Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca> * Link to build.server config Co-authored-by: Fred K. Schott <fkschott@gmail.com> Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
Diffstat (limited to 'packages/integrations/vercel/src/serverless/adapter.ts')
-rw-r--r--packages/integrations/vercel/src/serverless/adapter.ts28
1 files changed, 21 insertions, 7 deletions
diff --git a/packages/integrations/vercel/src/serverless/adapter.ts b/packages/integrations/vercel/src/serverless/adapter.ts
index f5ae4e8cb..dfc0367ae 100644
--- a/packages/integrations/vercel/src/serverless/adapter.ts
+++ b/packages/integrations/vercel/src/serverless/adapter.ts
@@ -19,16 +19,29 @@ export default function vercelEdge(): AstroIntegration {
let buildTempFolder: URL;
let functionFolder: URL;
let serverEntry: string;
+ let needsBuildConfig = false;
return {
name: PACKAGE_NAME,
hooks: {
- 'astro:config:setup': ({ config }) => {
- config.outDir = getVercelOutput(config.root);
+ 'astro:config:setup': ({ config, updateConfig }) => {
+ needsBuildConfig = !config.build.client;
+ const outDir = getVercelOutput(config.root);
+ updateConfig({
+ outDir,
+ build: {
+ serverEntry: 'entry.js',
+ client: new URL('./static/', outDir),
+ server: new URL('./dist/', config.root),
+ }
+ });
},
'astro:config:done': ({ setAdapter, config }) => {
setAdapter(getAdapter());
_config = config;
+ buildTempFolder = config.build.server;
+ functionFolder = new URL('./functions/render.func/', config.outDir);
+ serverEntry = config.build.serverEntry;
if (config.output === 'static') {
throw new Error(`
@@ -37,11 +50,12 @@ export default function vercelEdge(): AstroIntegration {
`);
}
},
- 'astro:build:start': async ({ buildConfig }) => {
- buildConfig.serverEntry = serverEntry = 'entry.js';
- buildConfig.client = new URL('./static/', _config.outDir);
- buildConfig.server = buildTempFolder = new URL('./dist/', _config.root);
- functionFolder = new URL('./functions/render.func/', _config.outDir);
+ 'astro:build:start': ({ buildConfig }) => {
+ if(needsBuildConfig) {
+ buildConfig.client = new URL('./static/', _config.outDir);
+ buildTempFolder = buildConfig.server = new URL('./dist/', _config.root);
+ serverEntry = buildConfig.serverEntry = 'entry.js';
+ }
},
'astro:build:done': async ({ routes }) => {
// Copy necessary files (e.g. node_modules/)