1.0.10 • Published 4 years ago

ngx-http-configure v1.0.10

Weekly downloads
3
License
MIT
Repository
github
Last release
4 years ago

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

1.0.10

4 years ago

1.0.9

4 years ago

1.0.8

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.1

4 years ago

0.3.0

5 years ago

0.2.2

5 years ago

0.2.1

5 years ago

0.2.0

5 years ago

0.1.0

5 years ago

0.0.1

5 years ago