12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- /* 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 whitespaceRules = require('./whitespaceRules');
- 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(whitespaceRules, baseConfig);
- } else {
- const path = require('path');
- const { execSync } = require('child_process');
- module.exports = JSON.parse(String(execSync(path.join(__dirname, 'whitespace-async.js'))));
- }
|