(
sourceFile: ts.SourceFile,
moduleJSDoc: ParsedModuleJSDoc,
diagnostics: Array<JSDocModelDiagnostic>,
linkContext: { readonly checker: ts.TypeChecker; readonly entry: ProgramCacheEntry; readonly cwd: string }
)
| 3133 | } |
| 3134 | |
| 3135 | function hasDeclareModifier(node: ts.Node): boolean { |
| 3136 | return ts.canHaveModifiers(node) && |
| 3137 | (ts.getModifiers(node)?.some((modifier) => modifier.kind === ts.SyntaxKind.DeclareKeyword) ?? false) |
| 3138 | } |
| 3139 | |
| 3140 | function parseNamespaceTs( |
| 3141 | node: ts.ModuleDeclaration, |
| 3142 | diagnostics: Array<JSDocModelDiagnostic>, |
| 3143 | linkContext: { readonly checker: ts.TypeChecker; readonly entry: ProgramCacheEntry; readonly cwd: string }, |
| 3144 | isInsideDeclare = false |
| 3145 | ): ParsedNamespace | undefined { |
| 3146 | if (!ts.isIdentifier(node.name)) return undefined |
| 3147 | if (!isInsideDeclare && !hasDeclareModifier(node)) { |
| 3148 | diagnostics.push({ |
| 3149 | ...diagnostic("namespace-declare", "Namespaces must be declared with declare namespace"), |
| 3150 | range: nodeRange(node) |
| 3151 | }) |
| 3152 | return undefined |
no test coverage detected
searching dependent graphs…