Wrap a function without changing its name, length and other properties.
Function wrappers return a new function which means the original function's
name
, length
and other properties are usually lost. This module enhances
them to keep those properties instead.
Function wrappers are commonly used in functional programming. They take a
function as input and return it wrapped. Examples include
memoizing or ensuring a function is
only called once.
Example
const keepFuncProps = require('keep-func-props')
const memoize = require('lodash/memoize')
const betterMemoize = keepFuncProps(memoize)
const anyFunction = () => true
console.log(memoize(anyFunction))
console.log(betterMemoize(anyFunction))
Demo
You can try this library:
Install
npm install keep-func-props
Usage
const keepFuncProps = require('keep-func-props')
const wrapper = function(anyFunction) {
return (...args) => anyFunction(...args)
}
const betterWrapper = keepFuncProps(wrapper)
keepFuncProps(wrapper)
wrapper
: (anyFunction, [...args]) => newFunction
Returns: new
wrapper
A function wrapper
is passed as argument. A copy of it is returned.
See also
mimic-fn
: same but for functions
that do not wrap other functions.
Support
If you found a bug or would like a new feature, don't hesitate to
submit an issue on GitHub.
For other questions, feel free to
chat with us on Gitter.
Everyone is welcome regardless of personal background. We enforce a
Code of conduct in order to promote a positive and
inclusive environment.
Contributing
This project was made with ❤️. The simplest way to give back is by starring and
sharing it online.
If the documentation is unclear or has a typo, please click on the page's Edit
button (pencil icon) and suggest a correction.
If you would like to help us fix a bug or add a new feature, please check our
guidelines. Pull requests are welcome!