#!/usr/bin/env node
							 | 
						|
								
							 | 
						|
								const assign = require('object.assign');
							 | 
						|
								const entries = require('object.entries');
							 | 
						|
								const { ESLint } = require('eslint');
							 | 
						|
								
							 | 
						|
								const baseConfig = require('.');
							 | 
						|
								const whitespaceRules = require('./whitespaceRules');
							 | 
						|
								
							 | 
						|
								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(whitespaceRules, baseConfig).then((config) => console.log(JSON.stringify(config)));
							 |