diff options
Diffstat (limited to 'node_modules/@sinonjs/commons/lib/every.js')
-rw-r--r-- | node_modules/@sinonjs/commons/lib/every.js | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/node_modules/@sinonjs/commons/lib/every.js b/node_modules/@sinonjs/commons/lib/every.js new file mode 100644 index 0000000..08274b4 --- /dev/null +++ b/node_modules/@sinonjs/commons/lib/every.js @@ -0,0 +1,27 @@ +"use strict"; + +/** + * Returns true when fn returns true for all members of obj. + * This is an every implementation that works for all iterables + * + * @param {object} obj + * @param {Function} fn + * @returns {boolean} + */ +module.exports = function every(obj, fn) { + var pass = true; + + try { + // eslint-disable-next-line @sinonjs/no-prototype-methods/no-prototype-methods + obj.forEach(function() { + if (!fn.apply(this, arguments)) { + // Throwing an error is the only way to break `forEach` + throw new Error(); + } + }); + } catch (e) { + pass = false; + } + + return pass; +}; |