@pnp/queryable 3.9.0 → 3.10.0

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,4 +1,5 @@
1
- import { Queryable } from "../queryable.js";
1
+ import { TimelinePipe } from "@pnp/core";
2
+ import { ICachingProps } from "./caching.js";
2
3
  /**
3
4
  * Pessimistic Caching Behavior
4
5
  * Always returns the cached value if one exists but asynchronously executes the call and updates the cache.
@@ -8,5 +9,5 @@ import { Queryable } from "../queryable.js";
8
9
  * @param keyFactory: a function that returns the key for the cache value, if not provided a default hash of the url will be used
9
10
  * @param expireFunc: a function that returns a date of expiration for the cache value, if not provided the cache never expires but is always updated.
10
11
  */
11
- export declare function CachingPessimisticRefresh(type?: "local" | "session", keyFactory?: (url: string) => string, expireFunc?: () => Date): (instance: Queryable) => Queryable;
12
+ export declare function CachingPessimisticRefresh(props?: ICachingProps): TimelinePipe;
12
13
  //# sourceMappingURL=caching-pessimistic.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"caching-pessimistic.d.ts","sourceRoot":"","sources":["../../../../packages/queryable/behaviors/caching-pessimistic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACrC,IAAI,GAAE,OAAO,GAAG,SAAqB,EACrC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,EACpC,UAAU,CAAC,EAAE,MAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,SAAS,KAAK,SAAS,CA6L/D"}
