UNPKG

@graphql-tools/utils

Version:

Common package containing utils and types for GraphQL tools

19 lines (18 loc) 658 B
export 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; }