@fjell/cache 4.6.1 → 4.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Aggregator.cjs.js +28 -1
- package/dist/Aggregator.es.js +28 -1
- package/dist/Cache.cjs.js +28 -1
- package/dist/Cache.d.ts +2 -0
- package/dist/Cache.es.js +28 -1
- package/dist/index.cjs +54 -0
- package/dist/index.cjs.map +1 -1
- package/package.json +4 -4
- package/src/Aggregator.ts +23 -0
- package/src/Cache.ts +38 -4
- package/vitest.config.ts +11 -1
package/dist/Aggregator.cjs.js
CHANGED
|
@@ -220,6 +220,18 @@ const createAggregator = async (cache, { aggregates = {}, events = {} })=>{
|
|
|
220
220
|
populatedItem
|
|
221
221
|
];
|
|
222
222
|
};
|
|
223
|
+
// Facets are a pass-thru for aggregators
|
|
224
|
+
const facet = async (key, facet)=>{
|
|
225
|
+
logger.default('facet', {
|
|
226
|
+
key,
|
|
227
|
+
facet
|
|
228
|
+
});
|
|
229
|
+
const [cacheMap, response] = await cache.facet(key, facet);
|
|
230
|
+
return [
|
|
231
|
+
cacheMap,
|
|
232
|
+
response
|
|
233
|
+
];
|
|
234
|
+
};
|
|
223
235
|
const find = async (finder, finderParams, locations = [])=>{
|
|
224
236
|
logger.default('find', {
|
|
225
237
|
finder,
|
|
@@ -233,6 +245,19 @@ const createAggregator = async (cache, { aggregates = {}, events = {} })=>{
|
|
|
233
245
|
populatedItems
|
|
234
246
|
];
|
|
235
247
|
};
|
|
248
|
+
const findOne = async (finder, finderParams, locations = [])=>{
|
|
249
|
+
logger.default('find', {
|
|
250
|
+
finder,
|
|
251
|
+
finderParams,
|
|
252
|
+
locations
|
|
253
|
+
});
|
|
254
|
+
const [cacheMap, item] = await cache.findOne(finder, finderParams, locations);
|
|
255
|
+
const populatedItem = await populate(item);
|
|
256
|
+
return [
|
|
257
|
+
cacheMap,
|
|
258
|
+
populatedItem
|
|
259
|
+
];
|
|
260
|
+
};
|
|
236
261
|
const set = async (key, v)=>{
|
|
237
262
|
logger.default('set', {
|
|
238
263
|
key,
|
|
@@ -260,7 +285,9 @@ const createAggregator = async (cache, { aggregates = {}, events = {} })=>{
|
|
|
260
285
|
retrieve,
|
|
261
286
|
remove,
|
|
262
287
|
update,
|
|
288
|
+
facet,
|
|
263
289
|
find,
|
|
290
|
+
findOne,
|
|
264
291
|
reset,
|
|
265
292
|
set,
|
|
266
293
|
pkTypes: cache.pkTypes,
|
|
@@ -273,4 +300,4 @@ const createAggregator = async (cache, { aggregates = {}, events = {} })=>{
|
|
|
273
300
|
|
|
274
301
|
exports.createAggregator = createAggregator;
|
|
275
302
|
exports.toCacheConfig = toCacheConfig;
|
|
276
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
303
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWdncmVnYXRvci5janMuanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7In0=
|
package/dist/Aggregator.es.js
CHANGED
|
@@ -216,6 +216,18 @@ const createAggregator = async (cache, { aggregates = {}, events = {} })=>{
|
|
|
216
216
|
populatedItem
|
|
217
217
|
];
|
|
218
218
|
};
|
|
219
|
+
// Facets are a pass-thru for aggregators
|
|
220
|
+
const facet = async (key, facet)=>{
|
|
221
|
+
logger.default('facet', {
|
|
222
|
+
key,
|
|
223
|
+
facet
|
|
224
|
+
});
|
|
225
|
+
const [cacheMap, response] = await cache.facet(key, facet);
|
|
226
|
+
return [
|
|
227
|
+
cacheMap,
|
|
228
|
+
response
|
|
229
|
+
];
|
|
230
|
+
};
|
|
219
231
|
const find = async (finder, finderParams, locations = [])=>{
|
|
220
232
|
logger.default('find', {
|
|
221
233
|
finder,
|
|
@@ -229,6 +241,19 @@ const createAggregator = async (cache, { aggregates = {}, events = {} })=>{
|
|
|
229
241
|
populatedItems
|
|
230
242
|
];
|
|
231
243
|
};
|
|
244
|
+
const findOne = async (finder, finderParams, locations = [])=>{
|
|
245
|
+
logger.default('find', {
|
|
246
|
+
finder,
|
|
247
|
+
finderParams,
|
|
248
|
+
locations
|
|
249
|
+
});
|
|
250
|
+
const [cacheMap, item] = await cache.findOne(finder, finderParams, locations);
|
|
251
|
+
const populatedItem = await populate(item);
|
|
252
|
+
return [
|
|
253
|
+
cacheMap,
|
|
254
|
+
populatedItem
|
|
255
|
+
];
|
|
256
|
+
};
|
|
232
257
|
const set = async (key, v)=>{
|
|
233
258
|
logger.default('set', {
|
|
234
259
|
key,
|
|
@@ -256,7 +281,9 @@ const createAggregator = async (cache, { aggregates = {}, events = {} })=>{
|
|
|
256
281
|
retrieve,
|
|
257
282
|
remove,
|
|
258
283
|
update,
|
|
284
|
+
facet,
|
|
259
285
|
find,
|
|
286
|
+
findOne,
|
|
260
287
|
reset,
|
|
261
288
|
set,
|
|
262
289
|
pkTypes: cache.pkTypes,
|
|
@@ -268,4 +295,4 @@ const createAggregator = async (cache, { aggregates = {}, events = {} })=>{
|
|
|
268
295
|
};
|
|
269
296
|
|
|
270
297
|
export { createAggregator, toCacheConfig };
|
|
271
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
298
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWdncmVnYXRvci5lcy5qcyIsInNvdXJjZXMiOltdLCJzb3VyY2VzQ29udGVudCI6W10sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7In0=
|
package/dist/Cache.cjs.js
CHANGED
|
@@ -213,6 +213,18 @@ const createCache = async (api, pkType, parentCache)=>{
|
|
|
213
213
|
throw e;
|
|
214
214
|
}
|
|
215
215
|
};
|
|
216
|
+
// Facets are a pass-thru for caches
|
|
217
|
+
const facet = async (key, facet)=>{
|
|
218
|
+
logger.default('facet', {
|
|
219
|
+
key,
|
|
220
|
+
facet
|
|
221
|
+
});
|
|
222
|
+
const ret = await api.facet(key, facet, {});
|
|
223
|
+
return [
|
|
224
|
+
cacheMap,
|
|
225
|
+
ret
|
|
226
|
+
];
|
|
227
|
+
};
|
|
216
228
|
const find = async (finder, finderParams, locations = [])=>{
|
|
217
229
|
logger.default('find', {
|
|
218
230
|
finder,
|
|
@@ -228,6 +240,19 @@ const createCache = async (api, pkType, parentCache)=>{
|
|
|
228
240
|
core.validatePK(ret, pkType)
|
|
229
241
|
];
|
|
230
242
|
};
|
|
243
|
+
const findOne = async (finder, finderParams, locations = [])=>{
|
|
244
|
+
logger.default('findOne', {
|
|
245
|
+
finder,
|
|
246
|
+
finderParams,
|
|
247
|
+
locations
|
|
248
|
+
});
|
|
249
|
+
const ret = await api.findOne(finder, finderParams, {}, locations);
|
|
250
|
+
cacheMap.set(ret.key, ret);
|
|
251
|
+
return [
|
|
252
|
+
cacheMap,
|
|
253
|
+
core.validatePK(ret, pkType)
|
|
254
|
+
];
|
|
255
|
+
};
|
|
231
256
|
const reset = async ()=>{
|
|
232
257
|
cacheMap = new CacheMap.CacheMap(pkTypes);
|
|
233
258
|
return [
|
|
@@ -267,7 +292,9 @@ const createCache = async (api, pkType, parentCache)=>{
|
|
|
267
292
|
retrieve,
|
|
268
293
|
remove,
|
|
269
294
|
update,
|
|
295
|
+
facet,
|
|
270
296
|
find,
|
|
297
|
+
findOne,
|
|
271
298
|
reset,
|
|
272
299
|
set,
|
|
273
300
|
pkTypes,
|
|
@@ -276,4 +303,4 @@ const createCache = async (api, pkType, parentCache)=>{
|
|
|
276
303
|
};
|
|
277
304
|
|
|
278
305
|
exports.createCache = createCache;
|
|
279
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
306
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FjaGUuY2pzLmpzIiwic291cmNlcyI6W10sInNvdXJjZXNDb250ZW50IjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyJ9
|
package/dist/Cache.d.ts
CHANGED
|
@@ -11,7 +11,9 @@ export interface Cache<V extends Item<S, L1, L2, L3, L4, L5>, S extends string,
|
|
|
11
11
|
retrieve: (key: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>) => Promise<[CacheMap<V, S, L1, L2, L3, L4, L5> | null, V | null]>;
|
|
12
12
|
remove: (key: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>) => Promise<CacheMap<V, S, L1, L2, L3, L4, L5>>;
|
|
13
13
|
update: (key: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>, v: TypesProperties<V, S, L1, L2, L3, L4, L5>) => Promise<[CacheMap<V, S, L1, L2, L3, L4, L5>, V]>;
|
|
14
|
+
facet: (key: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>, facet: string) => Promise<[CacheMap<V, S, L1, L2, L3, L4, L5>, any]>;
|
|
14
15
|
find: (finder: string, finderParams: Record<string, string | number | boolean | Date | Array<string | number | boolean | Date>>, locations?: LocKeyArray<L1, L2, L3, L4, L5> | []) => Promise<[CacheMap<V, S, L1, L2, L3, L4, L5>, V[]]>;
|
|
16
|
+
findOne: (finder: string, finderParams: Record<string, string | number | boolean | Date | Array<string | number | boolean | Date>>, locations?: LocKeyArray<L1, L2, L3, L4, L5> | []) => Promise<[CacheMap<V, S, L1, L2, L3, L4, L5>, V]>;
|
|
15
17
|
set: (key: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>, v: Item<S, L1, L2, L3, L4, L5>) => Promise<[CacheMap<V, S, L1, L2, L3, L4, L5>, V]>;
|
|
16
18
|
reset: () => Promise<[CacheMap<V, S, L1, L2, L3, L4, L5>]>;
|
|
17
19
|
pkTypes: AllItemTypeArrays<S, L1, L2, L3, L4, L5>;
|
package/dist/Cache.es.js
CHANGED
|
@@ -209,6 +209,18 @@ const createCache = async (api, pkType, parentCache)=>{
|
|
|
209
209
|
throw e;
|
|
210
210
|
}
|
|
211
211
|
};
|
|
212
|
+
// Facets are a pass-thru for caches
|
|
213
|
+
const facet = async (key, facet)=>{
|
|
214
|
+
logger.default('facet', {
|
|
215
|
+
key,
|
|
216
|
+
facet
|
|
217
|
+
});
|
|
218
|
+
const ret = await api.facet(key, facet, {});
|
|
219
|
+
return [
|
|
220
|
+
cacheMap,
|
|
221
|
+
ret
|
|
222
|
+
];
|
|
223
|
+
};
|
|
212
224
|
const find = async (finder, finderParams, locations = [])=>{
|
|
213
225
|
logger.default('find', {
|
|
214
226
|
finder,
|
|
@@ -224,6 +236,19 @@ const createCache = async (api, pkType, parentCache)=>{
|
|
|
224
236
|
validatePK(ret, pkType)
|
|
225
237
|
];
|
|
226
238
|
};
|
|
239
|
+
const findOne = async (finder, finderParams, locations = [])=>{
|
|
240
|
+
logger.default('findOne', {
|
|
241
|
+
finder,
|
|
242
|
+
finderParams,
|
|
243
|
+
locations
|
|
244
|
+
});
|
|
245
|
+
const ret = await api.findOne(finder, finderParams, {}, locations);
|
|
246
|
+
cacheMap.set(ret.key, ret);
|
|
247
|
+
return [
|
|
248
|
+
cacheMap,
|
|
249
|
+
validatePK(ret, pkType)
|
|
250
|
+
];
|
|
251
|
+
};
|
|
227
252
|
const reset = async ()=>{
|
|
228
253
|
cacheMap = new CacheMap(pkTypes);
|
|
229
254
|
return [
|
|
@@ -263,7 +288,9 @@ const createCache = async (api, pkType, parentCache)=>{
|
|
|
263
288
|
retrieve,
|
|
264
289
|
remove,
|
|
265
290
|
update,
|
|
291
|
+
facet,
|
|
266
292
|
find,
|
|
293
|
+
findOne,
|
|
267
294
|
reset,
|
|
268
295
|
set,
|
|
269
296
|
pkTypes,
|
|
@@ -272,4 +299,4 @@ const createCache = async (api, pkType, parentCache)=>{
|
|
|
272
299
|
};
|
|
273
300
|
|
|
274
301
|
export { createCache };
|
|
275
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
302
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FjaGUuZXMuanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsifQ==
|
package/dist/index.cjs
CHANGED
|
@@ -224,6 +224,18 @@ const createAggregator = async (cache, { aggregates = {}, events = {} })=>{
|
|
|
224
224
|
populatedItem
|
|
225
225
|
];
|
|
226
226
|
};
|
|
227
|
+
// Facets are a pass-thru for aggregators
|
|
228
|
+
const facet = async (key, facet)=>{
|
|
229
|
+
logger$3.default('facet', {
|
|
230
|
+
key,
|
|
231
|
+
facet
|
|
232
|
+
});
|
|
233
|
+
const [cacheMap, response] = await cache.facet(key, facet);
|
|
234
|
+
return [
|
|
235
|
+
cacheMap,
|
|
236
|
+
response
|
|
237
|
+
];
|
|
238
|
+
};
|
|
227
239
|
const find = async (finder, finderParams, locations = [])=>{
|
|
228
240
|
logger$3.default('find', {
|
|
229
241
|
finder,
|
|
@@ -237,6 +249,19 @@ const createAggregator = async (cache, { aggregates = {}, events = {} })=>{
|
|
|
237
249
|
populatedItems
|
|
238
250
|
];
|
|
239
251
|
};
|
|
252
|
+
const findOne = async (finder, finderParams, locations = [])=>{
|
|
253
|
+
logger$3.default('find', {
|
|
254
|
+
finder,
|
|
255
|
+
finderParams,
|
|
256
|
+
locations
|
|
257
|
+
});
|
|
258
|
+
const [cacheMap, item] = await cache.findOne(finder, finderParams, locations);
|
|
259
|
+
const populatedItem = await populate(item);
|
|
260
|
+
return [
|
|
261
|
+
cacheMap,
|
|
262
|
+
populatedItem
|
|
263
|
+
];
|
|
264
|
+
};
|
|
240
265
|
const set = async (key, v)=>{
|
|
241
266
|
logger$3.default('set', {
|
|
242
267
|
key,
|
|
@@ -264,7 +289,9 @@ const createAggregator = async (cache, { aggregates = {}, events = {} })=>{
|
|
|
264
289
|
retrieve,
|
|
265
290
|
remove,
|
|
266
291
|
update,
|
|
292
|
+
facet,
|
|
267
293
|
find,
|
|
294
|
+
findOne,
|
|
268
295
|
reset,
|
|
269
296
|
set,
|
|
270
297
|
pkTypes: cache.pkTypes,
|
|
@@ -580,6 +607,18 @@ const createCache = async (api, pkType, parentCache)=>{
|
|
|
580
607
|
throw e;
|
|
581
608
|
}
|
|
582
609
|
};
|
|
610
|
+
// Facets are a pass-thru for caches
|
|
611
|
+
const facet = async (key, facet)=>{
|
|
612
|
+
logger$1.default('facet', {
|
|
613
|
+
key,
|
|
614
|
+
facet
|
|
615
|
+
});
|
|
616
|
+
const ret = await api.facet(key, facet, {});
|
|
617
|
+
return [
|
|
618
|
+
cacheMap,
|
|
619
|
+
ret
|
|
620
|
+
];
|
|
621
|
+
};
|
|
583
622
|
const find = async (finder, finderParams, locations = [])=>{
|
|
584
623
|
logger$1.default('find', {
|
|
585
624
|
finder,
|
|
@@ -595,6 +634,19 @@ const createCache = async (api, pkType, parentCache)=>{
|
|
|
595
634
|
core.validatePK(ret, pkType)
|
|
596
635
|
];
|
|
597
636
|
};
|
|
637
|
+
const findOne = async (finder, finderParams, locations = [])=>{
|
|
638
|
+
logger$1.default('findOne', {
|
|
639
|
+
finder,
|
|
640
|
+
finderParams,
|
|
641
|
+
locations
|
|
642
|
+
});
|
|
643
|
+
const ret = await api.findOne(finder, finderParams, {}, locations);
|
|
644
|
+
cacheMap.set(ret.key, ret);
|
|
645
|
+
return [
|
|
646
|
+
cacheMap,
|
|
647
|
+
core.validatePK(ret, pkType)
|
|
648
|
+
];
|
|
649
|
+
};
|
|
598
650
|
const reset = async ()=>{
|
|
599
651
|
cacheMap = new CacheMap(pkTypes);
|
|
600
652
|
return [
|
|
@@ -634,7 +686,9 @@ const createCache = async (api, pkType, parentCache)=>{
|
|
|
634
686
|
retrieve,
|
|
635
687
|
remove,
|
|
636
688
|
update,
|
|
689
|
+
facet,
|
|
637
690
|
find,
|
|
691
|
+
findOne,
|
|
638
692
|
reset,
|
|
639
693
|
set,
|
|
640
694
|
pkTypes,
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fjell/cache",
|
|
3
3
|
"description": "Cache for Fjell",
|
|
4
|
-
"version": "4.6.
|
|
4
|
+
"version": "4.6.2",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "./dist/index.cjs.js",
|
|
@@ -15,13 +15,13 @@
|
|
|
15
15
|
}
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@fjell/client-api": "^4.4.
|
|
18
|
+
"@fjell/client-api": "^4.4.2",
|
|
19
19
|
"@fjell/core": "^4.4.2",
|
|
20
20
|
"@fjell/http-api": "^4.4.0",
|
|
21
21
|
"@fjell/logging": "^4.4.2",
|
|
22
22
|
"d3": "^7.9.0",
|
|
23
23
|
"dayjs": "^1.11.13",
|
|
24
|
-
"react": "
|
|
24
|
+
"react": "19.1.0"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@babel/preset-env": "^7.26.9",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"@types/babel__preset-env": "^7.10.0",
|
|
34
34
|
"@types/d3": "^7.4.3",
|
|
35
35
|
"@types/multer": "^1.4.12",
|
|
36
|
-
"@types/node": "^
|
|
36
|
+
"@types/node": "^24.0.3",
|
|
37
37
|
"@typescript-eslint/eslint-plugin": "^8.24.1",
|
|
38
38
|
"@typescript-eslint/parser": "^8.24.1",
|
|
39
39
|
"@vitest/coverage-v8": "^3.1.4",
|
package/src/Aggregator.ts
CHANGED
|
@@ -247,6 +247,16 @@ export const createAggregator = async <
|
|
|
247
247
|
return [cacheMap, populatedItem];
|
|
248
248
|
}
|
|
249
249
|
|
|
250
|
+
// Facets are a pass-thru for aggregators
|
|
251
|
+
const facet = async (
|
|
252
|
+
key: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>,
|
|
253
|
+
facet: string,
|
|
254
|
+
): Promise<[CacheMap<V, S, L1, L2, L3, L4, L5>, any]> => {
|
|
255
|
+
logger.default('facet', { key, facet });
|
|
256
|
+
const [cacheMap, response] = await cache.facet(key, facet);
|
|
257
|
+
return [cacheMap, response];
|
|
258
|
+
}
|
|
259
|
+
|
|
250
260
|
const find = async (
|
|
251
261
|
finder: string,
|
|
252
262
|
finderParams: Record<string, string | number | boolean | Date | Array<string | number | boolean | Date>>,
|
|
@@ -258,6 +268,17 @@ export const createAggregator = async <
|
|
|
258
268
|
return [cacheMap, populatedItems];
|
|
259
269
|
}
|
|
260
270
|
|
|
271
|
+
const findOne = async (
|
|
272
|
+
finder: string,
|
|
273
|
+
finderParams: Record<string, string | number | boolean | Date | Array<string | number | boolean | Date>>,
|
|
274
|
+
locations: LocKeyArray<L1, L2, L3, L4, L5> | [] = []
|
|
275
|
+
): Promise<[CacheMap<V, S, L1, L2, L3, L4, L5>, V]> => {
|
|
276
|
+
logger.default('find', { finder, finderParams, locations });
|
|
277
|
+
const [cacheMap, item] = await cache.findOne(finder, finderParams, locations);
|
|
278
|
+
const populatedItem = await populate(item);
|
|
279
|
+
return [cacheMap, populatedItem];
|
|
280
|
+
}
|
|
281
|
+
|
|
261
282
|
const set = async (
|
|
262
283
|
key: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>,
|
|
263
284
|
v: Item<S, L1, L2, L3, L4, L5>
|
|
@@ -285,7 +306,9 @@ export const createAggregator = async <
|
|
|
285
306
|
retrieve,
|
|
286
307
|
remove,
|
|
287
308
|
update,
|
|
309
|
+
facet,
|
|
288
310
|
find,
|
|
311
|
+
findOne,
|
|
289
312
|
reset,
|
|
290
313
|
set,
|
|
291
314
|
pkTypes: cache.pkTypes,
|
package/src/Cache.ts
CHANGED
|
@@ -73,12 +73,23 @@ export interface Cache<
|
|
|
73
73
|
v: TypesProperties<V, S, L1, L2, L3, L4, L5>,
|
|
74
74
|
) => Promise<[CacheMap<V, S, L1, L2, L3, L4, L5>, V]>;
|
|
75
75
|
|
|
76
|
+
facet: (
|
|
77
|
+
key: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>,
|
|
78
|
+
facet: string,
|
|
79
|
+
) => Promise<[CacheMap<V, S, L1, L2, L3, L4, L5>, any]>;
|
|
80
|
+
|
|
76
81
|
find: (
|
|
77
82
|
finder: string,
|
|
78
83
|
finderParams: Record<string, string | number | boolean | Date | Array<string | number | boolean | Date>>,
|
|
79
84
|
locations?: LocKeyArray<L1, L2, L3, L4, L5> | []
|
|
80
85
|
) => Promise<[CacheMap<V, S, L1, L2, L3, L4, L5>, V[]]>;
|
|
81
86
|
|
|
87
|
+
findOne: (
|
|
88
|
+
finder: string,
|
|
89
|
+
finderParams: Record<string, string | number | boolean | Date | Array<string | number | boolean | Date>>,
|
|
90
|
+
locations?: LocKeyArray<L1, L2, L3, L4, L5> | []
|
|
91
|
+
) => Promise<[CacheMap<V, S, L1, L2, L3, L4, L5>, V]>;
|
|
92
|
+
|
|
82
93
|
set: (
|
|
83
94
|
key: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>,
|
|
84
95
|
v: Item<S, L1, L2, L3, L4, L5>
|
|
@@ -105,8 +116,8 @@ export const createCache = async <
|
|
|
105
116
|
parentCache?: Cache<Item<L1, L2, L3, L4, L5>, L1, L2, L3, L4, L5>
|
|
106
117
|
): Promise<Cache<V, S, L1, L2, L3, L4, L5>> => {
|
|
107
118
|
|
|
108
|
-
let pkTypes: AllItemTypeArrays<S, L1, L2, L3, L4, L5> = [
|
|
109
|
-
if(
|
|
119
|
+
let pkTypes: AllItemTypeArrays<S, L1, L2, L3, L4, L5> = [pkType];
|
|
120
|
+
if (parentCache) {
|
|
110
121
|
pkTypes = pkTypes.concat(parentCache.pkTypes as any) as unknown as AllItemTypeArrays<S, L1, L2, L3, L4, L5>;
|
|
111
122
|
}
|
|
112
123
|
|
|
@@ -264,7 +275,7 @@ export const createCache = async <
|
|
|
264
275
|
const retValue: [CacheMap<V, S, L1, L2, L3, L4, L5> | null, V | null] = [
|
|
265
276
|
containsItemKey ? null : cacheMap,
|
|
266
277
|
retrieved ?
|
|
267
|
-
validatePK(retrieved, pkType) as V:
|
|
278
|
+
validatePK(retrieved, pkType) as V :
|
|
268
279
|
null
|
|
269
280
|
];
|
|
270
281
|
// logger.debug('Returning from retrieve', { retValue });
|
|
@@ -314,6 +325,16 @@ export const createCache = async <
|
|
|
314
325
|
}
|
|
315
326
|
}
|
|
316
327
|
|
|
328
|
+
// Facets are a pass-thru for caches
|
|
329
|
+
const facet = async (
|
|
330
|
+
key: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>,
|
|
331
|
+
facet: string,
|
|
332
|
+
): Promise<[CacheMap<V, S, L1, L2, L3, L4, L5>, any]> => {
|
|
333
|
+
logger.default('facet', { key, facet });
|
|
334
|
+
const ret = await api.facet(key, facet, {});
|
|
335
|
+
return [cacheMap, ret];
|
|
336
|
+
}
|
|
337
|
+
|
|
317
338
|
const find = async (
|
|
318
339
|
finder: string,
|
|
319
340
|
finderParams: Record<string, string | number | boolean | Date | Array<string | number | boolean | Date>>,
|
|
@@ -327,6 +348,17 @@ export const createCache = async <
|
|
|
327
348
|
return [cacheMap, validatePK(ret, pkType) as V[]];
|
|
328
349
|
}
|
|
329
350
|
|
|
351
|
+
const findOne = async (
|
|
352
|
+
finder: string,
|
|
353
|
+
finderParams: Record<string, string | number | boolean | Date | Array<string | number | boolean | Date>>,
|
|
354
|
+
locations: LocKeyArray<L1, L2, L3, L4, L5> | [] = []
|
|
355
|
+
): Promise<[CacheMap<V, S, L1, L2, L3, L4, L5>, V]> => {
|
|
356
|
+
logger.default('findOne', { finder, finderParams, locations });
|
|
357
|
+
const ret = await api.findOne(finder, finderParams, {}, locations);
|
|
358
|
+
cacheMap.set(ret.key, ret);
|
|
359
|
+
return [cacheMap, validatePK(ret, pkType) as V];
|
|
360
|
+
}
|
|
361
|
+
|
|
330
362
|
const reset = async (): Promise<[CacheMap<V, S, L1, L2, L3, L4, L5>]> => {
|
|
331
363
|
cacheMap = new CacheMap<V, S, L1, L2, L3, L4, L5>(pkTypes);
|
|
332
364
|
return [cacheMap];
|
|
@@ -337,7 +369,7 @@ export const createCache = async <
|
|
|
337
369
|
v: Item<S, L1, L2, L3, L4, L5>
|
|
338
370
|
): Promise<[CacheMap<V, S, L1, L2, L3, L4, L5>, V]> => {
|
|
339
371
|
logger.default('set', { key, v });
|
|
340
|
-
|
|
372
|
+
|
|
341
373
|
// TODO: This is validating the key, but it doesn't have knowledge of the pkType
|
|
342
374
|
// This should be looking at the parentCaches and calculating an array of pkTypes
|
|
343
375
|
if (!isValidItemKey(key)) {
|
|
@@ -367,7 +399,9 @@ export const createCache = async <
|
|
|
367
399
|
retrieve,
|
|
368
400
|
remove,
|
|
369
401
|
update,
|
|
402
|
+
facet,
|
|
370
403
|
find,
|
|
404
|
+
findOne,
|
|
371
405
|
reset,
|
|
372
406
|
set,
|
|
373
407
|
pkTypes,
|
package/vitest.config.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineConfig } from 'vitest/config'
|
|
2
|
-
import path from 'path'
|
|
2
|
+
import * as path from 'path'
|
|
3
3
|
|
|
4
4
|
export default defineConfig({
|
|
5
5
|
test: {
|
|
@@ -13,7 +13,17 @@ export default defineConfig({
|
|
|
13
13
|
'node_modules/',
|
|
14
14
|
'tests/',
|
|
15
15
|
'src/index.ts',
|
|
16
|
+
'eslint.config.mjs',
|
|
17
|
+
'vite.config.ts',
|
|
18
|
+
'vitest.config.ts',
|
|
19
|
+
'dist',
|
|
16
20
|
],
|
|
21
|
+
thresholds: {
|
|
22
|
+
lines: 89,
|
|
23
|
+
functions: 85,
|
|
24
|
+
branches: 94,
|
|
25
|
+
statements: 89,
|
|
26
|
+
},
|
|
17
27
|
},
|
|
18
28
|
setupFiles: ['./tests/setup.ts'],
|
|
19
29
|
deps: {
|