[ci] format
This commit is contained in:
parent
b16cb787fd
commit
fa3e839843
3 changed files with 33 additions and 27 deletions
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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]}`);
|
||||||
|
|
Loading…
Reference in a new issue