🌳
pt0/serverF/kubePortFwdF/proxyNodePortsAI.mts
1import { k8sPortFwdCtx, type K8sProxyItem } from './k8sPortFwdCtxF.mts'
5// Thin wrapper preserving the callback interface for existing callers (withDb,
6// migrateDb, guardPendingMigrations, devActions). Port-forward lifecycle is now
7// owned by portForwardMgr (self-healing) — no per-call establish/teardown.
8// Idempotent: ensureForwards no-ops for already-established svcs.
9export const wrapProxyMinikNodePorts = async <T,>(
10 callback: (k8sLocalFwdSvcPortsH?: Record<string, number>) => Promise<T>,
11 _opts?: { assumeDaemon?: boolean }
12): Promise<T> => {
13 const { k8sProxyA } = k8sPortFwdCtx.getStore() || {}
15 if (!isDevPc || !k8sProxyA || k8sProxyA.length === 0) {
16 return callback()
17 }
19 await portForwardMgr.ensureForwards(k8sProxyA as K8sProxyItem[])
20 return callback(portForwardMgr.getEndpointMap())