Name: prepost
Owner: TABLEFLIP
Description: Alter arguments and return values before and after a function is called
Created: 2018-01-11 14:49:36.0
Updated: 2018-01-15 11:17:38.0
Pushed: 2018-03-12 10:05:21.0
Homepage: https://www.npmjs.com/package/prepost
Size: 78
Language: JavaScript
GitHub Committers
User | Most Recent Commit | # Commits |
---|
Other Committers
User | Most Recent Commit | # Commits |
---|
Alter arguments and return values before and after a function is called
install prepost
Alter arguments to a function:
rt { pre } from 'prepost'
t add = (a, b) => a + b
t doubleAdd = pre((a, b) => [a * 2, b * 2], add)
1, 2) // -> 3
leAdd(1, 2) // -> 6
Alter return value from a function:
rt { post } from 'prepost'
t add = (a, b) => a + b
t doubleAdd = post(add, res => res * 2)
1, 2) // -> 3
leAdd(1, 2) // -> 6
Async alter arguments:
rt { pre } from 'prepost'
t add = (a, b) => a + b
t doubleAdd = pre(
, b) => new Promise(resolve => setTimeout(resolve([a * 2, b * 2]), 1000)),
d
1, 2) // -> 3
t doubleAdd(1, 2) // -> 6
Async alter return value:
rt { post } from 'prepost'
t add = (a, b) => a + b
t doubleAdd = post(
d,
s => new Promise(resolve => setTimeout(resolve(res * 2), 1000))
1, 2) // -> 3
t doubleAdd(1, 2) // -> 6
pre(preFunc, [preFunc1, preFunc2, ...,] func)
preFunc
- function (or array of functions) to call before func
. It is passed arguments as they would be if calling func
normally. preFunc
must return an array of arguments or a promise that resolves to an array.preFunc1, preFunc2, ...
- other functions to call in series before func
. The altered arguments from preFunc
are passed to preFunc1
and so on.func
- function to call after all the pre-functions have run and altered argumentsReturns a function that when called will call all the pre-functions in order before finally calling func
.
NOTE: If any one of your pre functions returns a promise then the function returned by pre
becomes async (returns a promise), regardless of whether func
was already async or not.
post(func, postFunc [, postFunc1, postFunc2, ...])
func
- function to call and pass return value to postFunc
postFunc
- function (or array of functions) to call after func
. It is passed the return value as it's first argument. If func
returns a promise, this is first resolved before postFunc
is called. preFunc
should return the altered return value from func
or a promise that resolves to the return value.postFunc1, postFunc2, ...
- other functions to call in series after func
. The altered return value from postFunc
is passed to postFunc1
and so on.Returns a function that when called will call all the post-functions in order after calling func
.
NOTE: If any one of your post functions returns a promise then the function returned by post
becomes async (returns a promise), regardless of whether func
was already async or not.
Feel free to dive in! Open an issue or submit PRs.
MIT © Alan Shaw