ngx-http-configure
Version:
Angular (6+) helpers for configure HTTP interceptors and services.
37 lines • 4.13 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { HttpParams } from '@angular/common/http';
import { HTTP_OPTION_PREFIX } from './constants';
import { selectorPredicate } from './selector-predicate';
/**
* Re-configure a request previously configured with this library.
* @param {?} request The current http request
* @param {?=} selector Apply params to array else ignore this filters
* @return {?}
*/
export function reconfigure(request, selector) {
/** @type {?} */
const predicate = selectorPredicate(selector);
const { config, params } = request.params.keys().reduce((/**
* @param {?} acc
* @param {?} key
* @return {?}
*/
(acc, key) => {
/** @type {?} */
const value = request.params.get(key);
if (key.startsWith(HTTP_OPTION_PREFIX) && predicate(key)) {
/** @type {?} */
const unprefixedKey = key.replace(HTTP_OPTION_PREFIX, '');
acc.config[unprefixedKey] = value;
}
else {
acc.params = acc.params.set(key, value);
}
return acc;
}), { config: {}, params: new HttpParams() });
return { config, request: request.clone({ params }) };
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb25maWd1cmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtaHR0cC1jb25maWd1cmUvIiwic291cmNlcyI6WyJyZWNvbmZpZ3VyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBZSxNQUFNLHNCQUFzQixDQUFDO0FBRS9ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7OztBQU96RCxNQUFNLFVBQVUsV0FBVyxDQUFDLE9BQXlCLEVBQUUsUUFBbUI7O1VBQ2xFLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxRQUFRLENBQUM7VUFDdkMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNOzs7OztJQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFOztjQUM3RCxLQUFLLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO1FBQ3JDLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTs7a0JBQ2xELGFBQWEsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQztZQUN6RCxHQUFHLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFHLEtBQUssQ0FBQztTQUNuQzthQUFNO1lBQ0wsR0FBRyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDekM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsR0FBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksVUFBVSxFQUFFLEVBQUUsQ0FBQztJQUM1QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDO0FBQ3hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUGFyYW1zLCBIdHRwUmVxdWVzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEh0dHBSZWNvbmZpZ3VyZWRPcHRpb25zIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBIVFRQX09QVElPTl9QUkVGSVggfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBzZWxlY3RvclByZWRpY2F0ZSB9IGZyb20gJy4vc2VsZWN0b3ItcHJlZGljYXRlJztcblxuLyoqXG4gKiBSZS1jb25maWd1cmUgYSByZXF1ZXN0IHByZXZpb3VzbHkgY29uZmlndXJlZCB3aXRoIHRoaXMgbGlicmFyeS5cbiAqIEBwYXJhbSByZXF1ZXN0IFRoZSBjdXJyZW50IGh0dHAgcmVxdWVzdFxuICogQHBhcmFtIHNlbGVjdG9yIEFwcGx5IHBhcmFtcyB0byBhcnJheSBlbHNlIGlnbm9yZSB0aGlzIGZpbHRlcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlY29uZmlndXJlKHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4sIHNlbGVjdG9yPzogc3RyaW5nW10pOiBIdHRwUmVjb25maWd1cmVkT3B0aW9ucyB7XG4gIGNvbnN0IHByZWRpY2F0ZSA9IHNlbGVjdG9yUHJlZGljYXRlKHNlbGVjdG9yKTtcbiAgY29uc3QgeyBjb25maWcsIHBhcmFtcyB9ID0gcmVxdWVzdC5wYXJhbXMua2V5cygpLnJlZHVjZSgoYWNjLCBrZXkpID0+IHtcbiAgICBjb25zdCB2YWx1ZSA9IHJlcXVlc3QucGFyYW1zLmdldChrZXkpO1xuICAgIGlmIChrZXkuc3RhcnRzV2l0aChIVFRQX09QVElPTl9QUkVGSVgpICYmIHByZWRpY2F0ZShrZXkpKSB7XG4gICAgICBjb25zdCB1bnByZWZpeGVkS2V5ID0ga2V5LnJlcGxhY2UoSFRUUF9PUFRJT05fUFJFRklYLCAnJyk7XG4gICAgICBhY2MuY29uZmlnW3VucHJlZml4ZWRLZXldID0gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFjYy5wYXJhbXMgPSBhY2MucGFyYW1zLnNldChrZXksIHZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIGFjYztcbiAgfSwgeyBjb25maWc6IHt9LCBwYXJhbXM6IG5ldyBIdHRwUGFyYW1zKCkgfSk7XG4gIHJldHVybiB7IGNvbmZpZywgcmVxdWVzdDogcmVxdWVzdC5jbG9uZSh7IHBhcmFtcyB9KSB9O1xufVxuIl19