Socket
Book a DemoInstallSign in
Socket

@mkeen/rxhttp

Package Overview
Dependencies
Maintainers
1
Versions
119
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@mkeen/rxhttp

Modern Fetch-Based HTTP Client

3.2.0
latest
Source
npmnpm
Version published
Maintainers
1
Created
Source

👋 RxHttp

HTTP Client that uses Fetch API built with TypeScript that supports real-time JSON streams. It runs in NodeJS and Browser. It's powered by RXJS.

Why?

The Fetch API is the modern API for making http requests -- both long lived (streams) and traditional (simple). And RxJS makes it extremely convenient to build, chain, and consume asyncronous streams. These technologies all compliment each other well enough that it was worth creating this lib.

Features

📀 Universal -- Works on both NodeJS and Browser

🌊 Real-time -- Supports long-lived real-time Chunked JSON streams

🆘 Complete Observable Lifecycle -- Simple request lifecycle uses Observable callback functions (next, error, and complete). Once the connection completes, or all subscribers have unsubbed, the connection will be cleaned up to ensure there aren't any memory leaks.

Install

npm install @mkeen/rxhttp
https://www.npmjs.com/package/@mkeen/rxhttp

Generate Docs

npm run doc

The Most Bare Bones Example With Defaults

import { HttpRequest } from '@mkeen/rxhttp';

new HttpRequest<any>('https://localhost/simple')
.subscribe(
  response => console.log('received response, connection closed', response);
);

// Output:
// received response, connection closed , {...}

Simple (Request/Response) Request Example

import { HttpRequest, FetchBehavior } from '@mkeen/rxhttp';

interface Person {
  name: string;
  email: string;
}

new HttpRequest<Person>(
  'https://localhost/person',
  { method: 'POST', body: {
    email: 'mwk@mikekeen.com',
    name: 'Mike Keen'
  } }
)
.fetch()
.subscribe(
  response => console.log('person created successfully, connection closed', response)
);

// Output:
// person created successfully, connection closed, {...}

Simple (Request/Response) Request With Error Handling Example

import { HttpRequest, FetchBehavior } from '@mkeen/rxhttp';

interface Person {
  name: string;
  email: string;
}

new HttpRequest<Person>(
  'https://localhost/person',
  { method: 'POST', body: {
    email: 'mwk@mikekeen.com',
    name: 'Mike Keen'
  } },
  FetchBehavior.simple
)
.fetch()
.subscribe(
 (response: Person) => {
    console.log('person created successfully, connection closed', response);
  },
  
  (error: any) => {
    console.error('http error');
  },
  
  () => {
    console.log('connection closed');
  }
);

// Output:
// person created successfully, connection closed, {...}

Streaming Request Example

import { HttpRequest, FetchBehavior} from '@mkeen/rxhttp';               

interface Person {
  name: string;
  email: string;
}

const personStream = new HttpRequest<Person>(
  'https://localhost/person', {
    method: 'GET'
  }, FetchBehavior.stream
)
.fetch()
.subscribe(
  (incoming_data: Person) => {
    console.log('got person update: ', incoming_data);
  },
  
  (error: any) => {
    console.error('http error');
  },
  
  () => {
    console.log('connection closed');
  }
);

// Output:
// got person update: , {id: 1 ...
// got person update: , {id: 2 ...
// got person update: , {id: 1 ...
// ...

License

ISC (BSD 2 / MIT) - Enjoy

🇺🇸

Keywords

http

FAQs

Package last updated on 16 Mar 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.