diff options
Diffstat (limited to 'packages/integrations/node/src/preview.ts')
-rw-r--r-- | packages/integrations/node/src/preview.ts | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/packages/integrations/node/src/preview.ts b/packages/integrations/node/src/preview.ts deleted file mode 100644 index 518155c4a..000000000 --- a/packages/integrations/node/src/preview.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { fileURLToPath } from 'node:url'; -import type { CreatePreviewServer } from 'astro'; -import { AstroError } from 'astro/errors'; -import { logListeningOn } from './log-listening-on.js'; -import type { createExports } from './server.js'; -import { createServer } from './standalone.js'; - -type ServerModule = ReturnType<typeof createExports>; -type MaybeServerModule = Partial<ServerModule>; - -const createPreviewServer: CreatePreviewServer = async function (preview) { - let ssrHandler: ServerModule['handler']; - let options: ServerModule['options']; - try { - process.env.ASTRO_NODE_AUTOSTART = 'disabled'; - const ssrModule: MaybeServerModule = await import(preview.serverEntrypoint.toString()); - if (typeof ssrModule.handler === 'function') { - ssrHandler = ssrModule.handler; - options = ssrModule.options!; - } else { - throw new AstroError( - `The server entrypoint doesn't have a handler. Are you sure this is the right file?`, - ); - } - } catch (err) { - if ((err as any).code === 'ERR_MODULE_NOT_FOUND') { - throw new AstroError( - `The server entrypoint ${fileURLToPath( - preview.serverEntrypoint, - )} does not exist. Have you ran a build yet?`, - ); - } else { - throw err; - } - } - const host = preview.host ?? 'localhost'; - const port = preview.port ?? 4321; - const server = createServer(ssrHandler, host, port); - - // If user specified custom headers append a listener - // to the server to add those headers to response - if (preview.headers) { - server.server.addListener('request', (_, res) => { - if (res.statusCode === 200) { - for (const [name, value] of Object.entries(preview.headers ?? {})) { - if (value) res.setHeader(name, value); - } - } - }); - } - - logListeningOn(preview.logger, server.server, options); - await new Promise<void>((resolve, reject) => { - server.server.once('listening', resolve); - server.server.once('error', reject); - server.server.listen(port, host); - }); - return server; -}; - -export { createPreviewServer as default }; |