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

Function serializeModule

test/fixtures/snapshot/typescript.js:54603–54640  ·  view source on GitHub ↗
(symbol, symbolName, modifierFlags)

Source from the content-addressed store, hash-verified

54601 return ts.every(getNamespaceMembersForSerialization(symbol), function (m) { return !(resolveSymbol(m).flags & 111551 /* SymbolFlags.Value */); });
54602 }
54603 function serializeModule(symbol, symbolName, modifierFlags) {
54604 var members = getNamespaceMembersForSerialization(symbol);
54605 // Split NS members up by declaration - members whose parent symbol is the ns symbol vs those whose is not (but were added in later via merging)
54606 var locationMap = ts.arrayToMultiMap(members, function (m) { return m.parent && m.parent === symbol ? "real" : "merged"; });
54607 var realMembers = locationMap.get("real") || ts.emptyArray;
54608 var mergedMembers = locationMap.get("merged") || ts.emptyArray;
54609 // TODO: `suppressNewPrivateContext` is questionable -we need to simply be emitting privates in whatever scope they were declared in, rather
54610 // than whatever scope we traverse to them in. That's a bit of a complex rewrite, since we're not _actually_ tracking privates at all in advance,
54611 // so we don't even have placeholders to fill in.
54612 if (ts.length(realMembers)) {
54613 var localName = getInternalSymbolName(symbol, symbolName);
54614 serializeAsNamespaceDeclaration(realMembers, localName, modifierFlags, !!(symbol.flags & (16 /* SymbolFlags.Function */ | 67108864 /* SymbolFlags.Assignment */)));
54615 }
54616 if (ts.length(mergedMembers)) {
54617 var containingFile_1 = ts.getSourceFileOfNode(context.enclosingDeclaration);
54618 var localName = getInternalSymbolName(symbol, symbolName);
54619 var nsBody = ts.factory.createModuleBlock([ts.factory.createExportDeclaration(
54620 /*decorators*/ undefined,
54621 /*modifiers*/ undefined,
54622 /*isTypeOnly*/ false, ts.factory.createNamedExports(ts.mapDefined(ts.filter(mergedMembers, function (n) { return n.escapedName !== "export=" /* InternalSymbolName.ExportEquals */; }), function (s) {
54623 var _a, _b;
54624 var name = ts.unescapeLeadingUnderscores(s.escapedName);
54625 var localName = getInternalSymbolName(s, name);
54626 var aliasDecl = s.declarations && getDeclarationOfAliasSymbol(s);
54627 if (containingFile_1 && (aliasDecl ? containingFile_1 !== ts.getSourceFileOfNode(aliasDecl) : !ts.some(s.declarations, function (d) { return ts.getSourceFileOfNode(d) === containingFile_1; }))) {
54628 (_b = (_a = context.tracker) === null || _a === void 0 ? void 0 : _a.reportNonlocalAugmentation) === null || _b === void 0 ? void 0 : _b.call(_a, containingFile_1, symbol, s);
54629 return undefined;
54630 }
54631 var target = aliasDecl && getTargetOfAliasDeclaration(aliasDecl, /*dontRecursivelyResolve*/ true);
54632 includePrivateSymbol(target || s);
54633 var targetName = target ? getInternalSymbolName(target, ts.unescapeLeadingUnderscores(target.escapedName)) : localName;
54634 return ts.factory.createExportSpecifier(/*isTypeOnly*/ false, name === targetName ? undefined : targetName, name);
54635 })))]);
54636 addResult(ts.factory.createModuleDeclaration(
54637 /*decorators*/ undefined,
54638 /*modifiers*/ undefined, ts.factory.createIdentifier(localName), nsBody, 16 /* NodeFlags.Namespace */), 0 /* ModifierFlags.None */);
54639 }
54640 }
54641 function serializeEnum(symbol, symbolName, modifierFlags) {
54642 addResult(ts.factory.createEnumDeclaration(
54643 /*decorators*/ undefined, ts.factory.createModifiersFromModifierFlags(isConstEnumSymbol(symbol) ? 2048 /* ModifierFlags.Const */ : 0), getInternalSymbolName(symbol, symbolName), ts.map(ts.filter(getPropertiesOfType(getTypeOfSymbol(symbol)), function (p) { return !!(p.flags & 8 /* SymbolFlags.EnumMember */); }), function (p) {

Callers 1

serializeSymbolWorkerFunction · 0.70

Calls 12

getInternalSymbolNameFunction · 0.85
includePrivateSymbolFunction · 0.85
addResultFunction · 0.85
someMethod · 0.80
getMethod · 0.65
filterMethod · 0.65
lengthMethod · 0.45
callMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…