0.1.10 • Published 4 years ago

spark-properties v0.1.10

Weekly downloads
16
License
ISC
Repository
github
Last release
4 years ago

Spark-Properties

Properties that can be calculated and can invalidate each other

Installation

Install package with NPM :

npm install spark-properties

You can install it directly from github:

npm install kevthunder/spark-properties

Getting started

A Spark-property will only trigger a change when the set value is different than before

const Property = require('spark-properties')

const color = new Property({
    default: 'red',
    change: function(old){
      console.log('The apple color changed from '+old+' to '+this.color)
    }
}); // an initial log will show

color.set('red'); // does not show a log
apple.set('green'); // show a log

A Spark-property can be calculated from other properties and the calculation itself will only happens when needed.

const numberOfApple = new Property({
  default: 1
});
const numberOfBanana = new Property({
  default: 1
});
const numberOfFruits = new Property({
  calcul: function(invalidator){
    console.log('calculing the number of fruits...');
    return invalidator.prop(numberOfApple) + invalidator.prop(numberOfBanana);
  }
});

console.log('no. Fruits:', numberOfFruits.get()); // will return 2 and show a "calculing" log in the console
console.log('no. Fruits:', numberOfFruits.get()); // will return 2 but will not show a "calculing" log because the value was already calculated
numberOfApple.set(2); // will not trigger a re-calcul
numberOfBanana.set(3); // will not trigger a re-calcul
console.log('no. Fruits:', numberOfFruits.get()); // will return 5 and show a "calculing" log
console.log('no. Fruits:', numberOfFruits.get()); // will return 5 with no "calculing" log
0.1.10

4 years ago

0.1.9

4 years ago

0.1.8

5 years ago

0.1.7

5 years ago

0.1.6

5 years ago

0.1.5

5 years ago

0.1.4

5 years ago

0.1.3

5 years ago

0.1.2

5 years ago

0.1.1

5 years ago

0.1.0

5 years ago