UNPKG

@sovpro/and-prior

Version:

Wrap a function to return the current and prior computed value

68 lines (52 loc) 1.89 kB
# And Prior Wrap a function to return the current and prior computed value [![Build status for Node.js 0.12 and higher](https://github.com/sovpro/and-prior/workflows/Node.js%200.12%20and%20newer%20/badge.svg?branch=master)](https://github.com/sovpro/and-prior/commits/master) ## Access the value and prior value ```js // make an "and prior" wrapped getEvent var getEventAP = andPrior (getEvent) // call the "and prior" wrapped getEvent var event_ap = getEventAP () // access the value and prior value if (event_ap.value === event_ap.prior) { // do stuff when value is same as prior } ``` ## sameAsPrior shortcut method ```js // make an "and prior" wrapped getEvent var getEventAP = andPrior (getEvent) function logEvents () { // call the "and prior" wrapped getEvent var event_ap = getEventAP () // check if the return value is the same as the prior if (event_ap.sameAsPrior ()) { // do nothing when value is same as prior return } // do stuff when value is different } ``` ## Customize sameAsPrior comparison ```js function sum (a, b) { return a + b } // configuration for the custom sameAsPrior var custom_config = { sameAsPrior: function (value, prior) { var value_rounded = Math.round (value) var prior_rounded = Math.round (prior) // compare value and prior after rounding return value_rounded === prior_rounded } } // make an "and prior" wrapped sum // and use the custom configuration var sumAP = andPrior (sum, custom_config) var first_ap = sumAP (1.1, 1.2) var second_ap = sumAP (1.1, 1.1) // this will log: true console.log (second_ap.sameAsPrior ()) ``` In the code above, the return value of `first_ap.sameAsPrior ()` will be `false` assuming no prior computed value by `sumAP`. The return value of `second_ap.sameAsPrior ()` will be `true` because the custom "same as prior" function performs rounding before comparison.