@data-client/normalizr
Version:
Normalizes and denormalizes JSON according to schema for Redux and Flux applications
23 lines • 3.18 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,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMb2NhbENhY2hlIiwiY29uc3RydWN0b3IiLCJsb2NhbENhY2hlIiwiTWFwIiwiZ2V0RW50aXR5IiwicGsiLCJzY2hlbWEiLCJlbnRpdHkiLCJjb21wdXRlVmFsdWUiLCJrZXkiLCJoYXMiLCJzZXQiLCJsb2NhbENhY2hlS2V5IiwiZ2V0IiwiZ2V0UmVzdWx0cyIsImlucHV0IiwiY2FjaGFibGUiLCJkYXRhIiwicGF0aHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVub3JtYWxpemUvbG9jYWxDYWNoZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSBDYWNoZSBmcm9tICcuL2NhY2hlLmpzJztcbmltcG9ydCB0eXBlIHsgRW50aXR5SW50ZXJmYWNlLCBFbnRpdHlQYXRoIH0gZnJvbSAnLi4vaW50ZXJmYWNlLmpzJztcbmltcG9ydCB0eXBlIHsgSU5WQUxJRCB9IGZyb20gJy4vc3ltYm9sLmpzJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTG9jYWxDYWNoZSBpbXBsZW1lbnRzIENhY2hlIHtcbiAgcHJpdmF0ZSBsb2NhbENhY2hlID0gbmV3IE1hcDxzdHJpbmcsIE1hcDxzdHJpbmcsIGFueT4+KCk7XG5cbiAgZ2V0RW50aXR5KFxuICAgIHBrOiBzdHJpbmcsXG4gICAgc2NoZW1hOiBFbnRpdHlJbnRlcmZhY2UsXG4gICAgZW50aXR5OiBhbnksXG4gICAgY29tcHV0ZVZhbHVlOiAobG9jYWxDYWNoZUtleTogTWFwPHN0cmluZywgYW55PikgPT4gdm9pZCxcbiAgKTogb2JqZWN0IHwgdW5kZWZpbmVkIHwgdHlwZW9mIElOVkFMSUQge1xuICAgIGNvbnN0IGtleSA9IHNjaGVtYS5rZXk7XG4gICAgaWYgKCF0aGlzLmxvY2FsQ2FjaGUuaGFzKGtleSkpIHtcbiAgICAgIHRoaXMubG9jYWxDYWNoZS5zZXQoa2V5LCBuZXcgTWFwPHN0cmluZywgYW55PigpKTtcbiAgICB9XG4gICAgY29uc3QgbG9jYWxDYWNoZUtleSA9IHRoaXMubG9jYWxDYWNoZS5nZXQoa2V5KSE7XG5cbiAgICBpZiAoIWxvY2FsQ2FjaGVLZXkuZ2V0KHBrKSkge1xuICAgICAgY29tcHV0ZVZhbHVlKGxvY2FsQ2FjaGVLZXkpO1xuICAgIH1cbiAgICByZXR1cm4gbG9jYWxDYWNoZUtleS5nZXQocGspO1xuICB9XG5cbiAgZ2V0UmVzdWx0cyhcbiAgICBpbnB1dDogYW55LFxuICAgIGNhY2hhYmxlOiBib29sZWFuLFxuICAgIGNvbXB1dGVWYWx1ZTogKCkgPT4gYW55LFxuICApOiB7XG4gICAgZGF0YTogYW55O1xuICAgIHBhdGhzOiBFbnRpdHlQYXRoW107XG4gIH0ge1xuICAgIHJldHVybiB7IGRhdGE6IGNvbXB1dGVWYWx1ZSgpLCBwYXRoczogW10gfTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiQUFJQSxlQUFlLE1BQU1BLFVBQVUsQ0FBa0I7RUFBQUMsWUFBQTtJQUFBLEtBQ3ZDQyxVQUFVLEdBQUcsSUFBSUMsR0FBRyxDQUEyQixDQUFDO0VBQUE7RUFFeERDLFNBQVNBLENBQ1BDLEVBQVUsRUFDVkMsTUFBdUIsRUFDdkJDLE1BQVcsRUFDWEMsWUFBdUQsRUFDbEI7SUFDckMsTUFBTUMsR0FBRyxHQUFHSCxNQUFNLENBQUNHLEdBQUc7SUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQ1AsVUFBVSxDQUFDUSxHQUFHLENBQUNELEdBQUcsQ0FBQyxFQUFFO01BQzdCLElBQUksQ0FBQ1AsVUFBVSxDQUFDUyxHQUFHLENBQUNGLEdBQUcsRUFBRSxJQUFJTixHQUFHLENBQWMsQ0FBQyxDQUFDO0lBQ2xEO0lBQ0EsTUFBTVMsYUFBYSxHQUFHLElBQUksQ0FBQ1YsVUFBVSxDQUFDVyxHQUFHLENBQUNKLEdBQUcsQ0FBRTtJQUUvQyxJQUFJLENBQUNHLGFBQWEsQ0FBQ0MsR0FBRyxDQUFDUixFQUFFLENBQUMsRUFBRTtNQUMxQkcsWUFBWSxDQUFDSSxhQUFhLENBQUM7SUFDN0I7SUFDQSxPQUFPQSxhQUFhLENBQUNDLEdBQUcsQ0FBQ1IsRUFBRSxDQUFDO0VBQzlCO0VBRUFTLFVBQVVBLENBQ1JDLEtBQVUsRUFDVkMsUUFBaUIsRUFDakJSLFlBQXVCLEVBSXZCO0lBQ0EsT0FBTztNQUFFUyxJQUFJLEVBQUVULFlBQVksQ0FBQyxDQUFDO01BQUVVLEtBQUssRUFBRTtJQUFHLENBQUM7RUFDNUM7QUFDRiIsImlnbm9yZUxpc3QiOltdfQ==