move runtime helpers to separate modules - babel/ember-cli-babel#24
This commit is contained in:
parent
958fa282f4
commit
6f53980bfc
1
.gitignore
vendored
1
.gitignore
vendored
@ -12,5 +12,6 @@ coverage
|
||||
dist
|
||||
.package.json
|
||||
packages/babel-runtime/*.js
|
||||
packages/babel-runtime/helpers/*.js
|
||||
packages/babel-runtime/regenerator/*.js
|
||||
lib
|
||||
|
||||
0
packages/babel-runtime/helpers/.gitkeep
Normal file
0
packages/babel-runtime/helpers/.gitkeep
Normal file
@ -1,11 +1,12 @@
|
||||
"use strict";
|
||||
|
||||
var transform = require("../lib/babel/transformation");
|
||||
var buildHelpers = require("../lib/babel/build-helpers");
|
||||
var util = require("../lib/babel/util");
|
||||
var fs = require("fs");
|
||||
var t = require("../lib/babel/types");
|
||||
var _ = require("lodash");
|
||||
var transform = require("../lib/babel/transformation");
|
||||
var each = require("lodash/collection/each");
|
||||
var File = require("../lib/babel/transformation/file");
|
||||
var util = require("../lib/babel/util");
|
||||
var fs = require("fs");
|
||||
var t = require("../lib/babel/types");
|
||||
var _ = require("lodash");
|
||||
|
||||
var relative = function (filename) {
|
||||
return __dirname + "/babel-runtime/" + filename;
|
||||
@ -39,22 +40,26 @@ var updatePackage = function () {
|
||||
|
||||
var selfContainify = function (code) {
|
||||
return transform(code, {
|
||||
optional: ["selfContained"]
|
||||
optional: ["runtime"]
|
||||
}).code;
|
||||
};
|
||||
|
||||
var buildHelpers2 = function () {
|
||||
var body = util.template("self-contained-helpers-head");
|
||||
var tree = t.program(body);
|
||||
|
||||
buildHelpers(body, t.identifier("helpers"));
|
||||
var buildHelper = function (helperName) {
|
||||
var tree = t.program(
|
||||
util.template("self-contained-helpers-head", {
|
||||
HELPER: util.template(helperName)
|
||||
})
|
||||
);
|
||||
|
||||
return transform.fromAst(tree, null, {
|
||||
optional: ["selfContained"]
|
||||
optional: ["runtime"]
|
||||
}).code;
|
||||
};
|
||||
|
||||
writeFile("helpers.js", buildHelpers2());
|
||||
each(File.helpers, function (helperName) {
|
||||
writeFile("helpers/" + helperName + ".js", buildHelper(helperName));
|
||||
});
|
||||
|
||||
writeFile("core-js.js", readFile("core-js/library", true));
|
||||
writeFile("regenerator/index.js", readFile("regenerator-babel/runtime-module", true));
|
||||
writeFile("regenerator/runtime.js", selfContainify(readFile("regenerator-babel/runtime")));
|
||||
|
||||
@ -1,7 +1,8 @@
|
||||
import buildHelpers from "./build-helpers";
|
||||
import generator from "./generation";
|
||||
import * as messages from "./messages";
|
||||
import * as util from "./util";
|
||||
import File from "./transformation/file";
|
||||
import each from "lodash/collection/each";
|
||||
import t from "./types";
|
||||
|
||||
function buildGlobal(namespace, builder) {
|
||||
@ -49,8 +50,20 @@ function buildVar(namespace, builder) {
|
||||
return t.program(body);
|
||||
}
|
||||
|
||||
function buildHelpers(body, namespace, whitelist = []) {
|
||||
each(File.helpers, function (name) {
|
||||
if (whitelist.length && whitelist.indexOf(name) === -1) return;
|
||||
|
||||
var key = t.identifier(t.toIdentifier(name));
|
||||
body.push(t.expressionStatement(
|
||||
t.assignmentExpression("=", t.memberExpression(namespace, key), util.template(name))
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
export default function (whitelist, outputType = "global") {
|
||||
var namespace = t.identifier("babelHelpers");
|
||||
|
||||
var builder = function (body) {
|
||||
return buildHelpers(body, namespace, whitelist);
|
||||
};
|
||||
|
||||
@ -1,15 +0,0 @@
|
||||
import File from "./transformation/file";
|
||||
import * as util from "./util";
|
||||
import each from "lodash/collection/each";
|
||||
import t from "./types";
|
||||
|
||||
export default function (body, namespace, whitelist = []) {
|
||||
each(File.helpers, function (name) {
|
||||
if (whitelist.length && whitelist.indexOf(name) === -1) return;
|
||||
|
||||
var key = t.identifier(t.toIdentifier(name));
|
||||
body.push(t.expressionStatement(
|
||||
t.assignmentExpression("=", t.memberExpression(namespace, key), util.template(name))
|
||||
));
|
||||
});
|
||||
};
|
||||
@ -377,10 +377,15 @@ export default class File {
|
||||
|
||||
this.usedHelpers[name] = true;
|
||||
|
||||
var generator = this.get("helperGenerator");
|
||||
var runtime = this.get("helpersNamespace");
|
||||
if (runtime) {
|
||||
name = t.identifier(t.toIdentifier(name));
|
||||
return t.memberExpression(runtime, name);
|
||||
if (runtime || generator) {
|
||||
var id = t.identifier(t.toIdentifier(name));
|
||||
if (generator) {
|
||||
return generator(name, id);
|
||||
} else {
|
||||
return t.memberExpression(runtime, id);
|
||||
}
|
||||
} else {
|
||||
var ref = util.template(name);
|
||||
ref._compact = true;
|
||||
|
||||
@ -1,2 +1,2 @@
|
||||
var helpers = exports.default = {};
|
||||
exports.default = HELPER;
|
||||
exports.__esModule = true;
|
||||
|
||||
@ -81,8 +81,8 @@ export function Program(node, parent, scope, file) {
|
||||
}
|
||||
|
||||
export function pre(file) {
|
||||
file.setDynamic("helpersNamespace", function () {
|
||||
return file.addImport("babel-runtime/helpers", "babelHelpers");
|
||||
file.set("helperGenerator", function (name, id) {
|
||||
return file.addImport("babel-runtime/helpers/" + name, id);
|
||||
});
|
||||
|
||||
file.setDynamic("coreIdentifier", function () {
|
||||
|
||||
@ -4,7 +4,7 @@ var _core = require("babel-runtime/core-js")["default"];
|
||||
|
||||
var _regeneratorRuntime = require("babel-runtime/regenerator")["default"];
|
||||
|
||||
var _babelHelpers = require("babel-runtime/helpers")["default"];
|
||||
var _interopRequire = require("babel-runtime/helpers/interop-require")["default"];
|
||||
|
||||
var giveWord = _regeneratorRuntime.mark(function giveWord() {
|
||||
return _regeneratorRuntime.wrap(function giveWord$(context$1$0) {
|
||||
@ -24,9 +24,9 @@ exports.giveWord = giveWord;
|
||||
|
||||
var _someModule = require("someModule");
|
||||
|
||||
var foo = _babelHelpers.interopRequire(_someModule);
|
||||
var foo = _interopRequire(_someModule);
|
||||
|
||||
var bar = _babelHelpers.interopRequireWildcard(_someModule);
|
||||
var bar = _interopRequire(_someModule);
|
||||
|
||||
var myWord = _core.Symbol("abc");
|
||||
exports.myWord = myWord;
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
define(["exports", "foo", "babel-runtime/helpers"], function (exports, _foo, _babelRuntimeHelpers) {
|
||||
define(["exports", "foo", "babel-runtime/helpers/interop-require"], function (exports, _foo, _babelRuntimeHelpersInteropRequire) {
|
||||
"use strict";
|
||||
|
||||
var _babelHelpers = _babelRuntimeHelpers["default"];
|
||||
var _interopRequire = _babelRuntimeHelpersInteropRequire["default"];
|
||||
|
||||
var foo = _babelHelpers.interopRequire(_foo);
|
||||
var foo = _interopRequire(_foo);
|
||||
});
|
||||
@ -1,5 +1,5 @@
|
||||
"use strict";
|
||||
|
||||
var _babelHelpers = require("babel-runtime/helpers")["default"];
|
||||
var _interopRequire = require("babel-runtime/helpers/interop-require")["default"];
|
||||
|
||||
var foo = _babelHelpers.interopRequire(require("foo"));
|
||||
var foo = _interopRequire(require("foo"));
|
||||
@ -1,14 +1,14 @@
|
||||
System.register(["babel-runtime/helpers"], function (_export) {
|
||||
var _babelHelpers;
|
||||
System.register(["babel-runtime/helpers/to-consumable-array"], function (_export) {
|
||||
var _toConsumableArray;
|
||||
|
||||
return {
|
||||
setters: [function (_babelRuntimeHelpers) {
|
||||
_babelHelpers = _babelRuntimeHelpers["default"];
|
||||
setters: [function (_babelRuntimeHelpersToConsumableArray) {
|
||||
_toConsumableArray = _babelRuntimeHelpersToConsumableArray["default"];
|
||||
}],
|
||||
execute: function () {
|
||||
"use strict";
|
||||
|
||||
foo.apply(undefined, _babelHelpers.toConsumableArray(bar));
|
||||
foo.apply(undefined, _toConsumableArray(bar));
|
||||
}
|
||||
};
|
||||
});
|
||||
@ -1,13 +1,13 @@
|
||||
(function (factory) {
|
||||
if (typeof define === "function" && define.amd) {
|
||||
define(["exports", "foo", "babel-runtime/helpers"], factory);
|
||||
define(["exports", "foo", "babel-runtime/helpers/interop-require"], factory);
|
||||
} else if (typeof exports !== "undefined") {
|
||||
factory(exports, require("foo"), require("babel-runtime/helpers"));
|
||||
factory(exports, require("foo"), require("babel-runtime/helpers/interop-require"));
|
||||
}
|
||||
})(function (exports, _foo, _babelRuntimeHelpers) {
|
||||
})(function (exports, _foo, _babelRuntimeHelpersInteropRequire) {
|
||||
"use strict";
|
||||
|
||||
var _babelHelpers = _babelRuntimeHelpers["default"];
|
||||
var _interopRequire = _babelRuntimeHelpersInteropRequire["default"];
|
||||
|
||||
var foo = _babelHelpers.interopRequire(_foo);
|
||||
var foo = _interopRequire(_foo);
|
||||
});
|
||||
Loading…
x
Reference in New Issue
Block a user