]> git.proxmox.com Git - pve-eslint.git/blobdiff - src/app.js
adapt some rules
[pve-eslint.git] / src / app.js
index 7e919b1167ecd16d585337a5a529747ed62b5378..569b9cfee6a4df8e49b898f65cf8908760112232 100644 (file)
@@ -9,7 +9,9 @@ program
     .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('');
@@ -26,7 +28,7 @@ if (program.config && program.extend) {
     process.exit(1);
 }
 
-if (program.args.length < 1) {
+if (program.args.length < 1 && !program.outputConfig) {
     program.help();
 }
 
@@ -209,7 +211,13 @@ const defaultConfig = {
        "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",
@@ -223,7 +231,7 @@ const defaultConfig = {
        "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",
      },
@@ -246,6 +254,12 @@ if (program.config) {
     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,