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

Function getClassDeclarationSignature

packages/tools/docgen/src/Parser.ts:572–591  ·  view source on GitHub ↗
(c: ast.ClassDeclaration)

Source from the content-addressed store, hash-verified

570 )
571
572const getClassDeclarationSignature = (c: ast.ClassDeclaration) => {
573 const name = c.getName() ?? ""
574 return pipe(
575 Effect.succeed(getTypeParameters(c.getTypeParameters())),
576 Effect.map((typeParameters) =>
577 pipe(
578 c.getConstructors(),
579 Array.matchLeft({
580 onEmpty: () => `declare class ${name}${typeParameters}`,
581 onNonEmpty: (head) =>
582 `declare class ${name}${typeParameters} { ${
583 getConstructorDeclarationSignature(
584 head
585 )
586 } }`
587 })
588 )
589 )
590 )
591}
592
593const parseClass = (c: ast.ClassDeclaration) =>
594 Effect.gen(function*() {

Callers 1

parseClassFunction · 0.85

Calls 5

getTypeParametersFunction · 0.85
pipeFunction · 0.50
succeedMethod · 0.45
mapMethod · 0.45

Tested by

no test coverage detected