UNPKG

@data-client/normalizr

Version:

Normalizes and denormalizes JSON according to schema for Redux and Flux applications

42 lines (39 loc) 5.09 kB
import { BaseDelegate } from './BaseDelegate.js'; /** Basic POJO state interfaces for normalize side * Used directly as QueryDelegate, and inherited by NormalizeDelegate */ export class POJODelegate extends BaseDelegate { constructor(state) { super(state); } // we must expose the entities object to track in our WeakDependencyMap // however, this should not be part of the public API getEntitiesObject(key) { return this.entities[key]; } getEntities(key) { const entities = this.entities[key]; if (entities === undefined) return undefined; return { keys() { return Object.keys(entities); }, entries() { return Object.entries(entities); } }; } getEntity(key, pk) { var _this$entities$key; return (_this$entities$key = this.entities[key]) == null ? void 0 : _this$entities$key[pk]; } // this is different return value than QuerySnapshot getIndex(key, field) { var _this$indexes$key; return (_this$indexes$key = this.indexes[key]) == null ? void 0 : _this$indexes$key[field]; } getIndexEnd(entity, value) { return entity == null ? void 0 : entity[value]; } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlRGVsZWdhdGUiLCJQT0pPRGVsZWdhdGUiLCJjb25zdHJ1Y3RvciIsInN0YXRlIiwiZ2V0RW50aXRpZXNPYmplY3QiLCJrZXkiLCJlbnRpdGllcyIsImdldEVudGl0aWVzIiwidW5kZWZpbmVkIiwia2V5cyIsIk9iamVjdCIsImVudHJpZXMiLCJnZXRFbnRpdHkiLCJwayIsIl90aGlzJGVudGl0aWVzJGtleSIsImdldEluZGV4IiwiZmllbGQiLCJfdGhpcyRpbmRleGVzJGtleSIsImluZGV4ZXMiLCJnZXRJbmRleEVuZCIsImVudGl0eSIsInZhbHVlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlbGVnYXRlL0RlbGVnYXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgRW50aXRpZXNJbnRlcmZhY2UsXG4gIEVudGl0eVRhYmxlLFxuICBOb3JtYWxpemVkSW5kZXgsXG59IGZyb20gJy4uL2ludGVyZmFjZS5qcyc7XG5pbXBvcnQgeyBCYXNlRGVsZWdhdGUgfSBmcm9tICcuL0Jhc2VEZWxlZ2F0ZS5qcyc7XG5cbi8qKiBCYXNpYyBQT0pPIHN0YXRlIGludGVyZmFjZXMgZm9yIG5vcm1hbGl6ZSBzaWRlXG4gKiBVc2VkIGRpcmVjdGx5IGFzIFF1ZXJ5RGVsZWdhdGUsIGFuZCBpbmhlcml0ZWQgYnkgTm9ybWFsaXplRGVsZWdhdGVcbiAqL1xuZXhwb3J0IGNsYXNzIFBPSk9EZWxlZ2F0ZSBleHRlbmRzIEJhc2VEZWxlZ2F0ZSB7XG4gIGRlY2xhcmUgZW50aXRpZXM6IEVudGl0eVRhYmxlO1xuICBkZWNsYXJlIGluZGV4ZXM6IHtcbiAgICBbZW50aXR5S2V5OiBzdHJpbmddOiB7XG4gICAgICBbaW5kZXhOYW1lOiBzdHJpbmddOiB7IFtsb29rdXA6IHN0cmluZ106IHN0cmluZyB9O1xuICAgIH07XG4gIH07XG5cbiAgY29uc3RydWN0b3Ioc3RhdGU6IHsgZW50aXRpZXM6IEVudGl0eVRhYmxlOyBpbmRleGVzOiBOb3JtYWxpemVkSW5kZXggfSkge1xuICAgIHN1cGVyKHN0YXRlKTtcbiAgfVxuXG4gIC8vIHdlIG11c3QgZXhwb3NlIHRoZSBlbnRpdGllcyBvYmplY3QgdG8gdHJhY2sgaW4gb3VyIFdlYWtEZXBlbmRlbmN5TWFwXG4gIC8vIGhvd2V2ZXIsIHRoaXMgc2hvdWxkIG5vdCBiZSBwYXJ0IG9mIHRoZSBwdWJsaWMgQVBJXG4gIHByb3RlY3RlZCBnZXRFbnRpdGllc09iamVjdChrZXk6IHN0cmluZyk6IG9iamVjdCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZW50aXRpZXNba2V5XTtcbiAgfVxuXG4gIGdldEVudGl0aWVzKGtleTogc3RyaW5nKTogRW50aXRpZXNJbnRlcmZhY2UgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGVudGl0aWVzID0gdGhpcy5lbnRpdGllc1trZXldO1xuICAgIGlmIChlbnRpdGllcyA9PT0gdW5kZWZpbmVkKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiB7XG4gICAgICBrZXlzKCk6IEl0ZXJhYmxlSXRlcmF0b3I8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhlbnRpdGllcykgYXMgYW55O1xuICAgICAgfSxcbiAgICAgIGVudHJpZXMoKTogSXRlcmFibGVJdGVyYXRvcjxbc3RyaW5nLCBhbnldPiB7XG4gICAgICAgIHJldHVybiBPYmplY3QuZW50cmllcyhlbnRpdGllcykgYXMgYW55O1xuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgZ2V0RW50aXR5KGtleTogc3RyaW5nLCBwazogc3RyaW5nKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5lbnRpdGllc1trZXldPy5bcGtdO1xuICB9XG5cbiAgLy8gdGhpcyBpcyBkaWZmZXJlbnQgcmV0dXJuIHZhbHVlIHRoYW4gUXVlcnlTbmFwc2hvdFxuICBnZXRJbmRleChrZXk6IHN0cmluZywgZmllbGQ6IHN0cmluZyk6IG9iamVjdCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuaW5kZXhlc1trZXldPy5bZmllbGRdO1xuICB9XG5cbiAgZ2V0SW5kZXhFbmQoZW50aXR5OiBvYmplY3QgfCB1bmRlZmluZWQsIHZhbHVlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gZW50aXR5Py5bdmFsdWVdO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiJBQUtBLFNBQVNBLFlBQVksUUFBUSxtQkFBbUI7O0FBRWhEO0FBQ0E7QUFDQTtBQUNBLE9BQU8sTUFBTUMsWUFBWSxTQUFTRCxZQUFZLENBQUM7RUFRN0NFLFdBQVdBLENBQUNDLEtBQTBELEVBQUU7SUFDdEUsS0FBSyxDQUFDQSxLQUFLLENBQUM7RUFDZDs7RUFFQTtFQUNBO0VBQ1VDLGlCQUFpQkEsQ0FBQ0MsR0FBVyxFQUFzQjtJQUMzRCxPQUFPLElBQUksQ0FBQ0MsUUFBUSxDQUFDRCxHQUFHLENBQUM7RUFDM0I7RUFFQUUsV0FBV0EsQ0FBQ0YsR0FBVyxFQUFpQztJQUN0RCxNQUFNQyxRQUFRLEdBQUcsSUFBSSxDQUFDQSxRQUFRLENBQUNELEdBQUcsQ0FBQztJQUNuQyxJQUFJQyxRQUFRLEtBQUtFLFNBQVMsRUFBRSxPQUFPQSxTQUFTO0lBQzVDLE9BQU87TUFDTEMsSUFBSUEsQ0FBQSxFQUE2QjtRQUMvQixPQUFPQyxNQUFNLENBQUNELElBQUksQ0FBQ0gsUUFBUSxDQUFDO01BQzlCLENBQUM7TUFDREssT0FBT0EsQ0FBQSxFQUFvQztRQUN6QyxPQUFPRCxNQUFNLENBQUNDLE9BQU8sQ0FBQ0wsUUFBUSxDQUFDO01BQ2pDO0lBQ0YsQ0FBQztFQUNIO0VBRUFNLFNBQVNBLENBQUNQLEdBQVcsRUFBRVEsRUFBVSxFQUFPO0lBQUEsSUFBQUMsa0JBQUE7SUFDdEMsUUFBQUEsa0JBQUEsR0FBTyxJQUFJLENBQUNSLFFBQVEsQ0FBQ0QsR0FBRyxDQUFDLHFCQUFsQlMsa0JBQUEsQ0FBcUJELEVBQUUsQ0FBQztFQUNqQzs7RUFFQTtFQUNBRSxRQUFRQSxDQUFDVixHQUFXLEVBQUVXLEtBQWEsRUFBc0I7SUFBQSxJQUFBQyxpQkFBQTtJQUN2RCxRQUFBQSxpQkFBQSxHQUFPLElBQUksQ0FBQ0MsT0FBTyxDQUFDYixHQUFHLENBQUMscUJBQWpCWSxpQkFBQSxDQUFvQkQsS0FBSyxDQUFDO0VBQ25DO0VBRUFHLFdBQVdBLENBQUNDLE1BQTBCLEVBQUVDLEtBQWEsRUFBRTtJQUNyRCxPQUFPRCxNQUFNLG9CQUFOQSxNQUFNLENBQUdDLEtBQUssQ0FBQztFQUN4QjtBQUNGIiwiaWdub3JlTGlzdCI6W119