Include reexported names in list of exported names (#38809)

This commit is contained in:
Wesley Wigham authored and GitHub committed 2020-06-15 15:17:08 -07:00
1 parent 6a777ff6b3
commit 4bda7ce8e5
56 files changed
+92 -52

No files matched your search

@@ -339,37 +339,6 @@ namespace ts {
}
}
for (const externalImport of moduleInfo.externalImports) {
if (externalImport.kind !== SyntaxKind.ExportDeclaration) {
continue;
}
if (!externalImport.exportClause) {
// export * from ...
continue;
}
if (isNamedExports(externalImport.exportClause)) {
for (const element of externalImport.exportClause.elements) {
// write name of indirectly exported entry, i.e. 'export {x} from ...'
exportedNames.push(
createPropertyAssignment(
createLiteral(idText(element.name || element.propertyName)),
createTrue()
)
);
}
}
else {
exportedNames.push(
createPropertyAssignment(
createLiteral(idText(externalImport.exportClause.name)),
createTrue()
)
);
}
}
const exportedNamesStorageRef = createUniqueName("exportedNames");
statements.push(
createVariableStatement(
+31 -16
View File
@@ -112,26 +112,22 @@ namespace ts {
// export * as ns from "mod"
// export { x, y } from "mod"
externalImports.push(<ExportDeclaration>node);
if (isNamedExports((node as ExportDeclaration).exportClause!)) {
addExportedNamesForExportDeclaration(node as ExportDeclaration);
}
else {
const name = ((node as ExportDeclaration).exportClause as NamespaceExport).name;
if (!uniqueExports.get(idText(name))) {
multiMapSparseArrayAdd(exportedBindings, getOriginalNodeId(node), name);
uniqueExports.set(idText(name), true);
exportedNames = append(exportedNames, name);
}
}
}
}
else {
// export { x, y }
for (const specifier of cast((<ExportDeclaration>node).exportClause, isNamedExports).elements) {
if (!uniqueExports.get(idText(specifier.name))) {
const name = specifier.propertyName || specifier.name;
exportSpecifiers.add(idText(name), specifier);
const decl = resolver.getReferencedImportDeclaration(name)
|| resolver.getReferencedValueDeclaration(name);
if (decl) {
multiMapSparseArrayAdd(exportedBindings, getOriginalNodeId(decl), specifier.name);
}
uniqueExports.set(idText(specifier.name), true);
exportedNames = append(exportedNames, specifier.name);
}
}
addExportedNamesForExportDeclaration(node as ExportDeclaration);
}
break;
@@ -200,6 +196,25 @@ namespace ts {
}
return { externalImports, exportSpecifiers, exportEquals, hasExportStarsToExportValues, exportedBindings, exportedNames, externalHelpersImportDeclaration };
function addExportedNamesForExportDeclaration(node: ExportDeclaration) {
for (const specifier of cast(node.exportClause, isNamedExports).elements) {
if (!uniqueExports.get(idText(specifier.name))) {
const name = specifier.propertyName || specifier.name;
exportSpecifiers.add(idText(name), specifier);
const decl = resolver.getReferencedImportDeclaration(name)
|| resolver.getReferencedValueDeclaration(name);
if (decl) {
multiMapSparseArrayAdd(exportedBindings, getOriginalNodeId(decl), specifier.name);
}
uniqueExports.set(idText(specifier.name), true);
exportedNames = append(exportedNames, specifier.name);
}
}
}
}
function collectExportedVariableInfo(decl: VariableDeclaration | BindingElement, uniqueExports: Map<boolean>, exportedNames: Identifier[] | undefined) {
@@ -26,6 +26,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
o[k2] = m[k];
}));
exports.__esModule = true;
exports.x = void 0;
var jquery_1 = require("jquery");
__createBinding(exports, jquery_1, "x");
//// [reExportAll.js]
@@ -29,6 +29,7 @@ exports.subject1 = 10;
//// [2.js]
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.subject1 = exports.subject = void 0;
/* blah0 */
// blah
// blah
@@ -36,5 +36,6 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
o[k2] = m[k];
}));
exports.__esModule = true;
exports["default"] = void 0;
var ConstEnum_1 = require("./ConstEnum");
__createBinding(exports, ConstEnum_1, "MyConstEnum", "default");
@@ -37,6 +37,7 @@ exports.x = 10;
//// [client.js]
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.x = exports.instantiatedModule = exports.c2 = exports.c = void 0;
var server_1 = require("./server");
Object.defineProperty(exports, "c", { enumerable: true, get: function () { return server_1.c; } });
var server_2 = require("./server");
@@ -220,6 +220,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
};
exports.__esModule = true;
exports.a0 = exports.a9 = exports.a8 = exports.a7 = exports.a6 = exports.a5 = exports.a4 = exports.a3 = exports.a2 = exports.a1 = void 0;
var z2 = require("variable");
var z3 = require("interface-variable");
var z4 = require("module");
@@ -37,6 +37,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
};
exports.__esModule = true;
exports.y = exports.x = void 0;
var fs = __importStar(require("./fs"));
fs;
__exportStar(require("./fs"), exports);
@@ -37,6 +37,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.y = exports.x = void 0;
var fs = __importStar(require("./fs"));
fs;
__exportStar(require("./fs"), exports);
@@ -27,6 +27,7 @@ define(["require", "exports"], function (require, exports) {
define(["require", "exports", "./0"], function (require, exports, ns) {
"use strict";
exports.__esModule = true;
exports.ns = void 0;
exports.ns = ns;
ns.a;
ns.b;
@@ -24,6 +24,7 @@ exports.b = 2;
//// [1.js]
"use strict";
exports.__esModule = true;
exports.ns = void 0;
exports.ns = require("./0");
ns.a;
ns.b;
@@ -43,6 +43,7 @@ foo.ns.b;
})(function (require, exports) {
"use strict";
exports.__esModule = true;
exports.ns = void 0;
exports.ns = require("./0");
ns.a;
ns.b;
@@ -27,6 +27,7 @@ define(["require", "exports"], function (require, exports) {
define(["require", "exports", "./0"], function (require, exports, ns) {
"use strict";
exports.__esModule = true;
exports.ns = void 0;
exports.ns = ns;
ns.a;
ns.b;
@@ -43,6 +43,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
return result;
};
exports.__esModule = true;
exports.ns = void 0;
exports.ns = __importStar(require("./0"));
ns.a;
ns.b;
@@ -62,6 +62,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
})(function (require, exports) {
"use strict";
exports.__esModule = true;
exports.ns = void 0;
exports.ns = __importStar(require("./0"));
ns.a;
ns.b;
@@ -30,6 +30,7 @@ define(["require", "exports"], function (require, exports) {
define(["require", "exports", "./0"], function (require, exports, ns) {
"use strict";
exports.__esModule = true;
exports.ns = void 0;
exports.ns = ns;
ns.a;
ns.b;
@@ -46,6 +46,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
return result;
};
exports.__esModule = true;
exports.ns = void 0;
exports.ns = __importStar(require("./0"));
ns.a;
ns.b;
@@ -65,6 +65,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
})(function (require, exports) {
"use strict";
exports.__esModule = true;
exports.ns = void 0;
exports.ns = __importStar(require("./0"));
ns.a;
ns.b;
@@ -32,4 +32,5 @@ var __importStar = (this && this.__importStar) || function (mod) {
return result;
};
exports.__esModule = true;
exports.ns = void 0;
exports.ns = __importStar(require("./a"));
@@ -13,4 +13,5 @@ exports.__esModule = true;
//// [b.js]
"use strict";
exports.__esModule = true;
exports.ns = void 0;
exports.ns = require("./a"); // Error
@@ -34,6 +34,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
o[k2] = m[k];
}));
exports.__esModule = true;
exports.x = void 0;
var t1_1 = require("./t1");
__createBinding(exports, t1_1, "x");
//// [t3.js]
@@ -49,6 +50,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
o[k2] = m[k];
}));
exports.__esModule = true;
exports.a = void 0;
var t1_1 = require("./t1");
__createBinding(exports, t1_1, "x", "a");
//// [t5.js]
@@ -61,5 +63,6 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
o[k2] = m[k];
}));
exports.__esModule = true;
exports.a = void 0;
var t1_1 = require("./t1");
__createBinding(exports, t1_1, "x", "a");
@@ -17,6 +17,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
o[k2] = m[k];
}));
exports.__esModule = true;
exports["default"] = void 0;
function default_1() { }
exports["default"] = default_1;
var hi_1 = require("./hi");
@@ -28,6 +28,7 @@ exports.A = A;
//// [b.js]
"use strict";
exports.__esModule = true;
exports.a = void 0;
exports.a = require("./a");
//// [c.js]
"use strict";
@@ -30,6 +30,7 @@ exports.__esModule = true;
//// [c.js]
"use strict";
exports.__esModule = true;
exports.a = void 0;
exports.a = require("./b");
//// [d.js]
"use strict";
@@ -35,6 +35,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
};
exports.__esModule = true;
exports.aliased = void 0;
__exportStar(require("./register"), exports);
__exportStar(require("./data1"), exports);
exports.aliased = require("./data1");
@@ -66,6 +66,7 @@ define(["require", "exports"], function (require, exports) {
define(["require", "exports", "./t1"], function (require, exports, t1_1) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.a = exports.M = exports.E = exports.C = exports.f = exports.v = void 0;
Object.defineProperty(exports, "v", { enumerable: true, get: function () { return t1_1.v; } });
Object.defineProperty(exports, "f", { enumerable: true, get: function () { return t1_1.f; } });
Object.defineProperty(exports, "C", { enumerable: true, get: function () { return t1_1.C; } });
@@ -60,6 +60,7 @@ exports.a = a;
//// [t2.js]
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.a = exports.M = exports.E = exports.C = exports.f = exports.v = void 0;
var t1_1 = require("./t1");
Object.defineProperty(exports, "v", { enumerable: true, get: function () { return t1_1.v; } });
Object.defineProperty(exports, "f", { enumerable: true, get: function () { return t1_1.f; } });
@@ -70,6 +70,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
o[k2] = m[k];
}));
exports.__esModule = true;
exports.a = exports.M = exports.E = exports.C = exports.f = exports.v = void 0;
var t1_1 = require("./t1");
__createBinding(exports, t1_1, "v");
__createBinding(exports, t1_1, "f");
@@ -24,6 +24,7 @@ define(["require", "exports"], function (require, exports) {
define(["require", "exports", "./t1"], function (require, exports, t1_1) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.x = exports.y = void 0;
Object.defineProperty(exports, "y", { enumerable: true, get: function () { return t1_1.x; } });
Object.defineProperty(exports, "x", { enumerable: true, get: function () { return t1_1.y; } });
});
@@ -21,6 +21,7 @@ exports.y = "y";
//// [t2.js]
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.x = exports.y = void 0;
var t1_1 = require("./t1");
Object.defineProperty(exports, "y", { enumerable: true, get: function () { return t1_1.x; } });
Object.defineProperty(exports, "x", { enumerable: true, get: function () { return t1_1.y; } });
@@ -28,6 +28,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
o[k2] = m[k];
}));
exports.__esModule = true;
exports.x = exports.y = void 0;
var t1_1 = require("./t1");
__createBinding(exports, t1_1, "x", "y");
__createBinding(exports, t1_1, "y", "x");
@@ -68,6 +68,7 @@ define(["require", "exports"], function (require, exports) {
define(["require", "exports", "./t1"], function (require, exports, t1_1) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.a = exports.M = exports.E = exports.C = exports.f = exports.v = void 0;
Object.defineProperty(exports, "v", { enumerable: true, get: function () { return t1_1.v1; } });
Object.defineProperty(exports, "f", { enumerable: true, get: function () { return t1_1.f1; } });
Object.defineProperty(exports, "C", { enumerable: true, get: function () { return t1_1.C1; } });
@@ -62,6 +62,7 @@ exports.a1 = exports.a;
//// [t2.js]
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.a = exports.M = exports.E = exports.C = exports.f = exports.v = void 0;
var t1_1 = require("./t1");
Object.defineProperty(exports, "v", { enumerable: true, get: function () { return t1_1.v1; } });
Object.defineProperty(exports, "f", { enumerable: true, get: function () { return t1_1.f1; } });
@@ -72,6 +72,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
o[k2] = m[k];
}));
exports.__esModule = true;
exports.a = exports.M = exports.E = exports.C = exports.f = exports.v = void 0;
var t1_1 = require("./t1");
__createBinding(exports, t1_1, "v1", "v");
__createBinding(exports, t1_1, "f1", "f");
@@ -28,7 +28,7 @@ var __extends = (this && this.__extends) || (function () {
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.z = void 0;
exports.z = exports.c1 = void 0;
var module_1 = require("module");
var module_2 = require("module");
var ns = require("module");
@@ -67,7 +67,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
o[k2] = m[k];
}));
exports.__esModule = true;
exports.NS = void 0;
exports.NS = exports.C = void 0;
// OK, has a value side
var exportValue_1 = require("./exportValue");
__createBinding(exports, exportValue_1, "C");
@@ -26,6 +26,7 @@ exports.OtherThing = OtherThing;
//// [index.js]
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = exports.Thing = void 0;
var source_1 = require("./source");
Object.defineProperty(exports, "Thing", { enumerable: true, get: function () { return source_1.Thing; } });
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return source_1.OtherThing; } });
@@ -30,6 +30,7 @@ exports.c = 3;
//// [justone.js]
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.c = exports.b = exports.a = void 0;
var items_1 = require("./items");
Object.defineProperty(exports, "a", { enumerable: true, get: function () { return items_1.a; } });
Object.defineProperty(exports, "b", { enumerable: true, get: function () { return items_1.b; } });
@@ -37,6 +38,7 @@ Object.defineProperty(exports, "c", { enumerable: true, get: function () { retur
//// [two.js]
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.c = exports.b = exports.a = void 0;
var items_1 = require("./items");
Object.defineProperty(exports, "a", { enumerable: true, get: function () { return items_1.a; } });
var items_2 = require("./items");
@@ -45,6 +47,7 @@ Object.defineProperty(exports, "c", { enumerable: true, get: function () { retur
//// [multiple.js]
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.cc = exports.c = exports.bb = exports.aa = exports.b = exports.a = void 0;
var items_1 = require("./items");
Object.defineProperty(exports, "a", { enumerable: true, get: function () { return items_1.a; } });
Object.defineProperty(exports, "b", { enumerable: true, get: function () { return items_1.b; } });
@@ -23,7 +23,7 @@ exports.default = Foo;
//// [usage.js]
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.x = void 0;
exports.Foob = exports.x = void 0;
var cls_1 = require("./cls");
exports.x = new cls_1.default();
var cls_2 = require("./cls");
@@ -25,7 +25,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.x = void 0;
exports.Foob = exports.x = void 0;
var cls_1 = __importDefault(require("./cls"));
exports.x = new cls_1.default();
var cls_2 = require("./cls");
@@ -33,6 +33,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
o[k2] = m[k];
}));
exports.__esModule = true;
exports.Animals = void 0;
var c_1 = require("./c");
__createBinding(exports, c_1, "Animals");
//// [a.js]
@@ -22,6 +22,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
define(["require", "exports", "../file2"], function (require, exports, file2_1) {
"use strict";
exports.__esModule = true;
exports.x = void 0;
__createBinding(exports, file2_1, "x");
});
//// [file1.js]
@@ -21,6 +21,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
o[k2] = m[k];
}));
exports.__esModule = true;
exports.x = void 0;
var file2_1 = require("../file2");
__createBinding(exports, file2_1, "x");
//// [file1.js]
@@ -22,6 +22,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
o[k2] = m[k];
}));
exports.__esModule = true;
exports["default"] = exports.b = void 0;
var b_1 = require("./b");
__createBinding(exports, b_1, "b");
var b_2 = require("./b");
@@ -23,6 +23,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
o[k2] = m[k];
}));
exports.__esModule = true;
exports["default"] = exports.b = void 0;
var b_1 = require("./b");
__createBinding(exports, b_1, "b");
var b_2 = require("./b");
@@ -22,6 +22,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
o[k2] = m[k];
}));
exports.__esModule = true;
exports["default"] = exports.b = void 0;
var b_1 = require("./b");
__createBinding(exports, b_1, "b");
var b_2 = require("./b");
@@ -22,6 +22,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
o[k2] = m[k];
}));
exports.__esModule = true;
exports.a = exports.b = void 0;
var b_1 = require("./b");
__createBinding(exports, b_1, "b");
var b_2 = require("./b");
@@ -18,6 +18,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
o[k2] = m[k];
}));
exports.__esModule = true;
exports["default"] = exports.b = void 0;
var b_1 = require("./b");
__createBinding(exports, b_1, "b");
var b_2 = require("./b");
@@ -22,6 +22,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
o[k2] = m[k];
}));
exports.__esModule = true;
exports["default"] = exports.b = void 0;
var b_1 = require("./b");
__createBinding(exports, b_1, "b");
var b_2 = require("./b");
@@ -21,5 +21,6 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
o[k2] = m[k];
}));
exports.__esModule = true;
exports["default"] = void 0;
var b_1 = require("./b");
__createBinding(exports, b_1, "default");
@@ -49,6 +49,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
o[k2] = m[k];
}));
exports.__esModule = true;
exports.ThingB = exports.ThingA = void 0;
var ThingA_1 = require("./ThingA");
__createBinding(exports, ThingA_1, "ThingA");
var ThingB_1 = require("./ThingB");
@@ -10,7 +10,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Value = void 0;
exports.Value = exports.Y = exports.X = void 0;
/*comment*/
var somewhere_1 = require("somewhere");
Object.defineProperty(exports, "Value", { enumerable: true, get: function () { return somewhere_1.Value; } });
@@ -146,6 +146,7 @@ export { default as bar } from './bar';
//// [/src/obj/lazyIndex.js]
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.bar = void 0;
var bar_1 = require("./bar");
Object.defineProperty(exports, "bar", { enumerable: true, get: function () { return bar_1.default; } });
@@ -146,6 +146,7 @@ export { default as bar } from './bar';
//// [/src/obj/lazyIndex.js]
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.bar = void 0;
var bar_1 = require("./bar");
Object.defineProperty(exports, "bar", { enumerable: true, get: function () { return bar_1.default; } });
@@ -148,6 +148,7 @@ export { default as bar } from './bar';
//// [/src/obj/lazyIndex.js]
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.bar = void 0;
var bar_1 = require("./bar");
Object.defineProperty(exports, "bar", { enumerable: true, get: function () { return bar_1.default; } });
var bar_2 = require("./bar");
@@ -30,6 +30,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
o[k2] = m[k];
}));
exports.__esModule = true;
exports.from = exports.x = void 0;
var t1_1 = require("./t1");
__createBinding(exports, t1_1, "x");
__createBinding(exports, t1_1, "from");
@@ -43,6 +44,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
o[k2] = m[k];
}));
exports.__esModule = true;
exports.from = void 0;
var t1_1 = require("./t1");
__createBinding(exports, t1_1, "from");
//// [t4.js]
@@ -55,6 +57,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
o[k2] = m[k];
}));
exports.__esModule = true;
exports.from = exports.a = void 0;
var t1_1 = require("./t1");
__createBinding(exports, t1_1, "x", "a");
__createBinding(exports, t1_1, "from");
@@ -68,6 +71,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
o[k2] = m[k];
}));
exports.__esModule = true;
exports.from = exports.a = void 0;
var t1_1 = require("./t1");
__createBinding(exports, t1_1, "x", "a");
__createBinding(exports, t1_1, "from");