From 7f8f4119739adcbdb1d5800a82c7374b0269a6fd Mon Sep 17 00:00:00 2001 From: LogicDuke Date: Wed, 2 Sep 2026 20:42:36 +0200 Subject: [PATCH] fix(cockpit): type-safe ambient namespace check --- tests/cockpit-host/support/d3-network-policy.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/cockpit-host/support/d3-network-policy.ts b/tests/cockpit-host/support/d3-network-policy.ts index 00aab93..30d61cf 100644 --- a/tests/cockpit-host/support/d3-network-policy.ts +++ b/tests/cockpit-host/support/d3-network-policy.ts @@ -374,8 +374,8 @@ export function valueSymbolOf(checker: ts.TypeChecker, node: ts.Node): ts.Symbol return checker.getSymbolAtLocation(node); } -/** Whether a declaration is ambient: it or an enclosing declaration carries `declare`. */ -function isAmbient(node: ts.Declaration): boolean { +/** Whether a node is ambient: it or an enclosing declaration carries `declare`. */ +function isAmbient(node: ts.Node): boolean { let current: ts.Node = node; while (!ts.isSourceFile(current)) { if (ts.canHaveModifiers(current) && (ts.getCombinedModifierFlags(current as ts.Declaration) & ts.ModifierFlags.Ambient) !== 0) { @@ -440,7 +440,7 @@ function isInstantiatedNamespace(declaration: ts.ModuleDeclaration): boolean { if (ts.isModuleDeclaration(declaration.body)) return isInstantiatedNamespace(declaration.body); if (!ts.isModuleBlock(declaration.body)) return false; return declaration.body.statements.some((statement) => { - if (isAmbient(statement as ts.Declaration)) return false; + if (isAmbient(statement)) return false; if (ts.isVariableStatement(statement) || ts.isClassDeclaration(statement)) return true; if (ts.isFunctionDeclaration(statement)) return statement.body !== undefined; if (ts.isEnumDeclaration(statement)) return (ts.getCombinedModifierFlags(statement) & ts.ModifierFlags.Const) === 0;