91 lines
2.3 KiB
JavaScript
91 lines
2.3 KiB
JavaScript
var outputFile = require("output-file-sync");
|
|
var each = require("lodash/collection/each");
|
|
var fs = require("fs");
|
|
|
|
var coreDefinitions = require("babel-plugin-transform-runtime").definitions;
|
|
|
|
var paths = ["is-iterable", "get-iterator"];
|
|
|
|
each(coreDefinitions.builtins, function (path) {
|
|
paths.push(path);
|
|
});
|
|
|
|
each(coreDefinitions.methods, function (props) {
|
|
each(props, function (path) {
|
|
paths.push(path);
|
|
});
|
|
});
|
|
|
|
each(paths, function (path) {
|
|
writeFile("core-js/" + path + ".js", defaultify('require("core-js/library/fn/' + path + '")'));
|
|
});
|
|
|
|
|
|
var template = require("babel-template");
|
|
var helpers = require("babel-helpers");
|
|
var babel = require("../../babel-core");
|
|
var util = require("../../babel-core/lib/util");
|
|
var t = require("../../babel-types");
|
|
|
|
function relative(filename) {
|
|
return __dirname + "/../" + filename;
|
|
}
|
|
|
|
function readFile(filename, shouldDefaultify) {
|
|
var file = fs.readFileSync(require.resolve(filename), "utf8");
|
|
|
|
if (shouldDefaultify) {
|
|
file += "\n" + defaultify("module.exports") + "\n";
|
|
}
|
|
|
|
return file;
|
|
}
|
|
|
|
function defaultify(name) {
|
|
return 'module.exports = { "default": ' + name + ', __esModule: true };';
|
|
}
|
|
|
|
function writeRootFile(filename, content) {
|
|
filename = relative(filename);
|
|
console.log(filename);
|
|
outputFile(filename, content);
|
|
}
|
|
|
|
var buildHelperHead = template("exports.default = HELPER; exports.__esModule = true;");
|
|
|
|
function writeFile(filename, content) {
|
|
return writeRootFile(filename, content);
|
|
}
|
|
|
|
var transformOpts = {
|
|
presets: [
|
|
require("../../babel-preset-es2015")
|
|
],
|
|
|
|
plugins: [
|
|
require("../../babel-plugin-transform-runtime"),
|
|
require("../../babel-plugin-transform-es2015-modules-commonjs")
|
|
]
|
|
};
|
|
|
|
function selfContainify(code) {
|
|
return babel.transform(code, transformOpts).code;
|
|
}
|
|
|
|
function buildHelper(helperName) {
|
|
var tree = t.program(
|
|
buildHelperHead({
|
|
HELPER: helpers.get(helperName)
|
|
})
|
|
);
|
|
|
|
return babel.transformFromAst(tree, null, transformOpts).code;
|
|
}
|
|
|
|
each(helpers.list, function (helperName) {
|
|
writeFile("helpers/" + helperName + ".js", buildHelper(helperName));
|
|
});
|
|
|
|
writeFile("regenerator/index.js", readFile("regenerator/runtime-module", true));
|
|
writeFile("regenerator/runtime.js", selfContainify(readFile("regenerator/runtime")));
|