(
node: ts.Node,
scope: DocScope,
diagnostics: Array<JSDocModelDiagnostic>,
required = true,
linkContext?: { readonly checker: ts.TypeChecker; readonly entry: ProgramCacheEntry; readonly cwd: string }
)
| 2598 | members.flatMap((member) => [ |
| 2599 | ...checkExamples(member.examples), |
| 2600 | ...checkMembers(member.members) |
| 2601 | ]) |
| 2602 | const checkNamespaces = (namespaces: ReadonlyArray<ParsedNamespace>): ReadonlyArray<JSDocModelDiagnostic> => |
| 2603 | namespaces.flatMap((namespace) => [ |
| 2604 | ...checkExamples(namespace.examples), |
| 2605 | ...namespace.declarations.flatMap((declaration) => [ |
| 2606 | ...checkExamples(declaration.examples), |
| 2607 | ...checkMembers(declaration.members) |
| 2608 | ]), |
| 2609 | ...checkNamespaces(namespace.namespaces) |
| 2610 | ]) |
| 2611 | return files.map((file) => { |
| 2612 | const diagnostics = [ |
| 2613 | ...file.diagnostics, |
| 2614 | ...checkModuleExamples(file.moduleJSDoc), |
| 2615 | ...file.declarations.flatMap((declaration) => [ |
| 2616 | ...checkExamples(declaration.examples), |
| 2617 | ...checkMembers(declaration.members) |
| 2618 | ]), |
| 2619 | ...checkNamespaces(file.namespaces) |
| 2620 | ] |
| 2621 | return diagnostics.length === file.diagnostics.length |
| 2622 | ? file |
| 2623 | : { ...file, diagnostics: uniqueModelDiagnostics(diagnostics) } |
| 2624 | }) |
| 2625 | } |
| 2626 | |
| 2627 | function uniqueModelDiagnostics( |
| 2628 | diagnostics: ReadonlyArray<JSDocModelDiagnostic> |
| 2629 | ): ReadonlyArray<JSDocModelDiagnostic> { |
| 2630 | const seen = new Set<string>() |
| 2631 | return diagnostics.filter((item) => { |
| 2632 | const key = `${item.code}:${item.message}:${item.range[0]}:${item.range[1]}` |
| 2633 | if (seen.has(key)) return false |
| 2634 | seen.add(key) |
no test coverage detected
searching dependent graphs…