source: node_modules/es-toolkit/dist/compat/array/every.js

Last change on this file was a762898, checked in by istevanoska <ilinastevanoska@…>, 5 months ago

Added visualizations

  • Property mode set to 100644
File size: 1.9 KB
RevLine 
[a762898]1'use strict';
2
3Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
5const identity = require('../../function/identity.js');
6const isIterateeCall = require('../_internal/isIterateeCall.js');
7const property = require('../object/property.js');
8const isArrayLike = require('../predicate/isArrayLike.js');
9const matches = require('../predicate/matches.js');
10const matchesProperty = require('../predicate/matchesProperty.js');
11
12function every(source, doesMatch, guard) {
13 if (!source) {
14 return true;
15 }
16 if (guard && isIterateeCall.isIterateeCall(source, doesMatch, guard)) {
17 doesMatch = undefined;
18 }
19 if (!doesMatch) {
20 doesMatch = identity.identity;
21 }
22 let predicate;
23 switch (typeof doesMatch) {
24 case 'function': {
25 predicate = doesMatch;
26 break;
27 }
28 case 'object': {
29 if (Array.isArray(doesMatch) && doesMatch.length === 2) {
30 const key = doesMatch[0];
31 const value = doesMatch[1];
32 predicate = matchesProperty.matchesProperty(key, value);
33 }
34 else {
35 predicate = matches.matches(doesMatch);
36 }
37 break;
38 }
39 case 'symbol':
40 case 'number':
41 case 'string': {
42 predicate = property.property(doesMatch);
43 }
44 }
45 if (!isArrayLike.isArrayLike(source)) {
46 const keys = Object.keys(source);
47 for (let i = 0; i < keys.length; i++) {
48 const key = keys[i];
49 const value = source[key];
50 if (!predicate(value, key, source)) {
51 return false;
52 }
53 }
54 return true;
55 }
56 for (let i = 0; i < source.length; i++) {
57 if (!predicate(source[i], i, source)) {
58 return false;
59 }
60 }
61 return true;
62}
63
64exports.every = every;
Note: See TracBrowser for help on using the repository browser.