Sha256: b9802517c27367da63031cfd4a48963faec55db7c2115c10f7d2c05d928f54d8
Contents?: true
Size: 915 Bytes
Versions: 375
Compression:
Stored size: 915 Bytes
Contents
/* global matches */ /** * Check if the value from a function matches some condition * * Each key on the matcher object is passed to getValue, the returned value must match * with the value of that matcher * * Example: * ```js * matches.fromFunction( * (attr => node.getAttribute(attr), * { * 'aria-hidden': /^true|false$/i * } * ) * ``` * * @private * @param {Function} getValue * @param {Object} matcher matcher * @returns {Boolean} */ matches.fromFunction = function matchFromFunction(getValue, matcher) { const matcherType = typeof matcher; if ( matcherType !== 'object' || Array.isArray(matcher) || matcher instanceof RegExp ) { throw new Error('Expect matcher to be an object'); } // Check that the property has all the expected values return Object.keys(matcher).every(propName => { return matches.fromPrimative(getValue(propName), matcher[propName]); }); };
Version data entries
375 entries across 375 versions & 1 rubygems