@ngrx-traits/core 18.4.2 → 19.0.0-beta.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.
@@ -1,138 +0,0 @@
1
- import { createReducer, on } from '@ngrx/store';
2
- import { hashKey, isCacheValid, } from './cache.models';
3
- import * as CacheActions from './cache.actions';
4
- export const initialState = {
5
- keys: {},
6
- };
7
- export const cacheReducer = createReducer(initialState, on(CacheActions.cache, (state, { key, value, date, maxCacheSize }) => setCacheValue(hashKey(key), { value, date, invalid: false }, state, maxCacheSize)), on(CacheActions.invalidateCache, (state, { key }) => {
8
- const k = hashKey(key);
9
- return invalidateCache(k, state);
10
- }), on(CacheActions.deleteCache, (state, { key }) => {
11
- const k = hashKey(key);
12
- return deleteCacheValue(k, state);
13
- }), on(CacheActions.hitCache, (state, { key }) => {
14
- const k = hashKey(key);
15
- return increaseCacheHitCount(k, state);
16
- }));
17
- function setCacheValue(keys, value, state, maxCacheSize, expires) {
18
- const newState = { ...state };
19
- let cache = newState;
20
- let lastCache = undefined;
21
- for (let i = 0; i < keys.length; i++) {
22
- const key = keys[i];
23
- cache.keys = cache?.keys ? { ...cache?.keys } : {};
24
- let v = cache.keys[key];
25
- v = v ? { ...v } : {};
26
- cache.keys[key] = v;
27
- lastCache = cache;
28
- cache = v;
29
- }
30
- cache.data = cache.data
31
- ? { ...value, hitCount: cache.data.hitCount + 1 }
32
- : { ...value, hitCount: 1 };
33
- if (maxCacheSize &&
34
- lastCache?.keys &&
35
- Object.keys(lastCache.keys).length > maxCacheSize) {
36
- const entries = findLessHitOrOldestCacheEntries(lastCache, expires ?? Infinity, maxCacheSize);
37
- if (entries && entries.length) {
38
- for (const [key] of entries) {
39
- delete lastCache.keys[key];
40
- }
41
- }
42
- }
43
- return newState;
44
- }
45
- function findLessHitOrOldestCacheEntries(state, expires, maxCacheSize) {
46
- if (!state.keys)
47
- return undefined;
48
- const entries = Object.entries(state.keys);
49
- // find the newest key;
50
- const [newestKey] = entries.reduce((a, b) => {
51
- const aDate = a[1].data?.date ?? 0;
52
- const bDate = b[1].data?.date ?? 0;
53
- return aDate > bDate ? a : b;
54
- });
55
- const sorted = entries.sort(([aKey, aValue], [bKey, bValue]) => {
56
- // ensures the newest key always wins
57
- if (aKey === newestKey)
58
- return -1;
59
- if (bKey === newestKey)
60
- return 1;
61
- const aValid = aValue.data && isCacheValid(aValue.data, expires) ? 1 : 0;
62
- const bValid = bValue.data && isCacheValid(bValue.data, expires) ? 1 : 0;
63
- const diffValid = aValid - bValid;
64
- const diffHit = (aValue.data?.hitCount ?? 0) - (bValue.data?.hitCount ?? 0);
65
- const diffDate = (aValue.data?.date ?? 0) - (bValue.data?.date ?? 0);
66
- return (-1 * (diffValid === 0 ? (diffHit === 0 ? diffDate : diffHit) : diffValid));
67
- });
68
- return sorted.slice(maxCacheSize);
69
- }
70
- function deleteCacheValue(keys, state) {
71
- const newState = { ...state };
72
- let cache = newState;
73
- for (const key of keys) {
74
- if (!cache.keys)
75
- return state;
76
- cache.keys = { ...cache?.keys };
77
- let v = cache.keys[key];
78
- if (!v)
79
- return state;
80
- v = { ...v };
81
- cache.keys[key] = v;
82
- cache = v;
83
- }
84
- if (cache.data)
85
- delete cache.data;
86
- else if (cache.keys)
87
- delete cache.keys;
88
- return newState;
89
- }
90
- function invalidateCache(keys, state) {
91
- const newState = { ...state };
92
- let cache = newState;
93
- for (const key of keys) {
94
- if (!cache?.keys)
95
- return state;
96
- cache.keys = { ...cache?.keys };
97
- let v = cache?.keys?.[key];
98
- if (!v)
99
- return state;
100
- v = { ...v };
101
- cache.keys[key] = v;
102
- cache = v;
103
- }
104
- cache && invalidaSubKeys(cache);
105
- return newState;
106
- }
107
- function increaseCacheHitCount(keys, state) {
108
- const newState = { ...state };
109
- let cache = newState;
110
- for (const key of keys) {
111
- if (!cache?.keys)
112
- return state;
113
- cache.keys = { ...cache?.keys };
114
- let v = cache?.keys?.[key];
115
- if (!v)
116
- return state;
117
- v = { ...v };
118
- cache.keys[key] = v;
119
- cache = v;
120
- }
121
- if (!cache.data)
122
- return state;
123
- cache.data = { ...cache.data, hitCount: cache.data.hitCount + 1 };
124
- return newState;
125
- }
126
- function invalidaSubKeys(state) {
127
- if (state.data) {
128
- state.data = { ...state.data, invalid: true };
129
- }
130
- if (state.keys) {
131
- state.keys = { ...state.keys };
132
- for (const key in state.keys) {
133
- state.keys[key] = invalidaSubKeys({ ...state.keys[key] });
134
- }
135
- }
136
- return state;
137
- }
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUucmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmdyeC10cmFpdHMvY29yZS9zcmMvbGliL2NhY2hlL2NhY2hlLnJlZHVjZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEQsT0FBTyxFQUlMLE9BQU8sRUFDUCxZQUFZLEdBQ2IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEtBQUssWUFBWSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBZTtJQUN0QyxJQUFJLEVBQUUsRUFBRTtDQUNULENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsYUFBYSxDQUN2QyxZQUFZLEVBQ1osRUFBRSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFLENBQ25FLGFBQWEsQ0FDWCxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQ1osRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFDL0IsS0FBSyxFQUNMLFlBQVksQ0FDYixDQUNGLEVBQ0QsRUFBRSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFO0lBQ2xELE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN2QixPQUFPLGVBQWUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDbkMsQ0FBQyxDQUFDLEVBQ0YsRUFBRSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFO0lBQzlDLE1B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ZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlUmVkdWNlciwgb24gfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge1xuICBDYWNoZURhdGEsXG4gIENhY2hlS2V5cyxcbiAgQ2FjaGVTdGF0ZSxcbiAgaGFzaEtleSxcbiAgaXNDYWNoZVZhbGlkLFxufSBmcm9tICcuL2NhY2hlLm1vZGVscyc7XG5pbXBvcnQgKiBhcyBDYWNoZUFjdGlvbnMgZnJvbSAnLi9jYWNoZS5hY3Rpb25zJztcblxuZXhwb3J0IGNvbnN0IGluaXRpYWxTdGF0ZTogQ2FjaGVTdGF0ZSA9IHtcbiAga2V5czoge30sXG59O1xuXG5leHBvcnQgY29uc3QgY2FjaGVSZWR1Y2VyID0gY3JlYXRlUmVkdWNlcihcbiAgaW5pdGlhbFN0YXRlLFxuICBvbihDYWNoZUFjdGlvbnMuY2FjaGUsIChzdGF0ZSwgeyBrZXksIHZhbHVlLCBkYXRlLCBtYXhDYWNoZVNpemUgfSkgPT5cbiAgICBzZXRDYWNoZVZhbHVlKFxuICAgICAgaGFzaEtleShrZXkpLFxuICAgICAgeyB2YWx1ZSwgZGF0ZSwgaW52YWxpZDogZmFsc2UgfSxcbiAgICAgIHN0YXRlLFxuICAgICAgbWF4Q2FjaGVTaXplXG4gICAgKVxuICApLFxuICBvbihDYWNoZUFjdGlvbnMuaW52YWxpZGF0ZUNhY2hlLCAoc3RhdGUsIHsga2V5IH0pID0+IHtcbiAgICBjb25zdCBrID0gaGFzaEtleShrZXkpO1xuICAgIHJldHVybiBpbnZhbGlkYXRlQ2FjaGUoaywgc3RhdGUpO1xuICB9KSxcbiAgb24oQ2FjaGVBY3Rpb25zLmRlbGV0ZUNhY2hlLCAoc3RhdGUsIHsga2V5IH0pID0+IHtcbiAgICBjb25zdCBrID0gaGFzaEtleShrZXkpO1xuICAgIHJldHVybiBkZWxldGVDYWNoZVZhbHVlKGssIHN0YXRlKTtcbiAgfSksXG4gIG9uKENhY2hlQWN0aW9ucy5oaXRDYWNoZSwgKHN0YXRlLCB7IGtleSB9KSA9PiB7XG4gICAgY29uc3QgayA9IGhhc2hLZXkoa2V5KTtcbiAgICByZXR1cm4gaW5jcmVhc2VDYWNoZUhpdENvdW50KGssIHN0YXRlKTtcbiAgfSlcbik7XG5cbmZ1bmN0aW9uIHNldENhY2hlVmFsdWUoXG4gIGtleXM6IHN0cmluZ1tdLFxuICB2YWx1ZTogT21pdDxDYWNoZURhdGEsICdoaXRDb3VudCc+LFxuICBzdGF0ZTogQ2FjaGVTdGF0ZSxcbiAgbWF4Q2FjaGVTaXplPzogbnVtYmVyLFxuICBleHBpcmVzPzogbnVtYmVyXG4pIHtcbiAgY29uc3QgbmV3U3RhdGUgPSB7IC4uLnN0YXRlIH07XG4gIGxldCBjYWNoZSA9IG5ld1N0YXRlO1xuICBsZXQgbGFzdENhY2hlOiBDYWNoZUtleXMgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGtleSA9IGtleXNbaV07XG4gICAgY2FjaGUua2V5cyA9IGNhY2hlPy5rZXlzID8geyAuLi5jYWNoZT8ua2V5cyB9IDoge307XG4gICAgbGV0IHYgPSBjYWNoZS5rZXlzW2tleV07XG4gICAgdiA9IHYgPyB7IC4uLnYgfSA6IHt9O1xuICAgIGNhY2hlLmtleXNba2V5XSA9IHY7XG4gICAgbGFzdENhY2hlID0gY2FjaGU7XG4gICAgY2FjaGUgPSB2O1xuICB9XG4gIGNhY2hlLmRhdGEgPSBjYWNoZS5kYXRhXG4gICAgPyB7IC4uLnZhbHVlLCBoaXRDb3VudDogY2FjaGUuZGF0YS5oaXRDb3VudCArIDEgfVxuICAgIDogeyAuLi52YWx1ZSwgaGl0Q291bnQ6IDEgfTtcblxuICBpZiAoXG4gICAgbWF4Q2FjaGVTaXplICYmXG4gICAgbGFzdENhY2hlPy5rZXlzICYmXG4gICAgT2JqZWN0LmtleXMobGFzdENhY2hlLmtleXMpLmxlbmd0aCA+IG1heENhY2hlU2l6ZVxuICApIHtcbiAgICBjb25zdCBlbnRyaWVzID0gZmluZExlc3NIaXRPck9sZGVzdENhY2hlRW50cmllcyhcbiAgICAgIGxhc3RDYWNoZSxcbiAgICAgIGV4cGlyZXMgPz8gSW5maW5pdHksXG4gICAgICBtYXhDYWNoZVNpemVcbiAgICApO1xuICAgIGlmIChlbnRyaWVzICYmIGVudHJpZXMubGVuZ3RoKSB7XG4gICAgICBmb3IgKGNvbnN0IFtrZXldIG9mIGVudHJpZXMpIHtcbiAgICAgICAgZGVsZXRlIGxhc3RDYWNoZS5rZXlzW2tleV07XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBuZXdTdGF0ZTtcbn1cblxuZnVuY3Rpb24gZmluZExlc3NIaXRPck9sZGVzdENhY2hlRW50cmllcyhcbiAgc3RhdGU6IENhY2hlS2V5cyxcbiAgZXhwaXJlczogbnVtYmVyLFxuICBtYXhDYWNoZVNpemU6IG51bWJlclxuKSB7XG4gIGlmICghc3RhdGUua2V5cykgcmV0dXJuIHVuZGVmaW5lZDtcbiAgY29uc3QgZW50cmllcyA9IE9iamVjdC5lbnRyaWVzKHN0YXRlLmtleXMpO1xuICAvLyBmaW5kIHRoZSBuZXdlc3Qga2V5O1xuICBjb25zdCBbbmV3ZXN0S2V5XSA9IGVudHJpZXMucmVkdWNlKChhLCBiKSA9PiB7XG4gICAgY29uc3QgYURhdGUgPSBhWzFdLmRhdGE/LmRhdGUgPz8gMDtcbiAgICBjb25zdCBiRGF0ZSA9IGJbMV0uZGF0YT8uZGF0ZSA/PyAwO1xuICAgIHJldHVybiBhRGF0ZSA+IGJEYXRlID8gYSA6IGI7XG4gIH0pO1xuICBjb25zdCBzb3J0ZWQgPSBlbnRyaWVzLnNvcnQoKFthS2V5LCBhVmFsdWVdLCBbYktleSwgYlZhbHVlXSkgPT4ge1xuICAgIC8vIGVuc3VyZXMgdGhlIG5ld2VzdCBrZXkgYWx3YXlzIHdpbnNcbiAgICBpZiAoYUtleSA9PT0gbmV3ZXN0S2V5KSByZXR1cm4gLTE7XG4gICAgaWYgKGJLZXkgPT09IG5ld2VzdEtleSkgcmV0dXJuIDE7XG4gICAgY29uc3QgYVZhbGlkID0gYVZhbHVlLmRhdGEgJiYgaXNDYWNoZVZhbGlkKGFWYWx1ZS5kYXRhLCBleHBpcmVzKSA/IDEgOiAwO1xuICAgIGNvbnN0IGJWYWxpZCA9IGJWYWx1ZS5kYXRhICYmIGlzQ2FjaGVWYWxpZChiVmFsdWUuZGF0YSwgZXhwaXJlcykgPyAxIDogMDtcbiAgICBjb25zdCBkaWZmVmFsaWQgPSBhVmFsaWQgLSBiVmFsaWQ7XG4gICAgY29uc3QgZGlmZkhpdCA9IChhVmFsdWUuZGF0YT8uaGl0Q291bnQgPz8gMCkgLSAoYlZhbHVlLmRhdGE/LmhpdENvdW50ID8/IDApO1xuICAgIGNvbnN0IGRpZmZEYXRlID0gKGFWYWx1ZS5kYXRhPy5kYXRlID8/IDApIC0gKGJWYWx1ZS5kYXRhPy5kYXRlID8/IDApO1xuICAgIHJldHVybiAoXG4gICAgICAtMSAqIChkaWZmVmFsaWQgPT09IDAgPyAoZGlmZkhpdCA9PT0gMCA/IGRpZmZEYXRlIDogZGlmZkhpdCkgOiBkaWZmVmFsaWQpXG4gICAgKTtcbiAgfSk7XG4gIHJldHVybiBzb3J0ZWQuc2xpY2UobWF4Q2FjaGVTaXplKTtcbn1cblxuZnVuY3Rpb24gZGVsZXRlQ2FjaGVWYWx1ZShrZXlzOiBzdHJpbmdbXSwgc3RhdGU6IENhY2hlU3RhdGUpIHtcbiAgY29uc3QgbmV3U3RhdGUgPSB7IC4uLnN0YXRlIH07XG4gIGxldCBjYWNoZSA9IG5ld1N0YXRlO1xuICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzKSB7XG4gICAgaWYgKCFjYWNoZS5rZXlzKSByZXR1cm4gc3RhdGU7XG4gICAgY2FjaGUua2V5cyA9IHsgLi4uY2FjaGU/LmtleXMgfTtcbiAgICBsZXQgdiA9IGNhY2hlLmtleXNba2V5XTtcbiAgICBpZiAoIXYpIHJldHVybiBzdGF0ZTtcbiAgICB2ID0geyAuLi52IH07XG4gICAgY2FjaGUua2V5c1trZXldID0gdjtcbiAgICBjYWNoZSA9IHY7XG4gIH1cbiAgaWYgKGNhY2hlLmRhdGEpIGRlbGV0ZSBjYWNoZS5kYXRhO1xuICBlbHNlIGlmIChjYWNoZS5rZXlzKSBkZWxldGUgY2FjaGUua2V5cztcbiAgcmV0dXJuIG5ld1N0YXRlO1xufVxuXG5mdW5jdGlvbiBpbnZhbGlkYXRlQ2FjaGUoa2V5czogc3RyaW5nW10sIHN0YXRlOiBDYWNoZVN0YXRlKSB7XG4gIGNvbnN0IG5ld1N0YXRlID0geyAuLi5zdGF0ZSB9O1xuICBsZXQgY2FjaGUgPSBuZXdTdGF0ZTtcbiAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgIGlmICghY2FjaGU/LmtleXMpIHJldHVybiBzdGF0ZTtcbiAgICBjYWNoZS5rZXlzID0geyAuLi5jYWNoZT8ua2V5cyB9O1xuICAgIGxldCB2ID0gY2FjaGU/LmtleXM/LltrZXldO1xuICAgIGlmICghdikgcmV0dXJuIHN0YXRlO1xuICAgIHYgPSB7IC4uLnYgfTtcbiAgICBjYWNoZS5rZXlzW2tleV0gPSB2O1xuICAgIGNhY2hlID0gdjtcbiAgfVxuICBjYWNoZSAmJiBpbnZhbGlkYVN1YktleXMoY2FjaGUpO1xuICByZXR1cm4gbmV3U3RhdGU7XG59XG5cbmZ1bmN0aW9uIGluY3JlYXNlQ2FjaGVIaXRDb3VudChrZXlzOiBzdHJpbmdbXSwgc3RhdGU6IENhY2hlU3RhdGUpIHtcbiAgY29uc3QgbmV3U3RhdGUgPSB7IC4uLnN0YXRlIH07XG4gIGxldCBjYWNoZSA9IG5ld1N0YXRlO1xuICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzKSB7XG4gICAgaWYgKCFjYWNoZT8ua2V5cykgcmV0dXJuIHN0YXRlO1xuICAgIGNhY2hlLmtleXMgPSB7IC4uLmNhY2hlPy5rZXlzIH07XG4gICAgbGV0IHYgPSBjYWNoZT8ua2V5cz8uW2tleV07XG4gICAgaWYgKCF2KSByZXR1cm4gc3RhdGU7XG4gICAgdiA9IHsgLi4udiB9O1xuICAgIGNhY2hlLmtleXNba2V5XSA9IHY7XG4gICAgY2FjaGUgPSB2O1xuICB9XG4gIGlmICghY2FjaGUuZGF0YSkgcmV0dXJuIHN0YXRlO1xuICBjYWNoZS5kYXRhID0geyAuLi5jYWNoZS5kYXRhLCBoaXRDb3VudDogY2FjaGUuZGF0YS5oaXRDb3VudCArIDEgfTtcbiAgcmV0dXJuIG5ld1N0YXRlO1xufVxuXG5mdW5jdGlvbiBpbnZhbGlkYVN1YktleXMoc3RhdGU6IENhY2hlS2V5cykge1xuICBpZiAoc3RhdGUuZGF0YSkge1xuICAgIHN0YXRlLmRhdGEgPSB7IC4uLnN0YXRlLmRhdGEsIGludmFsaWQ6IHRydWUgfTtcbiAgfVxuICBpZiAoc3RhdGUua2V5cykge1xuICAgIHN0YXRlLmtleXMgPSB7IC4uLnN0YXRlLmtleXMgfTtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBzdGF0ZS5rZXlzKSB7XG4gICAgICBzdGF0ZS5rZXlzW2tleV0gPSBpbnZhbGlkYVN1YktleXMoeyAuLi5zdGF0ZS5rZXlzW2tleV0gfSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBzdGF0ZTtcbn1cbiJdfQ==
@@ -1,5 +0,0 @@
1
- import { createFeatureSelector, createSelector } from '@ngrx/store';
2
- import { getCacheValue, hashKey } from './cache.models';
3
- export const cacheStateSelector = createFeatureSelector('cache');
4
- export const selectCache = (key) => createSelector(cacheStateSelector, (state) => getCacheValue(hashKey(key), state));
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUuc2VsZWN0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZ3J4LXRyYWl0cy9jb3JlL3NyYy9saWIvY2FjaGUvY2FjaGUuc2VsZWN0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEUsT0FBTyxFQUF3QixhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUUsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcscUJBQXFCLENBQWEsT0FBTyxDQUFDLENBQUM7QUFFN0UsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsR0FBYSxFQUFFLEVBQUUsQ0FDM0MsY0FBYyxDQUFDLGtCQUFrQixFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDM0MsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FDbkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUZlYXR1cmVTZWxlY3RvciwgY3JlYXRlU2VsZWN0b3IgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBDYWNoZUtleSwgQ2FjaGVTdGF0ZSwgZ2V0Q2FjaGVWYWx1ZSwgaGFzaEtleSB9IGZyb20gJy4vY2FjaGUubW9kZWxzJztcblxuZXhwb3J0IGNvbnN0IGNhY2hlU3RhdGVTZWxlY3RvciA9IGNyZWF0ZUZlYXR1cmVTZWxlY3RvcjxDYWNoZVN0YXRlPignY2FjaGUnKTtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdENhY2hlID0gKGtleTogQ2FjaGVLZXkpID0+XG4gIGNyZWF0ZVNlbGVjdG9yKGNhY2hlU3RhdGVTZWxlY3RvciwgKHN0YXRlKSA9PlxuICAgIGdldENhY2hlVmFsdWUoaGFzaEtleShrZXkpLCBzdGF0ZSlcbiAgKTtcbiJdfQ==
@@ -1,72 +0,0 @@
1
- import { of } from 'rxjs';
2
- import { isCacheValid } from './cache.models';
3
- import { selectCache } from './cache.selectors';
4
- import { concatMap, first, tap } from 'rxjs/operators';
5
- import * as CacheActions from './cache.actions';
6
- /**
7
- * Cache the result of source parameter using the provided key, when call
8
- * again if the cache is valid (exist and is not expired or invalidated)
9
- * it will return the cache value without calling again source
10
- * @example
11
- * // cache for 3 min
12
- * loadStores$ = createEffect(() => {
13
- * return this.actions$.pipe(
14
- * ofType(ProductStoreActions.loadStores),
15
- * exhaustMap(() =>
16
- * cache({
17
- * key: ['stores'],
18
- * store: this.store,
19
- * source: this.storeService.getStores(),
20
- * expire: 1000 * 60 * 3 // optional param , cache forever if not present
21
- * }).pipe(
22
- * map((res) => ProductStoreActions.loadStoresSuccess({ entities: res })),
23
- * catchError(() => of(ProductStoreActions.loadStoresFail()))
24
- * )
25
- * )
26
- * );
27
- * });
28
- * // cache top 10, for 3 mins
29
- * loadDepartments$ = createEffect(() => {
30
- * return this.actions$.pipe(
31
- * ofType(this.localActions.loadDepartments),
32
- * concatLatestFrom(() =>
33
- * this.store.select(this.localSelectors.selectDepartmentsFilter)
34
- * ),
35
- * exhaustMap(([_, filters]) =>
36
- * cache({
37
- * key: ['stores','departments',{ storeId: filters!.storeId },
38
- * store: this.store,
39
- * source: this.storeService.getStoreDepartments(filters!.storeId),
40
- * expires: 1000 * 60 * 3,
41
- * maxCacheSize: 10,
42
- * }).pipe(
43
- * map((res) =>
44
- * this.localActions.loadDepartmentsSuccess({
45
- * entities: res,
46
- * })
47
- * ),
48
- * catchError(() => of(this.localActions.loadDepartmentsFail()))
49
- * )
50
- * )
51
- * );
52
- * });
53
- *
54
- * @param options - configuration
55
- * @param options.store - required ngrx store
56
- * @param options.key - key can be string, array of string or array of string with plain objects
57
- * @param options.source - called when cache is invalid
58
- * @param options.expires - time to expire the cache valued, if not present is infinite
59
- * @param options.maxCacheSize - max number of keys to store , only works if last key is variable
60
- */
61
- export function cache({ store, key, source, expires, maxCacheSize, skip, }) {
62
- const exp = expires ?? Infinity;
63
- return store.select(selectCache(key)).pipe(first(), concatMap((cache) => cache && !skip && isCacheValid(cache, exp)
64
- ? of(cache.value).pipe(tap(() => store.dispatch(CacheActions.hitCache({ key }))))
65
- : source.pipe(tap((value) => store.dispatch(CacheActions.cache({
66
- key,
67
- date: Date.now(),
68
- value,
69
- maxCacheSize,
70
- }))))));
71
- }
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmdyeC10cmFpdHMvY29yZS9zcmMvbGliL2NhY2hlL2NhY2hlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQXVCLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEtBQUssWUFBWSxNQUFNLGlCQUFpQixDQUFDO0FBRWhEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzREc7QUFDSCxNQUFNLFVBQVUsS0FBSyxDQUFJLEVBQ3ZCLEtBQUssRUFDTCxHQUFHLEVBQ0gsTUFBTSxFQUNOLE9BQU8sRUFDUCxZQUFZLEVBQ1osSUFBSSxHQVFMO0lBQ0MsTUFBTSxHQUFHLEdBQUcsT0FBTyxJQUFJLFFBQVEsQ0FBQztJQUNoQyxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUN4QyxLQUFLLEVBQUUsRUFDUCxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUNsQixLQUFLLElBQUksQ0FBQyxJQUFJLElBQUksWUFBWSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUM7UUFDeEMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUNsQixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQzFEO1FBQ0gsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ1QsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDWixLQUFLLENBQUMsUUFBUSxDQUNaLFlBQVksQ0FBQyxLQUFLLENBQUM7WUFDakIsR0FBRztZQUNILElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ2hCLEtBQUs7WUFDTCxZQUFZO1NBQ2IsQ0FBQyxDQUNILENBQ0YsQ0FDRixDQUNOLENBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDYWNoZURhdGEsIENhY2hlS2V5LCBpc0NhY2hlVmFsaWQgfSBmcm9tICcuL2NhY2hlLm1vZGVscyc7XG5pbXBvcnQgeyBzZWxlY3RDYWNoZSB9IGZyb20gJy4vY2FjaGUuc2VsZWN0b3JzJztcbmltcG9ydCB7IGNvbmNhdE1hcCwgZmlyc3QsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCAqIGFzIENhY2hlQWN0aW9ucyBmcm9tICcuL2NhY2hlLmFjdGlvbnMnO1xuXG4vKipcbiAqIENhY2hlIHRoZSByZXN1bHQgb2Ygc291cmNlIHBhcmFtZXRlciB1c2luZyB0aGUgcHJvdmlkZWQga2V5LCB3aGVuIGNhbGxcbiAqIGFnYWluIGlmIHRoZSBjYWNoZSBpcyB2YWxpZCAoZXhpc3QgYW5kIGlzIG5vdCBleHBpcmVkIG9yIGludmFsaWRhdGVkKVxuICogaXQgd2lsbCByZXR1cm4gdGhlIGNhY2hlIHZhbHVlIHdpdGhvdXQgY2FsbGluZyBhZ2FpbiBzb3VyY2VcbiAqIEBleGFtcGxlXG4gKiAvLyBjYWNoZSBmb3IgMyBtaW5cbiAqIGxvYWRTdG9yZXMkID0gY3JlYXRlRWZmZWN0KCgpID0+IHtcbiAqICAgcmV0dXJuIHRoaXMuYWN0aW9ucyQucGlwZShcbiAqICAgICBvZlR5cGUoUHJvZHVjdFN0b3JlQWN0aW9ucy5sb2FkU3RvcmVzKSxcbiAqICAgICBleGhhdXN0TWFwKCgpID0+XG4gKiAgICAgICBjYWNoZSh7XG4gKiAgICAgICAgIGtleTogWydzdG9yZXMnXSxcbiAqICAgICAgICAgc3RvcmU6IHRoaXMuc3RvcmUsXG4gKiAgICAgICAgIHNvdXJjZTogdGhpcy5zdG9yZVNlcnZpY2UuZ2V0U3RvcmVzKCksXG4gKiAgICAgICAgIGV4cGlyZTogMTAwMCAqIDYwICogMyAvLyBvcHRpb25hbCBwYXJhbSAsIGNhY2hlIGZvcmV2ZXIgaWYgbm90IHByZXNlbnRcbiAqICAgICAgIH0pLnBpcGUoXG4gKiAgICAgICAgIG1hcCgocmVzKSA9PiBQcm9kdWN0U3RvcmVBY3Rpb25zLmxvYWRTdG9yZXNTdWNjZXNzKHsgZW50aXRpZXM6IHJlcyB9KSksXG4gKiAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoUHJvZHVjdFN0b3JlQWN0aW9ucy5sb2FkU3RvcmVzRmFpbCgpKSlcbiAqICAgICAgIClcbiAqICAgICApXG4gKiAgICk7XG4gKiB9KTtcbiAqIC8vIGNhY2hlIHRvcCAxMCwgZm9yIDMgbWluc1xuICogICBsb2FkRGVwYXJ0bWVudHMkID0gY3JlYXRlRWZmZWN0KCgpID0+IHtcbiAqICAgcmV0dXJuIHRoaXMuYWN0aW9ucyQucGlwZShcbiAqICAgICBvZlR5cGUodGhpcy5sb2NhbEFjdGlvbnMubG9hZERlcGFydG1lbnRzKSxcbiAqICAgICBjb25jYXRMYXRlc3RGcm9tKCgpID0+XG4gKiAgICAgICB0aGlzLnN0b3JlLnNlbGVjdCh0aGlzLmxvY2FsU2VsZWN0b3JzLnNlbGVjdERlcGFydG1lbnRzRmlsdGVyKVxuICogICAgICksXG4gKiAgICAgZXhoYXVzdE1hcCgoW18sIGZpbHRlcnNdKSA9PlxuICogICAgICAgY2FjaGUoe1xuICogICAgICAgICBrZXk6IFsnc3RvcmVzJywnZGVwYXJ0bWVudHMnLHsgc3RvcmVJZDogZmlsdGVycyEuc3RvcmVJZCB9LFxuICogICAgICAgICBzdG9yZTogdGhpcy5zdG9yZSxcbiAqICAgICAgICAgc291cmNlOiB0aGlzLnN0b3JlU2VydmljZS5nZXRTdG9yZURlcGFydG1lbnRzKGZpbHRlcnMhLnN0b3JlSWQpLFxuICogICAgICAgICBleHBpcmVzOiAxMDAwICogNjAgKiAzLFxuICogICAgICAgICBtYXhDYWNoZVNpemU6IDEwLFxuICogICAgICAgfSkucGlwZShcbiAqICAgICAgICAgbWFwKChyZXMpID0+XG4gKiAgICAgICAgICAgdGhpcy5sb2NhbEFjdGlvbnMubG9hZERlcGFydG1lbnRzU3VjY2Vzcyh7XG4gKiAgICAgICAgICAgICBlbnRpdGllczogcmVzLFxuICogICAgICAgICAgIH0pXG4gKiAgICAgICAgICksXG4gKiAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YodGhpcy5sb2NhbEFjdGlvbnMubG9hZERlcGFydG1lbnRzRmFpbCgpKSlcbiAqICAgICAgIClcbiAqICAgICApXG4gKiAgICk7XG4gKiB9KTtcbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIGNvbmZpZ3VyYXRpb25cbiAqIEBwYXJhbSBvcHRpb25zLnN0b3JlIC0gcmVxdWlyZWQgbmdyeCBzdG9yZVxuICogQHBhcmFtIG9wdGlvbnMua2V5IC0ga2V5IGNhbiBiZSBzdHJpbmcsIGFycmF5IG9mIHN0cmluZyBvciBhcnJheSBvZiBzdHJpbmcgd2l0aCBwbGFpbiBvYmplY3RzXG4gKiBAcGFyYW0gb3B0aW9ucy5zb3VyY2UgLSBjYWxsZWQgd2hlbiBjYWNoZSBpcyBpbnZhbGlkXG4gKiBAcGFyYW0gb3B0aW9ucy5leHBpcmVzIC0gdGltZSB0byBleHBpcmUgdGhlIGNhY2hlIHZhbHVlZCwgaWYgbm90IHByZXNlbnQgaXMgaW5maW5pdGVcbiAqIEBwYXJhbSBvcHRpb25zLm1heENhY2hlU2l6ZSAtIG1heCBudW1iZXIgb2Yga2V5cyB0byBzdG9yZSAsIG9ubHkgd29ya3MgaWYgbGFzdCBrZXkgaXMgdmFyaWFibGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhY2hlPFQ+KHtcbiAgc3RvcmUsXG4gIGtleSxcbiAgc291cmNlLFxuICBleHBpcmVzLFxuICBtYXhDYWNoZVNpemUsXG4gIHNraXAsXG59OiB7XG4gIHN0b3JlOiBTdG9yZTtcbiAga2V5OiBDYWNoZUtleTtcbiAgc291cmNlOiBPYnNlcnZhYmxlPFQ+O1xuICBleHBpcmVzPzogbnVtYmVyO1xuICBtYXhDYWNoZVNpemU/OiBudW1iZXI7XG4gIHNraXA/OiBib29sZWFuO1xufSkge1xuICBjb25zdCBleHAgPSBleHBpcmVzID8/IEluZmluaXR5O1xuICByZXR1cm4gc3RvcmUuc2VsZWN0KHNlbGVjdENhY2hlKGtleSkpLnBpcGUoXG4gICAgZmlyc3QoKSxcbiAgICBjb25jYXRNYXAoKGNhY2hlKSA9PlxuICAgICAgY2FjaGUgJiYgIXNraXAgJiYgaXNDYWNoZVZhbGlkKGNhY2hlLCBleHApXG4gICAgICAgID8gb2YoY2FjaGUudmFsdWUpLnBpcGUoXG4gICAgICAgICAgICB0YXAoKCkgPT4gc3RvcmUuZGlzcGF0Y2goQ2FjaGVBY3Rpb25zLmhpdENhY2hlKHsga2V5IH0pKSlcbiAgICAgICAgICApXG4gICAgICAgIDogc291cmNlLnBpcGUoXG4gICAgICAgICAgICB0YXAoKHZhbHVlKSA9PlxuICAgICAgICAgICAgICBzdG9yZS5kaXNwYXRjaChcbiAgICAgICAgICAgICAgICBDYWNoZUFjdGlvbnMuY2FjaGUoe1xuICAgICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgICAgZGF0ZTogRGF0ZS5ub3coKSxcbiAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgbWF4Q2FjaGVTaXplLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgKVxuICApO1xufVxuIl19
@@ -1,7 +0,0 @@
1
- export * from './cache.service';
2
- export * from './cache.module';
3
- import { invalidateCache, deleteCache } from './cache.actions';
4
- import { selectCache } from './cache.selectors';
5
- export const CacheActions = { invalidateCache, deleteCache };
6
- export const CacheSelectors = { getCache: selectCache };
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25ncngtdHJhaXRzL2NvcmUvc3JjL2xpYi9jYWNoZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxDQUFDO0FBQzdELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2FjaGUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2NhY2hlLm1vZHVsZSc7XG5pbXBvcnQgeyBpbnZhbGlkYXRlQ2FjaGUsIGRlbGV0ZUNhY2hlIH0gZnJvbSAnLi9jYWNoZS5hY3Rpb25zJztcbmltcG9ydCB7IHNlbGVjdENhY2hlIH0gZnJvbSAnLi9jYWNoZS5zZWxlY3RvcnMnO1xuZXhwb3J0IGNvbnN0IENhY2hlQWN0aW9ucyA9IHsgaW52YWxpZGF0ZUNhY2hlLCBkZWxldGVDYWNoZSB9O1xuZXhwb3J0IGNvbnN0IENhY2hlU2VsZWN0b3JzID0geyBnZXRDYWNoZTogc2VsZWN0Q2FjaGUgfTtcbiJdfQ==