UNPKG

sharec-schema

Version:

Utilities for configuration files merge

28 lines (22 loc) 792 B
// @ts-check const isEqual = require('lodash.isequal') /** * @typedef {import('../').Rule} Rule * @typedef {import('../').SchemaParams<Rule>} SchemaRulesParams */ /** * Merges rules-like data-strutures (eslint, stylelint etc. rules) * Doesn't merge anything, only returns required one, because rule can't be correctly * merged * Mostly, rule changes mean that rule is not correct anymore * @param {SchemaRulesParams} params * @returns {Rule} */ function ruleAtom({ current, upcoming, cached }) { if (current && upcoming === undefined) return current if (current === undefined && upcoming) return upcoming if (cached !== undefined && !isEqual(current, cached)) return current if (!isEqual(current, upcoming)) return upcoming return current } module.exports = ruleAtom