(pd: ast.PropertyDeclaration)
| 513 | }) |
| 514 | |
| 515 | const parseProperty = (pd: ast.PropertyDeclaration) => |
| 516 | Effect.gen(function*() { |
| 517 | const doc = parseDoc(getJSDocText(pd.getJsDocs())) |
| 518 | if (shouldIgnore(doc)) { |
| 519 | return [] |
| 520 | } |
| 521 | const name = pd.getName() |
| 522 | const type = parseType(pd) |
| 523 | const readonly = pipe( |
| 524 | Option.fromNullishOr(pd.getFirstModifierByKind(ast.ts.SyntaxKind.ReadonlyKeyword)), |
| 525 | Option.match({ |
| 526 | onNone: () => "", |
| 527 | onSome: () => "readonly " |
| 528 | }) |
| 529 | ) |
| 530 | const signature = `${readonly}${name}: ${type}` |
| 531 | const position = yield* parsePosition(pd) |
| 532 | return [ |
| 533 | new Domain.DocEntry( |
| 534 | name, |
| 535 | doc, |
| 536 | signature, |
| 537 | position |
| 538 | ) |
| 539 | ] |
| 540 | }) |
| 541 | |
| 542 | const parseProperties = (c: ast.ClassDeclaration) => { |
| 543 | const properties = Array.filter( |
nothing calls this directly
no test coverage detected