UNPKG

rxdb

Version:

A local-first realtime NoSQL Database for JavaScript applications - https://rxdb.info/

42 lines (41 loc) 1.53 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.POSTGRES_INSERT_CONFLICT_CODE = exports.DEFAULT_MODIFIED_FIELD = exports.DEFAULT_DELETED_FIELD = void 0; exports.addDocEqualityToQuery = addDocEqualityToQuery; var POSTGRES_INSERT_CONFLICT_CODE = exports.POSTGRES_INSERT_CONFLICT_CODE = "23505"; var DEFAULT_MODIFIED_FIELD = exports.DEFAULT_MODIFIED_FIELD = '_modified'; var DEFAULT_DELETED_FIELD = exports.DEFAULT_DELETED_FIELD = '_deleted'; function addDocEqualityToQuery(jsonSchema, deletedField, modifiedField, doc, query) { var ignoreKeys = new Set([modifiedField, deletedField, '_meta', '_attachments', '_rev']); for (var key of Object.keys(doc)) { if (ignoreKeys.has(key)) { continue; } var v = doc[key]; var type = typeof v; if (type === "string" || type === "number") { query = query.eq(key, v); } else if (type === "boolean" || v === null) { query = query.is(key, v); } else if (type === 'undefined') { query = query.is(key, null); } else { throw new Error("unknown how to handle type: " + type); } } var schemaProps = jsonSchema.properties; for (var _key of Object.keys(schemaProps)) { if (ignoreKeys.has(_key) || Object.hasOwn(doc, _key)) { continue; } query = query.is(_key, null); } query = query.eq(deletedField, doc._deleted); if (schemaProps[modifiedField]) { query = query.eq(modifiedField, doc[modifiedField]); } return query; } //# sourceMappingURL=helper.js.map