@codewagon/active-stream
TypeScript icon, indicating that this package has built-in type declarations

1.0.3 • Public • Published

ActiveStream

ActiveStream is a simple observable stream controller for modern JS applications.

Apache 2.0 License

Installation and Usage

ES6 via npm

npm install @codewagon/active-stream
import ActiveStream from '@codewagon/active-stream';
const activeStream = new ActiveStream();
//subscribe to the stream
activeStream.stream.subscribe((event) => {
    console.log(event);
})

//push data into the stream
activeStream.request({name: 'user-logged-in', data: {name: 'Victor'}});

REACT USAGE

import ActiveStream from '@codewagon/active-stream';
const activeStream = new ActiveStream();

//subscribe to the stream to receive events from the children components
// you can also export the handle like this:
// export const streamHandle = activeStream.request;
useEffect(() => {
    activeStream.stream.subscribe((event) => {
        // call services to handle business logic here
        console.log(event);
    });
}, []);

// passing the stream handle to the children component via the conxtext
    ...
  <AppContext.Provider value={activeStream.request}>
   ...
//

// passing the stream handle to a child component as a prop
...
<ChildComponent {streamHandle: activeStream.request}>
...
//
//push data into the parent stream from the child component
streamHandle({name: 'user-logged-in', data: {name: 'Victor'}});
    
// usage inside a service
// make sure the stream handle has been exported from the component
// export const streamHandle = activeStream.request;
fetch(endPoint, {method: 'GET'})
    .then(async response => {
        //this event would be received in the component
        streamHandle({name: 'user-logged-in', data: {data: response.json()}}); 
    })
    .catch(async response => {
        //this event would be received in the component
        streamHandle({name: 'user-logged-in', data: {status: 'failed'}});
    })

Goals

  • Smaller overall bundles sizes
  • Provide better performance than preceding versions of ActiveStream
  • To help create cross-platform resusable service layer for JS applications
  • To simplify inter-component communication in JS applications
  • To enable the separation of the Data layer in JS applications

Building/Testing

  • npm test run tests

Package Sidebar

Install

npm i @codewagon/active-stream

Weekly Downloads

2

Version

1.0.3

License

Apache-2.0

Unpacked Size

19 kB

Total Files

9

Last publish

Collaborators

  • vodiah