eslint-generator
Version:
Neural Network Classifier made with TensorFlow.js for classifying EsLint rules usage
56 lines (53 loc) • 1.43 kB
JavaScript
const fs = require("fs");
const yaml = require("js-yaml");
const strip = require("strip-json-comments");
const path = require("path");
module.exports = {
writeFile: function write(file, rules, dir) {
let y = false;
let j = false;
let objFile = {};
try {
let data = fs.readFileSync(file, "utf-8");
try {
objFile = yaml.safeLoad(data);
y = true;
} catch (error) {
let str = strip(data);
try {
objFile = JSON.parse(str);
j = true;
} catch (err) {
objFile = require(file);
j = true;
}
}
} catch (err) {
console.log('Generating File...');
objFile.extends = 'eslint:recommended';
objFile.parser = 'espree';
objFile.parserOptions = {};
objFile.parserOptions.ecmaVersion = 5;
objFile.parserOptions.sourceType = 'script';
objFile.env = {};
objFile.env.browser = true;
}
objFile.rules = {};
for (let i = 0; i < rules.length; i++) {
if (rules[i][1] != "-1") {
objFile.rules[rules[i][0]] = rules[i][1];
}
}
if (y === true) {
fs.writeFileSync(
path.join(dir, ".eslintrc.yaml"),
yaml.safeDump(objFile)
);
} else {
fs.writeFileSync(
path.join(dir, ".eslintrc.json"),
JSON.stringify(objFile)
);
}
}
};