MCPcopy Create free account
hub / github.com/Effect-TS/effect / parseTsMembers

Function parseTsMembers

packages/tools/jsdocs/src/Jsdocs.ts:3091–3118  ·  view source on GitHub ↗
(
  members: ts.NodeArray<ts.TypeElement | ts.ClassElement>,
  diagnostics: Array<JSDocModelDiagnostic>,
  linkContext: { readonly checker: ts.TypeChecker; readonly entry: ProgramCacheEntry; readonly cwd: string }
)

Source from the content-addressed store, hash-verified

3089}
3090
3091function parseTsMembers(
3092 members: ts.NodeArray<ts.TypeElement | ts.ClassElement>,
3093 diagnostics: Array<JSDocModelDiagnostic>,
3094 linkContext: { readonly checker: ts.TypeChecker; readonly entry: ProgramCacheEntry; readonly cwd: string }
3095): Array<ParsedMember> {
3096 const out: Array<ParsedMember> = []
3097 for (const member of members) {
3098 if (
3099 ts.isCallSignatureDeclaration(member) || ts.isConstructSignatureDeclaration(member) ||
3100 ts.isIndexSignatureDeclaration(member) || member.kind === ts.SyntaxKind.Constructor
3101 ) continue
3102 const documented = parseDocumentedTs(member, "member", diagnostics, false, linkContext)
3103 if (documented === undefined) continue
3104 const name = memberName(member)
3105 if (name === "") continue
3106 const nested = parseMembersFromTsType(memberType(member), diagnostics, linkContext)
3107 out.push({
3108 name,
3109 signature: null,
3110 range: nodeRange(member),
3111 description: documented.core.description,
3112 examples: documented.core.examples,
3113 tags: documented.tags as ParsedMemberTags,
3114 members: nested
3115 })
3116 }
3117 return out
3118}
3119
3120function parseDeclarationMembersTs(
3121 node: ts.Node,

Callers 2

parseMembersFromTsTypeFunction · 0.85

Calls 6

parseDocumentedTsFunction · 0.85
memberNameFunction · 0.85
parseMembersFromTsTypeFunction · 0.85
memberTypeFunction · 0.85
nodeRangeFunction · 0.85
pushMethod · 0.80

Tested by

no test coverage detected