/
generate.js
37 lines (29 loc) · 1015 Bytes
/
generate.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
35
36
37
// @flow
const pluginConfig = require("./pluginConfig.json");
const path = require("path");
const chalk = require("chalk");
const camelCase = require("lodash/camelCase");
const format = require("../../../scripts/utils/formatCode");
const writeFile = require("../../../scripts/utils/writeFileAndMkDir");
const outputFile = path.join(__dirname, "../src/generated/plugins.js");
console.log("Generating @babel/standalone files");
let imports = "";
let list = "";
let allList = "";
for (const plugin of pluginConfig) {
const camelPlugin = camelCase(plugin);
imports += `import ${camelPlugin} from "@babel/plugin-${plugin}";`;
list += `${camelPlugin},`;
allList += `"${plugin}": ${camelPlugin},`;
}
const fileContent = `
/*
* This file is auto-generated! Do not modify it directly.
* To re-generate run 'make build'
*/
${imports}
export {${list}};
export const all = {${allList}};
`;
writeFile(outputFile, format(fileContent, outputFile));
console.log(` ${chalk.green("✔")} Generated plugin list`);