UNPKG

putout

Version:

the pluggable code transformer

67 lines (45 loc) 1.28 kB
'use strict'; const getRule = (a) => a.rule; const initRules = (config) => { config.rules = config.rules || {}; }; const {keys} = Object; const isParser = (rule) => /^parser/.test(rule); module.exports.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; }; module.exports.enable = enable; function enable(config, rule) { initRules(config); if (isParser(rule)) return config; config.rules[rule] = 'on'; return config; } module.exports.disable = disable; function disable(config, rule) { initRules(config); if (isParser(rule)) return config; config.rules[rule] = 'off'; return config; } module.exports.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); }