@loona/angular
Version:
App State Management done with GraphQL (angular integration)
38 lines • 2.58 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Observable, from } from 'rxjs';
/**
* @template T
* @param {?} val
* @return {?}
*/
export function isObservable(val) {
return val instanceof Observable;
}
/**
* @param {?} resolver
* @return {?}
*/
export function handleObservable(resolver) {
return function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
/** @type {?} */
var result;
try {
result = resolver.apply(void 0, tslib_1.__spread(args));
}
catch (e) {
return Promise.reject(e);
}
return result instanceof Promise || isObservable(result)
? from(result).toPromise()
: Promise.resolve(result);
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbG9vbmEvYW5ndWxhci8iLCJzb3VyY2VzIjpbInV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7OztBQUV0QyxNQUFNLFVBQVUsWUFBWSxDQUFVLEdBQVE7SUFDNUMsT0FBTyxHQUFHLFlBQVksVUFBVSxDQUFDO0FBQ25DLENBQUM7Ozs7O0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUFDLFFBQWE7SUFDNUMsT0FBTztRQUFDLGNBQWM7YUFBZCxVQUFjLEVBQWQscUJBQWMsRUFBZCxJQUFjO1lBQWQseUJBQWM7OztZQUNoQixNQUFXO1FBRWYsSUFBSTtZQUNGLE1BQU0sR0FBRyxRQUFRLGdDQUFJLElBQUksRUFBQyxDQUFDO1NBQzVCO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDMUI7UUFFRCxPQUFPLE1BQU0sWUFBWSxPQUFPLElBQUksWUFBWSxDQUFDLE1BQU0sQ0FBQztZQUN0RCxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRTtZQUMxQixDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtPYnNlcnZhYmxlLCBmcm9tfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGlzT2JzZXJ2YWJsZTxUID0gYW55Pih2YWw6IGFueSk6IHZhbCBpcyBPYnNlcnZhYmxlPFQ+IHtcbiAgcmV0dXJuIHZhbCBpbnN0YW5jZW9mIE9ic2VydmFibGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVPYnNlcnZhYmxlKHJlc29sdmVyOiBhbnkpIHtcbiAgcmV0dXJuICguLi5hcmdzOiBhbnlbXSkgPT4ge1xuICAgIGxldCByZXN1bHQ6IGFueTtcblxuICAgIHRyeSB7XG4gICAgICByZXN1bHQgPSByZXNvbHZlciguLi5hcmdzKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UgfHwgaXNPYnNlcnZhYmxlKHJlc3VsdClcbiAgICAgID8gZnJvbShyZXN1bHQpLnRvUHJvbWlzZSgpXG4gICAgICA6IFByb21pc2UucmVzb2x2ZShyZXN1bHQpO1xuICB9O1xufVxuIl19