UNPKG

@graphql-tools/utils

Version:

Common package containing utils and types for GraphQL tools

22 lines (21 loc) 781 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.valueMatchesCriteria = valueMatchesCriteria; function valueMatchesCriteria(value, criteria) { if (value == null) { return value === criteria; } else if (Array.isArray(value)) { return (Array.isArray(criteria) && value.every((val, index) => valueMatchesCriteria(val, criteria[index]))); } else if (typeof value === 'object') { return (typeof criteria === 'object' && criteria && Object.keys(criteria).every(propertyName => valueMatchesCriteria(value[propertyName], criteria[propertyName]))); } else if (criteria instanceof RegExp) { return criteria.test(value); } return value === criteria; }