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

31 lines (30 loc) 993 B
import isFieldExpression from "./index27.mjs"; import serializeValue from "./index16.mjs"; 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; } export { getMatchingKeys as default };