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

Function serializeSignatures

test/fixtures/snapshot/typescript.js:55188–55235  ·  view source on GitHub ↗
(kind, input, baseType, outputKind)

Source from the content-addressed store, hash-verified

55186 return serializePropertySymbolForInterfaceWorker(p, /*isStatic*/ false, baseType);
55187 }
55188 function serializeSignatures(kind, input, baseType, outputKind) {
55189 var signatures = getSignaturesOfType(input, kind);
55190 if (kind === 1 /* SignatureKind.Construct */) {
55191 if (!baseType && ts.every(signatures, function (s) { return ts.length(s.parameters) === 0; })) {
55192 return []; // No base type, every constructor is empty - elide the extraneous `constructor()`
55193 }
55194 if (baseType) {
55195 // If there is a base type, if every signature in the class is identical to a signature in the baseType, elide all the declarations
55196 var baseSigs = getSignaturesOfType(baseType, 1 /* SignatureKind.Construct */);
55197 if (!ts.length(baseSigs) && ts.every(signatures, function (s) { return ts.length(s.parameters) === 0; })) {
55198 return []; // Base had no explicit signatures, if all our signatures are also implicit, return an empty list
55199 }
55200 if (baseSigs.length === signatures.length) {
55201 var failed = false;
55202 for (var i = 0; i < baseSigs.length; i++) {
55203 if (!compareSignaturesIdentical(signatures[i], baseSigs[i], /*partialMatch*/ false, /*ignoreThisTypes*/ false, /*ignoreReturnTypes*/ true, compareTypesIdentical)) {
55204 failed = true;
55205 break;
55206 }
55207 }
55208 if (!failed) {
55209 return []; // Every signature was identical - elide constructor list as it is inherited
55210 }
55211 }
55212 }
55213 var privateProtected = 0;
55214 for (var _i = 0, signatures_4 = signatures; _i < signatures_4.length; _i++) {
55215 var s = signatures_4[_i];
55216 if (s.declaration) {
55217 privateProtected |= ts.getSelectedEffectiveModifierFlags(s.declaration, 8 /* ModifierFlags.Private */ | 16 /* ModifierFlags.Protected */);
55218 }
55219 }
55220 if (privateProtected) {
55221 return [ts.setTextRange(ts.factory.createConstructorDeclaration(
55222 /*decorators*/ undefined, ts.factory.createModifiersFromModifierFlags(privateProtected),
55223 /*parameters*/ [],
55224 /*body*/ undefined), signatures[0].declaration)];
55225 }
55226 }
55227 var results = [];
55228 for (var _a = 0, signatures_5 = signatures; _a < signatures_5.length; _a++) {
55229 var sig = signatures_5[_a];
55230 // Each overload becomes a separate constructor declaration, in order
55231 var decl = signatureToSignatureDeclarationHelper(sig, outputKind, context);
55232 results.push(ts.setTextRange(decl, sig.declaration));
55233 }
55234 return results;
55235 }
55236 function serializeIndexSignatures(input, baseType) {
55237 var results = [];
55238 for (var _i = 0, _a = getIndexInfosOfType(input); _i < _a.length; _i++) {

Callers 2

serializeInterfaceFunction · 0.85
serializeAsClassFunction · 0.85

Calls 6

getSignaturesOfTypeFunction · 0.85
everyMethod · 0.80
lengthMethod · 0.45
pushMethod · 0.45

Tested by

no test coverage detected