ngx-http-configure
TypeScript icon, indicating that this package has built-in type declarations

1.0.10 • Public • Published

HTTP interceptors / services configure in Angular

Build Status version Downloads license

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

Package Sidebar

Install

npm i ngx-http-configure

Weekly Downloads

4

Version

1.0.10

License

MIT

Unpacked Size

95.1 kB

Total Files

35

Last publish

Collaborators

  • drivas