[ci] format

This commit is contained in:
natemoo-re 2023-08-10 18:25:25 +00:00 committed by astrobot-houston
parent b16cb787fd
commit fa3e839843
3 changed files with 33 additions and 27 deletions

View file

@ -1,22 +1,23 @@
import os from 'os' import os from 'os';
interface NetworkAddressOpt { interface NetworkAddressOpt {
local: string[] local: string[];
network: string[] network: string[];
} }
const wildcardHosts = new Set([ const wildcardHosts = new Set(['0.0.0.0', '::', '0000:0000:0000:0000:0000:0000:0000:0000']);
'0.0.0.0', type Protocol = 'http' | 'https';
'::',
'0000:0000:0000:0000:0000:0000:0000:0000',
])
type Protocol = 'http' | 'https'
// this code from vite https://github.com/vitejs/vite/blob/d09bbd093a4b893e78f0bbff5b17c7cf7821f403/packages/vite/src/node/utils.ts#L892-L914 // this code from vite https://github.com/vitejs/vite/blob/d09bbd093a4b893e78f0bbff5b17c7cf7821f403/packages/vite/src/node/utils.ts#L892-L914
export function getNetworkAddress(protocol: Protocol = 'http', hostname: string | undefined, port: number, base?: string) { export function getNetworkAddress(
protocol: Protocol = 'http',
hostname: string | undefined,
port: number,
base?: string
) {
const NetworkAddress: NetworkAddressOpt = { const NetworkAddress: NetworkAddressOpt = {
local: [], local: [],
network: [] network: [],
} };
Object.values(os.networkInterfaces()) Object.values(os.networkInterfaces())
.flatMap((nInterface) => nInterface ?? []) .flatMap((nInterface) => nInterface ?? [])
.filter( .filter(
@ -25,20 +26,23 @@ export function getNetworkAddress(protocol: Protocol = 'http', hostname: string
detail.address && detail.address &&
(detail.family === 'IPv4' || (detail.family === 'IPv4' ||
// @ts-expect-error Node 18.0 - 18.3 returns number // @ts-expect-error Node 18.0 - 18.3 returns number
detail.family === 4), detail.family === 4)
) )
.forEach((detail) => { .forEach((detail) => {
let host = detail.address.replace('127.0.0.1', hostname === undefined || wildcardHosts.has(hostname) ? 'localhost' : hostname) let host = detail.address.replace(
'127.0.0.1',
hostname === undefined || wildcardHosts.has(hostname) ? 'localhost' : hostname
);
// ipv6 host // ipv6 host
if (host.includes(':')) { if (host.includes(':')) {
host = `[${host}]` host = `[${host}]`;
} }
const url = `${protocol}://${host}:${port}${base ? base : ''}` const url = `${protocol}://${host}:${port}${base ? base : ''}`;
if (detail.address.includes('127.0.0.1')) { if (detail.address.includes('127.0.0.1')) {
NetworkAddress.local.push(url) NetworkAddress.local.push(url);
} else { } else {
NetworkAddress.network.push(url) NetworkAddress.network.push(url);
} }
}) });
return NetworkAddress return NetworkAddress;
} }

View file

@ -1,8 +1,8 @@
import type { CreatePreviewServer } from 'astro'; import type { CreatePreviewServer } from 'astro';
import type http from 'node:http'; import type http from 'node:http';
import { fileURLToPath } from 'node:url'; import { fileURLToPath } from 'node:url';
import { getNetworkAddress } from './get-network-address.js';
import { createServer } from './http-server.js'; import { createServer } from './http-server.js';
import { getNetworkAddress } from './get-network-address.js'
import type { createExports } from './server'; import type { createExports } from './server';
const preview: CreatePreviewServer = async function ({ const preview: CreatePreviewServer = async function ({
@ -68,17 +68,18 @@ const preview: CreatePreviewServer = async function ({
}, },
handler handler
); );
const address = getNetworkAddress('http', host, port) const address = getNetworkAddress('http', host, port);
if (host === undefined) { if (host === undefined) {
// eslint-disable-next-line no-console // eslint-disable-next-line no-console
console.log(`Preview server listening on \n local: ${address.local[0]} \t\n network: ${address.network[0]}\n`); console.log(
`Preview server listening on \n local: ${address.local[0]} \t\n network: ${address.network[0]}\n`
);
} else { } else {
// eslint-disable-next-line no-console // eslint-disable-next-line no-console
console.log(`Preview server listening on ${address.local[0]}`); console.log(`Preview server listening on ${address.local[0]}`);
} }
return server; return server;
}; };

View file

@ -2,9 +2,9 @@ import type { NodeApp } from 'astro/app/node';
import https from 'https'; import https from 'https';
import path from 'node:path'; import path from 'node:path';
import { fileURLToPath } from 'node:url'; import { fileURLToPath } from 'node:url';
import { getNetworkAddress } from './get-network-address.js';
import { createServer } from './http-server.js'; import { createServer } from './http-server.js';
import middleware from './nodeMiddleware.js'; import middleware from './nodeMiddleware.js';
import { getNetworkAddress } from './get-network-address.js'
import type { Options } from './types'; import type { Options } from './types';
function resolvePaths(options: Options) { function resolvePaths(options: Options) {
@ -56,12 +56,13 @@ export default function startServer(app: NodeApp, options: Options) {
); );
const protocol = server.server instanceof https.Server ? 'https' : 'http'; const protocol = server.server instanceof https.Server ? 'https' : 'http';
const address = getNetworkAddress(protocol, host, port) const address = getNetworkAddress(protocol, host, port);
if (host === undefined) { if (host === undefined) {
// eslint-disable-next-line no-console // eslint-disable-next-line no-console
console.log( console.log(
`Preview server listening on \n local: ${address.local[0]} \t\n network: ${address.network[0]}\n`); `Preview server listening on \n local: ${address.local[0]} \t\n network: ${address.network[0]}\n`
);
} else { } else {
// eslint-disable-next-line no-console // eslint-disable-next-line no-console
console.log(`Preview server listening on ${address.local[0]}`); console.log(`Preview server listening on ${address.local[0]}`);