@putout/cli-ruler
Advanced tools
| const getRule = (a) => a.rule; | ||
| const initRules = (config) => { | ||
| config.rules = config.rules || {}; | ||
| }; | ||
| const {keys} = Object; | ||
| const {isArray} = Array; | ||
| const isTuple = (a) => isArray(a); | ||
| const isPutoutRule = (rule) => { | ||
| if (/^parser/.test(rule)) | ||
| return false; | ||
| if (rule.includes('(')) | ||
| return false; | ||
| return true; | ||
| }; | ||
| export const disableAll = (config, places) => { | ||
| initRules(config); | ||
| const rules = parseRules(places); | ||
| const existingRules = keys(config.rules); | ||
| for (const rule of existingRules) | ||
| disable(config, rule); | ||
| for (const rule of rules) | ||
| disable(config, rule); | ||
| return config; | ||
| }; | ||
| export function enable(config, rule) { | ||
| initRules(config); | ||
| if (!isPutoutRule(rule)) | ||
| return config; | ||
| config.rules[rule] = 'on'; | ||
| return config; | ||
| } | ||
| export function disable(config, rule) { | ||
| initRules(config); | ||
| if (!isPutoutRule(rule)) | ||
| return config; | ||
| if (isTuple(config.rules[rule])) | ||
| config.rules[rule] = ['off', config.rules[rule][1]]; | ||
| else | ||
| config.rules[rule] = 'off'; | ||
| return config; | ||
| } | ||
| export const enableAll = (config, places) => { | ||
| initRules(config); | ||
| const rules = parseRules(places); | ||
| for (const rule of Object.keys(config.rules)) | ||
| enable(config, rule); | ||
| for (const rule of rules) | ||
| enable(config, rule); | ||
| return config; | ||
| }; | ||
| function parseRules(places) { | ||
| return places.map(getRule); | ||
| } | ||
+6
-6
| import {join} from 'path'; | ||
| import tryToCatch from 'try-to-catch'; | ||
| import * as ruler from './ruler.js'; | ||
| import * as ruleProcessor from './rule-processor.js'; | ||
@@ -9,3 +9,3 @@ const cwd = process.cwd(); | ||
| export default async function rulerProcessor({disable, disableAll, enable, enableAll, readFile, writeFile}, places) { | ||
| export async function ruler({disable, disableAll, enable, enableAll, readFile, writeFile}, places) { | ||
| const name = join(cwd, '.putout.json'); | ||
@@ -22,9 +22,9 @@ const defaultData = stringify({ | ||
| if (enable) | ||
| updated = ruler.enable(object, enable); | ||
| updated = ruleProcessor.enable(object, enable); | ||
| else if (disable) | ||
| updated = ruler.disable(object, disable); | ||
| updated = ruleProcessor.disable(object, disable); | ||
| else if (enableAll) | ||
| updated = ruler.enableAll(object, places); | ||
| updated = ruleProcessor.enableAll(object, places); | ||
| else if (disableAll) | ||
| updated = ruler.disableAll(object, places); | ||
| updated = ruleProcessor.disableAll(object, places); | ||
@@ -31,0 +31,0 @@ await writeFile(name, stringify(updated, null, 4)); |
+5
-5
| { | ||
| "name": "@putout/cli-ruler", | ||
| "version": "1.1.0", | ||
| "version": "2.0.0", | ||
| "author": "coderaiser <mnemonic.enemy@gmail.com> (https://github.com/coderaiser)", | ||
| "description": "toggle rules in .putout.json", | ||
| "homepage": "http://github.com/coderaiser/putout", | ||
| "homepage": "https://github.com/coderaiser/putout/tree/master/packages/cli-ruler#readme", | ||
| "main": "lib/index.js", | ||
@@ -33,7 +33,7 @@ "type": "module", | ||
| "devDependencies": { | ||
| "@putout/test": "^3.0.0", | ||
| "@putout/test": "^4.0.0", | ||
| "c8": "^7.5.0", | ||
| "eslint": "^8.0.0-beta.0", | ||
| "eslint": "^8.0.1", | ||
| "eslint-plugin-node": "^11.0.0", | ||
| "eslint-plugin-putout": "^10.0.0", | ||
| "eslint-plugin-putout": "^13.0.0", | ||
| "lerna": "^4.0.0", | ||
@@ -40,0 +40,0 @@ "madrun": "^8.0.1", |
+2
-4
@@ -1,7 +0,5 @@ | ||
| # @putout/cli-ruler [![NPM version][NPMIMGURL]][NPMURL] [![Dependency Status][DependencyStatusIMGURL]][DependencyStatusURL] | ||
| # @putout/cli-ruler [![NPM version][NPMIMGURL]][NPMURL] | ||
| [NPMIMGURL]: https://img.shields.io/npm/v/@putout/cli-ruler.svg?style=flat&longCache=true | ||
| [NPMURL]: https://npmjs.org/package/@putout/cli-ruler "npm" | ||
| [DependencyStatusURL]: https://david-dm.org/coderaiser/putout?path=packages/cli-ruler | ||
| [DependencyStatusIMGURL]: https://david-dm.org/coderaiser/putout.svg?path=packages/cli-ruler | ||
@@ -28,3 +26,3 @@ Ruler toggler for `.putout.json`. | ||
| import ruler from '@putout/cli-ruler'; | ||
| import {rule} from '@putout/cli-ruler'; | ||
@@ -31,0 +29,0 @@ const places = [{ |
-76
| const getRule = (a) => a.rule; | ||
| const initRules = (config) => { | ||
| config.rules = config.rules || {}; | ||
| }; | ||
| const {keys} = Object; | ||
| const {isArray} = Array; | ||
| const isTuple = (a) => isArray(a); | ||
| const isPutoutRule = (rule) => { | ||
| if (/^parser/.test(rule)) | ||
| return false; | ||
| if (rule.includes('(')) | ||
| return false; | ||
| return true; | ||
| }; | ||
| export const disableAll = (config, places) => { | ||
| initRules(config); | ||
| const rules = parseRules(places); | ||
| const existingRules = keys(config.rules); | ||
| for (const rule of existingRules) | ||
| disable(config, rule); | ||
| for (const rule of rules) | ||
| disable(config, rule); | ||
| return config; | ||
| }; | ||
| export function enable(config, rule) { | ||
| initRules(config); | ||
| if (!isPutoutRule(rule)) | ||
| return config; | ||
| config.rules[rule] = 'on'; | ||
| return config; | ||
| } | ||
| export function disable(config, rule) { | ||
| initRules(config); | ||
| if (!isPutoutRule(rule)) | ||
| return config; | ||
| if (isTuple(config.rules[rule])) | ||
| config.rules[rule] = ['off', config.rules[rule][1]]; | ||
| else | ||
| config.rules[rule] = 'off'; | ||
| return config; | ||
| } | ||
| export const enableAll = (config, places) => { | ||
| initRules(config); | ||
| const rules = parseRules(places); | ||
| for (const rule of Object.keys(config.rules)) | ||
| enable(config, rule); | ||
| for (const rule of rules) | ||
| enable(config, rule); | ||
| return config; | ||
| }; | ||
| function parseRules(places) { | ||
| return places.map(getRule); | ||
| } | ||
6133
-2.81%92
-2.13%