UNPKG

@signaldb/core

Version:

SignalDB is a client-side database that provides a simple MongoDB-like interface to the data with first-class typescript support to achieve an optimistic UI. Data persistence can be achieved by using storage providers that store the data through a JSON in

30 lines (29 loc) 1.02 kB
"use strict"; const isFieldExpression = require("./index.cjs27.js"); const serializeValue = require("./index.cjs16.js"); function getMatchingKeys(field, selector) { const result = { include: null, exclude: null }; const fieldSelector = selector[field]; if (fieldSelector instanceof RegExp) return result; if (fieldSelector == null) return result; if (isFieldExpression(fieldSelector)) { if (fieldSelector.$ne != null) { result.exclude = [serializeValue(fieldSelector.$ne)]; return result; } if (Array.isArray(fieldSelector.$in) && fieldSelector.$in.length > 0) { result.include = fieldSelector.$in.map(serializeValue); return result; } if (Array.isArray(fieldSelector.$nin) && fieldSelector.$nin.length > 0) { result.exclude = fieldSelector.$nin.map(serializeValue); return result; } return { include: null, exclude: null }; } result.include = [serializeValue(fieldSelector)]; return result; } module.exports = getMatchingKeys;