|                                                                                                      |  | /* eslint global-require: 0 */
const { CLIEngine } = require('eslint');
if (CLIEngine) {  /* eslint no-inner-declarations: 0 */  const assign = require('object.assign');  const entries = require('object.entries');
  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;  }
  function onlyErrorOnRules(rulesToError, config) {    const errorsOnly = assign({}, config);    const cli = new CLIEngine({ baseConfig: config, useEslintrc: false });    const baseRules = cli.getConfigForFile(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;  }
  module.exports = 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);} else {  const path = require('path');  const { execSync } = require('child_process');
  module.exports = JSON.parse(String(execSync(path.join(__dirname, 'whitespace-async.js'))));}
 |