MCPcopy Create free account
hub / github.com/andywer/postguard / getObjectTypeProperties

Function getObjectTypeProperties

src/typescript/objectish.ts:18–38  ·  view source on GitHub ↗
(
  program: ts.Program,
  type: ts.ObjectType
)

Source from the content-addressed store, hash-verified

16}
17
18function getObjectTypeProperties(
19 program: ts.Program,
20 type: ts.ObjectType
21): { [key: string]: ts.Type } {
22 const checker = program.getTypeChecker()
23 const typeNode = checker.typeToTypeNode(type)
24
25 const members: ts.NodeArray<ts.TypeElement> =
26 typeNode && typeNode.kind === ts.SyntaxKind.TypeLiteral
27 ? (typeNode as ts.TypeLiteralNode).members
28 : ts.createNodeArray([])
29
30 return type.getProperties().reduce((propertiesObject, propertySymbol) => {
31 const propTypeNode = members.find(member => getTypeElementName(member) === propertySymbol.name)
32 const propType = propTypeNode ? ((propTypeNode as any).type as ts.TypeNode) : null
33 return {
34 ...propertiesObject,
35 [propertySymbol.getName()]: propType
36 }
37 }, {})
38}
39
40export function resolvePropertyTypes(
41 program: ts.Program,

Callers 1

resolvePropertyTypesFunction · 0.85

Calls 1

getTypeElementNameFunction · 0.85

Tested by

no test coverage detected