Skip to content

Commit 3abe016

Browse files
committed
drop post-processing support of "export *"
Summary: Sickle now processes "export *" at input type, before JS emit. If we end up generating JS that uses __export(), we've already lost, because Closure doesn't know about the types of all the exported variables. Part of issue #111. Reviewers: rkirov, alexeagle Reviewed By: alexeagle Subscribers: typescript-eng Differential Revision: https://reviews.angular.io/D32
1 parent cd6d298 commit 3abe016

File tree

2 files changed

+3
-9
lines changed

2 files changed

+3
-9
lines changed

src/sickle.ts

+3-4
Original file line numberDiff line numberDiff line change
@@ -988,18 +988,17 @@ export function convertCommonJsToGoogModule(
988988
// All require statements must be assigned.
989989
// import 'z' ==> var unused_xxx = require('z')
990990
// import {x} from 'y' ==> var ... = require('y')
991-
// export * from 'x' ==> __export(require('x'))
992991
let unusedIdx = 0;
993992
content = content.replace(
994-
/(((?:^|;)\s*)|= |__export\()require\(["']([^'";]+)['"]\)(\))?;/gm,
995-
(match, prefix, leading, modName, suffix = '') => {
993+
/(((?:^|;)\s*)|= )require\(["']([^'";]+)['"]\);/gm,
994+
(match, prefix, leading, modName) => {
996995
modName = pathToModuleName(fileName, modName);
997996
referencedModules.push(modName);
998997
if (prefix === leading) {
999998
// No prefix ==> side effect style "import 'foo';".
1000999
prefix = prefix + 'var unused_' + unusedIdx++ + '_ = ';
10011000
}
1002-
return `${prefix}goog.require('${modName}')${suffix};`;
1001+
return `${prefix}goog.require('${modName}');`;
10031002
});
10041003

10051004
return {output: content, referencedModules};

test/sickle_test.ts

-5
Original file line numberDiff line numberDiff line change
@@ -189,11 +189,6 @@ require('req/mod');`)
189189
var unused_0_ = goog.require('req$mod');`);
190190
});
191191

192-
it('converts export * statements', () => {
193-
expectCommonJs('a.js', `__export(require('req/mod'));`)
194-
.to.equal(`goog.module('a');__export(goog.require('req$mod'));`);
195-
});
196-
197192
it('resolves relative module URIs', () => {
198193
// See below for more fine-grained unit tests.
199194
expectCommonJs('a/b.js', `var r = require('./req/mod');`)

0 commit comments

Comments
 (0)