From 123fdfd314912570cf251b13a976463bdb1ca0e8 Mon Sep 17 00:00:00 2001 From: Andrew Anikin Date: Mon, 1 Apr 2019 08:59:12 +0300 Subject: [PATCH] Fix lazy option of babel-plugin-transform-modules-commonjs (#9802) * Fix lazy mode of babel-plugin-transform-modules-commonjs (#9447) * Update output snapshots for lazy mode of babel-plugin-transform-modules-commonjs (#9447) --- .../src/normalize-and-load-metadata.js | 2 +- .../lazy-whitelist/import-default/output.js | 14 +++++++------- .../fixtures/lazy-whitelist/import-named/output.js | 14 +++++++------- .../lazy-whitelist/import-namespace/output.js | 13 ++++++------- .../lazy-whitelist/reexport-default/output.js | 12 ++++++++++-- .../lazy-whitelist/reexport-named/output.js | 14 +++++++------- .../lazy-whitelist/reexport-namespace/output.js | 14 +++++++------- 7 files changed, 45 insertions(+), 38 deletions(-) diff --git a/packages/babel-helper-module-transforms/src/normalize-and-load-metadata.js b/packages/babel-helper-module-transforms/src/normalize-and-load-metadata.js index 15cb4daf0b1b..18fe439ce59e 100644 --- a/packages/babel-helper-module-transforms/src/normalize-and-load-metadata.js +++ b/packages/babel-helper-module-transforms/src/normalize-and-load-metadata.js @@ -288,7 +288,7 @@ function getModuleMetadata( // dependency modules are loaded lazily. metadata.lazy = !/\./.test(source); } else if (Array.isArray(lazy)) { - metadata.lazy = lazy.indexOf(source); + metadata.lazy = lazy.indexOf(source) !== -1; } else if (typeof lazy === "function") { metadata.lazy = lazy(source); } else { diff --git a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/lazy-whitelist/import-default/output.js b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/lazy-whitelist/import-default/output.js index a8f74edadbaa..26619f436931 100644 --- a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/lazy-whitelist/import-default/output.js +++ b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/lazy-whitelist/import-default/output.js @@ -1,16 +1,16 @@ "use strict"; -var _white = babelHelpers.interopRequireDefault(require("white")); +function _white() { + const data = babelHelpers.interopRequireDefault(require("white")); -function _black() { - const data = babelHelpers.interopRequireDefault(require("black")); - - _black = function () { + _white = function () { return data; }; return data; } -console.log(_white.default); -console.log(_black().default); +var _black = babelHelpers.interopRequireDefault(require("black")); + +console.log(_white().default); +console.log(_black.default); diff --git a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/lazy-whitelist/import-named/output.js b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/lazy-whitelist/import-named/output.js index 839569975a87..90c5f2516677 100644 --- a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/lazy-whitelist/import-named/output.js +++ b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/lazy-whitelist/import-named/output.js @@ -1,16 +1,16 @@ "use strict"; -var _white = require("white"); +function _white() { + const data = require("white"); -function _black() { - const data = require("black"); - - _black = function () { + _white = function () { return data; }; return data; } -console.log(_white.foo1); -console.log(_black().foo2); +var _black = require("black"); + +console.log(_white().foo1); +console.log(_black.foo2); diff --git a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/lazy-whitelist/import-namespace/output.js b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/lazy-whitelist/import-namespace/output.js index 848b8cb1d317..208fc75d2196 100644 --- a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/lazy-whitelist/import-namespace/output.js +++ b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/lazy-whitelist/import-namespace/output.js @@ -1,16 +1,15 @@ "use strict"; -var foo1 = babelHelpers.interopRequireDefault(require("white")); +function foo1() { + const data = babelHelpers.interopRequireDefault(require("white")); -function foo2() { - const data = babelHelpers.interopRequireDefault(require("black")); - - foo2 = function () { + foo1 = function () { return data; }; return data; } -console.log(foo1); -console.log(foo2()); +var foo2 = babelHelpers.interopRequireDefault(require("black")); +console.log(foo1()); +console.log(foo2); diff --git a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/lazy-whitelist/reexport-default/output.js b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/lazy-whitelist/reexport-default/output.js index 4286297a7d35..472469de8f99 100644 --- a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/lazy-whitelist/reexport-default/output.js +++ b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/lazy-whitelist/reexport-default/output.js @@ -6,8 +6,16 @@ Object.defineProperty(exports, "__esModule", { Object.defineProperty(exports, "default", { enumerable: true, get: function () { - return _white.default; + return _white().default; } }); -var _white = babelHelpers.interopRequireDefault(require("white")); +function _white() { + const data = babelHelpers.interopRequireDefault(require("white")); + + _white = function () { + return data; + }; + + return data; +} diff --git a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/lazy-whitelist/reexport-named/output.js b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/lazy-whitelist/reexport-named/output.js index 5ef2c0f7bf59..14225e43f309 100644 --- a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/lazy-whitelist/reexport-named/output.js +++ b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/lazy-whitelist/reexport-named/output.js @@ -6,24 +6,24 @@ Object.defineProperty(exports, "__esModule", { Object.defineProperty(exports, "named1", { enumerable: true, get: function () { - return _white.named1; + return _white().named1; } }); Object.defineProperty(exports, "named2", { enumerable: true, get: function () { - return _black().named2; + return _black.named2; } }); -var _white = require("white"); +function _white() { + const data = require("white"); -function _black() { - const data = require("black"); - - _black = function () { + _white = function () { return data; }; return data; } + +var _black = require("black"); diff --git a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/lazy-whitelist/reexport-namespace/output.js b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/lazy-whitelist/reexport-namespace/output.js index 999143700b19..6eaee023ec52 100644 --- a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/lazy-whitelist/reexport-namespace/output.js +++ b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/lazy-whitelist/reexport-namespace/output.js @@ -4,22 +4,22 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.namespace2 = exports.namespace1 = void 0; -var namespace1 = babelHelpers.interopRequireDefault(require("white")); -exports.namespace1 = namespace1; -function namespace2() { - const data = babelHelpers.interopRequireDefault(require("black")); +function namespace1() { + const data = babelHelpers.interopRequireDefault(require("white")); - namespace2 = function () { + namespace1 = function () { return data; }; return data; } -Object.defineProperty(exports, "namespace2", { +Object.defineProperty(exports, "namespace1", { enumerable: true, get: function () { - return namespace2(); + return namespace1(); } }); +var namespace2 = babelHelpers.interopRequireDefault(require("black")); +exports.namespace2 = namespace2;