From 12399044c50454061d94ca83d888562c5eae24cf Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Fri, 16 Sep 2022 14:24:22 -0400 Subject: [PATCH] create commonjs bundle with adapter-node, since esm output has issues - closes #6797 --- .changeset/fast-crews-pay.md | 5 +++++ packages/adapter-node/ambient.d.ts | 8 ++++---- packages/adapter-node/index.js | 12 ++++++------ packages/adapter-node/rollup.config.js | 6 +++--- packages/adapter-node/src/handler.js | 11 +++++++---- packages/adapter-node/src/index.js | 4 ++-- 6 files changed, 27 insertions(+), 19 deletions(-) create mode 100644 .changeset/fast-crews-pay.md diff --git a/.changeset/fast-crews-pay.md b/.changeset/fast-crews-pay.md new file mode 100644 index 000000000000..7c13e24e9ab0 --- /dev/null +++ b/.changeset/fast-crews-pay.md @@ -0,0 +1,5 @@ +--- +'@sveltejs/adapter-node': patch +--- + +Create CommonJS bundle with adapter-node diff --git a/packages/adapter-node/ambient.d.ts b/packages/adapter-node/ambient.d.ts index 15d55418239b..a53b7cf5552c 100644 --- a/packages/adapter-node/ambient.d.ts +++ b/packages/adapter-node/ambient.d.ts @@ -1,16 +1,16 @@ -declare module 'ENV' { +declare module '0ENV' { export function env(key: string, fallback?: any): string; } -declare module 'HANDLER' { +declare module '0HANDLER' { export const handler: import('polka').Middleware; } -declare module 'MANIFEST' { +declare module '0MANIFEST' { import { SSRManifest } from '@sveltejs/kit'; export const manifest: SSRManifest; } -declare module 'SERVER' { +declare module '0SERVER' { export { Server } from '@sveltejs/kit'; } diff --git a/packages/adapter-node/index.js b/packages/adapter-node/index.js index cc3d0da78131..e60ab36b2c79 100644 --- a/packages/adapter-node/index.js +++ b/packages/adapter-node/index.js @@ -55,21 +55,21 @@ export default function (opts = {}) { target: 'es2022', entryPoints: [`${tmp}/index.js`, `${tmp}/manifest.js`], outdir: `${out}/server`, - splitting: true, - format: 'esm', bundle: true, external: [...Object.keys(pkg.dependencies || {})] }); builder.copy(files, out, { replace: { - ENV: './env.js', - HANDLER: './handler.js', - MANIFEST: './server/manifest.js', - SERVER: `./server/index.js`, + '0ENV': './env.js', + '0HANDLER': './handler.js', + '0MANIFEST': './server/manifest.js', + '0SERVER': `./server/index.js`, ENV_PREFIX: JSON.stringify(envPrefix) } }); + + writeFileSync(`${out}/package.json`, JSON.stringify({ type: 'commonjs' })); } }; } diff --git a/packages/adapter-node/rollup.config.js b/packages/adapter-node/rollup.config.js index 6384234b220a..04ca6bcd69d4 100644 --- a/packages/adapter-node/rollup.config.js +++ b/packages/adapter-node/rollup.config.js @@ -8,7 +8,7 @@ export default [ input: 'src/index.js', output: { file: 'files/index.js', - format: 'esm' + format: 'cjs' }, plugins: [nodeResolve(), commonjs(), json()], external: ['ENV', 'HANDLER', ...builtinModules] @@ -17,7 +17,7 @@ export default [ input: 'src/env.js', output: { file: 'files/env.js', - format: 'esm' + format: 'cjs' }, plugins: [nodeResolve(), commonjs(), json()], external: ['HANDLER', ...builtinModules] @@ -26,7 +26,7 @@ export default [ input: 'src/handler.js', output: { file: 'files/handler.js', - format: 'esm', + format: 'cjs', inlineDynamicImports: true }, plugins: [nodeResolve(), commonjs(), json()], diff --git a/packages/adapter-node/src/handler.js b/packages/adapter-node/src/handler.js index 94f331f57ccb..da8174a5182b 100644 --- a/packages/adapter-node/src/handler.js +++ b/packages/adapter-node/src/handler.js @@ -4,14 +4,15 @@ import path from 'path'; import sirv from 'sirv'; import { fileURLToPath } from 'url'; import { getRequest, setResponse } from '@sveltejs/kit/node'; -import { Server } from 'SERVER'; -import { manifest } from 'MANIFEST'; -import { env } from 'ENV'; +import { Server } from '0SERVER'; +import { manifest } from '0MANIFEST'; +import { env } from '0ENV'; /* global ENV_PREFIX */ const server = new Server(manifest); -await server.init({ env: process.env }); +const ready = server.init({ env: process.env }); + const origin = env('ORIGIN', undefined); const xff_depth = parseInt(env('XFF_DEPTH', '1')); const address_header = env('ADDRESS_HEADER', '').toLowerCase(); @@ -48,6 +49,8 @@ function serve(path, client = false) { const ssr = async (req, res) => { let request; + await ready; + try { request = await getRequest({ base: origin || get_origin(req.headers), diff --git a/packages/adapter-node/src/index.js b/packages/adapter-node/src/index.js index ea3feee05860..7213385f446d 100644 --- a/packages/adapter-node/src/index.js +++ b/packages/adapter-node/src/index.js @@ -1,5 +1,5 @@ -import { handler } from 'HANDLER'; -import { env } from 'ENV'; +import { handler } from '0HANDLER'; +import { env } from '0ENV'; import polka from 'polka'; export const path = env('SOCKET_PATH', false);