0.8.1 • Published 4 years ago

air-stream v0.8.1

Weekly downloads
98
License
MIT
Repository
-
Last release
4 years ago

air-stream

subjects

stream

creates a new simple stream

import { stream } from "air-stream"

const newStream = stream( (emt, { over/*, hook, sweep*/ }) => {
  
    emt( "msg" );
    
    over.add( ( { dissolve, ...args } ) => {
      
        if(dissolve) {
            //when disconnect
        }
        
        else {
            //when feedback
            console.log( args );
        }
        
    } );
    
}, 
    ctx
);

ctx - (optional) creator fn context

socket

creates a stream from WebSocket

import { socket } from "air-stream"

const newStream = socket( ({ 
    url, // wss://...
    pingformat, // (default PING/PONG)
    pingtms, // ( default 0 - not used )
    reconnecttms, // ( default 0 - not used )
}) );

methods

at

subscribes to stream

const controller = source.at( data => {
    console.log(data);
});

,where "controller" is a feedback function

call the controller without arguments to unsubscribe from the stream

controller();

and with arguments to feedback

controller( { action: "touch" } );

map

Modifies the source stream message to message

source.map( data => data+1 );

cut

Applies the transformation function to the data and emits the modified version if it is not undefined

source.cut( ({ counter }) => counter );

filter

Modifies the source stream by selecting messages from it according to the condition

source.filter( data => data > 1 );

combine [static]

Combines several threads into one

import { combine } from "air-stream"

combine( [ source1/*[, ...]*/ ], (...events) => events );

withLatest

Combines several streams into one, but only triggers events from the source

source.withLatest( [ source1, source2 ],  (...events) => events );

withHandler

The general method of changing the stream

source.withHandler( (emt, data) => {
    if(data > 5) {
        emt(data);
    }
    else if(data < 10) {
        emt(data);
        emt(data + 1);
    }
} );

controller

Modifies the feedback

source.controller( ({ dissolve, ...data }, emt, /*lastmsg*/) => {
    if(data.count > 0) {
        //feed to source controller
        return data;
    }
    else {
        //emit to stream
        emt( data );
    }
} );

Modifies the feedback for additional stream

source.controller( additionalSource, ({ dissolve, ...data }, emt, /*lastmsg*/) => {
    if(data.count > 0) {
        //feed to additional source controller
        return data;
    }
    else {
        //emit to stream
        emt( data );
    }
} );

for the main source, the call remains unchanged

distinct

Compares each message with the last and emits it if it differs

  • equals - {Function} (optional) - function for comparing values
source.distinct( (prev, cur) => {
    return prev !== cur;
} );

log

Logs messages from the stream

  • adapter {Function} ( optional ) - formatting output
source.log( (evt/*, src*/) => evt )

returns unchanged stream

0.8.1

4 years ago

0.8.0

5 years ago

0.7.3

5 years ago

0.7.2

5 years ago

0.7.1

5 years ago

0.7.0

5 years ago

0.6.27

5 years ago

0.6.26

5 years ago

0.6.25

5 years ago

0.6.24

5 years ago

0.6.23

5 years ago

0.6.22

5 years ago

0.6.21

5 years ago

0.6.20

5 years ago

0.6.19

5 years ago

0.6.18

5 years ago

0.6.17

6 years ago

0.6.16

6 years ago

0.6.15

6 years ago

0.6.14

6 years ago

0.6.13

6 years ago

0.6.12

6 years ago

0.6.11

6 years ago

0.6.10

6 years ago

0.6.9

6 years ago

0.6.8

6 years ago

0.6.7

6 years ago

0.6.6

6 years ago

0.6.5

6 years ago

0.6.4

6 years ago

0.6.3

6 years ago

0.6.2

6 years ago

0.6.1

6 years ago

0.6.0

6 years ago

0.5.28

6 years ago

0.5.27

6 years ago

0.5.26

6 years ago

0.5.25

6 years ago

0.5.24

6 years ago

0.5.23

6 years ago

0.5.22

6 years ago

0.5.21

6 years ago

0.5.20

6 years ago

0.5.19

6 years ago

0.5.18

6 years ago

0.5.17

6 years ago

0.5.16

6 years ago

0.5.15

6 years ago

0.5.14

6 years ago

0.5.13

6 years ago

0.5.12

6 years ago

0.5.11

6 years ago

0.5.10

6 years ago

0.5.9

6 years ago

0.5.8

6 years ago

0.5.7

6 years ago

0.5.6

6 years ago

0.5.5

6 years ago

0.5.4

6 years ago

0.5.3

6 years ago

0.5.2

6 years ago

0.5.1

6 years ago

0.5.0

6 years ago

0.4.2

6 years ago

0.4.1

6 years ago

0.4.0

6 years ago

0.3.1

6 years ago

0.3.0

6 years ago

0.2.9

6 years ago

0.2.8

6 years ago

0.2.7

6 years ago

0.2.6

6 years ago

0.2.5

6 years ago

0.2.4

6 years ago

0.2.3

6 years ago

0.2.2

6 years ago

0.2.1

6 years ago

0.2.0

6 years ago

0.1.1

6 years ago

0.1.0

6 years ago