util-map-includes.js 531 B

1234567891011121314151617
  1. import { isScalar } from '../nodes/identity.js';
  2. function mapIncludes(ctx, items, search) {
  3. const { uniqueKeys } = ctx.options;
  4. if (uniqueKeys === false)
  5. return false;
  6. const isEqual = typeof uniqueKeys === 'function'
  7. ? uniqueKeys
  8. : (a, b) => a === b ||
  9. (isScalar(a) &&
  10. isScalar(b) &&
  11. a.value === b.value &&
  12. !(a.value === '<<' && ctx.schema.merge));
  13. return items.some(pair => isEqual(pair.key, search));
  14. }
  15. export { mapIncludes };