Adds support for ES6 export syntax to the packager's DependencyResolver.

Summary: This PR includes:
- A regex that allows for the `export` syntax.
- Updated tests.
Closes https://github.com/facebook/react-native/pull/3465

Reviewed By: svcscm

Differential Revision: D2550322

Pulled By: vjeux

fb-gh-sync-id: 7d35f436af13cf5b6b1287835a18a9693ec1be8a
This commit is contained in:
Adam Miskiewicz 2015-10-16 10:45:20 -07:00 коммит произвёл facebook-github-bot-7
Родитель da250671e5
Коммит 24bfdda499
4 изменённых файлов: 385 добавлений и 2 удалений

Просмотреть файл

@ -159,10 +159,14 @@ function extractRequires(code /*: string*/) /*: Array<string>*/ {
deps.sync.push(dep);
return match;
})
.replace(replacePatterns.EXPORT_RE, (match, pre, quot, dep, post) => {
deps.sync.push(dep);
return match;
})
// Parse the sync dependencies this module has. When the module is
// required, all it's sync dependencies will be loaded into memory.
// Sync dependencies can be defined either using `require` or the ES6
// `import` syntax:
// `import` or `export` syntaxes:
// var dep1 = require('dep1');
.replace(replacePatterns.REQUIRE_RE, (match, pre, quot, dep, post) => {
deps.sync.push(dep);

Просмотреть файл

@ -407,6 +407,195 @@ describe('HasteDependencyResolver', function() {
"import Default,\n { Foo as Bar,\n Baz as Qux,\n Norf as NoMore\n }\n from 'x';",
"import Default,\n { Foo as Bar,\n Baz as Qux,\n Norf as NoMore,\n }\n from 'x';",
"import Default\n , { } from 'x';",
// single line export
"export'x';",
"export 'x';",
"export 'x' ;",
"export Default from 'x';",
"export * as All from 'x';",
"export {} from 'x';",
"export { } from 'x';",
"export {Foo} from 'x';",
"export { Foo } from 'x';",
"export { Foo, } from 'x';",
"export {Foo as Bar} from 'x';",
"export { Foo as Bar } from 'x';",
"export { Foo as Bar, } from 'x';",
"export { Foo, Bar } from 'x';",
"export { Foo, Bar, } from 'x';",
"export { Foo as Bar, Baz } from 'x';",
"export { Foo as Bar, Baz, } from 'x';",
"export { Foo, Bar as Baz } from 'x';",
"export { Foo, Bar as Baz, } from 'x';",
"export { Foo as Bar, Baz as Qux } from 'x';",
"export { Foo as Bar, Baz as Qux, } from 'x';",
"export { Foo, Bar, Baz } from 'x';",
"export { Foo, Bar, Baz, } from 'x';",
"export { Foo as Bar, Baz, Qux } from 'x';",
"export { Foo as Bar, Baz, Qux, } from 'x';",
"export { Foo, Bar as Baz, Qux } from 'x';",
"export { Foo, Bar as Baz, Qux, } from 'x';",
"export { Foo, Bar, Baz as Qux } from 'x';",
"export { Foo, Bar, Baz as Qux, } from 'x';",
"export { Foo as Bar, Baz as Qux, Norf } from 'x';",
"export { Foo as Bar, Baz as Qux, Norf, } from 'x';",
"export { Foo as Bar, Baz, Qux as Norf } from 'x';",
"export { Foo as Bar, Baz, Qux as Norf, } from 'x';",
"export { Foo, Bar as Baz, Qux as Norf } from 'x';",
"export { Foo, Bar as Baz, Qux as Norf, } from 'x';",
"export { Foo as Bar, Baz as Qux, Norf as Enuf } from 'x';",
"export { Foo as Bar, Baz as Qux, Norf as Enuf, } from 'x';",
"export Default, * as All from 'x';",
"export Default, { } from 'x';",
"export Default, { Foo } from 'x';",
"export Default, { Foo, } from 'x';",
"export Default, { Foo as Bar } from 'x';",
"export Default, { Foo as Bar, } from 'x';",
"export Default, { Foo, Bar } from 'x';",
"export Default, { Foo, Bar, } from 'x';",
"export Default, { Foo as Bar, Baz } from 'x';",
"export Default, { Foo as Bar, Baz, } from 'x';",
"export Default, { Foo, Bar as Baz } from 'x';",
"export Default, { Foo, Bar as Baz, } from 'x';",
"export Default, { Foo as Bar, Baz as Qux } from 'x';",
"export Default, { Foo as Bar, Baz as Qux, } from 'x';",
"export Default, { Foo, Bar, Baz } from 'x';",
"export Default, { Foo, Bar, Baz, } from 'x';",
"export Default, { Foo as Bar, Baz, Qux } from 'x';",
"export Default, { Foo as Bar, Baz, Qux, } from 'x';",
"export Default, { Foo, Bar as Baz, Qux } from 'x';",
"export Default, { Foo, Bar as Baz, Qux, } from 'x';",
"export Default, { Foo, Bar, Baz as Qux } from 'x';",
"export Default, { Foo, Bar, Baz as Qux, } from 'x';",
"export Default, { Foo as Bar, Baz as Qux, Norf } from 'x';",
"export Default, { Foo as Bar, Baz as Qux, Norf, } from 'x';",
"export Default, { Foo as Bar, Baz, Qux as Norf } from 'x';",
"export Default, { Foo as Bar, Baz, Qux as Norf, } from 'x';",
"export Default, { Foo, Bar as Baz, Qux as Norf } from 'x';",
"export Default, { Foo, Bar as Baz, Qux as Norf, } from 'x';",
"export Default, { Foo as Bar, Baz as Qux, Norf as NoMore } from 'x';",
"export Default, { Foo as Bar, Baz as Qux, Norf as NoMore, } from 'x';",
"export Default , { } from 'x';",
'export "x";',
'export Default from "x";',
'export * as All from "x";',
'export { } from "x";',
'export { Foo } from "x";',
'export { Foo, } from "x";',
'export { Foo as Bar } from "x";',
'export { Foo as Bar, } from "x";',
'export { Foo, Bar } from "x";',
'export { Foo, Bar, } from "x";',
'export { Foo as Bar, Baz } from "x";',
'export { Foo as Bar, Baz, } from "x";',
'export { Foo, Bar as Baz } from "x";',
'export { Foo, Bar as Baz, } from "x";',
'export { Foo as Bar, Baz as Qux } from "x";',
'export { Foo as Bar, Baz as Qux, } from "x";',
'export { Foo, Bar, Baz } from "x";',
'export { Foo, Bar, Baz, } from "x";',
'export { Foo as Bar, Baz, Qux } from "x";',
'export { Foo as Bar, Baz, Qux, } from "x";',
'export { Foo, Bar as Baz, Qux } from "x";',
'export { Foo, Bar as Baz, Qux, } from "x";',
'export { Foo, Bar, Baz as Qux } from "x";',
'export { Foo, Bar, Baz as Qux, } from "x";',
'export { Foo as Bar, Baz as Qux, Norf } from "x";',
'export { Foo as Bar, Baz as Qux, Norf, } from "x";',
'export { Foo as Bar, Baz, Qux as Norf } from "x";',
'export { Foo as Bar, Baz, Qux as Norf, } from "x";',
'export { Foo, Bar as Baz, Qux as Norf } from "x";',
'export { Foo, Bar as Baz, Qux as Norf, } from "x";',
'export { Foo as Bar, Baz as Qux, Norf as NoMore } from "x";',
'export { Foo as Bar, Baz as Qux, Norf as NoMore, } from "x";',
'export Default, * as All from "x";',
'export Default, { } from "x";',
'export Default, { Foo } from "x";',
'export Default, { Foo, } from "x";',
'export Default, { Foo as Bar } from "x";',
'export Default, { Foo as Bar, } from "x";',
'export Default, { Foo, Bar } from "x";',
'export Default, { Foo, Bar, } from "x";',
'export Default, { Foo as Bar, Baz } from "x";',
'export Default, { Foo as Bar, Baz, } from "x";',
'export Default, { Foo, Bar as Baz } from "x";',
'export Default, { Foo, Bar as Baz, } from "x";',
'export Default, { Foo as Bar, Baz as Qux } from "x";',
'export Default, { Foo as Bar, Baz as Qux, } from "x";',
'export Default, { Foo, Bar, Baz } from "x";',
'export Default, { Foo, Bar, Baz, } from "x";',
'export Default, { Foo as Bar, Baz, Qux } from "x";',
'export Default, { Foo as Bar, Baz, Qux, } from "x";',
'export Default, { Foo, Bar as Baz, Qux } from "x";',
'export Default, { Foo, Bar as Baz, Qux, } from "x";',
'export Default, { Foo, Bar, Baz as Qux } from "x";',
'export Default, { Foo, Bar, Baz as Qux, } from "x";',
'export Default, { Foo as Bar, Baz as Qux, Norf } from "x";',
'export Default, { Foo as Bar, Baz as Qux, Norf, } from "x";',
'export Default, { Foo as Bar, Baz, Qux as Norf } from "x";',
'export Default, { Foo as Bar, Baz, Qux as Norf, } from "x";',
'export Default, { Foo, Bar as Baz, Qux as Norf } from "x";',
'export Default, { Foo, Bar as Baz, Qux as Norf, } from "x";',
'export Default, { Foo as Bar, Baz as Qux, Norf as Enuf } from "x";',
'export Default, { Foo as Bar, Baz as Qux, Norf as Enuf, } from "x";',
'export Default from "y";',
'export * as All from \'z\';',
// export with support for new lines
"export { Foo,\n Bar }\n from 'x';",
"export { \nFoo,\nBar,\n }\n from 'x';",
"export { Foo as Bar,\n Baz\n }\n from 'x';",
"export { \nFoo as Bar,\n Baz\n, }\n from 'x';",
"export { Foo,\n Bar as Baz\n }\n from 'x';",
"export { Foo,\n Bar as Baz,\n }\n from 'x';",
"export { Foo as Bar,\n Baz as Qux\n }\n from 'x';",
"export { Foo as Bar,\n Baz as Qux,\n }\n from 'x';",
"export { Foo,\n Bar,\n Baz }\n from 'x';",
"export { Foo,\n Bar,\n Baz,\n }\n from 'x';",
"export { Foo as Bar,\n Baz,\n Qux\n }\n from 'x';",
"export { Foo as Bar,\n Baz,\n Qux,\n }\n from 'x';",
"export { Foo,\n Bar as Baz,\n Qux\n }\n from 'x';",
"export { Foo,\n Bar as Baz,\n Qux,\n }\n from 'x';",
"export { Foo,\n Bar,\n Baz as Qux\n }\n from 'x';",
"export { Foo,\n Bar,\n Baz as Qux,\n }\n from 'x';",
"export { Foo as Bar,\n Baz as Qux,\n Norf\n }\n from 'x';",
"export { Foo as Bar,\n Baz as Qux,\n Norf,\n }\n from 'x';",
"export { Foo as Bar,\n Baz,\n Qux as Norf\n }\n from 'x';",
"export { Foo as Bar,\n Baz,\n Qux as Norf,\n }\n from 'x';",
"export { Foo,\n Bar as Baz,\n Qux as Norf\n }\n from 'x';",
"export { Foo,\n Bar as Baz,\n Qux as Norf,\n }\n from 'x';",
"export { Foo as Bar,\n Baz as Qux,\n Norf as Enuf\n }\n from 'x';",
"export { Foo as Bar,\n Baz as Qux,\n Norf as Enuf,\n }\n from 'x';",
"export Default,\n * as All from 'x';",
"export Default,\n { } from 'x';",
"export Default,\n { Foo\n }\n from 'x';",
"export Default,\n { Foo,\n }\n from 'x';",
"export Default,\n { Foo as Bar\n }\n from 'x';",
"export Default,\n { Foo as Bar,\n }\n from 'x';",
"export Default,\n { Foo,\n Bar\n } from\n 'x';",
"export Default,\n { Foo,\n Bar,\n } from\n 'x';",
"export Default,\n { Foo as Bar,\n Baz\n }\n from 'x';",
"export Default,\n { Foo as Bar,\n Baz,\n }\n from 'x';",
"export Default,\n { Foo,\n Bar as Baz\n }\n from 'x';",
"export Default,\n { Foo,\n Bar as Baz,\n }\n from 'x';",
"export Default,\n { Foo as Bar,\n Baz as Qux\n }\n from 'x';",
"export Default,\n { Foo as Bar,\n Baz as Qux,\n }\n from 'x';",
"export Default,\n { Foo,\n Bar,\n Baz\n }\n from 'x';",
"export Default,\n { Foo,\n Bar,\n Baz,\n }\n from 'x';",
"export Default,\n { Foo as Bar,\n Baz,\n Qux\n }\n from 'x';",
"export Default,\n { Foo as Bar,\n Baz,\n Qux,\n }\n from 'x';",
"export Default,\n { Foo,\n Bar as Baz,\n Qux\n }\n from 'x';",
"export Default,\n { Foo,\n Bar as Baz,\n Qux,\n }\n from 'x';",
"export Default,\n { Foo,\n Bar,\n Baz as Qux\n }\n from 'x';",
"export Default,\n { Foo,\n Bar,\n Baz as Qux,\n }\n from 'x';",
"export Default,\n { Foo as Bar,\n Baz as Qux,\n Norf\n }\n from 'x';",
"export Default,\n { Foo as Bar,\n Baz as Qux,\n Norf,\n }\n from 'x';",
"export Default,\n { Foo as Bar,\n Baz,\n Qux as Norf }\n from 'x';",
"export Default,\n { Foo as Bar,\n Baz,\n Qux as Norf, }\n from 'x';",
"export Default,\n { Foo, Bar as Baz,\n Qux as Norf }\n from 'x';",
"export Default,\n { Foo, Bar as Baz,\n Qux as Norf, }\n from 'x';",
"export Default,\n { Foo as Bar,\n Baz as Qux,\n Norf as NoMore\n }\n from 'x';",
"export Default,\n { Foo as Bar,\n Baz as Qux,\n Norf as NoMore,\n }\n from 'x';",
"export Default\n , { } from 'x';",
// require
'require("x")',
'require("y")',
@ -628,6 +817,195 @@ describe('HasteDependencyResolver', function() {
"import Default,\n { Foo as Bar,\n Baz as Qux,\n Norf as NoMore\n }\n from 'changed';",
"import Default,\n { Foo as Bar,\n Baz as Qux,\n Norf as NoMore,\n }\n from 'changed';",
"import Default\n , { } from 'changed';",
// single line export
"export'x';",
"export 'changed';",
"export 'changed' ;",
"export Default from 'changed';",
"export * as All from 'changed';",
"export {} from 'changed';",
"export { } from 'changed';",
"export {Foo} from 'changed';",
"export { Foo } from 'changed';",
"export { Foo, } from 'changed';",
"export {Foo as Bar} from 'changed';",
"export { Foo as Bar } from 'changed';",
"export { Foo as Bar, } from 'changed';",
"export { Foo, Bar } from 'changed';",
"export { Foo, Bar, } from 'changed';",
"export { Foo as Bar, Baz } from 'changed';",
"export { Foo as Bar, Baz, } from 'changed';",
"export { Foo, Bar as Baz } from 'changed';",
"export { Foo, Bar as Baz, } from 'changed';",
"export { Foo as Bar, Baz as Qux } from 'changed';",
"export { Foo as Bar, Baz as Qux, } from 'changed';",
"export { Foo, Bar, Baz } from 'changed';",
"export { Foo, Bar, Baz, } from 'changed';",
"export { Foo as Bar, Baz, Qux } from 'changed';",
"export { Foo as Bar, Baz, Qux, } from 'changed';",
"export { Foo, Bar as Baz, Qux } from 'changed';",
"export { Foo, Bar as Baz, Qux, } from 'changed';",
"export { Foo, Bar, Baz as Qux } from 'changed';",
"export { Foo, Bar, Baz as Qux, } from 'changed';",
"export { Foo as Bar, Baz as Qux, Norf } from 'changed';",
"export { Foo as Bar, Baz as Qux, Norf, } from 'changed';",
"export { Foo as Bar, Baz, Qux as Norf } from 'changed';",
"export { Foo as Bar, Baz, Qux as Norf, } from 'changed';",
"export { Foo, Bar as Baz, Qux as Norf } from 'changed';",
"export { Foo, Bar as Baz, Qux as Norf, } from 'changed';",
"export { Foo as Bar, Baz as Qux, Norf as Enuf } from 'changed';",
"export { Foo as Bar, Baz as Qux, Norf as Enuf, } from 'changed';",
"export Default, * as All from 'changed';",
"export Default, { } from 'changed';",
"export Default, { Foo } from 'changed';",
"export Default, { Foo, } from 'changed';",
"export Default, { Foo as Bar } from 'changed';",
"export Default, { Foo as Bar, } from 'changed';",
"export Default, { Foo, Bar } from 'changed';",
"export Default, { Foo, Bar, } from 'changed';",
"export Default, { Foo as Bar, Baz } from 'changed';",
"export Default, { Foo as Bar, Baz, } from 'changed';",
"export Default, { Foo, Bar as Baz } from 'changed';",
"export Default, { Foo, Bar as Baz, } from 'changed';",
"export Default, { Foo as Bar, Baz as Qux } from 'changed';",
"export Default, { Foo as Bar, Baz as Qux, } from 'changed';",
"export Default, { Foo, Bar, Baz } from 'changed';",
"export Default, { Foo, Bar, Baz, } from 'changed';",
"export Default, { Foo as Bar, Baz, Qux } from 'changed';",
"export Default, { Foo as Bar, Baz, Qux, } from 'changed';",
"export Default, { Foo, Bar as Baz, Qux } from 'changed';",
"export Default, { Foo, Bar as Baz, Qux, } from 'changed';",
"export Default, { Foo, Bar, Baz as Qux } from 'changed';",
"export Default, { Foo, Bar, Baz as Qux, } from 'changed';",
"export Default, { Foo as Bar, Baz as Qux, Norf } from 'changed';",
"export Default, { Foo as Bar, Baz as Qux, Norf, } from 'changed';",
"export Default, { Foo as Bar, Baz, Qux as Norf } from 'changed';",
"export Default, { Foo as Bar, Baz, Qux as Norf, } from 'changed';",
"export Default, { Foo, Bar as Baz, Qux as Norf } from 'changed';",
"export Default, { Foo, Bar as Baz, Qux as Norf, } from 'changed';",
"export Default, { Foo as Bar, Baz as Qux, Norf as NoMore } from 'changed';",
"export Default, { Foo as Bar, Baz as Qux, Norf as NoMore, } from 'changed';",
"export Default , { } from 'changed';",
'export "changed";',
'export Default from "changed";',
'export * as All from "changed";',
'export { } from "changed";',
'export { Foo } from "changed";',
'export { Foo, } from "changed";',
'export { Foo as Bar } from "changed";',
'export { Foo as Bar, } from "changed";',
'export { Foo, Bar } from "changed";',
'export { Foo, Bar, } from "changed";',
'export { Foo as Bar, Baz } from "changed";',
'export { Foo as Bar, Baz, } from "changed";',
'export { Foo, Bar as Baz } from "changed";',
'export { Foo, Bar as Baz, } from "changed";',
'export { Foo as Bar, Baz as Qux } from "changed";',
'export { Foo as Bar, Baz as Qux, } from "changed";',
'export { Foo, Bar, Baz } from "changed";',
'export { Foo, Bar, Baz, } from "changed";',
'export { Foo as Bar, Baz, Qux } from "changed";',
'export { Foo as Bar, Baz, Qux, } from "changed";',
'export { Foo, Bar as Baz, Qux } from "changed";',
'export { Foo, Bar as Baz, Qux, } from "changed";',
'export { Foo, Bar, Baz as Qux } from "changed";',
'export { Foo, Bar, Baz as Qux, } from "changed";',
'export { Foo as Bar, Baz as Qux, Norf } from "changed";',
'export { Foo as Bar, Baz as Qux, Norf, } from "changed";',
'export { Foo as Bar, Baz, Qux as Norf } from "changed";',
'export { Foo as Bar, Baz, Qux as Norf, } from "changed";',
'export { Foo, Bar as Baz, Qux as Norf } from "changed";',
'export { Foo, Bar as Baz, Qux as Norf, } from "changed";',
'export { Foo as Bar, Baz as Qux, Norf as NoMore } from "changed";',
'export { Foo as Bar, Baz as Qux, Norf as NoMore, } from "changed";',
'export Default, * as All from "changed";',
'export Default, { } from "changed";',
'export Default, { Foo } from "changed";',
'export Default, { Foo, } from "changed";',
'export Default, { Foo as Bar } from "changed";',
'export Default, { Foo as Bar, } from "changed";',
'export Default, { Foo, Bar } from "changed";',
'export Default, { Foo, Bar, } from "changed";',
'export Default, { Foo as Bar, Baz } from "changed";',
'export Default, { Foo as Bar, Baz, } from "changed";',
'export Default, { Foo, Bar as Baz } from "changed";',
'export Default, { Foo, Bar as Baz, } from "changed";',
'export Default, { Foo as Bar, Baz as Qux } from "changed";',
'export Default, { Foo as Bar, Baz as Qux, } from "changed";',
'export Default, { Foo, Bar, Baz } from "changed";',
'export Default, { Foo, Bar, Baz, } from "changed";',
'export Default, { Foo as Bar, Baz, Qux } from "changed";',
'export Default, { Foo as Bar, Baz, Qux, } from "changed";',
'export Default, { Foo, Bar as Baz, Qux } from "changed";',
'export Default, { Foo, Bar as Baz, Qux, } from "changed";',
'export Default, { Foo, Bar, Baz as Qux } from "changed";',
'export Default, { Foo, Bar, Baz as Qux, } from "changed";',
'export Default, { Foo as Bar, Baz as Qux, Norf } from "changed";',
'export Default, { Foo as Bar, Baz as Qux, Norf, } from "changed";',
'export Default, { Foo as Bar, Baz, Qux as Norf } from "changed";',
'export Default, { Foo as Bar, Baz, Qux as Norf, } from "changed";',
'export Default, { Foo, Bar as Baz, Qux as Norf } from "changed";',
'export Default, { Foo, Bar as Baz, Qux as Norf, } from "changed";',
'export Default, { Foo as Bar, Baz as Qux, Norf as Enuf } from "changed";',
'export Default, { Foo as Bar, Baz as Qux, Norf as Enuf, } from "changed";',
'export Default from "Y";',
'export * as All from \'z\';',
// export with support for new lines
"export { Foo,\n Bar }\n from 'changed';",
"export { \nFoo,\nBar,\n }\n from 'changed';",
"export { Foo as Bar,\n Baz\n }\n from 'changed';",
"export { \nFoo as Bar,\n Baz\n, }\n from 'changed';",
"export { Foo,\n Bar as Baz\n }\n from 'changed';",
"export { Foo,\n Bar as Baz,\n }\n from 'changed';",
"export { Foo as Bar,\n Baz as Qux\n }\n from 'changed';",
"export { Foo as Bar,\n Baz as Qux,\n }\n from 'changed';",
"export { Foo,\n Bar,\n Baz }\n from 'changed';",
"export { Foo,\n Bar,\n Baz,\n }\n from 'changed';",
"export { Foo as Bar,\n Baz,\n Qux\n }\n from 'changed';",
"export { Foo as Bar,\n Baz,\n Qux,\n }\n from 'changed';",
"export { Foo,\n Bar as Baz,\n Qux\n }\n from 'changed';",
"export { Foo,\n Bar as Baz,\n Qux,\n }\n from 'changed';",
"export { Foo,\n Bar,\n Baz as Qux\n }\n from 'changed';",
"export { Foo,\n Bar,\n Baz as Qux,\n }\n from 'changed';",
"export { Foo as Bar,\n Baz as Qux,\n Norf\n }\n from 'changed';",
"export { Foo as Bar,\n Baz as Qux,\n Norf,\n }\n from 'changed';",
"export { Foo as Bar,\n Baz,\n Qux as Norf\n }\n from 'changed';",
"export { Foo as Bar,\n Baz,\n Qux as Norf,\n }\n from 'changed';",
"export { Foo,\n Bar as Baz,\n Qux as Norf\n }\n from 'changed';",
"export { Foo,\n Bar as Baz,\n Qux as Norf,\n }\n from 'changed';",
"export { Foo as Bar,\n Baz as Qux,\n Norf as Enuf\n }\n from 'changed';",
"export { Foo as Bar,\n Baz as Qux,\n Norf as Enuf,\n }\n from 'changed';",
"export Default,\n * as All from 'changed';",
"export Default,\n { } from 'changed';",
"export Default,\n { Foo\n }\n from 'changed';",
"export Default,\n { Foo,\n }\n from 'changed';",
"export Default,\n { Foo as Bar\n }\n from 'changed';",
"export Default,\n { Foo as Bar,\n }\n from 'changed';",
"export Default,\n { Foo,\n Bar\n } from\n 'changed';",
"export Default,\n { Foo,\n Bar,\n } from\n 'changed';",
"export Default,\n { Foo as Bar,\n Baz\n }\n from 'changed';",
"export Default,\n { Foo as Bar,\n Baz,\n }\n from 'changed';",
"export Default,\n { Foo,\n Bar as Baz\n }\n from 'changed';",
"export Default,\n { Foo,\n Bar as Baz,\n }\n from 'changed';",
"export Default,\n { Foo as Bar,\n Baz as Qux\n }\n from 'changed';",
"export Default,\n { Foo as Bar,\n Baz as Qux,\n }\n from 'changed';",
"export Default,\n { Foo,\n Bar,\n Baz\n }\n from 'changed';",
"export Default,\n { Foo,\n Bar,\n Baz,\n }\n from 'changed';",
"export Default,\n { Foo as Bar,\n Baz,\n Qux\n }\n from 'changed';",
"export Default,\n { Foo as Bar,\n Baz,\n Qux,\n }\n from 'changed';",
"export Default,\n { Foo,\n Bar as Baz,\n Qux\n }\n from 'changed';",
"export Default,\n { Foo,\n Bar as Baz,\n Qux,\n }\n from 'changed';",
"export Default,\n { Foo,\n Bar,\n Baz as Qux\n }\n from 'changed';",
"export Default,\n { Foo,\n Bar,\n Baz as Qux,\n }\n from 'changed';",
"export Default,\n { Foo as Bar,\n Baz as Qux,\n Norf\n }\n from 'changed';",
"export Default,\n { Foo as Bar,\n Baz as Qux,\n Norf,\n }\n from 'changed';",
"export Default,\n { Foo as Bar,\n Baz,\n Qux as Norf }\n from 'changed';",
"export Default,\n { Foo as Bar,\n Baz,\n Qux as Norf, }\n from 'changed';",
"export Default,\n { Foo, Bar as Baz,\n Qux as Norf }\n from 'changed';",
"export Default,\n { Foo, Bar as Baz,\n Qux as Norf, }\n from 'changed';",
"export Default,\n { Foo as Bar,\n Baz as Qux,\n Norf as NoMore\n }\n from 'changed';",
"export Default,\n { Foo as Bar,\n Baz as Qux,\n Norf as NoMore,\n }\n from 'changed';",
"export Default\n , { } from 'changed';",
// require
'require("changed")',
'require("Y")',

Просмотреть файл

@ -149,6 +149,7 @@ HasteDependencyResolver.prototype.wrapModule = function(resolutionResponse, modu
return module.getName().then(
name => defineModuleCode({
code: code.replace(replacePatterns.IMPORT_RE, relativizeCode)
.replace(replacePatterns.EXPORT_RE, relativizeCode)
.replace(replacePatterns.REQUIRE_RE, relativizeCode),
moduleName: name,
})

Просмотреть файл

@ -10,6 +10,6 @@
'use strict';
exports.IMPORT_RE = /(\bimport\s+(?:[^'"]+\s+from\s+)??)(['"])([^'"]+)(\2)/g;
exports.EXPORT_RE = /(\bexport\s+(?:[^'"]+\s+from\s+)??)(['"])([^'"]+)(\2)/g;
exports.REQUIRE_RE = /(\brequire\s*?\(\s*?)(['"])([^'"]+)(\2\s*?\))/g;
exports.SYSTEM_IMPORT_RE = /(\bSystem\.import\s*?\(\s*?)(['"])([^'"]+)(\2\s*?\))/g;