@helgoland/core
Version: 
68 lines (67 loc) • 5.69 kB
JavaScript
/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
 */
import { HttpClient, HttpHandler } from '@angular/common/http';
import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';
/** @type {?} */
export var HTTP_SERVICE_INTERCEPTORS = new InjectionToken('HTTP_SERVICE_INTERCEPTORS');
/**
 * @record
 */
export function HttpServiceHandler() { }
/** @type {?} */
HttpServiceHandler.prototype.handle;
/**
 * @record
 */
export function HttpServiceInterceptor() { }
/** @type {?} */
HttpServiceInterceptor.prototype.intercept;
var HttpService = /** @class */ (function () {
    function HttpService(httpHandler, interceptors) {
        this.httpHandler = httpHandler;
        /** @type {?} */
        var handler = {
            handle: function (req, options) { return httpHandler.handle(req); }
        };
        if (interceptors) {
            handler = interceptors.reduceRight(function (next, interceptor) { return ({
                handle: function (req, options) { return interceptor.intercept(req, options, next); }
            }); }, handler);
        }
        this.handler = handler;
    }
    /**
     * @param {?=} options
     * @return {?}
     */
    HttpService.prototype.client = /**
     * @param {?=} options
     * @return {?}
     */
    function (options) {
        var _this = this;
        if (options === void 0) { options = {}; }
        return new HttpClient({
            handle: function (req) { return _this.handler.handle(req, options); }
        });
    };
    HttpService.decorators = [
        { type: Injectable },
    ];
    /** @nocollapse */
    HttpService.ctorParameters = function () { return [
        { type: HttpHandler },
        { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [HTTP_SERVICE_INTERCEPTORS,] }] }
    ]; };
    return HttpService;
}());
export { HttpService };
if (false) {
    /** @type {?} */
    HttpService.prototype.handler;
    /** @type {?} */
    HttpService.prototype.httpHandler;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhlbGdvbGFuZC9jb3JlLyIsInNvdXJjZXMiOlsibGliL2RhdGFzZXQtYXBpL2h0dHAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxXQUFXLEVBQWUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RixPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUs3RSxXQUFhLHlCQUF5QixHQUFHLElBQUksY0FBYyxDQUF5QiwyQkFBMkIsQ0FBQyxDQUFDOzs7Ozs7Ozs7Ozs7OztJQWU3RyxxQkFDYyxXQUF3QixFQUNhLFlBQTZDO1FBRGxGLGdCQUFXLEdBQVgsV0FBVyxDQUFhOztRQUdsQyxJQUFJLE9BQU8sR0FBdUI7WUFDOUIsTUFBTSxFQUFFLFVBQUMsR0FBRyxFQUFFLE9BQU8sSUFBSyxPQUFBLFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQXZCLENBQXVCO1NBQ3BELENBQUM7UUFDRixFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBQ2YsT0FBTyxHQUFHLFlBQVksQ0FBQyxXQUFXLENBQUMsVUFBQyxJQUFJLEVBQUUsV0FBVyxJQUFLLE9BQUEsQ0FBQztnQkFDdkQsTUFBTSxFQUFFLFVBQUMsR0FBRyxFQUFFLE9BQU8sSUFBSyxPQUFBLFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBekMsQ0FBeUM7YUFDdEUsQ0FBQyxFQUZ3RCxDQUV4RCxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ2hCO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7S0FDMUI7Ozs7O0lBRU0sNEJBQU07Ozs7Y0FBQyxPQUFnQzs7UUFBaEMsd0JBQUEsRUFBQSxZQUFnQztRQUMxQyxNQUFNLENBQUMsSUFBSSxVQUFVLENBQUM7WUFDbEIsTUFBTSxFQUFFLFVBQUMsR0FBRyxJQUFLLE9BQUEsS0FBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxFQUFqQyxDQUFpQztTQUNyRCxDQUFDLENBQUM7OztnQkF2QlYsVUFBVTs7OztnQkFoQnFCLFdBQVc7Z0RBdUJsQyxRQUFRLFlBQUksTUFBTSxTQUFDLHlCQUF5Qjs7c0JBdkJyRDs7U0FpQmEsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFdmVudCwgSHR0cEhhbmRsZXIsIEh0dHBSZXF1ZXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgSHR0cFJlcXVlc3RPcHRpb25zIH0gZnJvbSAnLi4vbW9kZWwvaW50ZXJuYWwvaHR0cC1yZXF1ZXN0cyc7XG5cbmV4cG9ydCBjb25zdCBIVFRQX1NFUlZJQ0VfSU5URVJDRVBUT1JTID0gbmV3IEluamVjdGlvblRva2VuPEh0dHBTZXJ2aWNlSW50ZXJjZXB0b3I+KCdIVFRQX1NFUlZJQ0VfSU5URVJDRVBUT1JTJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cFNlcnZpY2VIYW5kbGVyIHtcbiAgICBoYW5kbGUocmVxOiBIdHRwUmVxdWVzdDxhbnk+LCBvcHRpb25zOiBQYXJ0aWFsPEh0dHBSZXF1ZXN0T3B0aW9ucz4pOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIdHRwU2VydmljZUludGVyY2VwdG9yIHtcbiAgICBpbnRlcmNlcHQocmVxOiBIdHRwUmVxdWVzdDxhbnk+LCBvcHRpb25zOiBQYXJ0aWFsPEh0dHBSZXF1ZXN0T3B0aW9ucz4sIG5leHQ6IEh0dHBTZXJ2aWNlSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+O1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSHR0cFNlcnZpY2Uge1xuXG4gICAgcHJpdmF0ZSBoYW5kbGVyOiBIdHRwU2VydmljZUhhbmRsZXI7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIGh0dHBIYW5kbGVyOiBIdHRwSGFuZGxlcixcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChIVFRQX1NFUlZJQ0VfSU5URVJDRVBUT1JTKSBpbnRlcmNlcHRvcnM6IEh0dHBTZXJ2aWNlSW50ZXJjZXB0b3JbXSB8IG51bGxcbiAgICApIHtcbiAgICAgICAgbGV0IGhhbmRsZXI6IEh0dHBTZXJ2aWNlSGFuZGxlciA9IHtcbiAgICAgICAgICAgIGhhbmRsZTogKHJlcSwgb3B0aW9ucykgPT4gaHR0cEhhbmRsZXIuaGFuZGxlKHJlcSlcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGludGVyY2VwdG9ycykge1xuICAgICAgICAgICAgaGFuZGxlciA9IGludGVyY2VwdG9ycy5yZWR1Y2VSaWdodCgobmV4dCwgaW50ZXJjZXB0b3IpID0+ICh7XG4gICAgICAgICAgICAgICAgaGFuZGxlOiAocmVxLCBvcHRpb25zKSA9PiBpbnRlcmNlcHRvci5pbnRlcmNlcHQocmVxLCBvcHRpb25zLCBuZXh0KVxuICAgICAgICAgICAgfSksIGhhbmRsZXIpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaGFuZGxlciA9IGhhbmRsZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGNsaWVudChvcHRpb25zOiBIdHRwUmVxdWVzdE9wdGlvbnMgPSB7fSk6IEh0dHBDbGllbnQge1xuICAgICAgICByZXR1cm4gbmV3IEh0dHBDbGllbnQoe1xuICAgICAgICAgICAgaGFuZGxlOiAocmVxKSA9PiB0aGlzLmhhbmRsZXIuaGFuZGxlKHJlcSwgb3B0aW9ucylcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19