1
+ {"version":3,"file":"caching-pessimistic.d.ts","sourceRoot":"","sources":["../../../../packages/queryable/behaviors/caching-pessimistic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,YAAY,EAAE,MAAM,WAAW,CAAC;AAE1E,OAAO,EAAmB,aAAa,EAAE,MAAM,cAAc,CAAC;AAE9D;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,CAAC,EAAE,aAAa,GAAG,YAAY,CAqD7E"}
@@ -1,4 +1,6 @@
1
- import { isFunc, getHashCode, PnPClientStorage, getGUID, extend } from "@pnp/core";
1
+ import { noInherit, objectDefinedNotNull } from "@pnp/core";
2
+ import { Queryable } from "../queryable.js";
3
+ import { bindCachingCore } from "./caching.js";
2
4
  /**
3
5
  * Pessimistic Caching Behavior
4
6
  * Always returns the cached value if one exists but asynchronously executes the call and updates the cache.
@@ -8,181 +10,40 @@ import { isFunc, getHashCode, PnPClientStorage, getGUID, extend } from "@pnp/cor
8
10
  * @param keyFactory: a function that returns the key for the cache value, if not provided a default hash of the url will be used
9
11
  * @param expireFunc: a function that returns a date of expiration for the cache value, if not provided the cache never expires but is always updated.
10
12
  */
11
- export function CachingPessimisticRefresh(type = "session", keyFactory, expireFunc) {
12
- let store;
13
- if (type === "session") {
14
- store = (typeof sessionStorage === "undefined") ? new MemoryStorage() : sessionStorage;
15
- }
16
- else {
17
- store = (typeof localStorage === "undefined") ? new MemoryStorage() : localStorage;
18
- }
19
- if (!isFunc(keyFactory)) {
20
- keyFactory = (url) => getHashCode(url.toLowerCase()).toString();
21
- }
22
- const putStorage = (key, o) => {
23
- try {
24
- if (isFunc(expireFunc)) {
25
- const storage = new PnPClientStorage();
26
- const s = type === "session" ? storage.session : storage.local;
27
- s.put(key, o, expireFunc());
13
+ export function CachingPessimisticRefresh(props) {
14
+ return (instance) => {
15
+ const pre = async function (url, init, result) {
16
+ const [shouldCache, getCachedValue, setCachedValue] = bindCachingCore(url, init, props);
17
+ if (!shouldCache) {
18
+ return [url, init, result];
28
19
  }
29
- else {
30
- const cache = JSON.stringify({ pnp: 1, expiration: undefined, value: o });
31
- store.setItem(key, cache);
32
- }
33
- }
34
- catch (err) {
35
- console.log(`CachingPessimistic(putStorage): ${err}.`);
36
- }
37
- };
38
- const getStorage = (key) => {
39
- let retVal = undefined;
40
- try {
41
- if (isFunc(expireFunc)) {
42
- const storage = new PnPClientStorage();
43
- const s = type === "session" ? storage.session : storage.local;
44
- retVal = s.get(key);
20
+ const cached = getCachedValue();
21
+ if (objectDefinedNotNull(cached)) {
22
+ // set our result
23
+ result = cached;
24
+ setTimeout(async () => {
25
+ const q = new Queryable(this);
26
+ const a = q.on.pre.toArray();
27
+ q.on.pre.clear();
28
+ // filter out this pre handler from the original queryable as we don't want to re-run it
29
+ a.filter(v => v !== pre).map(v => q.on.pre(v));
30
+ // in this case the init should contain the correct "method"
31
+ const value = await q(init);
32
+ setCachedValue(value);
33
+ }, 0);
45
34
  }
46
35
  else {
47
- const cache = store.getItem(key);
48
- if (typeof cache === "string") {
49
- retVal = JSON.parse(cache);
50
- }
51
- }
52
- }
53
- catch (err) {
54
- console.log(`CachingPessimistic(getStorage): ${err}.`);
55
- }
56
- return retVal;
57
- };
58
- let refreshCache = true;
59
- return (instance) => {
60
- instance.on.init(function () {
61
- const newExecute = extend(this, {
62
- async execute(userInit = { method: "GET", headers: {} }) {
63
- setTimeout(async () => {
64
- const requestId = getGUID();
65
- const emitError = (e) => {
66
- this.log(`[id:${requestId}] Emitting error: "${e.message || e}"`, 3);
67
- this.emit.error(e);
68
- this.log(`[id:${requestId}] Emitted error: "${e.message || e}"`, 3);
69
- };
70
- try {
71
- let retVal = undefined;
72
- const emitSend = async () => {
73
- this.log(`[id:${requestId}] Emitting auth`, 0);
74
- [requestUrl, init] = await this.emit.auth(requestUrl, init);
75
- this.log(`[id:${requestId}] Emitted auth`, 0);
76
- // we always resepect user supplied init over observer modified init
77
- init = { ...init, ...userInit, headers: { ...init.headers, ...userInit.headers } };
78
- this.log(`[id:${requestId}] Emitting send`, 0);
79
- let response = await this.emit.send(requestUrl, init);
80
- this.log(`[id:${requestId}] Emitted send`, 0);
81
- this.log(`[id:${requestId}] Emitting parse`, 0);
82
- [requestUrl, response, result] = await this.emit.parse(requestUrl, response, result);
83
- this.log(`[id:${requestId}] Emitted parse`, 0);
84
- this.log(`[id:${requestId}] Emitting post`, 0);
85
- [requestUrl, result] = await this.emit.post(requestUrl, result);
86
- this.log(`[id:${requestId}] Emitted post`, 0);
87
- return result;
88
- };
89
- const emitData = () => {
90
- this.log(`[id:${requestId}] Emitting data`, 0);
91
- this.emit.data(retVal);
92
- this.log(`[id:${requestId}] Emitted data`, 0);
93
- };
94
- this.log(`[id:${requestId}] Beginning request`, 1);
95
- let [requestUrl, init, result] = await this.emit.pre(this.toRequestUrl(), {}, undefined);
96
- this.log(`[id:${requestId}] Url: ${requestUrl}`, 1);
97
- if (typeof result !== "undefined") {
98
- retVal = result;
99
- }
100
- // Waiting is false by default, result is undefined by default, unless cached value is returned
101
- if (retVal !== undefined) {
102
- if (refreshCache) {
103
- // Return value exists -> assume lazy cache update pipeline execution.
104
- setTimeout(async () => {
105
- try {
106
- await emitSend();
107
- }
108
- catch (e) {
109
- emitError(e);
110
- }
111
- }, 0);
112
- }
113
- this.log(`[id:${requestId}] Returning cached results and updating cache async`, 1);
114
- emitData();
115
- }
116
- else {
117
- retVal = await emitSend();
118
- this.log(`[id:${requestId}] Returning results`, 1);
119
- emitData();
120
- }
121
- }
122
- catch (e) {
123
- emitError(e);
124
- }
125
- finally {
126
- this.log(`[id:${requestId}] Finished request`, 1);
127
- }
128
- }, 0);
129
- return new Promise((resolve, reject) => {
130
- this.on[this.InternalResolveEvent].replace(resolve);
131
- this.on[this.InternalRejectEvent].replace(reject);
132
- });
133
- },
134
- });
135
- return newExecute;
136
- });
137
- instance.on.pre(async function (url, init, result) {
138
- // Reset refreshCache
139
- refreshCache = true;
140
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
141
- const key = keyFactory(url.toString());
142
- const cached = getStorage(key);
143
- if (cached !== undefined) {
144
- // Return value
145
- result = cached.value;
146
- if (cached.expiration !== undefined) {
147
- if (new Date(cached.expiration) > new Date()) {
148
- refreshCache = false;
149
- }
150
- }
151
- }
152
- // in these instances make sure we update cache after retrieving result
153
- if (refreshCache) {
154
- // if we don't have a cached result we need to get it after the request is sent and parsed
155
- this.on.post(async function (url, result) {
156
- putStorage(key, result);
36
+ // register the post handler to cache the value as there is not one already in the cache
37
+ // and we need to run this request as normal
38
+ this.on.post(noInherit(async function (url, result) {
39
+ setCachedValue(result);
157
40
  return [url, result];
158
- });
41
+ }));
159
42
  }
160
43
  return [url, init, result];
161
- });
44
+ };
45
+ instance.on.pre(pre);
162
46
  return instance;
163
47
  };
164
48
  }
165
- class MemoryStorage {
166
- constructor(_store = new Map()) {
167
- this._store = _store;
168
- }
169
- get length() {
170
- return this._store.size;
171
- }
172
- clear() {
173
- this._store.clear();
174
- }
175
- getItem(key) {
176
- return this._store.get(key);
177
- }
178
- key(index) {
179
- return Array.from(this._store)[index][0];
180
- }
181
- removeItem(key) {
182
- this._store.delete(key);
183
- }
184
- setItem(key, data) {
185
- this._store.set(key, data);
186
- }
187
- }
188
49
  //# sourceMappingURL=caching-pessimistic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"caching-pessimistic.js","sourceRoot":"","sources":["../../../../packages/queryable/behaviors/caching-pessimistic.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnF;;;;;;;;GAQG;AACH,MAAM,UAAU,yBAAyB,CACrC,OAA4B,SAAS,EACrC,UAAoC,EACpC,UAAuB;IAEvB,IAAI,KAAc,CAAC;IACnB,IAAI,IAAI,KAAK,SAAS,EAAE;QACpB,KAAK,GAAG,CAAC,OAAO,cAAc,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC;KAC1F;SAAM;QACH,KAAK,GAAG,CAAC,OAAO,YAAY,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;KACtF;IAED,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;QACrB,UAAU,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;KAC3E;IAED,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,CAAS,EAAE,EAAE;QAC1C,IAAI;YACA,IAAI,MAAM,CAAC,UAAU,CAAC,EAAE;gBACpB,MAAM,OAAO,GAAG,IAAI,gBAAgB,EAAE,CAAC;gBACvC,MAAM,CAAC,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;gBAC/D,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;aAC/B;iBAAM;gBACH,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC1E,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;aAC7B;SACJ;QAAC,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,mCAAmC,GAAG,GAAG,CAAC,CAAC;SAC1D;IACL,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,GAAW,EAAO,EAAE;QACpC,IAAI,MAAM,GAAQ,SAAS,CAAC;QAC5B,IAAI;YACA,IAAI,MAAM,CAAC,UAAU,CAAC,EAAE;gBACpB,MAAM,OAAO,GAAG,IAAI,gBAAgB,EAAE,CAAC;gBACvC,MAAM,CAAC,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;gBAC/D,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;aACvB;iBAAM;gBACH,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACjC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;oBAC3B,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;iBAC9B;aACJ;SACJ;QAAC,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,mCAAmC,GAAG,GAAG,CAAC,CAAC;SAC1D;QACD,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;IAEF,IAAI,YAAY,GAAG,IAAI,CAAC;IAExB,OAAO,CAAC,QAAmB,EAAE,EAAE;QAE3B,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC;YAEb,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE;gBAE5B,KAAK,CAAC,OAAO,CAAC,WAAwB,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;oBAChE,UAAU,CAAC,KAAK,IAAI,EAAE;wBAClB,MAAM,SAAS,GAAG,OAAO,EAAE,CAAC;wBAE5B,MAAM,SAAS,GAAG,CAAC,CAAC,EAAE,EAAE;4BACpB,IAAI,CAAC,GAAG,CAAC,OAAO,SAAS,sBAAsB,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;4BACrE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;4BACnB,IAAI,CAAC,GAAG,CAAC,OAAO,SAAS,qBAAqB,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;wBACxE,CAAC,CAAC;wBAEF,IAAI;4BACA,IAAI,MAAM,GAAQ,SAAS,CAAC;4BAE5B,MAAM,QAAQ,GAAG,KAAK,IAAkB,EAAE;gCAEtC,IAAI,CAAC,GAAG,CAAC,OAAO,SAAS,iBAAiB,EAAE,CAAC,CAAC,CAAC;gCAC/C,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;gCAC5D,IAAI,CAAC,GAAG,CAAC,OAAO,SAAS,gBAAgB,EAAE,CAAC,CAAC,CAAC;gCAE9C,oEAAoE;gCACpE,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;gCAEnF,IAAI,CAAC,GAAG,CAAC,OAAO,SAAS,iBAAiB,EAAE,CAAC,CAAC,CAAC;gCAC/C,IAAI,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;gCACtD,IAAI,CAAC,GAAG,CAAC,OAAO,SAAS,gBAAgB,EAAE,CAAC,CAAC,CAAC;gCAE9C,IAAI,CAAC,GAAG,CAAC,OAAO,SAAS,kBAAkB,EAAE,CAAC,CAAC,CAAC;gCAChD,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;gCACrF,IAAI,CAAC,GAAG,CAAC,OAAO,SAAS,iBAAiB,EAAE,CAAC,CAAC,CAAC;gCAE/C,IAAI,CAAC,GAAG,CAAC,OAAO,SAAS,iBAAiB,EAAE,CAAC,CAAC,CAAC;gCAC/C,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;gCAChE,IAAI,CAAC,GAAG,CAAC,OAAO,SAAS,gBAAgB,EAAE,CAAC,CAAC,CAAC;gCAE9C,OAAO,MAAM,CAAC;4BAClB,CAAC,CAAC;4BAEF,MAAM,QAAQ,GAAG,GAAG,EAAE;gCAClB,IAAI,CAAC,GAAG,CAAC,OAAO,SAAS,iBAAiB,EAAE,CAAC,CAAC,CAAC;gCAC/C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gCACvB,IAAI,CAAC,GAAG,CAAC,OAAO,SAAS,gBAAgB,EAAE,CAAC,CAAC,CAAC;4BAClD,CAAC,CAAC;4BAEF,IAAI,CAAC,GAAG,CAAC,OAAO,SAAS,qBAAqB,EAAE,CAAC,CAAC,CAAC;4BAEnD,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;4BAEzF,IAAI,CAAC,GAAG,CAAC,OAAO,SAAS,UAAU,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;4BAEpD,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;gCAC/B,MAAM,GAAG,MAAM,CAAC;6BACnB;4BAED,+FAA+F;4BAC/F,IAAI,MAAM,KAAK,SAAS,EAAE;gCAEtB,IAAI,YAAY,EAAE;oCACd,sEAAsE;oCACtE,UAAU,CAAC,KAAK,IAAI,EAAE;wCAClB,IAAI;4CACA,MAAM,QAAQ,EAAE,CAAC;yCACpB;wCAAC,OAAO,CAAC,EAAE;4CACR,SAAS,CAAC,CAAC,CAAC,CAAC;yCAChB;oCACL,CAAC,EAAE,CAAC,CAAC,CAAC;iCACT;gCAED,IAAI,CAAC,GAAG,CAAC,OAAO,SAAS,qDAAqD,EAAE,CAAC,CAAC,CAAC;gCAEnF,QAAQ,EAAE,CAAC;6BACd;iCAAM;gCACH,MAAM,GAAG,MAAM,QAAQ,EAAE,CAAC;gCAE1B,IAAI,CAAC,GAAG,CAAC,OAAO,SAAS,qBAAqB,EAAE,CAAC,CAAC,CAAC;gCAEnD,QAAQ,EAAE,CAAC;6BACd;yBACJ;wBAAC,OAAO,CAAC,EAAE;4BACR,SAAS,CAAC,CAAC,CAAC,CAAC;yBAChB;gCAAS;4BACN,IAAI,CAAC,GAAG,CAAC,OAAO,SAAS,oBAAoB,EAAE,CAAC,CAAC,CAAC;yBACrD;oBACL,CAAC,EAAE,CAAC,CAAC,CAAC;oBAEN,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;wBACnC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;wBACpD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBACtD,CAAC,CAAC,CAAC;gBACP,CAAC;aACJ,CAAC,CAAC;YAEH,OAAO,UAAU,CAAC;QACtB,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,WAA4B,GAAW,EAAE,IAAiB,EAAE,MAAW;YAExF,qBAAqB;YACrB,YAAY,GAAG,IAAI,CAAC;YAEpB,oEAAoE;YACpE,MAAM,GAAG,GAAG,UAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;YAExC,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;YAE/B,IAAI,MAAM,KAAK,SAAS,EAAE;gBAEtB,eAAe;gBACf,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;gBAEtB,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE;oBACjC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,IAAI,EAAE,EAAE;wBAC1C,YAAY,GAAG,KAAK,CAAC;qBACxB;iBACJ;aACJ;YAED,uEAAuE;YACvE,IAAI,YAAY,EAAE;gBAEd,0FAA0F;gBAC1F,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,WAAW,GAAQ,EAAE,MAAW;oBAE9C,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;oBAExB,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBACzB,CAAC,CAAC,CAAC;aAEN;YAED,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC;IACpB,CAAC,CAAC;AACN,CAAC;AAED,MAAM,aAAa;IAEf,YAAoB,SAAS,IAAI,GAAG,EAAe;QAA/B,WAAM,GAAN,MAAM,CAAyB;IAAI,CAAC;IAKxD,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC5B,CAAC;IAEM,KAAK;QACR,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAEM,OAAO,CAAC,GAAW;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAEM,GAAG,CAAC,KAAa;QACpB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IAEM,UAAU,CAAC,GAAW;QACzB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAEM,OAAO,CAAC,GAAW,EAAE,IAAY;QACpC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC;CACJ"}
1
+ {"version":3,"file":"caching-pessimistic.js","sourceRoot":"","sources":["../../../../packages/queryable/behaviors/caching-pessimistic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAgB,MAAM,WAAW,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAiB,MAAM,cAAc,CAAC;AAE9D;;;;;;;;GAQG;AACH,MAAM,UAAU,yBAAyB,CAAC,KAAqB;IAE3D,OAAO,CAAC,QAAmB,EAAE,EAAE;QAE3B,MAAM,GAAG,GAAG,KAAK,WAA4B,GAAW,EAAE,IAAiB,EAAE,MAAW;YAEpF,MAAM,CAAC,WAAW,EAAE,cAAc,EAAE,cAAc,CAAC,GAAG,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAExF,IAAI,CAAC,WAAW,EAAE;gBACd,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;aAC9B;YAED,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;YAEhC,IAAI,oBAAoB,CAAC,MAAM,CAAC,EAAE;gBAE9B,iBAAiB;gBACjB,MAAM,GAAG,MAAM,CAAC;gBAEhB,UAAU,CAAC,KAAK,IAAI,EAAE;oBAElB,MAAM,CAAC,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;oBAC9B,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;oBAC7B,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;oBACjB,wFAAwF;oBACxF,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBAE/C,4DAA4D;oBAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;oBAE5B,cAAc,CAAC,KAAK,CAAC,CAAC;gBAE1B,CAAC,EAAE,CAAC,CAAC,CAAC;aAET;iBAAM;gBAEH,wFAAwF;gBACxF,4CAA4C;gBAC5C,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,WAAW,GAAQ,EAAE,MAAW;oBAExD,cAAc,CAAC,MAAM,CAAC,CAAC;oBAEvB,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBACzB,CAAC,CAAC,CAAC,CAAC;aACP;YAED,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/B,CAAC,CAAC;QAEF,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAErB,OAAO,QAAQ,CAAC;IACpB,CAAC,CAAC;AACN,CAAC"}
@@ -13,11 +13,33 @@ export interface ICachingProps {
13
13
  * @returns TimelinePipe
14
14
  */
15
15
  export declare function CacheAlways(): (instance: Queryable) => Queryable<any>;
16
+ /**
17
+ * Behavior that blocks caching for the request regardless of "method"
18
+ *
19
+ * Note: If both Caching and CacheAlways are present AND CacheNever is present the request will not be cached
20
+ * as we give priority to the CacheNever case
21
+ *
22
+ * @returns TimelinePipe
23
+ */
24
+ export declare function CacheNever(): (instance: Queryable) => Queryable<any>;
16
25
  /**
17
26
  * Behavior that allows you to specify a cache key for a request
18
27
  *
19
28
  * @param key The key to use for caching
20
29
  */
21
30
  export declare function CacheKey(key: string): (instance: Queryable) => Queryable<any>;
31
+ /**
32
+ * Adds caching to the requests based on the supplied props
33
+ *
34
+ * @param props Optional props that configure how caching will work
35
+ * @returns TimelinePipe used to configure requests
36
+ */
22
37
  export declare function Caching(props?: ICachingProps): TimelinePipe<Queryable>;
38
+ /**
39
+ * Based on the supplied properties, creates bound logic encapsulating common caching configuration
40
+ * sharable across implementations to more easily provide consistent behavior across behaviors
41
+ *
42
+ * @param props Any caching props used to initialize the core functions
43
+ */
44
+ export declare function bindCachingCore(url: string, init: RequestInit, props?: Partial<ICachingProps>): [boolean, () => any, (any: any) => void];
23
45
  //# sourceMappingURL=caching.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"caching.d.ts","sourceRoot":"","sources":["../../../../packages/queryable/behaviors/caching.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAA0C,YAAY,EAAE,MAAM,WAAW,CAAC;AAEjF,oBAAY,eAAe,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;AACtD,oBAAY,eAAe,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;AAEpD,MAAM,WAAW,aAAa;IAC1B,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,UAAU,CAAC,EAAE,eAAe,CAAC;CAChC;AAED;;;;GAIG;AACH,wBAAgB,WAAW,eAEL,SAAS,oBAW9B;AAED;;;;IAII;AACJ,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,cAEd,SAAS,oBAW9B;AAED,wBAAgB,OAAO,CAAC,KAAK,CAAC,EAAE,aAAa,GAAG,YAAY,CAAC,SAAS,CAAC,CA8CtE"}
1
+ {"version":3,"file":"caching.d.ts","sourceRoot":"","sources":["../../../../packages/queryable/behaviors/caching.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAA0C,YAAY,EAAa,MAAM,WAAW,CAAC;AAE5F,oBAAY,eAAe,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;AACtD,oBAAY,eAAe,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;AAEpD,MAAM,WAAW,aAAa;IAC1B,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,UAAU,CAAC,EAAE,eAAe,CAAC;CAChC;AAED;;;;GAIG;AACH,wBAAgB,WAAW,eAEL,SAAS,oBAW9B;AAGD;;;;;;;GAOG;AACH,wBAAgB,UAAU,eAEJ,SAAS,oBAW9B;AAED;;;;IAII;AACJ,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,cAEd,SAAS,oBAW9B;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,KAAK,CAAC,EAAE,aAAa,GAAG,YAAY,CAAC,SAAS,CAAC,CAmCtE;AAID;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,EAAE,CAAC,GAAG,KAAA,KAAK,IAAI,CAAC,CAqBnI"}
@@ -1,4 +1,4 @@
1
- import { getHashCode, PnPClientStorage, dateAdd } from "@pnp/core";
1
+ import { getHashCode, PnPClientStorage, dateAdd, noInherit } from "@pnp/core";
2
2
  /**
3
3
  * Behavior that forces caching for the request regardless of "method"
4
4
  *
@@ -13,6 +13,23 @@ export function CacheAlways() {
13
13
  return instance;
14
14
  };
15
15
  }
16
+ /**
17
+ * Behavior that blocks caching for the request regardless of "method"
18
+ *
19
+ * Note: If both Caching and CacheAlways are present AND CacheNever is present the request will not be cached
20
+ * as we give priority to the CacheNever case
21
+ *
22
+ * @returns TimelinePipe
23
+ */
24
+ export function CacheNever() {
25
+ return (instance) => {
26
+ instance.on.pre.prepend(async function (url, init, result) {
27
+ init.headers = { ...init.headers, "X-PnP-CacheNever": "1" };
28
+ return [url, init, result];
29
+ });
30
+ return instance;
31
+ };
32
+ }
16
33
  /**
17
34
  * Behavior that allows you to specify a cache key for a request
18
35
  *
@@ -27,28 +44,26 @@ export function CacheKey(key) {
27
44
  return instance;
28
45
  };
29
46
  }
47
+ /**
48
+ * Adds caching to the requests based on the supplied props
49
+ *
50
+ * @param props Optional props that configure how caching will work
51
+ * @returns TimelinePipe used to configure requests
52
+ */
30
53
  export function Caching(props) {
31
- const storage = new PnPClientStorage();
32
- const { store, keyFactory, expireFunc } = {
33
- store: "local",
34
- keyFactory: (url) => getHashCode(url.toLowerCase()).toString(),
35
- expireFunc: () => dateAdd(new Date(), "minute", 5),
36
- ...props,
37
- };
38
- const s = store === "session" ? storage.session : storage.local;
39
54
  return (instance) => {
40
55
  instance.on.pre(async function (url, init, result) {
56
+ const [shouldCache, getCachedValue, setCachedValue] = bindCachingCore(url, init, props);
41
57
  // only cache get requested data or where the CacheAlways header is present (allows caching of POST requests)
42
- if (/get/i.test(init.method) || (init === null || init === void 0 ? void 0 : init.headers["X-PnP-CacheAlways"])) {
43
- const key = (init === null || init === void 0 ? void 0 : init.headers["X-PnP-CacheKey"]) ? init.headers["X-PnP-CacheKey"] : keyFactory(url.toString());
44
- const cached = s.get(key);
58
+ if (shouldCache) {
59
+ const cached = getCachedValue();
45
60
  // we need to ensure that result stays "undefined" unless we mean to set null as the result
46
61
  if (cached === null) {
47
62
  // if we don't have a cached result we need to get it after the request is sent and parsed
48
- this.on.post(async function (url, result) {
49
- s.put(key, result, expireFunc(url.toString()));
63
+ this.on.post(noInherit(async function (url, result) {
64
+ setCachedValue(result);
50
65
  return [url, result];
51
- });
66
+ }));
52
67
  }
53
68
  else {
54
69
  result = cached;
@@ -59,4 +74,30 @@ export function Caching(props) {
59
74
  return instance;
60
75
  };
61
76
  }
77
+ const storage = new PnPClientStorage();
78
+ /**
79
+ * Based on the supplied properties, creates bound logic encapsulating common caching configuration
80
+ * sharable across implementations to more easily provide consistent behavior across behaviors
81
+ *
82
+ * @param props Any caching props used to initialize the core functions
83
+ */
84
+ export function bindCachingCore(url, init, props) {
85
+ var _a, _b;
86
+ const { store, keyFactory, expireFunc } = {
87
+ store: "local",
88
+ keyFactory: (url) => getHashCode(url.toLowerCase()).toString(),
89
+ expireFunc: () => dateAdd(new Date(), "minute", 5),
90
+ ...props,
91
+ };
92
+ const s = store === "session" ? storage.session : storage.local;
93
+ const key = (init === null || init === void 0 ? void 0 : init.headers["X-PnP-CacheKey"]) ? init.headers["X-PnP-CacheKey"] : keyFactory(url);
94
+ return [
95
+ // calculated value indicating if we should cache this request
96
+ (/get/i.test(init.method) || ((_a = init === null || init === void 0 ? void 0 : init.headers["X-PnP-CacheAlways"]) !== null && _a !== void 0 ? _a : false)) && !((_b = init === null || init === void 0 ? void 0 : init.headers["X-PnP-CacheNever"]) !== null && _b !== void 0 ? _b : false),
97
+ // gets the cached value
98
+ () => s.get(key),
99
+ // sets the cached value
100
+ (value) => s.put(key, value, expireFunc(url)),
101
+ ];
102
+ }
62
103
  //# sourceMappingURL=caching.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"caching.js","sourceRoot":"","sources":["../../../../packages/queryable/behaviors/caching.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"caching.js","sourceRoot":"","sources":["../../../../packages/queryable/behaviors/caching.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@pnp/queryable",
3
- "version": "3.9.0",
3
+ "version": "3.10.0",
4
4
  "description": "pnp - provides shared odata functionality and base classes",
5
5
  "main": "./index.js",
6
6
  "typings": "./index",
7
7
  "dependencies": {
8
8
  "tslib": "2.4.0",
9
- "@pnp/core": "3.9.0"
9
+ "@pnp/core": "3.10.0"
10
10
  },
11
11
  "funding": {
12
12
  "type": "individual",
@@ -1 +1 @@
1
- {"version":3,"file":"queryable.d.ts","sourceRoot":"","sources":["../../../packages/queryable/queryable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queryable.d.ts","sourceRoot":"","sources":["../../../packages/queryable/queryable.ts"],"names":[],"mappings":"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"}
package/queryable.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { __decorate } from "tslib";
2
- import { combine, getGUID, Timeline, asyncReduce, reduce, broadcast, request, extendable, isArray, lifecycle } from "@pnp/core";
2
+ import { combine, getGUID, Timeline, asyncReduce, reduce, broadcast, request, extendable, isArray, lifecycle, stringIsNullOrEmpty } from "@pnp/core";
3
3
  import { invokable } from "./invokable.js";
4
4
  const DefaultMoments = {
5
5
  construct: lifecycle(),
@@ -60,8 +60,10 @@ let Queryable = class Queryable extends Timeline {
60
60
  */
61
61
  toRequestUrl() {
62
62
  let url = this.toUrl();
63
- const char = url.indexOf("?") > -1 ? "&" : "?";
64
- url += char + this.query.toString();
63
+ const query = this.query.toString();
64
+ if (!stringIsNullOrEmpty(query)) {
65
+ url += `${url.indexOf("?") > -1 ? "&" : "?"}${query}`;
66
+ }
65
67
  return url;
66
68
  }
67
69
  /**
package/queryable.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"queryable.js","sourceRoot":"","sources":["../../../packages/queryable/queryable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queryable.js","sourceRoot":"","sources":["../../../packages/queryable/queryable.ts"],"names":[],"mappings":"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"}