0.1.0 • Published 11 years ago
lag v0.1.0
lag
Functional promises. It's like lodash/underscore for promises.
Using promises as functional values allows the developer to write asynchronous code in a synchronous way.
Method signature
lag.methodName(function, promise_array)
Lag uses the "function first" method signature in order to take advantage of the functional approach to programming.
If you prefer the put the values first and the method second, you can call the lag.promiseFirst() method to switch the parameter order to lag.methodName(promise_array, function).
Install
NPM
npm install lag --saveBower
bower install lag --saveExample Usage
var _ = require('lag');
var xhr = require('xhr');
var promises = [
_.asPromise(123),
_.asPromise(456),
_.promise(function (resolve, reject) {
http.get('http://someapi.com', function (err, res) {
if (err) return reject(err);
resolve(res)
});
})
];
_.map(_.add(1), promises)
.then(_.filter(_.lessThan(400)))
.then(function (values) {
// values === [124]
});Methods
Arrays
each(fn, promises)
each.series(fn, promises)
map(fn, promises)
map.series(fn, promises)
filter(fn, promises)
filter.series(fn, promises)
reject(fn, promises)
reject.series(fn, promises)
find(fn, promises)
find.series(fn, promises)
reduce(fn, promises)
reduceRight(fn, promises)
first(promises)
first.value(promise)
last(promises)
last.value(promise)
initial(promises)
initial.values(promise)
tail(promises)
tail.values(promise)
reverse(promises)
reverse.values(promise)
compact(promises)
Collections
where(object, promises)
findWhere(object, promises)
pluck(keys, promises)
every(promises)
some(promises)
contains(keys, promises)
Objects
keys(promise)
values(promise)
extend(promise, object1, objectn, ...)
defaults(defaults, promise1, promisen, ...)
pick(key1, keyn, ..., promise)
omit(key1, keyn, ..., promise)
Nubmers
greaterThan(number, promise)
lessThan(number, promise)
equal(promise1, promise2)
add(number, promise)
subtract(number, promise)
Strings
prepend(promise)
append(promise)
Utilities
promise(function)
asPromise(value)
all(promise1, promise2, promisen, ...)
when(promise1, promise2, promisen, ...)
partial(function, value1, valuen, ...)
boolean(value)
inverseBoolean(value)
compose(method1, method2, methodn, ...)
Build
npm install
npm run buildRun Tests
npm install
npm test