MCPcopy Index your code
hub / github.com/nodejs/node / resolveObjectTypeMembers

Function resolveObjectTypeMembers

test/fixtures/snapshot/typescript.js:57908–57945  ·  view source on GitHub ↗
(type, source, typeParameters, typeArguments)

Source from the content-addressed store, hash-verified

57906 return needApparentType ? getApparentType(type) : type;
57907 }
57908 function resolveObjectTypeMembers(type, source, typeParameters, typeArguments) {
57909 var mapper;
57910 var members;
57911 var callSignatures;
57912 var constructSignatures;
57913 var indexInfos;
57914 if (ts.rangeEquals(typeParameters, typeArguments, 0, typeParameters.length)) {
57915 members = source.symbol ? getMembersOfSymbol(source.symbol) : ts.createSymbolTable(source.declaredProperties);
57916 callSignatures = source.declaredCallSignatures;
57917 constructSignatures = source.declaredConstructSignatures;
57918 indexInfos = source.declaredIndexInfos;
57919 }
57920 else {
57921 mapper = createTypeMapper(typeParameters, typeArguments);
57922 members = createInstantiatedSymbolTable(source.declaredProperties, mapper, /*mappingThisOnly*/ typeParameters.length === 1);
57923 callSignatures = instantiateSignatures(source.declaredCallSignatures, mapper);
57924 constructSignatures = instantiateSignatures(source.declaredConstructSignatures, mapper);
57925 indexInfos = instantiateIndexInfos(source.declaredIndexInfos, mapper);
57926 }
57927 var baseTypes = getBaseTypes(source);
57928 if (baseTypes.length) {
57929 if (source.symbol && members === getMembersOfSymbol(source.symbol)) {
57930 members = ts.createSymbolTable(source.declaredProperties);
57931 }
57932 setStructuredTypeMembers(type, members, callSignatures, constructSignatures, indexInfos);
57933 var thisArgument = ts.lastOrUndefined(typeArguments);
57934 for (var _i = 0, baseTypes_1 = baseTypes; _i < baseTypes_1.length; _i++) {
57935 var baseType = baseTypes_1[_i];
57936 var instantiatedBaseType = thisArgument ? getTypeWithThisArgument(instantiateType(baseType, mapper), thisArgument) : baseType;
57937 addInheritedMembers(members, getPropertiesOfType(instantiatedBaseType));
57938 callSignatures = ts.concatenate(callSignatures, getSignaturesOfType(instantiatedBaseType, 0 /* SignatureKind.Call */));
57939 constructSignatures = ts.concatenate(constructSignatures, getSignaturesOfType(instantiatedBaseType, 1 /* SignatureKind.Construct */));
57940 var inheritedIndexInfos = instantiatedBaseType !== anyType ? getIndexInfosOfType(instantiatedBaseType) : [createIndexInfo(stringType, anyType, /*isReadonly*/ false)];
57941 indexInfos = ts.concatenate(indexInfos, ts.filter(inheritedIndexInfos, function (info) { return !findIndexInfo(indexInfos, info.keyType); }));
57942 }
57943 }
57944 setStructuredTypeMembers(type, members, callSignatures, constructSignatures, indexInfos);
57945 }
57946 function resolveClassOrInterfaceMembers(type) {
57947 resolveObjectTypeMembers(type, resolveDeclaredMembers(type), ts.emptyArray, ts.emptyArray);
57948 }

Callers 2

Calls 15

getMembersOfSymbolFunction · 0.85
createTypeMapperFunction · 0.85
instantiateSignaturesFunction · 0.85
instantiateIndexInfosFunction · 0.85
getBaseTypesFunction · 0.85
setStructuredTypeMembersFunction · 0.85
getTypeWithThisArgumentFunction · 0.85
instantiateTypeFunction · 0.85
addInheritedMembersFunction · 0.85
getPropertiesOfTypeFunction · 0.85
getSignaturesOfTypeFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…