UNPKG

6.24 kBJavaScriptView Raw
1import { observeOn } 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 class ZoneScheduler {
19 constructor(zone) {
20 this.zone = zone;
21 this.now = Date.now ? Date.now : () => +new Date();
22 }
23 schedule(work, delay = 0, state) {
24 return this.zone.run(() => queueScheduler.schedule(work, delay, state));
25 }
26}
27export function fixObservable(obs) {
28 obs[observable] = () => obs;
29 return obs;
30}
31export function wrapWithZone(obs, ngZone) {
32 return obs.pipe(observeOn(new ZoneScheduler(ngZone)));
33}
34export function pickFlag(flags, flag, defaultValue) {
35 return flags && typeof flags[flag] !== 'undefined'
36 ? flags[flag]
37 : defaultValue;
38}
39//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiL3dvcmtzcGFjZXMvYXBvbGxvLWFuZ3VsYXIvcGFja2FnZXMvYXBvbGxvLWFuZ3VsYXIvc3JjLyIsInNvdXJjZXMiOlsidXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBTXpDLE9BQU8sRUFDTCxVQUFVLEVBRVYsY0FBYyxFQUdkLFVBQVUsR0FDWCxNQUFNLE1BQU0sQ0FBQztBQUVkLE1BQU0sVUFBVSxXQUFXLENBQUksU0FBMkI7SUFDeEQsT0FBTyxJQUFJLFVBQVUsQ0FBSSxDQUFDLFVBQVUsRUFBRSxFQUFFO1FBQ3RDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FDZCxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3RCLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3hCLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUN2QjtRQUNILENBQUMsRUFDRCxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ1IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3RCLFVBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDekI7UUFDSCxDQUFDLENBQ0YsQ0FBQztRQUVGLE9BQU8sR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sT0FBTyxhQUFhO0lBQ3hCLFlBQW9CLElBQVk7UUFBWixTQUFJLEdBQUosSUFBSSxDQUFRO1FBRXpCLFFBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7SUFGbEIsQ0FBQztJQUk3QixRQUFRLENBQ2IsSUFBbUQsRUFDbkQsUUFBZ0IsQ0FBQyxFQUNqQixLQUFTO1FBRVQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FDeEIsY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUM1QixDQUFDO0lBQ3BCLENBQUM7Q0FDRjtBQVNELE1BQU0sVUFBVSxhQUFhLENBQzNCLEdBQXdDO0lBRXZDLEdBQVcsQ0FBQyxVQUFVLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUM7SUFDckMsT0FBTyxHQUFVLENBQUM7QUFDcEIsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQzFCLEdBQWtCLEVBQ2xCLE1BQWM7SUFFZCxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN4RCxDQUFDO0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FDdEIsS0FBeUIsRUFDekIsSUFBTyxFQUNQLFlBQXVCO0lBRXZCLE9BQU8sS0FBSyxJQUFJLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLFdBQVc7UUFDaEQsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDYixDQUFDLENBQUMsWUFBWSxDQUFDO0FBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nWm9uZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge29ic2VydmVPbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgT2JzZXJ2YWJsZVF1ZXJ5LFxuICBBcG9sbG9RdWVyeVJlc3VsdCxcbiAgT2JzZXJ2YWJsZSBhcyBBT2JzZXJ2YWJsZSxcbn0gZnJvbSAnQGFwb2xsby9jbGllbnQvY29yZSc7XG5pbXBvcnQge1xuICBPYnNlcnZhYmxlLFxuICBTdWJzY3JpcHRpb24sXG4gIHF1ZXVlU2NoZWR1bGVyLFxuICBTY2hlZHVsZXJMaWtlLFxuICBTY2hlZHVsZXJBY3Rpb24sXG4gIG9ic2VydmFibGUsXG59IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZnJvbVByb21pc2U8VD4ocHJvbWlzZUZuOiAoKSA9PiBQcm9taXNlPFQ+KTogT2JzZXJ2YWJsZTxUPiB7XG4gIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxUPigoc3Vic2NyaWJlcikgPT4ge1xuICAgIHByb21pc2VGbigpLnRoZW4oXG4gICAgICAocmVzdWx0KSA9PiB7XG4gICAgICAgIGlmICghc3Vic2NyaWJlci5jbG9zZWQpIHtcbiAgICAgICAgICBzdWJzY3JpYmVyLm5leHQocmVzdWx0KTtcbiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgaWYgKCFzdWJzY3JpYmVyLmNsb3NlZCkge1xuICAgICAgICAgIHN1YnNjcmliZXIuZXJyb3IoZXJyb3IpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICk7XG5cbiAgICByZXR1cm4gKCkgPT4gc3Vic2NyaWJlci51bnN1YnNjcmliZSgpO1xuICB9KTtcbn1cblxuZXhwb3J0IGNsYXNzIFpvbmVTY2hlZHVsZXIgaW1wbGVtZW50cyBTY2hlZHVsZXJMaWtlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB6b25lOiBOZ1pvbmUpIHt9XG5cbiAgcHVibGljIG5vdyA9IERhdGUubm93ID8gRGF0ZS5ub3cgOiAoKSA9PiArbmV3IERhdGUoKTtcblxuICBwdWJsaWMgc2NoZWR1bGU8VD4oXG4gICAgd29yazogKHRoaXM6IFNjaGVkdWxlckFjdGlvbjxUPiwgc3RhdGU/OiBUKSA9PiB2b2lkLFxuICAgIGRlbGF5OiBudW1iZXIgPSAwLFxuICAgIHN0YXRlPzogVCxcbiAgKTogU3Vic2NyaXB0aW9uIHtcbiAgICByZXR1cm4gdGhpcy56b25lLnJ1bigoKSA9PlxuICAgICAgcXVldWVTY2hlZHVsZXIuc2NoZWR1bGUod29yaywgZGVsYXksIHN0YXRlKSxcbiAgICApIGFzIFN1YnNjcmlwdGlvbjtcbiAgfVxufVxuXG4vLyBYWFg6IEFwb2xsbydzIFF1ZXJ5T2JzZXJ2YWJsZSBpcyBub3QgY29tcGF0aWJsZSB3aXRoIFJ4SlNcbi8vIFRPRE86IHJlbW92ZSBpdCBpbiBvbmUgb2YgZnV0dXJlIHJlbGVhc2VzXG4vLyBodHRwczovL2dpdGh1Yi5jb20vUmVhY3RpdmVYL3J4anMvYmxvYi85ZmIwY2U5ZTA5Yzg2NTkyMGNmMzc5MTVjYzY3NWUzYjNhNzUwNTBiL3NyYy9pbnRlcm5hbC91dGlsL3N1YnNjcmliZVRvLnRzI0wzMlxuZXhwb3J0IGZ1bmN0aW9uIGZpeE9ic2VydmFibGU8VD4oXG4gIG9iczogT2JzZXJ2YWJsZVF1ZXJ5PFQ+LFxuKTogT2JzZXJ2YWJsZTxBcG9sbG9RdWVyeVJlc3VsdDxUPj47XG5leHBvcnQgZnVuY3Rpb24gZml4T2JzZXJ2YWJsZTxUPihvYnM6IEFPYnNlcnZhYmxlPFQ+KTogT2JzZXJ2YWJsZTxUPjtcbmV4cG9ydCBmdW5jdGlvbiBmaXhPYnNlcnZhYmxlPFQ+KFxuICBvYnM6IEFPYnNlcnZhYmxlPFQ+IHwgT2JzZXJ2YWJsZVF1ZXJ5PFQ+LFxuKTogT2JzZXJ2YWJsZTxBcG9sbG9RdWVyeVJlc3VsdDxUPj4gfCBPYnNlcnZhYmxlPFQ+IHtcbiAgKG9icyBhcyBhbnkpW29ic2VydmFibGVdID0gKCkgPT4gb2JzO1xuICByZXR1cm4gb2JzIGFzIGFueTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdyYXBXaXRoWm9uZTxUPihcbiAgb2JzOiBPYnNlcnZhYmxlPFQ+LFxuICBuZ1pvbmU6IE5nWm9uZSxcbik6IE9ic2VydmFibGU8VD4ge1xuICByZXR1cm4gb2JzLnBpcGUob2JzZXJ2ZU9uKG5ldyBab25lU2NoZWR1bGVyKG5nWm9uZSkpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBpY2tGbGFnPFRGbGFncywgSyBleHRlbmRzIGtleW9mIFRGbGFncz4oXG4gIGZsYWdzOiBURmxhZ3MgfCB1bmRlZmluZWQsXG4gIGZsYWc6IEssXG4gIGRlZmF1bHRWYWx1ZTogVEZsYWdzW0tdLFxuKTogVEZsYWdzW0tdIHtcbiAgcmV0dXJuIGZsYWdzICYmIHR5cGVvZiBmbGFnc1tmbGFnXSAhPT0gJ3VuZGVmaW5lZCdcbiAgICA/IGZsYWdzW2ZsYWddXG4gICAgOiBkZWZhdWx0VmFsdWU7XG59XG4iXX0=
\No newline at end of file