Have ideas to improve npm?Join in the discussion! »

ts-rx-restTypeScript icon, indicating that this package has built-in type declarations

0.9.0 • Public • Published

ts-rx-rest

RxJs Http client for Typescript.

npm version

Provides convenient typed wrappers for http verbs:

  • doGet
  • doPost
  • doPut
  • doDelete

Install

$ npm install --save ts-rx-rest

Since rx 4.* doesn't have @types, you have to manually install rx and define correct typings as follows:

$ npm install --save rx

Create file index.d.ts along with package.json with the following content:

/// <reference path="node_modules/rx/ts/rx.all.d.ts" />

Usage

import Rest, {errorInterceptor, jsonInterceptor, withCredentialsInterceptors} from 'ts-rx-rest';
 
const rest = new Rest()
    .wrapRequest(withCredentialsInterceptors) // or .withCredentials()
    .wrap(errorInterceptor) // forwards an XMLHttpRequest object to an error branch of the observable
    .wrap(jsonInterceptor); // converts text representation of the response to json
 
rest.doGet<Array<User>>('/users').subscribe(users => console.log(users));

Custom interceptors

Request interceptors

const withCredentialsInterceptors = (r: XMLHttpRequest) => {
    r.withCredentials = true;
    return r;
};

Response interceptors

const accessDenied = (observable: Observable<any>) =>
    observable.doOnError(err => {
        if (err.response.status === 403 || err.response.status === 401) {
            // Do some stuff
        }
    });

Install

npm i ts-rx-rest

DownloadsWeekly Downloads

46

Version

0.9.0

License

MIT

Last publish

Collaborators

  • avatar
  • avatar