Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@putout/cli-ruler

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@putout/cli-ruler - npm Package Compare versions

Comparing version
1.1.0
to
2.0.0
+77
lib/rule-processor.js
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));

{
"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",

@@ -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 = [{

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);
}