.usage('[options] [<file(s) ...>]')
.option('-c, --config <configfile>', 'uses <configfile> for eslint config instead.')
.option('-e, --extend <configfile>', 'uses <configfile> ontop of default eslint config.')
- .option('-f, --fix', 'if set, fixes will be applied.');
+ .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('');
process.exit(1);
}
-if (program.args.length < 1) {
+if (program.args.length < 1 && !program.outputConfig) {
program.help();
}
"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",
},
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({
baseConfig: config,
useEslintrc: true,