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
|
dist
|
||||||
.package.json
|
.package.json
|
||||||
packages/babel-runtime/*.js
|
packages/babel-runtime/*.js
|
||||||
|
packages/babel-runtime/helpers/*.js
|
||||||
packages/babel-runtime/regenerator/*.js
|
packages/babel-runtime/regenerator/*.js
|
||||||
lib
|
lib
|
||||||
|
|||||||
0
packages/babel-runtime/helpers/.gitkeep
Normal file
0
packages/babel-runtime/helpers/.gitkeep
Normal file
@ -1,11 +1,12 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
var transform = require("../lib/babel/transformation");
|
var transform = require("../lib/babel/transformation");
|
||||||
var buildHelpers = require("../lib/babel/build-helpers");
|
var each = require("lodash/collection/each");
|
||||||
var util = require("../lib/babel/util");
|
var File = require("../lib/babel/transformation/file");
|
||||||
var fs = require("fs");
|
var util = require("../lib/babel/util");
|
||||||
var t = require("../lib/babel/types");
|
var fs = require("fs");
|
||||||
var _ = require("lodash");
|
var t = require("../lib/babel/types");
|
||||||
|
var _ = require("lodash");
|
||||||
|
|
||||||
var relative = function (filename) {
|
var relative = function (filename) {
|
||||||
return __dirname + "/babel-runtime/" + filename;
|
return __dirname + "/babel-runtime/" + filename;
|
||||||
@ -39,22 +40,26 @@ var updatePackage = function () {
|
|||||||
|
|
||||||
var selfContainify = function (code) {
|
var selfContainify = function (code) {
|
||||||
return transform(code, {
|
return transform(code, {
|
||||||
optional: ["selfContained"]
|
optional: ["runtime"]
|
||||||
}).code;
|
}).code;
|
||||||
};
|
};
|
||||||
|
|
||||||
var buildHelpers2 = function () {
|
var buildHelper = function (helperName) {
|
||||||
var body = util.template("self-contained-helpers-head");
|
var tree = t.program(
|
||||||
var tree = t.program(body);
|
util.template("self-contained-helpers-head", {
|
||||||
|
HELPER: util.template(helperName)
|
||||||
buildHelpers(body, t.identifier("helpers"));
|
})
|
||||||
|
);
|
||||||
|
|
||||||
return transform.fromAst(tree, null, {
|
return transform.fromAst(tree, null, {
|
||||||
optional: ["selfContained"]
|
optional: ["runtime"]
|
||||||
}).code;
|
}).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("core-js.js", readFile("core-js/library", true));
|
||||||
writeFile("regenerator/index.js", readFile("regenerator-babel/runtime-module", true));
|
writeFile("regenerator/index.js", readFile("regenerator-babel/runtime-module", true));
|
||||||
writeFile("regenerator/runtime.js", selfContainify(readFile("regenerator-babel/runtime")));
|
writeFile("regenerator/runtime.js", selfContainify(readFile("regenerator-babel/runtime")));
|
||||||
|
|||||||
@ -1,7 +1,8 @@
|
|||||||
import buildHelpers from "./build-helpers";
|
|
||||||
import generator from "./generation";
|
import generator from "./generation";
|
||||||
import * as messages from "./messages";
|
import * as messages from "./messages";
|
||||||
import * as util from "./util";
|
import * as util from "./util";
|
||||||
|
import File from "./transformation/file";
|
||||||
|
import each from "lodash/collection/each";
|
||||||
import t from "./types";
|
import t from "./types";
|
||||||
|
|
||||||
function buildGlobal(namespace, builder) {
|
function buildGlobal(namespace, builder) {
|
||||||
@ -49,8 +50,20 @@ function buildVar(namespace, builder) {
|
|||||||
return t.program(body);
|
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") {
|
export default function (whitelist, outputType = "global") {
|
||||||
var namespace = t.identifier("babelHelpers");
|
var namespace = t.identifier("babelHelpers");
|
||||||
|
|
||||||
var builder = function (body) {
|
var builder = function (body) {
|
||||||
return buildHelpers(body, namespace, whitelist);
|
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;
|
this.usedHelpers[name] = true;
|
||||||
|
|
||||||
|
var generator = this.get("helperGenerator");
|
||||||
var runtime = this.get("helpersNamespace");
|
var runtime = this.get("helpersNamespace");
|
||||||
if (runtime) {
|
if (runtime || generator) {
|
||||||
name = t.identifier(t.toIdentifier(name));
|
var id = t.identifier(t.toIdentifier(name));
|
||||||
return t.memberExpression(runtime, name);
|
if (generator) {
|
||||||
|
return generator(name, id);
|
||||||
|
} else {
|
||||||
|
return t.memberExpression(runtime, id);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
var ref = util.template(name);
|
var ref = util.template(name);
|
||||||
ref._compact = true;
|
ref._compact = true;
|
||||||
|
|||||||
@ -1,2 +1,2 @@
|
|||||||
var helpers = exports.default = {};
|
exports.default = HELPER;
|
||||||
exports.__esModule = true;
|
exports.__esModule = true;
|
||||||
|
|||||||
@ -81,8 +81,8 @@ export function Program(node, parent, scope, file) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function pre(file) {
|
export function pre(file) {
|
||||||
file.setDynamic("helpersNamespace", function () {
|
file.set("helperGenerator", function (name, id) {
|
||||||
return file.addImport("babel-runtime/helpers", "babelHelpers");
|
return file.addImport("babel-runtime/helpers/" + name, id);
|
||||||
});
|
});
|
||||||
|
|
||||||
file.setDynamic("coreIdentifier", function () {
|
file.setDynamic("coreIdentifier", function () {
|
||||||
|
|||||||
@ -4,7 +4,7 @@ var _core = require("babel-runtime/core-js")["default"];
|
|||||||
|
|
||||||
var _regeneratorRuntime = require("babel-runtime/regenerator")["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() {
|
var giveWord = _regeneratorRuntime.mark(function giveWord() {
|
||||||
return _regeneratorRuntime.wrap(function giveWord$(context$1$0) {
|
return _regeneratorRuntime.wrap(function giveWord$(context$1$0) {
|
||||||
@ -24,9 +24,9 @@ exports.giveWord = giveWord;
|
|||||||
|
|
||||||
var _someModule = require("someModule");
|
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");
|
var myWord = _core.Symbol("abc");
|
||||||
exports.myWord = myWord;
|
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";
|
"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";
|
"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) {
|
System.register(["babel-runtime/helpers/to-consumable-array"], function (_export) {
|
||||||
var _babelHelpers;
|
var _toConsumableArray;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
setters: [function (_babelRuntimeHelpers) {
|
setters: [function (_babelRuntimeHelpersToConsumableArray) {
|
||||||
_babelHelpers = _babelRuntimeHelpers["default"];
|
_toConsumableArray = _babelRuntimeHelpersToConsumableArray["default"];
|
||||||
}],
|
}],
|
||||||
execute: function () {
|
execute: function () {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
foo.apply(undefined, _babelHelpers.toConsumableArray(bar));
|
foo.apply(undefined, _toConsumableArray(bar));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
@ -1,13 +1,13 @@
|
|||||||
(function (factory) {
|
(function (factory) {
|
||||||
if (typeof define === "function" && define.amd) {
|
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") {
|
} 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";
|
"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