Expose a 'lazy' option for the CommonJS transform.

This commit is contained in:
Logan Smyth
2017-11-30 11:53:22 -08:00
parent b900a3e5c2
commit 53826aaaa0
56 changed files with 553 additions and 18 deletions

View File

@@ -0,0 +1,3 @@
import foo from "foo";
console.log(foo);

View File

@@ -0,0 +1,13 @@
"use strict";
function _foo() {
const data = babelHelpers.interopRequireDefault(require("foo"));
_foo = function () {
return data;
};
return data;
}
console.log(_foo().default);

View File

@@ -0,0 +1,3 @@
import { foo } from "foo";
console.log(foo);

View File

@@ -0,0 +1,13 @@
"use strict";
function _foo() {
const data = require("foo");
_foo = function () {
return data;
};
return data;
}
console.log(_foo().foo);

View File

@@ -0,0 +1,3 @@
import * as foo from "foo";
console.log(foo);

View File

@@ -0,0 +1,13 @@
"use strict";
function foo() {
const data = babelHelpers.interopRequireWildcard(require("foo"));
foo = function () {
return data;
};
return data;
}
console.log(foo());

View File

@@ -0,0 +1,6 @@
{
"plugins": [
"external-helpers",
["transform-modules-commonjs", { "lazy": true }]
]
}

View File

@@ -0,0 +1 @@
export * from "foo";

View File

@@ -0,0 +1,17 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _foo = require("foo");
Object.keys(_foo).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _foo[key];
}
});
});

View File

@@ -0,0 +1,2 @@
import foo from "foo";
export { foo as default };

View File

@@ -0,0 +1,21 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "default", {
enumerable: true,
get: function () {
return _foo().default;
}
});
function _foo() {
const data = babelHelpers.interopRequireDefault(require("foo"));
_foo = function () {
return data;
};
return data;
}

View File

@@ -0,0 +1,2 @@
import { named } from "foo";
export { named };

View File

@@ -0,0 +1,21 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "named", {
enumerable: true,
get: function () {
return _foo().named;
}
});
function _foo() {
const data = require("foo");
_foo = function () {
return data;
};
return data;
}

View File

@@ -0,0 +1,2 @@
import * as namespace from "foo";
export { namespace };

View File

@@ -0,0 +1,23 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.namespace = void 0;
function namespace() {
const data = babelHelpers.interopRequireWildcard(require("foo"));
namespace = function () {
return data;
};
return data;
}
Object.defineProperty(exports, "namespace", {
enumerable: true,
get: function () {
return namespace();
}
});

View File

@@ -0,0 +1 @@
import "foo";

View File

@@ -0,0 +1,3 @@
"use strict";
require("foo");

View File

@@ -0,0 +1,3 @@
import foo from "./foo";
console.log(foo);

View File

@@ -0,0 +1,5 @@
"use strict";
var _foo = babelHelpers.interopRequireDefault(require("./foo"));
console.log(_foo.default);

View File

@@ -0,0 +1,3 @@
import { foo } from "./foo";
console.log(foo);

View File

@@ -0,0 +1,5 @@
"use strict";
var _foo = require("./foo");
console.log(_foo.foo);

View File

@@ -0,0 +1,3 @@
import * as foo from "./foo";
console.log(foo);

View File

@@ -0,0 +1,4 @@
"use strict";
var foo = babelHelpers.interopRequireWildcard(require("./foo"));
console.log(foo);

View File

@@ -0,0 +1,6 @@
{
"plugins": [
"external-helpers",
["transform-modules-commonjs", { "lazy": true }]
]
}

View File

@@ -0,0 +1 @@
export * from "./foo";

View File

@@ -0,0 +1,17 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _foo = require("./foo");
Object.keys(_foo).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _foo[key];
}
});
});

View File

@@ -0,0 +1,2 @@
import foo from "./foo";
export { foo as default };

View File

@@ -0,0 +1,13 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "default", {
enumerable: true,
get: function () {
return _foo.default;
}
});
var _foo = babelHelpers.interopRequireDefault(require("./foo"));

