@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

/@codewagon/active-stream/

    Package Sidebar

    Install

    npm i @codewagon/active-stream

    Weekly Downloads

    10

    Version

    1.0.3

    License

    Apache-2.0

    Unpacked Size

    19 kB

    Total Files

    9

    Last publish

    Collaborators

    • vodiah