@pnp/queryable 3.4.1 → 3.5.1

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.
@@ -7,5 +7,6 @@ export interface ICachingProps {
7
7
  keyFactory?: CacheKeyFactory;
8
8
  expireFunc?: CacheExpireFunc;
9
9
  }
10
+ export declare function CacheKey(key: string): (instance: Queryable) => Queryable<any>;
10
11
  export declare function Caching(props?: ICachingProps): TimelinePipe<Queryable>;
11
12
  //# 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,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,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,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,cAEd,SAAS,oBAW9B;AAED,wBAAgB,OAAO,CAAC,KAAK,CAAC,EAAE,aAAa,GAAG,YAAY,CAAC,SAAS,CAAC,CA8CtE"}
@@ -1,4 +1,13 @@
1
1
  import { getHashCode, PnPClientStorage, dateAdd } from "@pnp/core";
2
+ export function CacheKey(key) {
3
+ return (instance) => {
4
+ instance.on.pre.prepend(async function (url, init, result) {
5
+ init.headers = { ...init.headers, "X-PnP-CacheKey": key };
6
+ return [url, init, result];
7
+ });
8
+ return instance;
9
+ };
10
+ }
2
11
  export function Caching(props) {
3
12
  const storage = new PnPClientStorage();
4
13
  const { store, keyFactory, expireFunc } = {
@@ -12,7 +21,7 @@ export function Caching(props) {
12
21
  instance.on.pre(async function (url, init, result) {
13
22
  // only cache get requested data or where the CacheAlways header is present (allows caching of POST requests)
14
23
  if (/get/i.test(init.method) || (init === null || init === void 0 ? void 0 : init.headers["X-PnP-CacheAlways"])) {
15
- const key = keyFactory(url.toString());
24
+ const key = (init === null || init === void 0 ? void 0 : init.headers["X-PnP-CacheKey"]) ? init.headers["X-PnP-CacheKey"] : keyFactory(url.toString());
16
25
  const cached = s.get(key);
17
26
  // we need to ensure that result stays "undefined" unless we mean to set null as the result
18
27
  if (cached === null) {
@@ -1 +1 @@
1
- {"version":3,"file":"caching.js","sourceRoot":"","sources":["../../../../packages/queryable/behaviors/caching.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,OAAO,EAAgB,MAAM,WAAW,CAAC;AAWjF,MAAM,UAAU,OAAO,CAAC,KAAqB;IAEzC,MAAM,OAAO,GAAG,IAAI,gBAAgB,EAAE,CAAC;IAEvC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG;QACtC,KAAK,EAAE,OAAO;QACd,UAAU,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,QAAQ,EAAE;QACtE,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QAClD,GAAG,KAAK;KACX,CAAC;IAEF,MAAM,CAAC,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAEhE,OAAO,CAAC,QAAmB,EAAE,EAAE;QAE3B,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,WAA4B,GAAW,EAAE,IAAiB,EAAE,MAAW;YAExF,6GAA6G;YAC7G,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,CAAC,mBAAmB,CAAC,CAAA,EAAE;gBAEhE,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAEvC,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAE1B,2FAA2F;gBAC3F,IAAI,MAAM,KAAK,IAAI,EAAE;oBAEjB,0FAA0F;oBAC1F,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,WAAW,GAAQ,EAAE,MAAW;wBAE9C,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;wBAE/C,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;oBACzB,CAAC,CAAC,CAAC;iBAEN;qBAAM;oBAEH,MAAM,GAAG,MAAM,CAAC;iBACnB;aACJ;YAED,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC;IACpB,CAAC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"caching.js","sourceRoot":"","sources":["../../../../packages/queryable/behaviors/caching.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,OAAO,EAAgB,MAAM,WAAW,CAAC;AAWjF,MAAM,UAAU,QAAQ,CAAC,GAAW;IAEhC,OAAO,CAAC,QAAmB,EAAE,EAAE;QAE3B,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,WAA4B,GAAW,EAAE,IAAiB,EAAE,MAAW;YAEhG,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAAC;YAE1D,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,UAAU,OAAO,CAAC,KAAqB;IAEzC,MAAM,OAAO,GAAG,IAAI,gBAAgB,EAAE,CAAC;IAEvC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG;QACtC,KAAK,EAAE,OAAO;QACd,UAAU,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,QAAQ,EAAE;QACtE,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QAClD,GAAG,KAAK;KACX,CAAC;IAEF,MAAM,CAAC,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAEhE,OAAO,CAAC,QAAmB,EAAE,EAAE;QAE3B,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,WAA4B,GAAW,EAAE,IAAiB,EAAE,MAAW;YAExF,6GAA6G;YAC7G,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,CAAC,mBAAmB,CAAC,CAAA,EAAE;gBAEhE,MAAM,GAAG,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,CAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAE1G,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAE1B,2FAA2F;gBAC3F,IAAI,MAAM,KAAK,IAAI,EAAE;oBAEjB,0FAA0F;oBAC1F,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,WAAW,GAAQ,EAAE,MAAW;wBAE9C,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;wBAE/C,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;oBACzB,CAAC,CAAC,CAAC;iBAEN;qBAAM;oBAEH,MAAM,GAAG,MAAM,CAAC;iBACnB;aACJ;YAED,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC;IACpB,CAAC,CAAC;AACN,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { TimelinePipe } from "@pnp/core";
2
2
  import { Queryable } from "../queryable.js";
3
3
  export declare type CancelablePromise<T = any> = Promise<T> & {
4
- cancel(): void;
4
+ cancel(): Promise<void>;
5
5
  };
6
6
  /**
7
7
  * Defines the signature for observers subscribing to the cancelable moment
@@ -1 +1 @@
1
- {"version":3,"file":"cancelable.d.ts","sourceRoot":"","sources":["../../../../packages/queryable/behaviors/cancelable.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,YAAY,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAM5C,oBAAY,iBAAiB,CAAC,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG;IAAE,MAAM,IAAI,IAAI,CAAA;CAAE,CAAC;AAOzE;;GAEG;AACH,oBAAY,kBAAkB,GAAG,CAAC,IAAI,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEpE;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,oEA4B7B,CAAC;AAEF;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,kBAAkB,QAGjG;AAyBD;;;;GAIG;AACH,wBAAgB,UAAU,IAAI,YAAY,CAAC,SAAS,CAAC,CAyDpD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,YAAY,CAAC,SAAS,CAAC,CAoBhF"}
1
+ {"version":3,"file":"cancelable.d.ts","sourceRoot":"","sources":["../../../../packages/queryable/behaviors/cancelable.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,YAAY,EAAiC,MAAM,WAAW,CAAC;AACjG,OAAO,EAAE,SAAS,EAAiB,MAAM,iBAAiB,CAAC;AAgC3D,oBAAY,iBAAiB,CAAC,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG;IAAE,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC;AAsDlF;;GAEG;AACH,oBAAY,kBAAkB,GAAG,CAAC,IAAI,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEpE;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,oEA6B7B,CAAC;AAEF;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,kBAAkB,QAGjG;AAED;;;;GAIG;AACH,wBAAgB,UAAU,IAAI,YAAY,CAAC,SAAS,CAAC,CAmFpD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,YAAY,CAAC,SAAS,CAAC,CAyBhF"}
@@ -1,10 +1,65 @@
1
- import { asyncBroadcast, isFunc } from "@pnp/core";
1
+ import { asyncBroadcast, isArray, getGUID, objectDefinedNotNull } from "@pnp/core";
2
+ /**
3
+ * Cancelable is a fairly complex behavior as there is a lot to consider through multiple timelines. We have
4
+ * two main cases:
5
+ *
6
+ * 1. basic method that is a single call and returns the result of an operation (return spPost(...))
7
+ * 2. complex method that has multiple async calls within
8
+ *
9
+ * 1. For basic calls the cancel info is attached in init as it is only involved within a single request.
10
+ * This works because there is only one request and the cancel logic doesn't need to persist across
11
+ * inheriting instances. Also, many of these requests are so fast canceling is likely unnecessary
12
+ *
13
+ * 2. Complex method present a larger challenge because they are comprised of > 1 request and the promise
14
+ * that is actually returned to the user is not directly from one of our calls. This promise is the
15
+ * one "created" by the language when you await. For complex method we have two things that solve these
16
+ * needs.
17
+ *
18
+ * The first is the use of either the cancelableScope decorator of the asCancelableScope method
19
+ * wrapper. These create an upper level cancel info that is then shared across the child requests within
20
+ * the complex method. Meaning if I do a files.addChunked the same cancel info (and cancel method)
21
+ * are set on the current "this" which is user object on which the method was called. This info is then
22
+ * passed down to any child requests using the original "this" as a base using the construct moment.
23
+ *
24
+ * The CancelAction behavior is used to apply additional actions to a request once it is canceled. For example
25
+ * in the case of uploading files chunked in sp we cancel the upload by id.
26
+ */
2
27
  // this is a special moment used to broadcast when a request is canceled
3
- const CancelMoment = "__CancelMoment__";
4
- // these values are used to track module state while in a scope
5
- let inScope = false;
6
- const scopeActions = [];
7
- let definedCancel;
28
+ const MomentName = "__CancelMoment__";
29
+ // this value is used to track cancel state and the value is represetented by IScopeInfo
30
+ const ScopeId = Symbol.for("CancelScopeId");
31
+ // module map of all currently tracked cancel scopes
32
+ const cancelScopes = new Map();
33
+ /**
34
+ * This method is bound to a scope id and used as the cancel method exposed to the user via cancelable promise
35
+ *
36
+ * @param this unused, the current promise
37
+ * @param scopeId Id bound at creation time
38
+ */
39
+ async function cancelPrimitive(scopeId) {
40
+ const scope = cancelScopes.get(scopeId);
41
+ scope.controller.abort();
42
+ if (isArray(scope === null || scope === void 0 ? void 0 : scope.actions)) {
43
+ scope.actions.map(action => scope.currentSelf.on[MomentName](action));
44
+ }
45
+ return scope.currentSelf.emit[MomentName]();
46
+ }
47
+ /**
48
+ * Creates a new scope id, sets it on the instance's ScopeId property, and adds the info to the map
49
+ *
50
+ * @returns the new scope id (GUID)
51
+ */
52
+ function createScope(instance) {
53
+ const id = getGUID();
54
+ instance[ScopeId] = id;
55
+ cancelScopes.set(id, {
56
+ cancel: cancelPrimitive.bind({}, id),
57
+ actions: [],
58
+ controller: null,
59
+ currentSelf: instance,
60
+ });
61
+ return id;
62
+ }
8
63
  /**
9
64
  * Function wrapper that turns the supplied function into a cancellation scope
10
65
  *
@@ -12,22 +67,23 @@ let definedCancel;
12
67
  * @returns The same func signature, wrapped with our cancel scoping logic
13
68
  */
14
69
  export const asCancelableScope = (func) => {
15
- // this needs to include the parameter types, etc and return a wrapped function
16
70
  return function (...args) {
17
- // set that we are in a scope
18
- inScope = true;
19
- // execute the original function
71
+ // ensure we have setup "this" to cancel
72
+ // 1. for single requests the value is set in the behavior's init observer
73
+ // 2. for complex requests the value is set here
74
+ if (!Reflect.has(this, ScopeId)) {
75
+ createScope(this);
76
+ }
77
+ // execute the original function, but don't await it
20
78
  const result = func.apply(this, args);
21
79
  // if result is async we need to attach the cancel to the promise
22
80
  if (typeof (result === null || result === void 0 ? void 0 : result.finally) === "function") {
23
- // ensure we have cancel set to use the current scope's cancel function
24
- // we rely on the timing of the Cancelable behavior logic completing in the above
25
- // func.apply so that scopeCancel is set
26
- result.cancel = definedCancel;
81
+ // ensure the synthetic promise from a complex method has a cancel method
82
+ result.cancel = cancelScopes.get(this[ScopeId]).cancel;
27
83
  result.finally(() => {
28
- // we need to clean up even when the promise is not cancelled, so we attach a finally handler
29
- inScope = false;
30
- scopeActions.length = 0;
84
+ // remove any cancel scope values tied to this instance
85
+ cancelScopes.delete(this[ScopeId]);
86
+ delete this[ScopeId];
31
87
  });
32
88
  }
33
89
  return result;
@@ -40,26 +96,6 @@ export function cancelableScope(_target, _propertyKey, descriptor) {
40
96
  // wrapping the original method
41
97
  descriptor.value = asCancelableScope(descriptor.value);
42
98
  }
43
- /**
44
- * This method is partially bound and used as the cancel method exposed to the user via cancelable promise
45
- *
46
- * @param this Current queryable
47
- * @param controller The controller associated with this cancel method
48
- */
49
- async function cancelPrimitive(controller) {
50
- definedCancel = undefined;
51
- if (inScope) {
52
- // ensure we register our scope level actions before we emit
53
- scopeActions.map(action => this.on[CancelMoment](action));
54
- }
55
- try {
56
- await this.emit[CancelMoment]();
57
- }
58
- catch (e) {
59
- this.log(`Error in CancelMoment: ${(e === null || e === void 0 ? void 0 : e.message) || "unknown"}`);
60
- }
61
- controller.abort();
62
- }
63
99
  /**
64
100
  * Allows requests to be canceled by the caller by adding a cancel method to the Promise returned by the library
65
101
  *
@@ -70,41 +106,59 @@ export function Cancelable() {
70
106
  throw Error("The current environment appears to not support AbortController, please include a suitable polyfill.");
71
107
  }
72
108
  return (instance) => {
73
- let signal;
109
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
110
+ instance.on.construct(function (init, path) {
111
+ if (typeof init !== "string") {
112
+ const parent = isArray(init) ? init[0] : init;
113
+ if (Reflect.has(parent, ScopeId)) {
114
+ // ensure we carry over the scope id to the new instance from the parent
115
+ this[ScopeId] = parent[ScopeId];
116
+ }
117
+ // define the moment's implementation
118
+ this.moments[MomentName] = asyncBroadcast();
119
+ }
120
+ });
74
121
  // init our queryable to support cancellation
75
122
  instance.on.init(function () {
76
- // define the moment's implementation
77
- this.moments[CancelMoment] = asyncBroadcast();
78
- // this event will run before pre in the lifecycle, so signal should be properly set
123
+ if (!Reflect.has(this, ScopeId)) {
124
+ // ensure we have setup "this" to cancel
125
+ // 1. for single requests this will set the value
126
+ // 2. for complex requests the value is set in asCancelableScope
127
+ const id = createScope(this);
128
+ // if we are creating the scope here, we have not created it within asCancelableScope
129
+ // meaning the finally handler there will not delete the tracked scope reference
130
+ this.on.dispose(() => {
131
+ cancelScopes.delete(id);
132
+ });
133
+ }
79
134
  this.on[this.InternalPromise]((promise) => {
80
- if (inScope && isFunc(definedCancel)) {
81
- // we are inside a scope and this is a call INSIDE an established scope
82
- promise.cancel = definedCancel;
83
- }
84
- else {
85
- // we are inside a scope or an individual request and this is a call to establish the controller
86
- const controller = new AbortController();
87
- signal = controller.signal;
88
- definedCancel = cancelPrimitive.bind(this, controller);
89
- promise.cancel = definedCancel;
90
- }
135
+ // when a new promise is created add a cancel method
136
+ promise.cancel = cancelScopes.get(this[ScopeId]).cancel;
91
137
  return [promise];
92
138
  });
93
139
  });
94
140
  instance.on.pre(async function (url, init, result) {
95
- // if they have included their own signal then we are stuck with respecting the one alredy on init
96
- // they should avoid using Cancelable and supplying their own signal
97
- if (signal && !init.signal) {
98
- init.signal = signal;
99
- }
100
- else {
101
- // we do our best to hook their signal into our logic
141
+ const controller = new AbortController();
142
+ // grab the current scope, update the controller and currentSelf
143
+ const existingScope = cancelScopes.get(this[ScopeId]);
144
+ existingScope.controller = controller;
145
+ existingScope.currentSelf = this;
146
+ if (init.signal) {
147
+ // we do our best to hook our logic to the existing signal
102
148
  init.signal.addEventListener("abort", () => {
103
- definedCancel();
149
+ existingScope.cancel();
104
150
  });
105
151
  }
152
+ else {
153
+ init.signal = controller.signal;
154
+ }
106
155
  return [url, init, result];
107
156
  });
157
+ // clean up any cancel info from the object after the request lifecycle is complete
158
+ instance.on.dispose(function () {
159
+ delete this[ScopeId];
160
+ delete this.moments[MomentName];
161
+ });
108
162
  return instance;
109
163
  };
110
164
  }
@@ -117,14 +171,15 @@ export function Cancelable() {
117
171
  export function CancelAction(action) {
118
172
  return (instance) => {
119
173
  instance.on.pre(async function (...args) {
120
- // if we are in a scope, and haven't already tracked this action we add it
121
- // we need to check as the CancelAction behavior will be passed down across
122
- // instances within the scope, but we only want to do the action once
123
- if (inScope && scopeActions.indexOf(action) < 0) {
124
- scopeActions.push(action);
125
- }
126
- else {
127
- this.on[CancelMoment](action);
174
+ const existingScope = cancelScopes.get(this[ScopeId]);
175
+ // if we don't have a scope this request is not using Cancelable so we do nothing
176
+ if (objectDefinedNotNull(existingScope)) {
177
+ if (!isArray(existingScope.actions)) {
178
+ existingScope.actions = [];
179
+ }
180
+ if (existingScope.actions.indexOf(action) < 0) {
181
+ existingScope.actions.push(action);
182
+ }
128
183
  }
129
184
  return args;
130
185
  });
@@ -1 +1 @@
1
- {"version":3,"file":"cancelable.js","sourceRoot":"","sources":["../../../../packages/queryable/behaviors/cancelable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cancelable.js","sourceRoot":"","sources":["../../../../packages/queryable/behaviors/cancelable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,OAAO,EAAgB,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAGjG;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,wEAAwE;AACxE,MAAM,UAAU,GAAG,kBAAkB,CAAC;AAKtC,wFAAwF;AACxF,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AAY5C,oDAAoD;AACpD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAsB,CAAC;AAEnD;;;;;GAKG;AACH,KAAK,UAAU,eAAe,CAAC,OAAe;IAE1C,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAExC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAEzB,IAAI,OAAO,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,CAAC,EAAE;QACzB,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;KACzE;IAED,OAAa,KAAK,CAAC,WAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;AACvD,CAAC;AAED;;;;GAIG;AACH,SAAS,WAAW,CAAC,QAAmB;IACpC,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC;IACrB,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;IACvB,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE;QACjB,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;QACpC,OAAO,EAAE,EAAE;QACX,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,QAAQ;KACxB,CAAC,CAAC;IACH,OAAO,EAAE,CAAC;AACd,CAAC;AAOD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAqB,IAAuB,EAAqB,EAAE;IAEhG,OAAO,UAA2B,GAAG,IAAO;QAExC,wCAAwC;QACxC,0EAA0E;QAC1E,gDAAgD;QAChD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;YAC7B,WAAW,CAAC,IAAI,CAAC,CAAC;SACrB;QAED,oDAAoD;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAEtC,iEAAiE;QACjE,IAAI,OAAO,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,CAAA,KAAK,UAAU,EAAE;YAEvC,yEAAyE;YACrD,MAAO,CAAC,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;YAE5E,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;gBAChB,uDAAuD;gBACvD,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;gBACnC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;SACN;QAED,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;AACN,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,OAAY,EAAE,YAAoB,EAAE,UAA8B;IAC9F,+BAA+B;IAC/B,UAAU,CAAC,KAAK,GAAG,iBAAiB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAC3D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU;IAEtB,IAAI,CAAC,eAAe,EAAE;QAClB,MAAM,KAAK,CAAC,qGAAqG,CAAC,CAAC;KACtH;IAED,OAAO,CAAC,QAAmB,EAAE,EAAE;QAE3B,6DAA6D;QAC7D,QAAQ,CAAC,EAAE,CAAC,SAAS,CAAC,UAA2B,IAAmB,EAAE,IAAa;YAE/E,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;gBAE1B,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAE9C,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;oBAC9B,wEAAwE;oBACxE,IAAI,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;iBACnC;gBAED,qCAAqC;gBACrC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,cAAc,EAAsB,CAAC;aACnE;QACL,CAAC,CAAC,CAAC;QAEH,6CAA6C;QAC7C,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC;YAEb,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;gBAE7B,wCAAwC;gBACxC,iDAAiD;gBACjD,gEAAgE;gBAChE,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;gBAE7B,qFAAqF;gBACrF,gFAAgF;gBAChF,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;oBACjB,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC5B,CAAC,CAAC,CAAC;aACN;YAED,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,OAAqB,EAAE,EAAE;gBAEpD,oDAAoD;gBAChC,OAAQ,CAAC,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;gBAE7E,OAAO,CAAC,OAAO,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,WAA4B,GAAG,EAAE,IAAI,EAAE,MAAM;YAE9D,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YAEzC,gEAAgE;YAChE,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YACtD,aAAa,CAAC,UAAU,GAAG,UAAU,CAAC;YACtC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC;YAEjC,IAAI,IAAI,CAAC,MAAM,EAAE;gBAEb,0DAA0D;gBAC1D,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;oBACvC,aAAa,CAAC,MAAM,EAAE,CAAC;gBAC3B,CAAC,CAAC,CAAC;aAEN;iBAAM;gBAEH,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;aACnC;YAED,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,mFAAmF;QACnF,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC;YAChB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;YACrB,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC;IACpB,CAAC,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,MAA0B;IAEnD,OAAO,CAAC,QAAmB,EAAE,EAAE;QAE3B,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,WAA4B,GAAG,IAAI;YAEpD,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YAEtD,iFAAiF;YACjF,IAAI,oBAAoB,CAAC,aAAa,CAAC,EAAE;gBAErC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE;oBACjC,aAAa,CAAC,OAAO,GAAG,EAAE,CAAC;iBAC9B;gBAED,IAAI,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;oBAC3C,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iBACtC;aACJ;YAED,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC;IACpB,CAAC,CAAC;AACN,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"parsers.d.ts","sourceRoot":"","sources":["../../../../packages/queryable/behaviors/parsers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAO,YAAY,EAAE,MAAM,WAAW,CAAC;AAG9C,wBAAgB,YAAY,IAAI,YAAY,CAc3C;AAED,wBAAgB,SAAS,IAAI,YAAY,CAGxC;AAED,wBAAgB,SAAS,IAAI,YAAY,CAGxC;AAED,wBAAgB,SAAS,IAAI,YAAY,CAGxC;AAED,wBAAgB,WAAW,IAAI,YAAY,CAG1C;AAED,wBAAgB,WAAW,IAAI,YAAY,CAG1C;AAED,wBAAsB,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CASzG;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,CAoB7C;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,QAAQ,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC,CAmBtG;AAED,qBAAa,gBAAiB,SAAQ,KAAK;IAIH,QAAQ,EAAE,QAAQ;IAAS,MAAM;IAA2B,UAAU;IAFnG,kBAAkB,UAAQ;gBAErB,OAAO,EAAE,MAAM,EAAS,QAAQ,EAAE,QAAQ,EAAS,MAAM,SAAkB,EAAS,UAAU,SAAsB;WAI5G,IAAI,CAAC,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAKnE"}
1
+ {"version":3,"file":"parsers.d.ts","sourceRoot":"","sources":["../../../../packages/queryable/behaviors/parsers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAO,YAAY,EAAE,MAAM,WAAW,CAAC;AAG9C,wBAAgB,YAAY,IAAI,YAAY,CAc3C;AAED,wBAAgB,SAAS,IAAI,YAAY,CAGxC;AAED,wBAAgB,SAAS,IAAI,YAAY,CAGxC;AAED,wBAAgB,SAAS,IAAI,YAAY,CAGxC;AAED,wBAAgB,WAAW,IAAI,YAAY,CAG1C;AAED,wBAAgB,WAAW,IAAI,YAAY,CAG1C;AAED,wBAAsB,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAOzG;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,CAoB7C;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,QAAQ,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC,CAmBtG;AAED,qBAAa,gBAAiB,SAAQ,KAAK;IAIH,QAAQ,EAAE,QAAQ;IAAS,MAAM;IAA2B,UAAU;IAFnG,kBAAkB,UAAQ;gBAErB,OAAO,EAAE,MAAM,EAAS,QAAQ,EAAE,QAAQ,EAAS,MAAM,SAAkB,EAAS,UAAU,SAAsB;WAI5G,IAAI,CAAC,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAInE"}
@@ -29,9 +29,7 @@ export function HeaderParse() {
29
29
  }
30
30
  export async function errorCheck(url, response, result) {
31
31
  if (!response.ok) {
32
- // within observers we just throw to indicate an unrecoverable error within the pipeline
33
- const y = await HttpRequestError.init(response);
34
- throw y;
32
+ throw await HttpRequestError.init(response);
35
33
  }
36
34
  return [url, response, result];
37
35
  }
@@ -64,7 +62,7 @@ export function parseBinderWithErrorCheck(impl) {
64
62
  // add the impl function we are supplied
65
63
  instance.on.parse.replace(errorCheck);
66
64
  instance.on.parse(async (url, response, result) => {
67
- if (typeof result === "undefined") {
65
+ if (response.ok && typeof result === "undefined") {
68
66
  result = await impl(response);
69
67
  }
70
68
  return [url, response, result];
@@ -82,7 +80,7 @@ export class HttpRequestError extends Error {
82
80
  }
83
81
  static async init(r) {
84
82
  const t = await r.clone().text();
85
- return new HttpRequestError(`Error making HttpClient request in queryable [${r.status}] ${r.statusText} ::> ${t}`, r.clone());
83
+ return new HttpRequestError(`Error making HttpClient request in queryable [${r.status}] ${r.statusText} ::> ${t}`, r);
86
84
  }
87
85
  }
88
86
  //# sourceMappingURL=parsers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../../../packages/queryable/behaviors/parsers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../../../packages/queryable/behaviors/parsers.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.4.1",
3
+ "version": "3.5.1",
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.4.1"
9
+ "@pnp/core": "3.5.1"
10
10
  },
11
11
  "funding": {
12
12
  "type": "individual",
@@ -1 +1 @@
1
- {"version":3,"file":"queryable-factory.d.ts","sourceRoot":"","sources":["../../../packages/queryable/queryable-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEnE,wBAAgB,gBAAgB,CAAC,YAAY,SAAS,kBAAkB,EACpE,WAAW,EAAE;IAAE,KAAI,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,YAAY,CAAA;CAAE,GACvE,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,YAAY,CAOtD"}
1
+ {"version":3,"file":"queryable-factory.d.ts","sourceRoot":"","sources":["../../../packages/queryable/queryable-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEnE,wBAAgB,gBAAgB,CAAC,YAAY,SAAS,kBAAkB,EACpE,WAAW,EAAE;IAAE,KAAI,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,YAAY,CAAA;CAAE,GACvE,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,YAAY,CActD"}
@@ -1,7 +1,12 @@
1
1
  export function queryableFactory(constructor) {
2
2
  return (init, path) => {
3
- // provides a point where we can potentially intercept any queryable being created
4
- return new constructor(init, path);
3
+ // construct the concrete instance
4
+ const instance = new constructor(init, path);
5
+ // we emit the construct event from the factory because we need all of the decorators and constructors
6
+ // to have fully finished before we emit, which is now true. We type the instance to any to get around
7
+ // the protected nature of emit
8
+ instance.emit.construct(init, path);
9
+ return instance;
5
10
  };
6
11
  }
7
12
  //# sourceMappingURL=queryable-factory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"queryable-factory.js","sourceRoot":"","sources":["../../../packages/queryable/queryable-factory.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,gBAAgB,CAC5B,WAAsE;IAGtE,OAAO,CAAC,IAAmB,EAAE,IAAa,EAAE,EAAE;QAE1C,kFAAkF;QAClF,OAAO,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"queryable-factory.js","sourceRoot":"","sources":["../../../packages/queryable/queryable-factory.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,gBAAgB,CAC5B,WAAsE;IAGtE,OAAO,CAAC,IAAmB,EAAE,IAAa,EAAE,EAAE;QAE1C,kCAAkC;QAClC,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAE7C,sGAAsG;QACtG,sGAAsG;QACtG,+BAA+B;QACzB,QAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAE3C,OAAO,QAAQ,CAAC;IACpB,CAAC,CAAC;AACN,CAAC"}
package/queryable.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { Timeline, TimelinePipe } from "@pnp/core";
2
2
  import { IInvokable } from "./invokable.js";
3
+ export declare type QueryableConstructObserver = (this: IQueryableInternal, init: QueryableInit, path?: string) => void;
3
4
  export declare type QueryablePreObserver = (this: IQueryableInternal, url: string, init: RequestInit, result: any) => Promise<[string, RequestInit, any]>;
4
5
  export declare type QueryableAuthObserver = (this: IQueryableInternal, url: URL, init: RequestInit) => Promise<[URL, RequestInit]>;
5
6
  export declare type QueryableSendObserver = (this: IQueryableInternal, url: URL, init: RequestInit) => Promise<Response>;
@@ -7,6 +8,7 @@ export declare type QueryableParseObserver = (this: IQueryableInternal, url: URL
7
8
  export declare type QueryablePostObserver = (this: IQueryableInternal, url: URL, result: any | undefined) => Promise<[URL, any]>;
8
9
  export declare type QueryableDataObserver<T = any> = (this: IQueryableInternal, result: T) => void;
9
10
  declare const DefaultMoments: {
11
+ readonly construct: (observers: QueryableConstructObserver[], init: QueryableInit, path?: string) => Timeline<any>;
10
12
  readonly pre: (observers: QueryablePreObserver[], url: string, init: RequestInit, result: any) => Promise<[url: string, init: RequestInit, result: any]>;
11
13
  readonly auth: (observers: QueryableAuthObserver[], url: URL, init: RequestInit) => Promise<[url: URL, init: RequestInit]>;
12
14
  readonly send: (observers: QueryableSendObserver[], url: URL, init: RequestInit) => Promise<Promise<Response>>;
@@ -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,7 +1,8 @@
1
1
  import { __decorate } from "tslib";
2
- import { combine, getGUID, Timeline, asyncReduce, reduce, broadcast, request, extendable, isArray } from "@pnp/core";
2
+ import { combine, getGUID, Timeline, asyncReduce, reduce, broadcast, request, extendable, isArray, lifecycle } from "@pnp/core";
3
3
  import { invokable } from "./invokable.js";
4
4
  const DefaultMoments = {
5
+ construct: lifecycle(),
5
6
  pre: asyncReduce(),
6
7
  auth: asyncReduce(),
7
8
  send: request(),
@@ -18,33 +19,31 @@ let Queryable = class Queryable extends Timeline {
18
19
  this.InternalResolve = Symbol.for("Queryable_Resolve");
19
20
  this.InternalReject = Symbol.for("Queryable_Reject");
20
21
  this.InternalPromise = Symbol.for("Queryable_Promise");
22
+ this._query = new Map();
21
23
  // add an intneral moment with specific implementaion for promise creation
22
24
  this.moments[this.InternalPromise] = reduce();
23
- let url = "";
24
- let observers = undefined;
25
+ let parent;
25
26
  if (typeof init === "string") {
26
- url = combine(init, path);
27
+ this._url = combine(init, path);
27
28
  }
28
29
  else if (isArray(init)) {
29
30
  if (init.length !== 2) {
30
- throw Error("When using the tuple first param only two arguments are supported");
31
+ throw Error("When using the tuple param exactly two arguments are expected.");
32
+ }
33
+ if (typeof init[1] !== "string") {
34
+ throw Error("Expected second tuple param to be a string.");
31
35
  }
32
- const q = init[0];
33
- const _url = init[1];
34
- url = combine(_url, path);
35
- observers = q.observers;
36
+ parent = init[0];
37
+ this._url = combine(init[1], path);
36
38
  }
37
39
  else {
38
- const { _url, observers: _observers } = init;
39
- url = combine(_url, path);
40
- observers = _observers;
40
+ parent = init;
41
+ this._url = combine(parent._url, path);
41
42
  }
42
- if (typeof observers !== "undefined") {
43
- this.observers = observers;
43
+ if (typeof parent !== "undefined") {
44
+ this.observers = parent.observers;
44
45
  this._inheritingObservers = true;
45
46
  }
46
- this._url = url;
47
- this._query = new Map();
48
47
  }
49
48
  /**
50
49
  * Directly concatenates the supplied string to the current url, not normalizing "/" chars
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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"}
@@ -19,11 +19,13 @@ export declare function headers<T extends Partial<RequestInit>, U extends Record
19
19
  * no caching observers are registered this has no effect.
20
20
  *
21
21
  * @param previous Any previous RequestInit to extend
22
+ * @param key An optional key to use when caching the wrapped value. If not supplied a key will be generated as a hash of the `previous` value supplied
22
23
  * @returns A RequestInit combining the caching header and any previous RequestInit
23
24
  */
24
- export declare function cacheAlways<T extends Partial<RequestInit>>(previous?: T): T & {
25
+ export declare function cacheAlways<T extends Partial<RequestInit>>(previous?: T, key?: string): T & {
25
26
  headers: {
26
27
  "X-PnP-CacheAlways": string;
28
+ "X-PnP-CacheKey": string;
27
29
  };
28
30
  };
29
31
  //# sourceMappingURL=request-builders.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"request-builders.d.ts","sourceRoot":"","sources":["../../../packages/queryable/request-builders.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAEtG;AAED;;;;;;GAMG;AAEH,wBAAgB,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG;IAAE,OAAO,EAAE,CAAC,CAAA;CAAE,CAErI;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,OAAO,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC;;;;EAIvE"}
1
+ {"version":3,"file":"request-builders.d.ts","sourceRoot":"","sources":["../../../packages/queryable/request-builders.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAEtG;AAED;;;;;;GAMG;AAEH,wBAAgB,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG;IAAE,OAAO,EAAE,CAAC,CAAA;CAAE,CAErI;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,OAAO,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM;;;;;EAUrF"}
@@ -1,4 +1,4 @@
1
- import { jsS } from "@pnp/core";
1
+ import { getHashCode, jsS, stringIsNullOrEmpty } from "@pnp/core";
2
2
  /**
3
3
  * takes the supplied object of type U, JSON.stringify's it, and sets it as the value of a "body" property
4
4
  */
@@ -21,11 +21,16 @@ export function headers(o, previous) {
21
21
  * no caching observers are registered this has no effect.
22
22
  *
23
23
  * @param previous Any previous RequestInit to extend
24
+ * @param key An optional key to use when caching the wrapped value. If not supplied a key will be generated as a hash of the `previous` value supplied
24
25
  * @returns A RequestInit combining the caching header and any previous RequestInit
25
26
  */
26
- export function cacheAlways(previous) {
27
+ export function cacheAlways(previous, key) {
28
+ if (stringIsNullOrEmpty(key)) {
29
+ key = getHashCode(JSON.stringify(previous)).toString();
30
+ }
27
31
  return headers({
28
32
  "X-PnP-CacheAlways": "1",
33
+ "X-PnP-CacheKey": key,
29
34
  }, previous);
30
35
  }
31
36
  //# sourceMappingURL=request-builders.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"request-builders.js","sourceRoot":"","sources":["../../../packages/queryable/request-builders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAEhC;;GAEG;AACH,MAAM,UAAU,IAAI,CAA0C,CAAI,EAAE,QAAY;IAC5E,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;AACrD,CAAC;AAED;;;;;;GAMG;AACH,wDAAwD;AACxD,MAAM,UAAU,OAAO,CAAwE,CAAI,EAAE,QAAY;IAC7G,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;AACpF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAiC,QAAY;IACpE,OAAO,OAAO,CAAC;QACX,mBAAmB,EAAE,GAAG;KAC3B,EAAE,QAAQ,CAAC,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"request-builders.js","sourceRoot":"","sources":["../../../packages/queryable/request-builders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAElE;;GAEG;AACH,MAAM,UAAU,IAAI,CAA0C,CAAI,EAAE,QAAY;IAC5E,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;AACrD,CAAC;AAED;;;;;;GAMG;AACH,wDAAwD;AACxD,MAAM,UAAU,OAAO,CAAwE,CAAI,EAAE,QAAY;IAC7G,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;AACpF,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAiC,QAAY,EAAE,GAAY;IAElF,IAAI,mBAAmB,CAAC,GAAG,CAAC,EAAE;QAC1B,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;KAC1D;IAED,OAAO,OAAO,CAAC;QACX,mBAAmB,EAAE,GAAG;QACxB,gBAAgB,EAAE,GAAG;KACxB,EAAE,QAAQ,CAAC,CAAC;AACjB,CAAC"}