@data-client/normalizr
Version:
Normalizes and denormalizes JSON according to schema for Redux and Flux applications
23 lines • 3.19 kB
JavaScript
export default class LocalCache {
constructor() {
this.localCache = new Map();
}
getEntity(pk, schema, entity, computeValue) {
const key = schema.key;
if (!this.localCache.has(key)) {
this.localCache.set(key, new Map());
}
const localCacheKey = this.localCache.get(key);
if (!localCacheKey.get(pk)) {
computeValue(localCacheKey);
}
return localCacheKey.get(pk);
}
getResults(input, cachable, computeValue) {
return {
data: computeValue(),
paths: []
};
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMb2NhbENhY2hlIiwiY29uc3RydWN0b3IiLCJsb2NhbENhY2hlIiwiTWFwIiwiZ2V0RW50aXR5IiwicGsiLCJzY2hlbWEiLCJlbnRpdHkiLCJjb21wdXRlVmFsdWUiLCJrZXkiLCJoYXMiLCJzZXQiLCJsb2NhbENhY2hlS2V5IiwiZ2V0IiwiZ2V0UmVzdWx0cyIsImlucHV0IiwiY2FjaGFibGUiLCJkYXRhIiwicGF0aHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVub3JtYWxpemUvbG9jYWxDYWNoZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSBDYWNoZSBmcm9tICcuL2NhY2hlLmpzJztcbmltcG9ydCB0eXBlIHsgRW50aXR5SW50ZXJmYWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlLmpzJztcbmltcG9ydCB0eXBlIHsgRW50aXR5UGF0aCB9IGZyb20gJy4uL3R5cGVzLmpzJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTG9jYWxDYWNoZSBpbXBsZW1lbnRzIENhY2hlIHtcbiAgcHJpdmF0ZSBsb2NhbENhY2hlID0gbmV3IE1hcDxzdHJpbmcsIE1hcDxzdHJpbmcsIGFueT4+KCk7XG5cbiAgZ2V0RW50aXR5KFxuICAgIHBrOiBzdHJpbmcsXG4gICAgc2NoZW1hOiBFbnRpdHlJbnRlcmZhY2UsXG4gICAgZW50aXR5OiBhbnksXG4gICAgY29tcHV0ZVZhbHVlOiAobG9jYWxDYWNoZUtleTogTWFwPHN0cmluZywgYW55PikgPT4gdm9pZCxcbiAgKTogb2JqZWN0IHwgdW5kZWZpbmVkIHwgc3ltYm9sIHtcbiAgICBjb25zdCBrZXkgPSBzY2hlbWEua2V5O1xuICAgIGlmICghdGhpcy5sb2NhbENhY2hlLmhhcyhrZXkpKSB7XG4gICAgICB0aGlzLmxvY2FsQ2FjaGUuc2V0KGtleSwgbmV3IE1hcDxzdHJpbmcsIGFueT4oKSk7XG4gICAgfVxuICAgIGNvbnN0IGxvY2FsQ2FjaGVLZXkgPSB0aGlzLmxvY2FsQ2FjaGUuZ2V0KGtleSkgYXMgTWFwPHN0cmluZywgYW55PjtcblxuICAgIGlmICghbG9jYWxDYWNoZUtleS5nZXQocGspKSB7XG4gICAgICBjb21wdXRlVmFsdWUobG9jYWxDYWNoZUtleSk7XG4gICAgfVxuICAgIHJldHVybiBsb2NhbENhY2hlS2V5LmdldChwayk7XG4gIH1cblxuICBnZXRSZXN1bHRzKFxuICAgIGlucHV0OiBhbnksXG4gICAgY2FjaGFibGU6IGJvb2xlYW4sXG4gICAgY29tcHV0ZVZhbHVlOiAoKSA9PiBhbnksXG4gICk6IHtcbiAgICBkYXRhOiBhbnk7XG4gICAgcGF0aHM6IEVudGl0eVBhdGhbXTtcbiAgfSB7XG4gICAgcmV0dXJuIHsgZGF0YTogY29tcHV0ZVZhbHVlKCksIHBhdGhzOiBbXSB9O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiJBQUlBLGVBQWUsTUFBTUEsVUFBVSxDQUFrQjtFQUFBQyxZQUFBO0lBQUEsS0FDdkNDLFVBQVUsR0FBRyxJQUFJQyxHQUFHLENBQTJCLENBQUM7RUFBQTtFQUV4REMsU0FBU0EsQ0FDUEMsRUFBVSxFQUNWQyxNQUF1QixFQUN2QkMsTUFBVyxFQUNYQyxZQUF1RCxFQUMxQjtJQUM3QixNQUFNQyxHQUFHLEdBQUdILE1BQU0sQ0FBQ0csR0FBRztJQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDUCxVQUFVLENBQUNRLEdBQUcsQ0FBQ0QsR0FBRyxDQUFDLEVBQUU7TUFDN0IsSUFBSSxDQUFDUCxVQUFVLENBQUNTLEdBQUcsQ0FBQ0YsR0FBRyxFQUFFLElBQUlOLEdBQUcsQ0FBYyxDQUFDLENBQUM7SUFDbEQ7SUFDQSxNQUFNUyxhQUFhLEdBQUcsSUFBSSxDQUFDVixVQUFVLENBQUNXLEdBQUcsQ0FBQ0osR0FBRyxDQUFxQjtJQUVsRSxJQUFJLENBQUNHLGFBQWEsQ0FBQ0MsR0FBRyxDQUFDUixFQUFFLENBQUMsRUFBRTtNQUMxQkcsWUFBWSxDQUFDSSxhQUFhLENBQUM7SUFDN0I7SUFDQSxPQUFPQSxhQUFhLENBQUNDLEdBQUcsQ0FBQ1IsRUFBRSxDQUFDO0VBQzlCO0VBRUFTLFVBQVVBLENBQ1JDLEtBQVUsRUFDVkMsUUFBaUIsRUFDakJSLFlBQXVCLEVBSXZCO0lBQ0EsT0FBTztNQUFFUyxJQUFJLEVBQUVULFlBQVksQ0FBQyxDQUFDO01BQUVVLEtBQUssRUFBRTtJQUFHLENBQUM7RUFDNUM7QUFDRiIsImlnbm9yZUxpc3QiOltdfQ==