ngx-http-configure
v1.0.10
Published
Angular (6+) helpers for configure HTTP interceptors and services.
Downloads
12
Maintainers
Readme
HTTP interceptors / services configure in Angular
Ngx HTTP configure is a library for Angular that helps you reconfigure your interceptors in a clear and concise way by extending the HttpClient API
Installation
To install this library, run:
$ npm install ngx-http-configure
Using the library
Import the configure()
helper in your injectable service:
The configure function takes the same parameters as the options http request object.
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
// Import the configure helper from lib
import { configure } from 'ngx-http-configure';
@Injectable()
export class PostService {
baseUrl: string = 'https://jsonplaceholder.typicode.com';
constructor(private http: HttpClient) {}
getPosts() {
return this.http.get(`/posts`, configure({
baseUrl: this.baseUrl,
// Use standard http options
params: {
_sort: 'views',
_order: 'asc',
}
}));
}
}
Once your service method is configured, you can use its options in your interceptor:
import { Injectable } from '@angular/core';
import { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';
import { Observable } from 'rxjs';
import { reconfigure } from 'ngx-http-configure';
/**
* Prefixes all requests not starting with `http[s]` with configure `baseUrl`.
*/
@Injectable()
export class ApiPrefixInterceptor implements HttpInterceptor {
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
// for multiple interceptors use the optional `selector`
const selector = ['baseUrl'];
const { config: { baseUrl }, request } = reconfigure(req, selector);
if (!/^(http|https):/i.test(request.url) && baseUrl) {
return next.handle(request.clone({ url: `${baseUrl}${request.url}` }));
}
return next.handle(request);
}
}
License
MIT © Danier Rivas