feat: signal server tag

This commit is contained in:
2026-06-05 06:16:02 +02:00
parent 6865147e8f
commit bf4e6891d1
69 changed files with 2808 additions and 1269 deletions

View File

@@ -1,6 +1,7 @@
import fs from 'fs';
import path from 'path';
import { resolveRuntimePath } from '../runtime-paths';
import { buildSignalServerPublicUrl, resolveSignalServerTag } from './signal-server-tag';
export type ServerHttpProtocol = 'http' | 'https';
@@ -21,6 +22,7 @@ export interface ServerVariablesConfig {
serverPort: number;
serverProtocol: ServerHttpProtocol;
serverHost: string;
serverTag: string;
linkPreview: LinkPreviewConfig;
openApiDocs: OpenApiDocsConfig;
}
@@ -49,6 +51,10 @@ function normalizeServerHost(value: unknown): string {
return typeof value === 'string' ? value.trim() : '';
}
function normalizeServerTag(value: unknown): string {
return typeof value === 'string' ? value.trim() : '';
}
function normalizeServerProtocol(
value: unknown,
fallback: ServerHttpProtocol = DEFAULT_SERVER_PROTOCOL
@@ -162,6 +168,7 @@ export function ensureVariablesConfig(): ServerVariablesConfig {
serverPort: normalizeServerPort(remainingParsed.serverPort),
serverProtocol: normalizeServerProtocol(remainingParsed.serverProtocol),
serverHost: normalizeServerHost(remainingParsed.serverHost ?? legacyServerIpAddress),
serverTag: normalizeServerTag(remainingParsed.serverTag),
linkPreview: normalizeLinkPreviewConfig(remainingParsed.linkPreview),
openApiDocs: normalizeOpenApiDocsConfig(remainingParsed.openApiDocs)
};
@@ -178,6 +185,7 @@ export function ensureVariablesConfig(): ServerVariablesConfig {
serverPort: normalized.serverPort,
serverProtocol: normalized.serverProtocol,
serverHost: normalized.serverHost,
serverTag: normalized.serverTag,
linkPreview: normalized.linkPreview,
openApiDocs: normalized.openApiDocs
};
@@ -229,6 +237,18 @@ export function getServerHost(): string | undefined {
return serverHost || undefined;
}
export function getSignalServerPublicUrl(): string {
const config = getVariablesConfig();
return buildSignalServerPublicUrl(config.serverProtocol, config.serverHost, config.serverPort);
}
export function getServerTag(): string {
const config = getVariablesConfig();
return resolveSignalServerTag(config.serverTag, getSignalServerPublicUrl());
}
export function isHttpsServerEnabled(): boolean {
return getServerProtocol() === 'https';
}