UNPKG

7.92 kBJavaScriptView Raw
1import { observeOn, startWith, map } from 'rxjs/operators';
2import { Observable, queueScheduler, observable } from 'rxjs';
3export function fromPromise(promiseFn) {
4 return new Observable((subscriber) => {
5 promiseFn().then((result) => {
6 if (!subscriber.closed) {
7 subscriber.next(result);
8 subscriber.complete();
9 }
10 }, (error) => {
11 if (!subscriber.closed) {
12 subscriber.error(error);
13 }
14 });
15 return () => subscriber.unsubscribe();
16 });
17}
18export function useMutationLoading(source, enabled) {
19 if (!enabled) {
20 return source.pipe(map((result) => ({
21 ...result,
22 loading: false,
23 })));
24 }
25 return source.pipe(startWith({
26 loading: true,
27 }), map((result) => ({
28 ...result,
29 loading: !!result.loading,
30 })));
31}
32export class ZoneScheduler {
33 constructor(zone) {
34 this.zone = zone;
35 this.now = Date.now ? Date.now : () => +new Date();
36 }
37 schedule(work, delay = 0, state) {
38 return this.zone.run(() => queueScheduler.schedule(work, delay, state));
39 }
40}
41export function fixObservable(obs) {
42 obs[observable] = () => obs;
43 return obs;
44}
45export function wrapWithZone(obs, ngZone) {
46 return obs.pipe(observeOn(new ZoneScheduler(ngZone)));
47}
48export function pickFlag(flags, flag, defaultValue) {
49 return flags && typeof flags[flag] !== 'undefined'
50 ? flags[flag]
51 : defaultValue;
52}
53//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFRekQsT0FBTyxFQUFDLFVBQVUsRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRzVELE1BQU0sVUFBVSxXQUFXLENBQUksU0FBMkI7SUFDeEQsT0FBTyxJQUFJLFVBQVUsQ0FBSSxDQUFDLFVBQVUsRUFBRSxFQUFFO1FBQ3RDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FDZCxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3RCLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3hCLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUN2QjtRQUNILENBQUMsRUFDRCxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ1IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3RCLFVBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDekI7UUFDSCxDQUFDLENBQ0YsQ0FBQztRQUVGLE9BQU8sR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FDaEMsTUFBa0MsRUFDbEMsT0FBZ0I7SUFFaEIsSUFBSSxDQUFDLE9BQU8sRUFBRTtRQUNaLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FDaEIsR0FBRyxDQUFvQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNsRCxHQUFHLE1BQU07WUFDVCxPQUFPLEVBQUUsS0FBSztTQUNmLENBQUMsQ0FBQyxDQUNKLENBQUM7S0FDSDtJQUVELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FDaEIsU0FBUyxDQUFvQjtRQUMzQixPQUFPLEVBQUUsSUFBSTtLQUNkLENBQUMsRUFDRixHQUFHLENBQXVDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELEdBQUcsTUFBTTtRQUNULE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU87S0FDMUIsQ0FBQyxDQUFDLENBQ0osQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLE9BQU8sYUFBYTtJQUN4QixZQUFvQixJQUFZO1FBQVosU0FBSSxHQUFKLElBQUksQ0FBUTtRQUV6QixRQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO0lBRmxCLENBQUM7SUFJN0IsUUFBUSxDQUNiLElBQW1ELEVBQ25ELFFBQWdCLENBQUMsRUFDakIsS0FBUztRQUVULE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQ3hCLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FDNUIsQ0FBQztJQUNwQixDQUFDO0NBQ0Y7QUFTRCxNQUFNLFVBQVUsYUFBYSxDQUMzQixHQUF3QztJQUV2QyxHQUFXLENBQUMsVUFBVSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDO0lBQ3JDLE9BQU8sR0FBVSxDQUFDO0FBQ3BCLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUMxQixHQUFrQixFQUNsQixNQUFjO0lBRWQsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDeEQsQ0FBQztBQUVELE1BQU0sVUFBVSxRQUFRLENBQ3RCLEtBQXlCLEVBQ3pCLElBQU8sRUFDUCxZQUF1QjtJQUV2QixPQUFPLEtBQUssSUFBSSxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxXQUFXO1FBQ2hELENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ2IsQ0FBQyxDQUFDLFlBQVksQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ1pvbmV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtvYnNlcnZlT24sIHN0YXJ0V2l0aCwgbWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgdHlwZSB7XG4gIE9ic2VydmFibGVRdWVyeSxcbiAgQXBvbGxvUXVlcnlSZXN1bHQsXG4gIEZldGNoUmVzdWx0LFxuICBPYnNlcnZhYmxlIGFzIEFPYnNlcnZhYmxlLFxufSBmcm9tICdAYXBvbGxvL2NsaWVudC9jb3JlJztcbmltcG9ydCB0eXBlIHtTdWJzY3JpcHRpb24sIFNjaGVkdWxlckxpa2UsIFNjaGVkdWxlckFjdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge09ic2VydmFibGUsIHF1ZXVlU2NoZWR1bGVyLCBvYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB0eXBlIHtNdXRhdGlvblJlc3VsdH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBmcm9tUHJvbWlzZTxUPihwcm9taXNlRm46ICgpID0+IFByb21pc2U8VD4pOiBPYnNlcnZhYmxlPFQ+IHtcbiAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPFQ+KChzdWJzY3JpYmVyKSA9PiB7XG4gICAgcHJvbWlzZUZuKCkudGhlbihcbiAgICAgIChyZXN1bHQpID0+IHtcbiAgICAgICAgaWYgKCFzdWJzY3JpYmVyLmNsb3NlZCkge1xuICAgICAgICAgIHN1YnNjcmliZXIubmV4dChyZXN1bHQpO1xuICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICBpZiAoIXN1YnNjcmliZXIuY2xvc2VkKSB7XG4gICAgICAgICAgc3Vic2NyaWJlci5lcnJvcihlcnJvcik7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHJldHVybiAoKSA9PiBzdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlTXV0YXRpb25Mb2FkaW5nPFQ+KFxuICBzb3VyY2U6IE9ic2VydmFibGU8RmV0Y2hSZXN1bHQ8VD4+LFxuICBlbmFibGVkOiBib29sZWFuLFxuKSB7XG4gIGlmICghZW5hYmxlZCkge1xuICAgIHJldHVybiBzb3VyY2UucGlwZShcbiAgICAgIG1hcDxGZXRjaFJlc3VsdDxUPiwgTXV0YXRpb25SZXN1bHQ8VD4+KChyZXN1bHQpID0+ICh7XG4gICAgICAgIC4uLnJlc3VsdCxcbiAgICAgICAgbG9hZGluZzogZmFsc2UsXG4gICAgICB9KSksXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBzb3VyY2UucGlwZShcbiAgICBzdGFydFdpdGg8TXV0YXRpb25SZXN1bHQ8VD4+KHtcbiAgICAgIGxvYWRpbmc6IHRydWUsXG4gICAgfSksXG4gICAgbWFwPE11dGF0aW9uUmVzdWx0PFQ+LCBNdXRhdGlvblJlc3VsdDxUPj4oKHJlc3VsdCkgPT4gKHtcbiAgICAgIC4uLnJlc3VsdCxcbiAgICAgIGxvYWRpbmc6ICEhcmVzdWx0LmxvYWRpbmcsXG4gICAgfSkpLFxuICApO1xufVxuXG5leHBvcnQgY2xhc3MgWm9uZVNjaGVkdWxlciBpbXBsZW1lbnRzIFNjaGVkdWxlckxpa2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHpvbmU6IE5nWm9uZSkge31cblxuICBwdWJsaWMgbm93ID0gRGF0ZS5ub3cgPyBEYXRlLm5vdyA6ICgpID0+ICtuZXcgRGF0ZSgpO1xuXG4gIHB1YmxpYyBzY2hlZHVsZTxUPihcbiAgICB3b3JrOiAodGhpczogU2NoZWR1bGVyQWN0aW9uPFQ+LCBzdGF0ZT86IFQpID0+IHZvaWQsXG4gICAgZGVsYXk6IG51bWJlciA9IDAsXG4gICAgc3RhdGU/OiBULFxuICApOiBTdWJzY3JpcHRpb24ge1xuICAgIHJldHVybiB0aGlzLnpvbmUucnVuKCgpID0+XG4gICAgICBxdWV1ZVNjaGVkdWxlci5zY2hlZHVsZSh3b3JrLCBkZWxheSwgc3RhdGUpLFxuICAgICkgYXMgU3Vic2NyaXB0aW9uO1xuICB9XG59XG5cbi8vIFhYWDogQXBvbGxvJ3MgUXVlcnlPYnNlcnZhYmxlIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggUnhKU1xuLy8gVE9ETzogcmVtb3ZlIGl0IGluIG9uZSBvZiBmdXR1cmUgcmVsZWFzZXNcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9SZWFjdGl2ZVgvcnhqcy9ibG9iLzlmYjBjZTllMDljODY1OTIwY2YzNzkxNWNjNjc1ZTNiM2E3NTA1MGIvc3JjL2ludGVybmFsL3V0aWwvc3Vic2NyaWJlVG8udHMjTDMyXG5leHBvcnQgZnVuY3Rpb24gZml4T2JzZXJ2YWJsZTxUPihcbiAgb2JzOiBPYnNlcnZhYmxlUXVlcnk8VD4sXG4pOiBPYnNlcnZhYmxlPEFwb2xsb1F1ZXJ5UmVzdWx0PFQ+PjtcbmV4cG9ydCBmdW5jdGlvbiBmaXhPYnNlcnZhYmxlPFQ+KG9iczogQU9ic2VydmFibGU8VD4pOiBPYnNlcnZhYmxlPFQ+O1xuZXhwb3J0IGZ1bmN0aW9uIGZpeE9ic2VydmFibGU8VD4oXG4gIG9iczogQU9ic2VydmFibGU8VD4gfCBPYnNlcnZhYmxlUXVlcnk8VD4sXG4pOiBPYnNlcnZhYmxlPEFwb2xsb1F1ZXJ5UmVzdWx0PFQ+PiB8IE9ic2VydmFibGU8VD4ge1xuICAob2JzIGFzIGFueSlbb2JzZXJ2YWJsZV0gPSAoKSA9PiBvYnM7XG4gIHJldHVybiBvYnMgYXMgYW55O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd3JhcFdpdGhab25lPFQ+KFxuICBvYnM6IE9ic2VydmFibGU8VD4sXG4gIG5nWm9uZTogTmdab25lLFxuKTogT2JzZXJ2YWJsZTxUPiB7XG4gIHJldHVybiBvYnMucGlwZShvYnNlcnZlT24obmV3IFpvbmVTY2hlZHVsZXIobmdab25lKSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGlja0ZsYWc8VEZsYWdzLCBLIGV4dGVuZHMga2V5b2YgVEZsYWdzPihcbiAgZmxhZ3M6IFRGbGFncyB8IHVuZGVmaW5lZCxcbiAgZmxhZzogSyxcbiAgZGVmYXVsdFZhbHVlOiBURmxhZ3NbS10sXG4pOiBURmxhZ3NbS10ge1xuICByZXR1cm4gZmxhZ3MgJiYgdHlwZW9mIGZsYWdzW2ZsYWddICE9PSAndW5kZWZpbmVkJ1xuICAgID8gZmxhZ3NbZmxhZ11cbiAgICA6IGRlZmF1bHRWYWx1ZTtcbn1cbiJdfQ==
\No newline at end of file