Website Structure
This commit is contained in:
parent
62812f2090
commit
71f0676a62
22365 changed files with 4265753 additions and 791 deletions
71
Frontend-Learner/node_modules/srvx/dist/_chunks/_utils.mjs
generated
vendored
Normal file
71
Frontend-Learner/node_modules/srvx/dist/_chunks/_utils.mjs
generated
vendored
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
//#region src/_utils.ts
|
||||
function resolvePortAndHost(opts) {
|
||||
const _port = opts.port ?? globalThis.process?.env.PORT ?? 3e3;
|
||||
const port = typeof _port === "number" ? _port : Number.parseInt(_port, 10);
|
||||
if (port < 0 || port > 65535) throw new RangeError(`Port must be between 0 and 65535 (got "${port}").`);
|
||||
return {
|
||||
port,
|
||||
hostname: opts.hostname ?? globalThis.process?.env.HOST
|
||||
};
|
||||
}
|
||||
function fmtURL(host, port, secure) {
|
||||
if (!host || !port) return;
|
||||
if (host.includes(":")) host = `[${host}]`;
|
||||
return `http${secure ? "s" : ""}://${host}:${port}/`;
|
||||
}
|
||||
function printListening(opts, url) {
|
||||
if (!url || (opts.silent ?? globalThis.process?.env?.TEST)) return;
|
||||
const _url = new URL(url);
|
||||
const allInterfaces = _url.hostname === "[::]" || _url.hostname === "0.0.0.0";
|
||||
if (allInterfaces) {
|
||||
_url.hostname = "localhost";
|
||||
url = _url.href;
|
||||
}
|
||||
let listeningOn = `➜ Listening on:`;
|
||||
let additionalInfo = allInterfaces ? " (all interfaces)" : "";
|
||||
if (globalThis.process.stdout?.isTTY) {
|
||||
listeningOn = `\u001B[32m${listeningOn}\u001B[0m`;
|
||||
url = `\u001B[36m${url}\u001B[0m`;
|
||||
additionalInfo = `\u001B[2m${additionalInfo}\u001B[0m`;
|
||||
}
|
||||
console.log(`${listeningOn} ${url}${additionalInfo}`);
|
||||
}
|
||||
function resolveTLSOptions(opts) {
|
||||
if (!opts.tls || opts.protocol === "http") return;
|
||||
const cert = resolveCertOrKey(opts.tls.cert);
|
||||
const key = resolveCertOrKey(opts.tls.key);
|
||||
if (!cert && !key) {
|
||||
if (opts.protocol === "https") throw new TypeError("TLS `cert` and `key` must be provided for `https` protocol.");
|
||||
return;
|
||||
}
|
||||
if (!cert || !key) throw new TypeError("TLS `cert` and `key` must be provided together.");
|
||||
return {
|
||||
cert,
|
||||
key,
|
||||
passphrase: opts.tls.passphrase
|
||||
};
|
||||
}
|
||||
function resolveCertOrKey(value) {
|
||||
if (!value) return;
|
||||
if (typeof value !== "string") throw new TypeError("TLS certificate and key must be strings in PEM format or file paths.");
|
||||
if (value.startsWith("-----BEGIN ")) return value;
|
||||
const { readFileSync } = process.getBuiltinModule("node:fs");
|
||||
return readFileSync(value, "utf8");
|
||||
}
|
||||
function createWaitUntil() {
|
||||
const promises = /* @__PURE__ */ new Set();
|
||||
return {
|
||||
waitUntil: (promise) => {
|
||||
if (typeof promise?.then !== "function") return;
|
||||
promises.add(Promise.resolve(promise).catch(console.error).finally(() => {
|
||||
promises.delete(promise);
|
||||
}));
|
||||
},
|
||||
wait: () => {
|
||||
return Promise.all(promises);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
//#endregion
|
||||
export { resolveTLSOptions as a, resolvePortAndHost as i, fmtURL as n, printListening as r, createWaitUntil as t };
|
||||
Loading…
Add table
Add a link
Reference in a new issue