UNPKG

@experteam-mx/ngx-services

Version:

Angular common services for Experteam apps

24 lines 4.03 kB
/** * Intercepts an outgoing HTTP request and modifies its headers to include default values * for Cache-Control, Expires, Pragma, Content-Type, Accept, and Accept-Language if they * are not already present. * * @param {HttpRequest<unknown>} req - The outgoing HTTP request to be intercepted and modified. * @param {HttpHandlerFn} next - The next handler in the chain to pass the modified request to. * @return {Observable<HttpEvent<unknown>>} An observable of the HTTP event resulting from the processed request. */ export function apiHeadersInterceptor(req, next) { let { headers } = req; if (!headers.has('Content-Type') && !(req.body instanceof FormData)) { headers = headers.set('Content-Type', 'application/json'); } if (!headers.has('Accept')) { headers = headers.set('Accept', 'application/json'); } if (!headers.has('Accept-Language')) { headers = headers.set('Accept-Language', localStorage.getItem('lang') ?? 'en'); } req = req.clone({ headers }); return next(req); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWhlYWRlcnMuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHBlcnRlYW0tbXgvbmd4LXNlcnZpY2VzL3NyYy9saWIvaW50ZXJjZXB0b3JzL2FwaS1oZWFkZXJzLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQixDQUFFLEdBQXlCLEVBQUUsSUFBbUI7SUFDbkYsSUFBSSxFQUFFLE9BQU8sRUFBRSxHQUFHLEdBQUcsQ0FBQTtJQUVyQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksWUFBWSxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ3BFLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxrQkFBa0IsQ0FBQyxDQUFBO0lBQzNELENBQUM7SUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQzNCLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxDQUFBO0lBQ3JELENBQUM7SUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7UUFDcEMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQTtJQUNoRixDQUFDO0lBRUQsR0FBRyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFBO0lBRTVCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0FBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwRXZlbnQsIEh0dHBIYW5kbGVyRm4sIEh0dHBSZXF1ZXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xyXG5cclxuLyoqXHJcbiAqIEludGVyY2VwdHMgYW4gb3V0Z29pbmcgSFRUUCByZXF1ZXN0IGFuZCBtb2RpZmllcyBpdHMgaGVhZGVycyB0byBpbmNsdWRlIGRlZmF1bHQgdmFsdWVzXHJcbiAqIGZvciBDYWNoZS1Db250cm9sLCBFeHBpcmVzLCBQcmFnbWEsIENvbnRlbnQtVHlwZSwgQWNjZXB0LCBhbmQgQWNjZXB0LUxhbmd1YWdlIGlmIHRoZXlcclxuICogYXJlIG5vdCBhbHJlYWR5IHByZXNlbnQuXHJcbiAqXHJcbiAqIEBwYXJhbSB7SHR0cFJlcXVlc3Q8dW5rbm93bj59IHJlcSAtIFRoZSBvdXRnb2luZyBIVFRQIHJlcXVlc3QgdG8gYmUgaW50ZXJjZXB0ZWQgYW5kIG1vZGlmaWVkLlxyXG4gKiBAcGFyYW0ge0h0dHBIYW5kbGVyRm59IG5leHQgLSBUaGUgbmV4dCBoYW5kbGVyIGluIHRoZSBjaGFpbiB0byBwYXNzIHRoZSBtb2RpZmllZCByZXF1ZXN0IHRvLlxyXG4gKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEh0dHBFdmVudDx1bmtub3duPj59IEFuIG9ic2VydmFibGUgb2YgdGhlIEhUVFAgZXZlbnQgcmVzdWx0aW5nIGZyb20gdGhlIHByb2Nlc3NlZCByZXF1ZXN0LlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGFwaUhlYWRlcnNJbnRlcmNlcHRvciAocmVxOiBIdHRwUmVxdWVzdDx1bmtub3duPiwgbmV4dDogSHR0cEhhbmRsZXJGbik6IE9ic2VydmFibGU8SHR0cEV2ZW50PHVua25vd24+PiB7XHJcbiAgbGV0IHsgaGVhZGVycyB9ID0gcmVxXHJcblxyXG4gIGlmICghaGVhZGVycy5oYXMoJ0NvbnRlbnQtVHlwZScpICYmICEocmVxLmJvZHkgaW5zdGFuY2VvZiBGb3JtRGF0YSkpIHtcclxuICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKVxyXG4gIH1cclxuXHJcbiAgaWYgKCFoZWFkZXJzLmhhcygnQWNjZXB0JykpIHtcclxuICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQWNjZXB0JywgJ2FwcGxpY2F0aW9uL2pzb24nKVxyXG4gIH1cclxuXHJcbiAgaWYgKCFoZWFkZXJzLmhhcygnQWNjZXB0LUxhbmd1YWdlJykpIHtcclxuICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQWNjZXB0LUxhbmd1YWdlJywgbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xhbmcnKSA/PyAnZW4nKVxyXG4gIH1cclxuXHJcbiAgcmVxID0gcmVxLmNsb25lKHsgaGVhZGVycyB9KVxyXG5cclxuICByZXR1cm4gbmV4dChyZXEpXHJcbn1cclxuIl19