(raw: string)
| 2093 | // mirroring resolveTargetServices. Fail loud on an unknown name. |
| 2094 | const closure = new Set<string>(); |
| 2095 | const resolveKey = (raw: string): string => { |
| 2096 | const name = raw.trim(); |
| 2097 | if (Object.hasOwn(services, name)) return name; |
| 2098 | for (const [key, entry] of Object.entries(services)) { |
| 2099 | if (entry.dispatchName === name) return key; |
| 2100 | } |
| 2101 | throw new Error( |
| 2102 | `computePromoteClosure: unknown service "${raw}" — not an SSOT key or dispatch_name in railway-envs.ts.`, |
| 2103 | ); |
| 2104 | }; |
| 2105 | for (const raw of requested) { |
| 2106 | if (raw.trim() === "") continue; |
| 2107 | closure.add(resolveKey(raw)); |
no test coverage detected
searching dependent graphs…