mimic-fn

WebJar for mimic-fn

License

License

MIT
GroupId

GroupId

org.webjars.npm
ArtifactId

ArtifactId

mimic-fn
Last Version

Last Version

3.0.0
Release Date

Release Date

Type

Type

jar
Description

Description

mimic-fn
WebJar for mimic-fn
Project URL

Project URL

http://webjars.org
Source Code Management

Source Code Management

https://github.com/sindresorhus/mimic-fn

Download mimic-fn

How to add to project

<!-- https://jarcasting.com/artifacts/org.webjars.npm/mimic-fn/ -->
<dependency>
    <groupId>org.webjars.npm</groupId>
    <artifactId>mimic-fn</artifactId>
    <version>3.0.0</version>
</dependency>
// https://jarcasting.com/artifacts/org.webjars.npm/mimic-fn/
implementation 'org.webjars.npm:mimic-fn:3.0.0'
// https://jarcasting.com/artifacts/org.webjars.npm/mimic-fn/
implementation ("org.webjars.npm:mimic-fn:3.0.0")
'org.webjars.npm:mimic-fn:jar:3.0.0'
<dependency org="org.webjars.npm" name="mimic-fn" rev="3.0.0">
  <artifact name="mimic-fn" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.webjars.npm', module='mimic-fn', version='3.0.0')
)
libraryDependencies += "org.webjars.npm" % "mimic-fn" % "3.0.0"
[org.webjars.npm/mimic-fn "3.0.0"]

Dependencies

There are no dependencies for this project. It is a standalone project that does not depend on any other jars.

Project Modules

There are no modules declared in this project.

mimic-fn


Build Status

Make a function mimic another one

Useful when you wrap a function in another function and like to preserve the original name and other properties.

Install

$ npm install mimic-fn

Usage

const mimicFn = require('mimic-fn');

function foo() {}
foo.unicorn = '🦄';

function wrapper() {
	return foo();
}

console.log(wrapper.name);
//=> 'wrapper'

mimicFn(wrapper, foo);

console.log(wrapper.name);
//=> 'foo'

console.log(wrapper.unicorn);
//=> '🦄'

console.log(String(wrapper));
//=> '/* Wrapped with wrapper() */\nfunction foo() {}'

API

mimicFn(to, from, options?)

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.

to

Type: Function

Mimicking function.

from

Type: Function

Function to mimic.

options

Type: object

ignoreNonConfigurable

Type: boolean
Default: false

Skip modifying non-configurable properties instead of throwing an error.

Related


Get professional support for this package with a Tidelift subscription
Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies.

Versions

Version
3.0.0
2.1.0
2.0.0
1.2.0
1.1.0