| 
						 | 
						- #!/usr/bin/env node
 - 
 - const assign = require('object.assign');
 - const entries = require('object.entries');
 - const { ESLint } = require('eslint');
 - 
 - const baseConfig = require('.');
 - 
 - const severities = ['off', 'warn', 'error'];
 - 
 - function getSeverity(ruleConfig) {
 -   if (Array.isArray(ruleConfig)) {
 -     return getSeverity(ruleConfig[0]);
 -   }
 -   if (typeof ruleConfig === 'number') {
 -     return severities[ruleConfig];
 -   }
 -   return ruleConfig;
 - }
 - 
 - async function onlyErrorOnRules(rulesToError, config) {
 -   const errorsOnly = assign({}, config);
 -   const cli = new ESLint({
 -     useEslintrc: false,
 -     baseConfig: config
 -   });
 -   const baseRules = (await cli.calculateConfigForFile(require.resolve('./'))).rules;
 - 
 -   entries(baseRules).forEach((rule) => {
 -     const ruleName = rule[0];
 -     const ruleConfig = rule[1];
 -     const severity = getSeverity(ruleConfig);
 - 
 -     if (rulesToError.indexOf(ruleName) === -1 && severity === 'error') {
 -       if (Array.isArray(ruleConfig)) {
 -         errorsOnly.rules[ruleName] = ['warn'].concat(ruleConfig.slice(1));
 -       } else if (typeof ruleConfig === 'number') {
 -         errorsOnly.rules[ruleName] = 1;
 -       } else {
 -         errorsOnly.rules[ruleName] = 'warn';
 -       }
 -     }
 -   });
 - 
 -   return errorsOnly;
 - }
 - 
 - onlyErrorOnRules([
 -   'array-bracket-newline',
 -   'array-bracket-spacing',
 -   'array-element-newline',
 -   'arrow-spacing',
 -   'block-spacing',
 -   'comma-spacing',
 -   'computed-property-spacing',
 -   'dot-location',
 -   'eol-last',
 -   'func-call-spacing',
 -   'function-paren-newline',
 -   'generator-star-spacing',
 -   'implicit-arrow-linebreak',
 -   'indent',
 -   'key-spacing',
 -   'keyword-spacing',
 -   'line-comment-position',
 -   'linebreak-style',
 -   'multiline-ternary',
 -   'newline-per-chained-call',
 -   'no-irregular-whitespace',
 -   'no-mixed-spaces-and-tabs',
 -   'no-multi-spaces',
 -   'no-regex-spaces',
 -   'no-spaced-func',
 -   'no-trailing-spaces',
 -   'no-whitespace-before-property',
 -   'nonblock-statement-body-position',
 -   'object-curly-newline',
 -   'object-curly-spacing',
 -   'object-property-newline',
 -   'one-var-declaration-per-line',
 -   'operator-linebreak',
 -   'padded-blocks',
 -   'padding-line-between-statements',
 -   'rest-spread-spacing',
 -   'semi-spacing',
 -   'semi-style',
 -   'space-before-blocks',
 -   'space-before-function-paren',
 -   'space-in-parens',
 -   'space-infix-ops',
 -   'space-unary-ops',
 -   'spaced-comment',
 -   'switch-colon-spacing',
 -   'template-tag-spacing',
 -   'import/newline-after-import',
 - ], baseConfig).then((config) => console.log(JSON.stringify(config)));
 
 
  |