fixes, run build script in node 0.10 with babel-node (#12)

* fixes, run build script in node 0.10 with babel-node

* try node
This commit is contained in:
Henry Zhu
2016-10-06 17:08:13 -04:00
committed by GitHub
parent 77a6d686ba
commit 6b9404ab52
3 changed files with 69 additions and 28 deletions

View File

@@ -8,7 +8,8 @@
"transform-es2015-block-scoped-functions": {
"chrome": 41,
"firefox": 46,
"safari": 10
"safari": 10,
"node": 4
},
"transform-es2015-block-scoping": {
"chrome": 49,
@@ -19,13 +20,15 @@
"chrome": 46,
"edge": 13,
"firefox": 45,
"safari": 10
"safari": 10,
"node": 5
},
"transform-es2015-computed-properties": {
"chrome": 44,
"edge": 12,
"firefox": 34,
"safari": 10
"safari": 7,
"node": 4
},
"check-es2015-constants": {
"chrome": 49,
@@ -34,12 +37,10 @@
},
"transform-es2015-destructuring": {
"chrome": 51,
"edge": 14,
"safari": 10
},
"transform-es2015-for-of": {
"chrome": 51,
"edge": 14,
"safari": 10
},
"transform-es2015-function-name": {
@@ -49,13 +50,15 @@
"transform-es2015-literals": {
"chrome": 44,
"edge": 12,
"safari": 9
"safari": 9,
"node": 4
},
"transform-es2015-object-super": {
"chrome": 46,
"edge": 13,
"firefox": 45,
"safari": 10
"safari": 10,
"node": 5
},
"transform-es2015-parameters": {
"chrome": 49,
@@ -66,13 +69,15 @@
"chrome": 43,
"edge": 12,
"firefox": 33,
"safari": 9
"safari": 9,
"node": 4
},
"transform-es2015-spread": {
"chrome": 46,
"edge": 13,
"firefox": 36,
"safari": 10
"safari": 10,
"node": 5
},
"transform-es2015-sticky-regex": {
"chrome": 49,
@@ -84,13 +89,15 @@
"chrome": 41,
"edge": 13,
"firefox": 34,
"safari": 9
"safari": 9,
"node": 4
},
"transform-es2015-typeof-symbol": {
"chrome": 38,
"edge": 12,
"firefox": 36,
"safari": 9
"safari": 9,
"node": 0.12
},
"transform-es2015-unicode-regex": {
"chrome": 50,
@@ -108,7 +115,7 @@
"edge": 14
},
"transform-async-to-generator": {
"edge": 14
"chrome": 55
},
"syntax-trailing-function-commas": {
"edge": 14,

View File

@@ -8,8 +8,8 @@
"repository": "https://github.com/babel/babel-preset-env",
"main": "lib/index.js",
"scripts": {
"build": "npm run build-data && babel src -d lib",
"build-data": "node ./scripts/build-data.js",
"build": "babel src -d lib",
"build-data": "babel-node ./scripts/build-data.js",
"dev": "babel -w src -d lib",
"lint": "eslint scripts src test",
"fix": "eslint scripts src test --fix",

View File

@@ -28,32 +28,66 @@ const environments = [
"edge",
"firefox",
"safari",
"node"
];
const envMap = {
safari51: "safari5",
safari71_8: "safari7",
chrome: "chrome19",
chrome19dev: "chrome19",
chrome21dev: "chrome21",
firefox3_5: "firefox3",
firefox3_6: "firefox3",
node012: "node0.12",
node64: "node6",
node65: "node6.5"
};
const getLowestImplementedVersion = ({ features }, env) => {
let tests = flatten(compatibilityTests
.filter((test) => features.indexOf(test.name) >= 0)
.map((test) => {
return test.subtests ?
test.subtests.map((subtest) => subtest.res) :
test.res;
test.subtests.map((subtest) => ({
name: `${test.name}/${subtest.name}`,
res: subtest.res
})) :
{
name: test.name,
res: test.res
};
})
);
const envVersions = versions.filter((version) => version.startsWith(env));
let envTests = tests
.map(({ res: test, name }, i) => {
return Object.keys(test)
.filter((t) => t.startsWith(env))
// TODO: make flagged/etc an options
.filter((test) => tests[i].res[test] === true || tests[i].res[test] === "strict")
// normalize some keys
.map((test) => envMap[test] || test)
.filter((test) => !isNaN(parseInt(test.replace(env, ""))))
.shift();
});
for (let i = 0; i < envVersions.length; i++) {
const version = envVersions[i];
tests = tests.filter((test) =>
test[version] !== true &&
test[version] !== "strict"
);
if (tests.length === 0) {
const number = parseInt(version.replace(env, ""), 10);
return isFinite(number) ? number : null;
}
let envFiltered = envTests.filter((t) => t);
if (envTests.length > envFiltered.length) {
// envTests.forEach((test, i) => {
// if (!test) {
// // print unsupported features
// if (env === 'node') {
// console.log(`ENV(${env}): ${tests[i].name}`);
// }
// }
// });
return null;
}
return null;
return envTests
.map((str) => Number(str.replace(env, "")))
.reduce((a, b) => { return (a < b) ? b : a; });
};
const data = {};