0.0.26 • Published 5 years ago

@taedr/reactive v0.0.26

Weekly downloads
-
License
MIT
Repository
gitlab
Last release
5 years ago

Note that API is on the prototype stage and can be changed dramatically without backward compatibility support!

Overview

Reactive is a package that implements "Observer" pattern for JavaScript. Purpose is to give set of tools for comfortable monitoring of value changes, tranformations, subscriptions handling.

Capabilities

Value observation can be achieved with 3 main classes:

  • Bus - transporter used for sending data to its subscribers, doesn't store any value.
  • Reactive - shell that stores last transfered value value which can be updated over time. Informs subscribers about each update.
  • Collection - shell that stores array of values. Provides api for array modification and observing 4 event types: change, add, delete, update.

Value transformation uses "Pipeline" pattern which means that you can use multiple handlers to process data step by step.

Example

import { Bus, passIf, map } from '@taedr/reactive';

const bus = new Bus<number>();
/* Pipeline with 2 pipes: 
   - passIf - will pass number further if it bigger than 2, if not will discard it
   - map - will convert number into string and pass it further
 */
const pipeline = bus.pipe([
   passIf(number => number > 2),
   map(number => `Value is: ${number}`)
]);
/* Storage for emitted values */
const array: string[] = [];
/* Subscribing for "pipeline" emittions  */
pipeline.watch(string => array.push(string));

for (let i = 0; i < 5; i++) {
   bus.value = i;
}

console.log(array); // [ 'Value is: 3', 'Value is: 4' ]
0.0.26

5 years ago

0.0.20

5 years ago

0.0.18

5 years ago

0.0.19

5 years ago

0.0.17

5 years ago

0.0.16

5 years ago