View File

@@ -0,0 +1,2 @@
import { named } from "./foo";
export { named };

View File

@@ -0,0 +1,13 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "named", {
enumerable: true,
get: function () {
return _foo.named;
}
});
var _foo = require("./foo");

View File

@@ -0,0 +1,2 @@
import * as namespace from "./foo";
export { namespace };

View File

@@ -0,0 +1,8 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.namespace = void 0;
var namespace = babelHelpers.interopRequireWildcard(require("./foo"));
exports.namespace = namespace;

View File

@@ -0,0 +1 @@
import "./a";

View File

@@ -0,0 +1,3 @@
"use strict";
require("./a");

View File

@@ -0,0 +1,7 @@
import foo1 from "white";
console.log(foo1);
import foo2 from "black";
console.log(foo2);

View File

@@ -0,0 +1,16 @@
"use strict";
var _white = babelHelpers.interopRequireDefault(require("white"));
function _black() {
const data = babelHelpers.interopRequireDefault(require("black"));
_black = function () {
return data;
};
return data;
}
console.log(_white.default);
console.log(_black().default);

View File

@@ -0,0 +1,7 @@
import { foo1 } from "white";
console.log(foo1);
import { foo2 } from "black";
console.log(foo2);

View File

@@ -0,0 +1,16 @@
"use strict";
var _white = require("white");
function _black() {
const data = require("black");
_black = function () {
return data;
};
return data;
}
console.log(_white.foo1);
console.log(_black().foo2);

View File

@@ -0,0 +1,7 @@
import * as foo1 from "white";
console.log(foo1);
import * as foo2 from "black";
console.log(foo2);

View File

@@ -0,0 +1,16 @@
"use strict";
var foo1 = babelHelpers.interopRequireWildcard(require("white"));
function foo2() {
const data = babelHelpers.interopRequireWildcard(require("black"));
foo2 = function () {
return data;
};
return data;
}
console.log(foo1);
console.log(foo2());

View File

@@ -0,0 +1,6 @@
{
"plugins": [
"external-helpers",
["transform-modules-commonjs", { "lazy": ["white"] }]
]
}

View File

@@ -0,0 +1,3 @@
export * from "white";
export * from "black";

View File

@@ -0,0 +1,29 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _white = require("white");
Object.keys(_white).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _white[key];
}
});
});
var _black = require("black");
Object.keys(_black).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _black[key];
}
});
});

View File

@@ -0,0 +1,2 @@
import foo from "white";
export { foo as default };

View File

@@ -0,0 +1,13 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "default", {
enumerable: true,
get: function () {
return _white.default;
}
});
var _white = babelHelpers.interopRequireDefault(require("white"));

View File

@@ -0,0 +1,5 @@
import { named1 } from "white";
export { named1 };
import { named2 } from "black";
export { named2 };

View File

@@ -0,0 +1,29 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "named1", {
enumerable: true,
get: function () {
return _white.named1;
}
});
Object.defineProperty(exports, "named2", {
enumerable: true,
get: function () {
return _black().named2;
}
});
var _white = require("white");
function _black() {
const data = require("black");
_black = function () {
return data;
};
return data;
}

View File

@@ -0,0 +1,5 @@
import * as namespace1 from "white";
export { namespace1 };
import * as namespace2 from "black";
export { namespace2 };

View File

@@ -0,0 +1,25 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.namespace2 = exports.namespace1 = void 0;
var namespace1 = babelHelpers.interopRequireWildcard(require("white"));
exports.namespace1 = namespace1;
function namespace2() {
const data = babelHelpers.interopRequireWildcard(require("black"));
namespace2 = function () {
return data;
};
return data;
}
Object.defineProperty(exports, "namespace2", {
enumerable: true,
get: function () {
return namespace2();
}
});

View File

@@ -0,0 +1,2 @@
import "white";
import "black";

View File

@@ -0,0 +1,5 @@
"use strict";
require("white");
require("black");