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

Function emitHelpers

test/fixtures/snapshot/typescript.js:111584–111634  ·  view source on GitHub ↗
(node)

Source from the content-addressed store, hash-verified

111582 return result;
111583 }
111584 function emitHelpers(node) {
111585 var helpersEmitted = false;
111586 var bundle = node.kind === 306 /* SyntaxKind.Bundle */ ? node : undefined;
111587 if (bundle && moduleKind === ts.ModuleKind.None) {
111588 return;
111589 }
111590 var numPrepends = bundle ? bundle.prepends.length : 0;
111591 var numNodes = bundle ? bundle.sourceFiles.length + numPrepends : 1;
111592 for (var i = 0; i < numNodes; i++) {
111593 var currentNode = bundle ? i < numPrepends ? bundle.prepends[i] : bundle.sourceFiles[i - numPrepends] : node;
111594 var sourceFile = ts.isSourceFile(currentNode) ? currentNode : ts.isUnparsedSource(currentNode) ? undefined : currentSourceFile;
111595 var shouldSkip = printerOptions.noEmitHelpers || (!!sourceFile && ts.hasRecordedExternalHelpers(sourceFile));
111596 var shouldBundle = (ts.isSourceFile(currentNode) || ts.isUnparsedSource(currentNode)) && !isOwnFileEmit;
111597 var helpers = ts.isUnparsedSource(currentNode) ? currentNode.helpers : getSortedEmitHelpers(currentNode);
111598 if (helpers) {
111599 for (var _a = 0, helpers_6 = helpers; _a < helpers_6.length; _a++) {
111600 var helper = helpers_6[_a];
111601 if (!helper.scoped) {
111602 // Skip the helper if it can be skipped and the noEmitHelpers compiler
111603 // option is set, or if it can be imported and the importHelpers compiler
111604 // option is set.
111605 if (shouldSkip)
111606 continue;
111607 // Skip the helper if it can be bundled but hasn't already been emitted and we
111608 // are emitting a bundled module.
111609 if (shouldBundle) {
111610 if (bundledHelpers.get(helper.name)) {
111611 continue;
111612 }
111613 bundledHelpers.set(helper.name, true);
111614 }
111615 }
111616 else if (bundle) {
111617 // Skip the helper if it is scoped and we are emitting bundled helpers
111618 continue;
111619 }
111620 var pos = getTextPosWithWriteLine();
111621 if (typeof helper.text === "string") {
111622 writeLines(helper.text);
111623 }
111624 else {
111625 writeLines(helper.text(makeFileLevelOptimisticUniqueName));
111626 }
111627 if (bundleFileInfo)
111628 bundleFileInfo.sections.push({ pos: pos, end: writer.getTextPos(), kind: "emitHelpers" /* BundleFileSectionKind.EmitHelpers */, data: helper.name });
111629 helpersEmitted = true;
111630 }
111631 }
111632 }
111633 return helpersEmitted;
111634 }
111635 function getSortedEmitHelpers(node) {
111636 var helpers = ts.getEmitHelpers(node);
111637 return helpers && ts.stableSort(helpers, ts.compareEmitHelpers);

Calls 7

getSortedEmitHelpersFunction · 0.85
getTextPosWithWriteLineFunction · 0.85
writeLinesFunction · 0.85
getMethod · 0.65
textMethod · 0.65
setMethod · 0.45
pushMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…