program
.usage('[options] [<file(s) ...>]')
.option('-c, --config <configfile>', 'uses <configfile> for eslint config instead.')
- .option('-f, --fix', 'if set, fixes will be applied.');
+ .option('-e, --extend <configfile>', 'uses <configfile> ontop of default eslint config.')
+ .option('-f, --fix', 'if set, fixes will be applied.')
+ .option('--output-config', 'if set, only output the config as JSON and exit.')
+ ;
program.on('--help', function() {
console.log('');
console.log('');
});
-if (process.argv.length <= 2) {
- program.help();
+program.parse(process.argv);
+
+if (program.config && program.extend) {
+ console.error('Cannot use both, --config and --extend, at the same time!');
+ process.exit(1);
}
-program.parse(process.argv);
+if (program.args.length < 1 && !program.outputConfig) {
+ program.help();
+}
let paths = program.args;
"no-whitespace-before-property": "warn",
"object-curly-newline": "warn",
"object-curly-spacing": ["warn", "always"],
- "operator-linebreak": ["warn", "after", { overrides: { "?": "after" } }],
+ "operator-linebreak": ["warn", "after", {
+ "overrides": {
+ "?": "before",
+ ":": "before",
+ "+": "ignore",
+ },
+ }],
"padded-blocks": ["warn", "never"], // not sure ...
"quote-props": ["warn", "as-needed", { keywords: true, unnecessary: false }], // does nothing, maybe deactivate unnecessary
"semi": "warn",
"unicode-bom": "warn",
"arrow-body-style": "warn",
"arrow-spacing": "warn",
- "no-confusing-arrow": "warn",
+ // "no-confusing-arrow": "warn", // can be useful to do and isn't really confusing
"prefer-numeric-literals": "warn",
"template-curly-spacing": "warn",
},
config = {
"extends": pathExpand(program.config),
};
+} else if (program.extend) {
+ config.extends = pathExpand(program.extend);
+ console.log(`Extend with path: ${config.extends}`);
+}
+
+if (program.outputConfig) {
+ let cfg = JSON.stringify(config, null, 2);
+ console.log(cfg);
+ process.exit(0);
}
const cli = new eslint.CLIEngine({