ngx-http-configure
Version:
Angular (6+) helpers for configure HTTP interceptors and services.
37 lines • 3.53 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 {?} */
var predicate = selectorPredicate(selector);
var _a = request.params.keys().reduce((/**
* @param {?} acc
* @param {?} key
* @return {?}
*/
function (acc, key) {
/** @type {?} */
var value = request.params.get(key);
if (key.startsWith(HTTP_OPTION_PREFIX) && predicate(key)) {
/** @type {?} */
var unprefixedKey = key.replace(HTTP_OPTION_PREFIX, '');
acc.config[unprefixedKey] = value;
}
else {
acc.params = acc.params.set(key, value);
}
return acc;
}), { config: {}, params: new HttpParams() }), config = _a.config, params = _a.params;
return { config: config, request: request.clone({ params: params }) };
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb25maWd1cmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtaHR0cC1jb25maWd1cmUvIiwic291cmNlcyI6WyJyZWNvbmZpZ3VyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBZSxNQUFNLHNCQUFzQixDQUFDO0FBRS9ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7OztBQU96RCxNQUFNLFVBQVUsV0FBVyxDQUFDLE9BQXlCLEVBQUUsUUFBbUI7O1FBQ2xFLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxRQUFRLENBQUM7SUFDdkMsSUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7aURBU3NDLEVBVHBDLGtCQUFNLEVBQUUsa0JBUzRCO0lBQzVDLE9BQU8sRUFBRSxNQUFNLFFBQUEsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sUUFBQSxFQUFFLENBQUMsRUFBRSxDQUFDO0FBQ3hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUGFyYW1zLCBIdHRwUmVxdWVzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEh0dHBSZWNvbmZpZ3VyZWRPcHRpb25zIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBIVFRQX09QVElPTl9QUkVGSVggfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBzZWxlY3RvclByZWRpY2F0ZSB9IGZyb20gJy4vc2VsZWN0b3ItcHJlZGljYXRlJztcblxuLyoqXG4gKiBSZS1jb25maWd1cmUgYSByZXF1ZXN0IHByZXZpb3VzbHkgY29uZmlndXJlZCB3aXRoIHRoaXMgbGlicmFyeS5cbiAqIEBwYXJhbSByZXF1ZXN0IFRoZSBjdXJyZW50IGh0dHAgcmVxdWVzdFxuICogQHBhcmFtIHNlbGVjdG9yIEFwcGx5IHBhcmFtcyB0byBhcnJheSBlbHNlIGlnbm9yZSB0aGlzIGZpbHRlcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlY29uZmlndXJlKHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4sIHNlbGVjdG9yPzogc3RyaW5nW10pOiBIdHRwUmVjb25maWd1cmVkT3B0aW9ucyB7XG4gIGNvbnN0IHByZWRpY2F0ZSA9IHNlbGVjdG9yUHJlZGljYXRlKHNlbGVjdG9yKTtcbiAgY29uc3QgeyBjb25maWcsIHBhcmFtcyB9ID0gcmVxdWVzdC5wYXJhbXMua2V5cygpLnJlZHVjZSgoYWNjLCBrZXkpID0+IHtcbiAgICBjb25zdCB2YWx1ZSA9IHJlcXVlc3QucGFyYW1zLmdldChrZXkpO1xuICAgIGlmIChrZXkuc3RhcnRzV2l0aChIVFRQX09QVElPTl9QUkVGSVgpICYmIHByZWRpY2F0ZShrZXkpKSB7XG4gICAgICBjb25zdCB1bnByZWZpeGVkS2V5ID0ga2V5LnJlcGxhY2UoSFRUUF9PUFRJT05fUFJFRklYLCAnJyk7XG4gICAgICBhY2MuY29uZmlnW3VucHJlZml4ZWRLZXldID0gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFjYy5wYXJhbXMgPSBhY2MucGFyYW1zLnNldChrZXksIHZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIGFjYztcbiAgfSwgeyBjb25maWc6IHt9LCBwYXJhbXM6IG5ldyBIdHRwUGFyYW1zKCkgfSk7XG4gIHJldHVybiB7IGNvbmZpZywgcmVxdWVzdDogcmVxdWVzdC5jbG9uZSh7IHBhcmFtcyB9KSB9O1xufVxuIl19