forked from babel/babel
/
build-corejs3-proposals.js
34 lines (27 loc) 路 1.06 KB
/
build-corejs3-proposals.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
const data = require("core-js-compat/data.json");
const fs = require("fs");
const path = require("path");
const features = Object.keys(data);
const shippedProposals = features.filter(feature => {
return feature.startsWith("esnext.") && Object.keys(data[feature]).length > 0;
});
fs.writeFileSync(
path.join(__dirname, "../data/corejs3-shipped-proposals.json"),
JSON.stringify(shippedProposals, undefined, 2) + "\n"
);
const finishedProposals = shippedProposals.filter(feature => {
return features.includes(feature.replace("esnext.", "es."));
});
const builtInDefinitionsPath = path.join(
__dirname,
"../../babel-preset-env/src/polyfills/corejs3/built-in-definitions.js"
);
const builtInDefinitions = fs.readFileSync(builtInDefinitionsPath, "utf-8");
for (const feature of finishedProposals) {
const standardizedName = feature.replace("esnext.", "es.");
if (!builtInDefinitions.includes(standardizedName)) {
console.log(
`${feature} is now standarized as ${standardizedName}, please add "${standardizedName}" to "${builtInDefinitionsPath}"`
);
}
}