summaryrefslogtreecommitdiff
path: root/packages/integrations/node/src
diff options
context:
space:
mode:
authorGravatar matthewp <matthewp@users.noreply.github.com> 2022-10-12 21:27:56 +0000
committerGravatar fredkbot <fred+astrobot@astro.build> 2022-10-12 21:27:56 +0000
commitb13c041307cf8d828a73452578b64187ba04b05f (patch)
tree0022636340fcb22fad18020b6bb65193f34ef7ff /packages/integrations/node/src
parentfa399ad7c34a9a3e72515923b0548113dfc65776 (diff)
downloadastro-b13c041307cf8d828a73452578b64187ba04b05f.tar.gz
astro-b13c041307cf8d828a73452578b64187ba04b05f.tar.zst
astro-b13c041307cf8d828a73452578b64187ba04b05f.zip
[ci] format
Diffstat (limited to 'packages/integrations/node/src')
-rw-r--r--packages/integrations/node/src/http-server.ts33
-rw-r--r--packages/integrations/node/src/index.ts10
-rw-r--r--packages/integrations/node/src/middleware.ts8
-rw-r--r--packages/integrations/node/src/preview.ts40
-rw-r--r--packages/integrations/node/src/server.ts8
-rw-r--r--packages/integrations/node/src/standalone.ts21
-rw-r--r--packages/integrations/node/src/types.ts5
7 files changed, 69 insertions, 56 deletions
diff --git a/packages/integrations/node/src/http-server.ts b/packages/integrations/node/src/http-server.ts
index 34192c5f9..98cde3728 100644
--- a/packages/integrations/node/src/http-server.ts
+++ b/packages/integrations/node/src/http-server.ts
@@ -1,8 +1,8 @@
import fs from 'fs';
import http from 'http';
import https from 'https';
-import { fileURLToPath } from 'url';
import send from 'send';
+import { fileURLToPath } from 'url';
interface CreateServerOptions {
client: URL;
@@ -10,9 +10,12 @@ interface CreateServerOptions {
host: string | undefined;
}
-export function createServer({ client, port, host }: CreateServerOptions, handler: http.RequestListener) {
+export function createServer(
+ { client, port, host }: CreateServerOptions,
+ handler: http.RequestListener
+) {
const listener: http.RequestListener = (req, res) => {
- if(req.url) {
+ if (req.url) {
const fileURL = new URL('.' + req.url, client);
const stream = send(req, fileURLToPath(fileURL), {
@@ -21,8 +24,8 @@ export function createServer({ client, port, host }: CreateServerOptions, handle
let forwardError = false;
- stream.on('error', err => {
- if(forwardError) {
+ stream.on('error', (err) => {
+ if (forwardError) {
// eslint-disable-next-line no-console
console.error(err.toString());
res.writeHead(500);
@@ -42,14 +45,18 @@ export function createServer({ client, port, host }: CreateServerOptions, handle
}
};
- let httpServer: http.Server<typeof http.IncomingMessage, typeof http.ServerResponse> |
- https.Server<typeof http.IncomingMessage, typeof http.ServerResponse>;
-
- if(process.env.SERVER_CERT_PATH && process.env.SERVER_KEY_PATH) {
- httpServer = https.createServer({
- key: fs.readFileSync(process.env.SERVER_KEY_PATH),
- cert: fs.readFileSync(process.env.SERVER_CERT_PATH),
- }, listener);
+ let httpServer:
+ | http.Server<typeof http.IncomingMessage, typeof http.ServerResponse>
+ | https.Server<typeof http.IncomingMessage, typeof http.ServerResponse>;
+
+ if (process.env.SERVER_CERT_PATH && process.env.SERVER_KEY_PATH) {
+ httpServer = https.createServer(
+ {
+ key: fs.readFileSync(process.env.SERVER_KEY_PATH),
+ cert: fs.readFileSync(process.env.SERVER_CERT_PATH),
+ },
+ listener
+ );
} else {
httpServer = http.createServer(listener);
}
diff --git a/packages/integrations/node/src/index.ts b/packages/integrations/node/src/index.ts
index 80dfacdab..095f0b6b0 100644
--- a/packages/integrations/node/src/index.ts
+++ b/packages/integrations/node/src/index.ts
@@ -7,13 +7,13 @@ export function getAdapter(options: Options): AstroAdapter {
serverEntrypoint: '@astrojs/node/server.js',
previewEntrypoint: '@astrojs/node/preview.js',
exports: ['handler'],
- args: options
+ args: options,
};
}
export default function createIntegration(userOptions: UserOptions): AstroIntegration {
- if(!userOptions?.mode) {
- throw new Error(`[@astrojs/node] Setting the 'mode' option is required.`)
+ if (!userOptions?.mode) {
+ throw new Error(`[@astrojs/node] Setting the 'mode' option is required.`);
}
let needsBuildConfig = false;
@@ -38,11 +38,11 @@ export default function createIntegration(userOptions: UserOptions): AstroIntegr
},
'astro:build:start': ({ buildConfig }) => {
// Backwards compat
- if(needsBuildConfig) {
+ if (needsBuildConfig) {
_options.client = buildConfig.client.toString();
_options.server = buildConfig.server.toString();
}
- }
+ },
},
};
}
diff --git a/packages/integrations/node/src/middleware.ts b/packages/integrations/node/src/middleware.ts
index 772461f2a..a1058399d 100644
--- a/packages/integrations/node/src/middleware.ts
+++ b/packages/integrations/node/src/middleware.ts
@@ -2,8 +2,12 @@ import type { NodeApp } from 'astro/app/node';
import type { IncomingMessage, ServerResponse } from 'http';
import type { Readable } from 'stream';
-export default function(app: NodeApp) {
- return async function(req: IncomingMessage, res: ServerResponse, next?: (err?: unknown) => void) {
+export default function (app: NodeApp) {
+ return async function (
+ req: IncomingMessage,
+ res: ServerResponse,
+ next?: (err?: unknown) => void
+ ) {
try {
const route = app.match(req);
diff --git a/packages/integrations/node/src/preview.ts b/packages/integrations/node/src/preview.ts
index 33c2f18e2..443befa19 100644
--- a/packages/integrations/node/src/preview.ts
+++ b/packages/integrations/node/src/preview.ts
@@ -1,28 +1,27 @@
import type { CreatePreviewServer } from 'astro';
-import type { createExports } from './server';
import http from 'http';
import { fileURLToPath } from 'url';
import { createServer } from './http-server.js';
+import type { createExports } from './server';
-const preview: CreatePreviewServer = async function({
- client,
- serverEntrypoint,
- host,
- port,
-}) {
+const preview: CreatePreviewServer = async function ({ client, serverEntrypoint, host, port }) {
type ServerModule = ReturnType<typeof createExports>;
type MaybeServerModule = Partial<ServerModule>;
let ssrHandler: ServerModule['handler'];
try {
process.env.ASTRO_NODE_AUTOSTART = 'disabled';
const ssrModule: MaybeServerModule = await import(serverEntrypoint.toString());
- if(typeof ssrModule.handler === 'function') {
+ if (typeof ssrModule.handler === 'function') {
ssrHandler = ssrModule.handler;
} else {
- throw new Error(`The server entrypoint doesn't have a handler. Are you sure this is the right file?`);
+ throw new Error(
+ `The server entrypoint doesn't have a handler. Are you sure this is the right file?`
+ );
}
- } catch(_err) {
- throw new Error(`The server entrypoint ${fileURLToPath} does not exist. Have you ran a build yet?`);
+ } catch (_err) {
+ throw new Error(
+ `The server entrypoint ${fileURLToPath} does not exist. Have you ran a build yet?`
+ );
}
const handler: http.RequestListener = (req, res) => {
@@ -37,18 +36,19 @@ const preview: CreatePreviewServer = async function({
});
};
- const server = createServer({
- client,
- port,
- host,
- }, handler);
+ const server = createServer(
+ {
+ client,
+ port,
+ host,
+ },
+ handler
+ );
// eslint-disable-next-line no-console
console.log(`Preview server listening on http://${host}:${port}`);
return server;
-}
-
-export {
- preview as default
};
+
+export { preview as default };
diff --git a/packages/integrations/node/src/server.ts b/packages/integrations/node/src/server.ts
index 202e66b7e..9cff04cf5 100644
--- a/packages/integrations/node/src/server.ts
+++ b/packages/integrations/node/src/server.ts
@@ -1,9 +1,9 @@
-import type { SSRManifest } from 'astro';
-import type { Options } from './types';
import { polyfill } from '@astrojs/webapi';
+import type { SSRManifest } from 'astro';
import { NodeApp } from 'astro/app/node';
import middleware from './middleware.js';
import startServer from './standalone.js';
+import type { Options } from './types';
polyfill(globalThis, {
exclude: 'window document',
@@ -12,12 +12,12 @@ polyfill(globalThis, {
export function createExports(manifest: SSRManifest) {
const app = new NodeApp(manifest);
return {
- handler: middleware(app)
+ handler: middleware(app),
};
}
export function start(manifest: SSRManifest, options: Options) {
- if(options.mode !== 'standalone' || process.env.ASTRO_NODE_AUTOSTART === 'disabled') {
+ if (options.mode !== 'standalone' || process.env.ASTRO_NODE_AUTOSTART === 'disabled') {
return;
}
diff --git a/packages/integrations/node/src/standalone.ts b/packages/integrations/node/src/standalone.ts
index 8fef96ed5..e0435a2ea 100644
--- a/packages/integrations/node/src/standalone.ts
+++ b/packages/integrations/node/src/standalone.ts
@@ -1,15 +1,15 @@
import type { NodeApp } from 'astro/app/node';
-import type { Options } from './types';
import path from 'path';
import { fileURLToPath } from 'url';
-import middleware from './middleware.js';
import { createServer } from './http-server.js';
+import middleware from './middleware.js';
+import type { Options } from './types';
function resolvePaths(options: Options) {
const clientURLRaw = new URL(options.client);
const serverURLRaw = new URL(options.server);
const rel = path.relative(fileURLToPath(serverURLRaw), fileURLToPath(clientURLRaw));
-
+
const serverEntryURL = new URL(import.meta.url);
const clientURL = new URL(appendForwardSlash(rel), serverEntryURL);
@@ -35,16 +35,19 @@ export function getResolvedHostForHttpServer(host: string | boolean) {
}
export default function startServer(app: NodeApp, options: Options) {
- const port = process.env.PORT ? Number(process.env.port) : (options.port ?? 8080);
+ const port = process.env.PORT ? Number(process.env.port) : options.port ?? 8080;
const { client } = resolvePaths(options);
const handler = middleware(app);
const host = getResolvedHostForHttpServer(options.host);
- const server = createServer({
- client,
- port,
- host,
- }, handler);
+ const server = createServer(
+ {
+ client,
+ port,
+ host,
+ },
+ handler
+ );
// eslint-disable-next-line no-console
console.log(`Server listening on http://${host}:${port}`);
diff --git a/packages/integrations/node/src/types.ts b/packages/integrations/node/src/types.ts
index aaf3be942..2a9ecc2a1 100644
--- a/packages/integrations/node/src/types.ts
+++ b/packages/integrations/node/src/types.ts
@@ -1,12 +1,11 @@
-
export interface UserOptions {
/**
* Specifies the mode that the adapter builds to.
- *
+ *
* - 'middleware' - Build to middleware, to be used within another Node.js server, such as Express.
* - 'standalone' - Build to a standalone server. The server starts up just by running the built script.
*/
- mode: 'middleware' | 'standalone';
+ mode: 'middleware' | 'standalone';
}
export interface Options extends UserOptions {