sails-generate-eslintrc
Advanced tools
+82
| #!/usr/bin/env node | ||
| /** | ||
| * Module dependencies. | ||
| */ | ||
| var generate = require('./lib/generate'); | ||
| var configure = require('./lib/configure'); | ||
| var _ = require('underscore'); | ||
| var program = require('commander'); | ||
| function list(val) { | ||
| return val.split(','); | ||
| } | ||
| program | ||
| .version('1.1.2') | ||
| .option('-m, --mode <string>', | ||
| 'Set mode for .eslintrc-sails: append, override.' + | ||
| 'Default: Add default globals') | ||
| .option('-g, --globals <items>', | ||
| 'Input globals list, like: sails, mysql', list) | ||
| .option('-f, --folders <items>', | ||
| 'Input global folders list, like: api/controllers, config', list) | ||
| .option('-c, --config <path>', 'Set eslint config file name') | ||
| .option('-p, --preset <string>', 'Set preset coding style, like: google') | ||
| .option('-s, --show [value]', 'Show result') | ||
| .parse(process.argv); | ||
| // var _ = require('underscore'); | ||
| var globals = {}; | ||
| // var eslintrcSails = {}; | ||
| var globalsList = ['sails']; | ||
| // var prefixPath = './'; | ||
| var globalFoldersList = ['api/controllers', 'api/models', 'api/services']; | ||
| var eslintConfigFileName = '.eslintrc'; | ||
| var sailsConfigFileName = '.eslintrc-sails'; | ||
| var preset = 'google'; | ||
| if (program.config) { | ||
| eslintConfigFileName = program.config; | ||
| } | ||
| if (program.preset) { | ||
| preset = program.preset; | ||
| } | ||
| if (program.mode) { | ||
| switch (program.mode.trim()) { | ||
| case 'append': case 'a': | ||
| globalsList = program.globals ? program.globals : []; | ||
| globalFoldersList = program.folders ? program.folders : []; | ||
| globals = generate.addGlobals(globalsList, globalFoldersList); | ||
| generate.appendConfigFile(globals, sailsConfigFileName); | ||
| break; | ||
| case 'override': case 'o': | ||
| globalsList = program.globals ? program.globals : []; | ||
| globalFoldersList = program.folders ? program.folders : []; | ||
| globals = generate.addGlobals(globalsList, globalFoldersList); | ||
| generate.overrideConfigFile(globals, sailsConfigFileName); | ||
| break; | ||
| default: | ||
| globalsList = program.globals ? | ||
| _.uniq(globalsList.concat(program.globals)) : globalsList; | ||
| globalFoldersList = program.folders ? | ||
| _.uniq(globalFoldersList.concat(program.folders)) : globalFoldersList; | ||
| globals = generate.addGlobals(globalsList, globalFoldersList); | ||
| generate.overrideConfigFile(globals, sailsConfigFileName); | ||
| } | ||
| } else { | ||
| globalsList = program.globals ? | ||
| _.uniq(globalsList.concat(program.globals)) : globalsList; | ||
| globalFoldersList = program.folders ? | ||
| _.uniq(globalFoldersList.concat(program.folders)) : globalFoldersList; | ||
| globals = generate.addGlobals(globalsList, globalFoldersList); | ||
| generate.overrideConfigFile(globals, sailsConfigFileName); | ||
| } | ||
| if (program.show) { | ||
| console.log('Added globals: ' + globals); | ||
| } | ||
| configure.configureEslintrc(eslintConfigFileName, sailsConfigFileName, preset); |
| var fs = require('fs'); | ||
| var readline = require('readline'); | ||
| var rl = readline.createInterface({ | ||
| input: process.stdin, | ||
| output: process.stdout | ||
| }); | ||
| var eslintConfigFileName; | ||
| var sailsConfigFileName; | ||
| // preset code style | ||
| var preset; | ||
| var updateEslintrc = function(err, data) { | ||
| if (err) { | ||
| console.log('readFile return error:'); | ||
| console.log(err); | ||
| } else { | ||
| // console.log(data); | ||
| var config = JSON.parse(data); | ||
| // config.globals = _.extend(config.globals, globals); | ||
| if (config.extends.indexOf(sailsConfigFileName) > 0) { | ||
| console.log('add ' + sailsConfigFileName); | ||
| return; | ||
| } | ||
| config.extends = config.extends.concat(sailsConfigFileName); | ||
| // console.log(config); | ||
| fs.writeFileSync(eslintConfigFileName, JSON.stringify(config, null, '\t')); | ||
| console.log('add ' + sailsConfigFileName + | ||
| ' and modify ' + eslintConfigFileName); | ||
| } | ||
| }; | ||
| var establishEslintrc = function(answer) { | ||
| switch (answer.trim()) { | ||
| case 'yes': case 'y': case 'Y': | ||
| fs.open(eslintConfigFileName, 'w', function(err) { | ||
| if (err) { | ||
| console.log(err); | ||
| process.exit(0); | ||
| } | ||
| // console.log(fd); | ||
| console.log(eslintConfigFileName + ' and ' + | ||
| sailsConfigFileName + ' are established'); | ||
| fs.writeFileSync(eslintConfigFileName, | ||
| JSON.stringify({ | ||
| extends: [preset, sailsConfigFileName] | ||
| }, null, '\t')); | ||
| }); | ||
| break; | ||
| case 'no': case 'n': case 'N': | ||
| console.log('Please establish ' + eslintConfigFileName + ' first!'); | ||
| break; | ||
| default: | ||
| console.log('Please establish ' + eslintConfigFileName + ' first!'); | ||
| break; | ||
| } | ||
| rl.close(); | ||
| }; | ||
| exports.configureEslintrc = function(eFileName, sFileName, presetCodeStyle) { | ||
| eslintConfigFileName = eFileName; | ||
| sailsConfigFileName = sFileName; | ||
| preset = presetCodeStyle; | ||
| fs.exists(eslintConfigFileName, function(exists) { | ||
| if (exists) { | ||
| fs.readFile(eslintConfigFileName, 'utf-8', updateEslintrc); | ||
| rl.close(); | ||
| } else { | ||
| console.log(eslintConfigFileName + ' is not exists!'); | ||
| rl.question('Do you want to establish config file named ' + | ||
| eslintConfigFileName + | ||
| ' and set google as default coding style(yes/no): ', | ||
| establishEslintrc); | ||
| } | ||
| }); | ||
| }; |
| var _ = require('underscore'); | ||
| var fs = require('fs'); | ||
| // add globals default | ||
| exports.addGlobals = function(globalsList, globalFoldersList) { | ||
| var i; | ||
| var globals = {}; | ||
| var globalFilesList = []; | ||
| // add all file names | ||
| for (i = 0; i < globalFoldersList.length; i++) { | ||
| globalFilesList = globalFilesList.concat( | ||
| fs.readdirSync(globalFoldersList[i]) | ||
| ); | ||
| } | ||
| // choose js file to add in globals | ||
| for (i = 0; i < globalFilesList.length; i++) { | ||
| var fileName = globalFilesList[i]; | ||
| var suffix = fileName.substring(fileName.length - 3, fileName.length); | ||
| if (suffix === '.js' || suffix === '.JS') { | ||
| globalsList.push(fileName.substring(0, fileName.length - 3)); | ||
| } | ||
| } | ||
| // keep each globals uniq | ||
| globalsList = _.uniq(globalsList); | ||
| for (i = 0; i < globalsList.length; i++) { | ||
| globals[globalsList[i]] = true; | ||
| } | ||
| return globals; | ||
| }; | ||
| exports.appendConfigFile = function(globals, sailsConfigFileName) { | ||
| var eslintrcSails = {}; | ||
| fs.exists(sailsConfigFileName, function(exists) { | ||
| if (exists) { | ||
| var data = fs.readFileSync(sailsConfigFileName, 'utf-8'); | ||
| if (data) { | ||
| eslintrcSails.globals = _.extend(globals, JSON.parse(data).globals); | ||
| // return eslintrcSails.globals; | ||
| } else { | ||
| console.log('read ' + sailsConfigFileName + ' occurs error!'); | ||
| process.exit(0); | ||
| } | ||
| } else { | ||
| console.log(sailsConfigFileName + | ||
| 'is not exists, it will be created'); | ||
| fs.open(sailsConfigFileName, 'w', function(err) { | ||
| if (err) { | ||
| console.log('error:' + err); | ||
| process.exit(0); | ||
| } | ||
| console.log(sailsConfigFileName + 'is created!'); | ||
| }); | ||
| eslintrcSails.globals = globals; | ||
| } | ||
| fs.writeFileSync(sailsConfigFileName, | ||
| JSON.stringify(eslintrcSails, null, '\t')); | ||
| }); | ||
| }; | ||
| exports.overrideConfigFile = function(globals, sailsConfigFileName) { | ||
| var eslintrcSails = {}; | ||
| eslintrcSails.globals = globals; | ||
| fs.exists(sailsConfigFileName, function(exists) { | ||
| if (exists) { | ||
| console.log(sailsConfigFileName + ' is overrided!'); | ||
| } else { | ||
| fs.open(sailsConfigFileName, 'w', function(err) { | ||
| if (err) { | ||
| console.log('error:' + err); | ||
| process.exit(0); | ||
| } else { | ||
| console.log(sailsConfigFileName + ' is created!'); | ||
| } | ||
| }); | ||
| } | ||
| fs.writeFileSync(sailsConfigFileName, | ||
| JSON.stringify(eslintrcSails, null, '\t')); | ||
| }); | ||
| }; |
+3
-3
| { | ||
| "name": "sails-generate-eslintrc", | ||
| "version": "1.1.1", | ||
| "version": "1.1.2", | ||
| "description": "generate eslint config file which contains sails's globals", | ||
| "main": "generate.js", | ||
| "bin": "./generate.js", | ||
| "main": "index.js", | ||
| "bin": "./index.js", | ||
| "scripts": { | ||
@@ -8,0 +8,0 @@ "test": "echo \"Error: no test specified\" && exit 1" |
+15
-3
@@ -5,5 +5,17 @@ # sails-generate-eslintrc | ||
| Generate eslint config file which contains sails's globals.<br/> | ||
| It will generate .eslintrc-sails and .eslintrc (if it exists, it will be updated). | ||
| It will generate .eslintrc-sails(sails globals file ) and .eslintrc (eslint config file. If it exists, it will be updated). | ||
| ## Example | ||
| ## Parameter | ||
| - -m --mode | ||
| + *Default* : Add default globals which contains [sails] and object under ['api/controllers', 'api/models', 'api/services'] | ||
| + append: Add other globals given by other parameters(-g, -f), which are appended in sails globals file(.eslintrc-sails) | ||
| + override: Override sails globals file by other parameter(-g, -f). If no other parameters, an empty sails globals file(.eslintrc-sails) will be created. | ||
| - -g --globals : Give globals array. Example: -g sails,test1,test2. | ||
| - -f --folders : Give folders array containing globals. Example: -f api/models,api/controllers. | ||
| - -c --config : Set eslint config file name. | ||
| - -p --preset : Set preset code style when creates a new eslint config file. | ||
| - -s --show : Show globals added. | ||
| ## Files Example | ||
| - .eslintrc-sails | ||
@@ -50,3 +62,3 @@ ``` | ||
| ## Usage | ||
| - global install | ||
| - global install(Recommend) | ||
| + Install: | ||
@@ -53,0 +65,0 @@ ``` |
-198
| #!/usr/bin/env node | ||
| /** | ||
| * Module dependencies. | ||
| */ | ||
| var _ = require('underscore'); | ||
| var program = require('commander'); | ||
| function list(val) { | ||
| return val.split(','); | ||
| } | ||
| program | ||
| .version('1.1.1') | ||
| .option('-m, --mode <string>', | ||
| 'Set mode for .eslintrc-sails: update, override.' + | ||
| 'Default: Add default globals') | ||
| .option('-c, --config <path>', 'Set eslint config file name') | ||
| .option('-p, --preset <string>', 'Set preset coding style, like: google') | ||
| .option('-g, --globals <items>', | ||
| 'Input globals list, like: sails, mysql', list) | ||
| .option('-f, --folders <items>', | ||
| 'Input global folders list, like: api/controllers, config', list) | ||
| .parse(process.argv); | ||
| var fs = require('fs'); | ||
| var readline = require('readline'); | ||
| var rl = readline.createInterface({ | ||
| input: process.stdin, | ||
| output: process.stdout | ||
| }); | ||
| // var _ = require('underscore'); | ||
| var globals = {}; | ||
| var eslintrcSails = {}; | ||
| var globalsList = ['sails']; | ||
| var prefixPath = './'; | ||
| var globalFoldersList = ['api/controllers', 'api/models', 'api/services']; | ||
| var eslintConfigFileName = '.eslintrc'; | ||
| var sailsConfigFileName = '.eslintrc-sails'; | ||
| if (program.config) { | ||
| // console.log(program.config); | ||
| eslintConfigFileName = program.config; | ||
| } | ||
| if (program.globals) { | ||
| globalsList = globalsList.concat(program.globals); | ||
| } | ||
| if (program.folders) { | ||
| globalFoldersList = program.folders; | ||
| } | ||
| // console.log(program.folders); | ||
| // add globals default | ||
| var addGlobals = function() { | ||
| var i; | ||
| for (i = 0; i < globalsList.length; i++) { | ||
| globals[globalsList[i]] = true; | ||
| } | ||
| // add all file names | ||
| for (i = 0; i < globalFoldersList.length; i++) { | ||
| globalsList = globalsList.concat( | ||
| fs.readdirSync(prefixPath + globalFoldersList[i]) | ||
| ); | ||
| } | ||
| // console.log(globalsList); | ||
| // choose globas names by .js | ||
| for (i = 0; i < globalsList.length; i++) { | ||
| var fileName = globalsList[i]; | ||
| var suffix = fileName.substring(fileName.length - 3, fileName.length); | ||
| if (suffix === '.js' || suffix === '.JS') { | ||
| globals[fileName.substring(0, fileName.length - 3)] = true; | ||
| } | ||
| } | ||
| }; | ||
| addGlobals(); | ||
| // console.log(globals); | ||
| if (program.mode) { | ||
| switch (program.mode.trim()) { | ||
| case 'update': | ||
| fs.exists(sailsConfigFileName, function(exists) { | ||
| if (exists) { | ||
| var data = fs.readFileSync(sailsConfigFileName, 'utf-8'); | ||
| if (data) { | ||
| eslintrcSails = JSON.parse(data); | ||
| if (eslintrcSails.globals) { | ||
| console.log(eslintrcSails.globals); | ||
| eslintrcSails.globals = _.extend(eslintrcSails.globals, globals); | ||
| } else { | ||
| eslintrcSails.globals = globals; | ||
| } | ||
| console.log('ol'); | ||
| } else { | ||
| console.log('read file error!'); | ||
| } | ||
| fs.writeFileSync(sailsConfigFileName, | ||
| JSON.stringify(eslintrcSails, null, '\t')); | ||
| } else { | ||
| console.log(sailsConfigFileName + | ||
| 'is not exists, it will be created'); | ||
| eslintrcSails.globals = globals; | ||
| fs.open(sailsConfigFileName, 'w', function(err) { | ||
| if (err) { | ||
| console.log('error:' + err); | ||
| process.exit(0); | ||
| } | ||
| console.log(sailsConfigFileName + 'is created!'); | ||
| fs.writeFileSync(sailsConfigFileName, | ||
| JSON.stringify(eslintrcSails, null, '\t')); | ||
| }); | ||
| } | ||
| }); | ||
| break; | ||
| default: | ||
| // console.log('default'); | ||
| eslintrcSails.globals = globals; | ||
| fs.writeFileSync(sailsConfigFileName, | ||
| JSON.stringify(eslintrcSails, null, '\t')); | ||
| } | ||
| } else { | ||
| // console.log('default2'); | ||
| eslintrcSails.globals = globals; | ||
| fs.writeFileSync(sailsConfigFileName, | ||
| JSON.stringify(eslintrcSails, null, '\t')); | ||
| } | ||
| // write globals to .eslintrc-sails | ||
| // eslintrcSails.globals = globals; | ||
| // console.log(eslintrcSails); | ||
| var updateGlobals = function(err, data) { | ||
| if (err) { | ||
| console.log('readFile return error:'); | ||
| console.log(err); | ||
| } else { | ||
| // console.log(data); | ||
| var config = JSON.parse(data); | ||
| // config.globals = _.extend(config.globals, globals); | ||
| if (config.extends.indexOf(sailsConfigFileName) > 0) { | ||
| console.log('add ' + sailsConfigFileName); | ||
| return; | ||
| } | ||
| config.extends = config.extends.concat(sailsConfigFileName); | ||
| // console.log(config); | ||
| fs.writeFileSync(eslintConfigFileName, JSON.stringify(config, null, '\t')); | ||
| console.log('add ' + sailsConfigFileName + | ||
| ' and modify ' + eslintConfigFileName); | ||
| } | ||
| }; | ||
| var establishEslintrc = function(answer) { | ||
| switch (answer.trim()) { | ||
| case 'yes': case 'y': case 'Y': | ||
| fs.open(eslintConfigFileName, 'w', function(err) { | ||
| if (err) { | ||
| console.log(err); | ||
| process.exit(0); | ||
| } | ||
| // console.log(fd); | ||
| console.log(eslintConfigFileName + ' and ' + | ||
| sailsConfigFileName + ' are established'); | ||
| fs.writeFileSync(eslintConfigFileName, | ||
| JSON.stringify({ | ||
| extends: ['google', sailsConfigFileName] | ||
| }, null, '\t')); | ||
| }); | ||
| rl.close(); | ||
| break; | ||
| case 'no': case 'n': case 'N': | ||
| console.log('Please establish ' + eslintConfigFileName + ' first!'); | ||
| rl.close(); | ||
| break; | ||
| default: | ||
| console.log('Please establish ' + eslintConfigFileName + ' first!'); | ||
| rl.close(); | ||
| break; | ||
| } | ||
| }; | ||
| var checkFileExists = function(exists) { | ||
| if (exists) { | ||
| fs.readFile(eslintConfigFileName, 'utf-8', updateGlobals); | ||
| rl.close(); | ||
| } else { | ||
| console.log(eslintConfigFileName + ' is not exists!'); | ||
| rl.question('Do you want to establish config file named ' + | ||
| eslintConfigFileName + | ||
| ' and set google as default coding style(yes/no): ', | ||
| establishEslintrc); | ||
| } | ||
| }; | ||
| fs.exists(eslintConfigFileName, checkFileExists); | ||
| // rl.close(); |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
12376
25.58%10
42.86%221
21.43%86
16.22%2
100%1
Infinity%