| export interface Options { | |
| /** | |
| Skip modifying [non-configurable properties](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor#Description) instead of throwing an error. | |
| @default false | |
| */ | |
| readonly ignoreNonConfigurable?: boolean; | |
| } | |
| /** | |
| Modifies the `to` function to mimic the `from` function. Returns the `to` function. | |
| `name`, `displayName`, and any other properties of `from` are copied. The `length` property is not copied. Prototype, class, and inherited properties are copied. | |
| `to.toString()` will return the same as `from.toString()` but prepended with a `Wrapped with to()` comment. | |
| @param to - Mimicking function. | |
| @param from - Function to mimic. | |
| @returns The modified `to` function. | |
| @example | |
| ``` | |
| import mimicFunction from 'mimic-fn'; | |
| function foo() {} | |
| foo.unicorn = 'π¦'; | |
| function wrapper() { | |
| return foo(); | |
| } | |
| console.log(wrapper.name); | |
| //=> 'wrapper' | |
| mimicFunction(wrapper, foo); | |
| console.log(wrapper.name); | |
| //=> 'foo' | |
| console.log(wrapper.unicorn); | |
| //=> 'π¦' | |
| ``` | |
| */ | |
| export default function mimicFunction< | |
| ArgumentsType extends unknown[], | |
| ReturnType, | |
| FunctionType extends (...arguments: ArgumentsType) => ReturnType | |
| >( | |
| to: (...arguments: ArgumentsType) => ReturnType, | |
| from: FunctionType, | |
| options?: Options, | |
| ): FunctionType; | |