@pnp/queryable 3.3.2 → 3.4.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.
- package/behaviors/browser-fetch.d.ts.map +1 -1
- package/behaviors/browser-fetch.js +4 -0
- package/behaviors/browser-fetch.js.map +1 -1
- package/behaviors/cancelable.d.ts +34 -0
- package/behaviors/cancelable.d.ts.map +1 -0
- package/behaviors/cancelable.js +134 -0
- package/behaviors/cancelable.js.map +1 -0
- package/behaviors/resolvers.js +2 -2
- package/behaviors/resolvers.js.map +1 -1
- package/behaviors/timeout.d.ts +2 -2
- package/behaviors/timeout.d.ts.map +1 -1
- package/behaviors/timeout.js +4 -7
- package/behaviors/timeout.js.map +1 -1
- package/index.d.ts +1 -0
- package/index.d.ts.map +1 -1
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/package.json +3 -3
- package/queryable.d.ts +3 -2
- package/queryable.d.ts.map +1 -1
- package/queryable.js +20 -7
- package/queryable.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-fetch.d.ts","sourceRoot":"","sources":["../../../../packages/queryable/behaviors/browser-fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAS,YAAY,EAAE,MAAM,WAAW,CAAC;AAGhD,UAAU,iBAAiB;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,YAAY,CAAC,KAAK,CAAC,EAAE,iBAAiB,GAAG,YAAY,CAAC,SAAS,CAAC,CAuB/E;AAED,UAAU,0BAA2B,SAAQ,iBAAiB;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,qBAAqB,CAAC,KAAK,CAAC,EAAE,0BAA0B,GAAG,YAAY,CAAC,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"browser-fetch.d.ts","sourceRoot":"","sources":["../../../../packages/queryable/behaviors/browser-fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAS,YAAY,EAAE,MAAM,WAAW,CAAC;AAGhD,UAAU,iBAAiB;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,YAAY,CAAC,KAAK,CAAC,EAAE,iBAAiB,GAAG,YAAY,CAAC,SAAS,CAAC,CAuB/E;AAED,UAAU,0BAA2B,SAAQ,iBAAiB;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,qBAAqB,CAAC,KAAK,CAAC,EAAE,0BAA0B,GAAG,YAAY,CAAC,SAAS,CAAC,CA4FjG"}
|
|
@@ -63,6 +63,10 @@ export function BrowserFetchWithRetry(props) {
|
|
|
63
63
|
return response.ok ? response : retry();
|
|
64
64
|
}
|
|
65
65
|
catch (err) {
|
|
66
|
+
if (/AbortError/.test(err.name)) {
|
|
67
|
+
// don't retry aborted requests
|
|
68
|
+
throw err;
|
|
69
|
+
}
|
|
66
70
|
// if there is no network the response is undefined and err is all we have
|
|
67
71
|
// so we grab the err and save it to throw if we exceed the number of retries
|
|
68
72
|
// #2226 first reported this
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-fetch.js","sourceRoot":"","sources":["../../../../packages/queryable/behaviors/browser-fetch.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"browser-fetch.js","sourceRoot":"","sources":["../../../../packages/queryable/behaviors/browser-fetch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { TimelinePipe } from "@pnp/core";
|
|
2
|
+
import { Queryable } from "../queryable.js";
|
|
3
|
+
export declare type CancelablePromise<T = any> = Promise<T> & {
|
|
4
|
+
cancel(): void;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Defines the signature for observers subscribing to the cancelable moment
|
|
8
|
+
*/
|
|
9
|
+
export declare type CancelableObserver = (this: Queryable) => Promise<void>;
|
|
10
|
+
/**
|
|
11
|
+
* Function wrapper that turns the supplied function into a cancellation scope
|
|
12
|
+
*
|
|
13
|
+
* @param func Func to wrap
|
|
14
|
+
* @returns The same func signature, wrapped with our cancel scoping logic
|
|
15
|
+
*/
|
|
16
|
+
export declare const asCancelableScope: <T extends any[], U>(func: (...args: T) => U) => (...args: T) => U;
|
|
17
|
+
/**
|
|
18
|
+
* Decorator used to mark multi-step methods to ensure all subrequests are properly cancelled
|
|
19
|
+
*/
|
|
20
|
+
export declare function cancelableScope(_target: any, _propertyKey: string, descriptor: PropertyDescriptor): void;
|
|
21
|
+
/**
|
|
22
|
+
* Allows requests to be canceled by the caller by adding a cancel method to the Promise returned by the library
|
|
23
|
+
*
|
|
24
|
+
* @returns Timeline pipe to setup canelability
|
|
25
|
+
*/
|
|
26
|
+
export declare function Cancelable(): TimelinePipe<Queryable>;
|
|
27
|
+
/**
|
|
28
|
+
* Allows you to define an action that is run when a request is cancelled
|
|
29
|
+
*
|
|
30
|
+
* @param action The action to run
|
|
31
|
+
* @returns A timeline pipe used in the request lifecycle
|
|
32
|
+
*/
|
|
33
|
+
export declare function CancelAction(action: CancelableObserver): TimelinePipe<Queryable>;
|
|
34
|
+
//# sourceMappingURL=cancelable.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { asyncBroadcast, isFunc } from "@pnp/core";
|
|
2
|
+
// 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;
|
|
8
|
+
/**
|
|
9
|
+
* Function wrapper that turns the supplied function into a cancellation scope
|
|
10
|
+
*
|
|
11
|
+
* @param func Func to wrap
|
|
12
|
+
* @returns The same func signature, wrapped with our cancel scoping logic
|
|
13
|
+
*/
|
|
14
|
+
export const asCancelableScope = (func) => {
|
|
15
|
+
// this needs to include the parameter types, etc and return a wrapped function
|
|
16
|
+
return function (...args) {
|
|
17
|
+
// set that we are in a scope
|
|
18
|
+
inScope = true;
|
|
19
|
+
// execute the original function
|
|
20
|
+
const result = func.apply(this, args);
|
|
21
|
+
// if result is async we need to attach the cancel to the promise
|
|
22
|
+
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;
|
|
27
|
+
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;
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Decorator used to mark multi-step methods to ensure all subrequests are properly cancelled
|
|
38
|
+
*/
|
|
39
|
+
export function cancelableScope(_target, _propertyKey, descriptor) {
|
|
40
|
+
// wrapping the original method
|
|
41
|
+
descriptor.value = asCancelableScope(descriptor.value);
|
|
42
|
+
}
|
|
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
|
+
/**
|
|
64
|
+
* Allows requests to be canceled by the caller by adding a cancel method to the Promise returned by the library
|
|
65
|
+
*
|
|
66
|
+
* @returns Timeline pipe to setup canelability
|
|
67
|
+
*/
|
|
68
|
+
export function Cancelable() {
|
|
69
|
+
if (!AbortController) {
|
|
70
|
+
throw Error("The current environment appears to not support AbortController, please include a suitable polyfill.");
|
|
71
|
+
}
|
|
72
|
+
return (instance) => {
|
|
73
|
+
let signal;
|
|
74
|
+
// init our queryable to support cancellation
|
|
75
|
+
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
|
|
79
|
+
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
|
+
}
|
|
91
|
+
return [promise];
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
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
|
|
102
|
+
init.signal.addEventListener("abort", () => {
|
|
103
|
+
definedCancel();
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
return [url, init, result];
|
|
107
|
+
});
|
|
108
|
+
return instance;
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Allows you to define an action that is run when a request is cancelled
|
|
113
|
+
*
|
|
114
|
+
* @param action The action to run
|
|
115
|
+
* @returns A timeline pipe used in the request lifecycle
|
|
116
|
+
*/
|
|
117
|
+
export function CancelAction(action) {
|
|
118
|
+
return (instance) => {
|
|
119
|
+
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);
|
|
128
|
+
}
|
|
129
|
+
return args;
|
|
130
|
+
});
|
|
131
|
+
return instance;
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=cancelable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cancelable.js","sourceRoot":"","sources":["../../../../packages/queryable/behaviors/cancelable.ts"],"names":[],"mappings":"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"}
|
package/behaviors/resolvers.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export function ResolveOnData() {
|
|
2
2
|
return (instance) => {
|
|
3
3
|
instance.on.data(function (data) {
|
|
4
|
-
this.emit[this.
|
|
4
|
+
this.emit[this.InternalResolve](data);
|
|
5
5
|
});
|
|
6
6
|
return instance;
|
|
7
7
|
};
|
|
@@ -9,7 +9,7 @@ export function ResolveOnData() {
|
|
|
9
9
|
export function RejectOnError() {
|
|
10
10
|
return (instance) => {
|
|
11
11
|
instance.on.error(function (err) {
|
|
12
|
-
this.emit[this.
|
|
12
|
+
this.emit[this.InternalReject](err);
|
|
13
13
|
});
|
|
14
14
|
return instance;
|
|
15
15
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolvers.js","sourceRoot":"","sources":["../../../../packages/queryable/behaviors/resolvers.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,aAAa;IAEzB,OAAO,CAAC,QAAmB,EAAE,EAAE;QAE3B,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,UAA2B,IAAI;YAE5C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"resolvers.js","sourceRoot":"","sources":["../../../../packages/queryable/behaviors/resolvers.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,aAAa;IAEzB,OAAO,CAAC,QAAmB,EAAE,EAAE;QAE3B,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,UAA2B,IAAI;YAE5C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC;IACpB,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,aAAa;IAEzB,OAAO,CAAC,QAAmB,EAAE,EAAE;QAE3B,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,UAA2B,GAAG;YAE5C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC;IACpB,CAAC,CAAC;AACN,CAAC"}
|
package/behaviors/timeout.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { Queryable } from "../queryable.js";
|
|
|
3
3
|
/**
|
|
4
4
|
* Behavior that will cause a timeout in the request after the specified milliseconds
|
|
5
5
|
*
|
|
6
|
-
* @param timeout
|
|
6
|
+
* @param timeout Number of milliseconds to set the timeout
|
|
7
7
|
*/
|
|
8
|
-
export declare function Timeout(timeout: number
|
|
8
|
+
export declare function Timeout(timeout: number): TimelinePipe<Queryable>;
|
|
9
9
|
//# sourceMappingURL=timeout.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeout.d.ts","sourceRoot":"","sources":["../../../../packages/queryable/behaviors/timeout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,
|
|
1
|
+
{"version":3,"file":"timeout.d.ts","sourceRoot":"","sources":["../../../../packages/queryable/behaviors/timeout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,CAehE"}
|
package/behaviors/timeout.js
CHANGED
|
@@ -1,17 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Behavior that will cause a timeout in the request after the specified milliseconds
|
|
3
3
|
*
|
|
4
|
-
* @param timeout
|
|
4
|
+
* @param timeout Number of milliseconds to set the timeout
|
|
5
5
|
*/
|
|
6
6
|
export function Timeout(timeout) {
|
|
7
7
|
return (instance) => {
|
|
8
|
-
if (typeof timeout === "number") {
|
|
9
|
-
const controller = new AbortController();
|
|
10
|
-
setTimeout(controller.abort, timeout);
|
|
11
|
-
timeout = controller.signal;
|
|
12
|
-
}
|
|
13
8
|
instance.on.pre(async (url, init, result) => {
|
|
14
|
-
|
|
9
|
+
const controller = new AbortController();
|
|
10
|
+
init.signal = controller.signal;
|
|
11
|
+
setTimeout(() => controller.abort(), timeout);
|
|
15
12
|
return [url, init, result];
|
|
16
13
|
});
|
|
17
14
|
return instance;
|
package/behaviors/timeout.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeout.js","sourceRoot":"","sources":["../../../../packages/queryable/behaviors/timeout.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"timeout.js","sourceRoot":"","sources":["../../../../packages/queryable/behaviors/timeout.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,OAAe;IAEnC,OAAO,CAAC,QAAmB,EAAE,EAAE;QAE3B,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;YAExC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;YAChC,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;YAE9C,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC;IACpB,CAAC,CAAC;AACN,CAAC"}
|
package/index.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ export * from "./behaviors/bearer-token.js";
|
|
|
11
11
|
export * from "./behaviors/browser-fetch.js";
|
|
12
12
|
export * from "./behaviors/caching.js";
|
|
13
13
|
export * from "./behaviors/caching-pessimistic.js";
|
|
14
|
+
export * from "./behaviors/cancelable.js";
|
|
14
15
|
export * from "./behaviors/inject-headers.js";
|
|
15
16
|
export * from "./behaviors/parsers.js";
|
|
16
17
|
export * from "./behaviors/timeout.js";
|
package/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../packages/queryable/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AAEtC;;GAEG;AACH,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../packages/queryable/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AAEtC;;GAEG;AACH,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,oCAAoC,CAAC;AACnD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC"}
|
package/index.js
CHANGED
|
@@ -11,6 +11,7 @@ export * from "./behaviors/bearer-token.js";
|
|
|
11
11
|
export * from "./behaviors/browser-fetch.js";
|
|
12
12
|
export * from "./behaviors/caching.js";
|
|
13
13
|
export * from "./behaviors/caching-pessimistic.js";
|
|
14
|
+
export * from "./behaviors/cancelable.js";
|
|
14
15
|
export * from "./behaviors/inject-headers.js";
|
|
15
16
|
export * from "./behaviors/parsers.js";
|
|
16
17
|
export * from "./behaviors/timeout.js";
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../packages/queryable/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AAEtC;;GAEG;AACH,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../packages/queryable/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AAEtC;;GAEG;AACH,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,oCAAoC,CAAC;AACnD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pnp/queryable",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.4.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
|
-
"tslib": "2.
|
|
9
|
-
"@pnp/core": "3.
|
|
8
|
+
"tslib": "2.4.0",
|
|
9
|
+
"@pnp/core": "3.4.1"
|
|
10
10
|
},
|
|
11
11
|
"funding": {
|
|
12
12
|
"type": "individual",
|
package/queryable.d.ts
CHANGED
|
@@ -18,8 +18,9 @@ export declare type QueryableInit = Queryable<any> | string | [Queryable<any>, s
|
|
|
18
18
|
export declare class Queryable<R> extends Timeline<typeof DefaultMoments> implements IQueryableInternal<R> {
|
|
19
19
|
private _query;
|
|
20
20
|
protected _url: string;
|
|
21
|
-
protected
|
|
22
|
-
protected
|
|
21
|
+
protected InternalResolve: symbol;
|
|
22
|
+
protected InternalReject: symbol;
|
|
23
|
+
protected InternalPromise: symbol;
|
|
23
24
|
constructor(init: QueryableInit, path?: string);
|
|
24
25
|
/**
|
|
25
26
|
* Directly concatenates the supplied string to the current url, not normalizing "/" chars
|
package/queryable.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queryable.d.ts","sourceRoot":"","sources":["../../../packages/queryable/queryable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,QAAQ,
|
|
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, broadcast, request, extendable, isArray } from "@pnp/core";
|
|
2
|
+
import { combine, getGUID, Timeline, asyncReduce, reduce, broadcast, request, extendable, isArray } from "@pnp/core";
|
|
3
3
|
import { invokable } from "./invokable.js";
|
|
4
4
|
const DefaultMoments = {
|
|
5
5
|
pre: asyncReduce(),
|
|
@@ -12,8 +12,14 @@ const DefaultMoments = {
|
|
|
12
12
|
let Queryable = class Queryable extends Timeline {
|
|
13
13
|
constructor(init, path) {
|
|
14
14
|
super(DefaultMoments);
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
// these keys represent internal events for Queryable, users are not expected to
|
|
16
|
+
// subscribe directly to these, rather they enable functionality within Queryable
|
|
17
|
+
// they are Symbols such that there are NOT cloned between queryables as we only grab string keys (by design)
|
|
18
|
+
this.InternalResolve = Symbol.for("Queryable_Resolve");
|
|
19
|
+
this.InternalReject = Symbol.for("Queryable_Reject");
|
|
20
|
+
this.InternalPromise = Symbol.for("Queryable_Promise");
|
|
21
|
+
// add an intneral moment with specific implementaion for promise creation
|
|
22
|
+
this.moments[this.InternalPromise] = reduce();
|
|
17
23
|
let url = "";
|
|
18
24
|
let observers = undefined;
|
|
19
25
|
if (typeof init === "string") {
|
|
@@ -74,9 +80,11 @@ let Queryable = class Queryable extends Timeline {
|
|
|
74
80
|
return this._url;
|
|
75
81
|
}
|
|
76
82
|
execute(userInit) {
|
|
83
|
+
// if there are NO observers registered this is likely either a bug in the library or a user error, direct to docs
|
|
77
84
|
if (Reflect.ownKeys(this.observers).length < 1) {
|
|
78
85
|
throw Error("No observers registered for this request. (https://pnp.github.io/pnpjs/queryable/queryable#No-observers-registered-for-this-request)");
|
|
79
86
|
}
|
|
87
|
+
// schedule the execution after we return the promise below in the next event loop
|
|
80
88
|
setTimeout(async () => {
|
|
81
89
|
const requestId = getGUID();
|
|
82
90
|
let requestUrl;
|
|
@@ -123,12 +131,17 @@ let Queryable = class Queryable extends Timeline {
|
|
|
123
131
|
log("Finished request", 1);
|
|
124
132
|
}
|
|
125
133
|
}, 0);
|
|
126
|
-
|
|
134
|
+
// this is the promise that the calling code will recieve and await
|
|
135
|
+
let promise = new Promise((resolve, reject) => {
|
|
127
136
|
// we overwrite any pre-existing internal events as a
|
|
128
|
-
// given queryable
|
|
129
|
-
this.on[this.
|
|
130
|
-
this.on[this.
|
|
137
|
+
// given queryable only processes a single request at a time
|
|
138
|
+
this.on[this.InternalResolve].replace(resolve);
|
|
139
|
+
this.on[this.InternalReject].replace(reject);
|
|
131
140
|
});
|
|
141
|
+
// this allows us to internally hook the promise creation and modify it. This was introduced to allow for
|
|
142
|
+
// cancelable to work as envisioned, but may have other users. Meant for internal use in the library accessed via behaviors.
|
|
143
|
+
[promise] = this.emit[this.InternalPromise](promise);
|
|
144
|
+
return promise;
|
|
132
145
|
}
|
|
133
146
|
};
|
|
134
147
|
Queryable = __decorate([
|
package/queryable.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queryable.js","sourceRoot":"","sources":["../../../packages/queryable/queryable.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAoC,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"queryable.js","sourceRoot":"","sources":["../../../packages/queryable/queryable.ts"],"names":[],"mappings":"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"}
|