Files
openchamber/packages/web/server/lib/opencode/tunnel-wiring-runtime.js
T

95 lines
2.8 KiB
JavaScript
Raw Normal View History

import { printTunnelWarning } from '../cloudflare-tunnel.js';
import { createTunnelService } from '../tunnels/index.js';
import { createTunnelRoutesRuntime } from '../tunnels/routes.js';
export const createTunnelWiringRuntime = (dependencies) => {
const {
crypto,
URL,
tunnelProviderRegistry,
tunnelAuthController,
readSettingsFromDiskMigrated,
readManagedRemoteTunnelConfigFromDisk,
normalizeTunnelProvider,
normalizeTunnelMode,
normalizeOptionalPath,
normalizeManagedRemoteTunnelHostname,
normalizeTunnelBootstrapTtlMs,
normalizeTunnelSessionTtlMs,
isSupportedTunnelMode,
upsertManagedRemoteTunnelToken,
resolveManagedRemoteTunnelToken,
TUNNEL_MODE_QUICK,
TUNNEL_MODE_MANAGED_LOCAL,
TUNNEL_MODE_MANAGED_REMOTE,
TUNNEL_PROVIDER_CLOUDFLARE,
TunnelServiceError,
getActiveTunnelController,
setActiveTunnelController,
getRuntimeManagedRemoteTunnelHostname,
setRuntimeManagedRemoteTunnelHostname,
getRuntimeManagedRemoteTunnelToken,
setRuntimeManagedRemoteTunnelToken,
} = dependencies;
const initialize = (app, initialPort) => {
let activePort = initialPort;
const tunnelService = createTunnelService({
registry: tunnelProviderRegistry,
getController: getActiveTunnelController,
setController: setActiveTunnelController,
getActivePort: () => activePort,
onQuickTunnelWarning: () => {
printTunnelWarning();
},
});
const tunnelRoutesRuntime = createTunnelRoutesRuntime({
crypto,
URL,
tunnelService,
tunnelProviderRegistry,
tunnelAuthController,
readSettingsFromDiskMigrated,
readManagedRemoteTunnelConfigFromDisk,
normalizeTunnelProvider,
normalizeTunnelMode,
normalizeOptionalPath,
normalizeManagedRemoteTunnelHostname,
normalizeTunnelBootstrapTtlMs,
normalizeTunnelSessionTtlMs,
isSupportedTunnelMode,
upsertManagedRemoteTunnelToken,
resolveManagedRemoteTunnelToken,
TUNNEL_MODE_QUICK,
TUNNEL_MODE_MANAGED_LOCAL,
TUNNEL_MODE_MANAGED_REMOTE,
TUNNEL_PROVIDER_CLOUDFLARE,
TunnelServiceError,
getActivePort: () => activePort,
getRuntimeManagedRemoteTunnelHostname,
setRuntimeManagedRemoteTunnelHostname,
getRuntimeManagedRemoteTunnelToken,
setRuntimeManagedRemoteTunnelToken,
getActiveTunnelController,
setActiveTunnelController,
});
tunnelRoutesRuntime.registerRoutes(app);
return {
tunnelService,
startTunnelWithNormalizedRequest: (...args) => tunnelRoutesRuntime.startTunnelWithNormalizedRequest(...args),
getActivePort: () => activePort,
setActivePort: (value) => {
activePort = value;
},
};
};
return {
initialize,
};
};