
Security News
npm ‘is’ Package Hijacked in Expanding Supply Chain Attack
The ongoing npm phishing campaign escalates as attackers hijack the popular 'is' package, embedding malware in multiple versions.
Alter arguments and return values before and after a function is called
npm install prepost
Alter arguments to a function:
import { pre } from 'prepost'
const add = (a, b) => a + b
const doubleAdd = pre((a, b) => [a * 2, b * 2], add)
add(1, 2) // -> 3
doubleAdd(1, 2) // -> 6
Alter return value from a function:
import { post } from 'prepost'
const add = (a, b) => a + b
const doubleAdd = post(add, res => res * 2)
add(1, 2) // -> 3
doubleAdd(1, 2) // -> 6
Async alter arguments:
import { pre } from 'prepost'
const add = (a, b) => a + b
const doubleAdd = pre(
(a, b) => new Promise(resolve => setTimeout(resolve([a * 2, b * 2]), 1000)),
add
)
add(1, 2) // -> 3
await doubleAdd(1, 2) // -> 6
Async alter return value:
import { post } from 'prepost'
const add = (a, b) => a + b
const doubleAdd = post(
add,
res => new Promise(resolve => setTimeout(resolve(res * 2), 1000))
)
add(1, 2) // -> 3
await 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
FAQs
Alter arguments and return values before and after a function is called
The npm package prepost receives a total of 470 weekly downloads. As such, prepost popularity was classified as not popular.
We found that prepost demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
The ongoing npm phishing campaign escalates as attackers hijack the popular 'is' package, embedding malware in multiple versions.
Security News
A critical flaw in the popular npm form-data package could allow HTTP parameter pollution, affecting millions of projects until patched versions are adopted.
Security News
Bun 1.2.19 introduces isolated installs for smoother monorepo workflows, along with performance boosts, new tooling, and key compatibility fixes.