{"_id":"mimic-fn","_rev":"3287891","name":"mimic-fn","description":"Make a function mimic another one","dist-tags":{"latest":"5.0.0"},"maintainers":[{"name":"sindresorhus","email":""}],"time":{"modified":"2024-05-23T06:37:20.000Z","created":"2016-10-19T17:27:32.921Z","5.0.0":"2023-11-05T19:54:59.336Z","4.0.0":"2021-04-07T19:23:42.197Z","3.1.0":"2020-07-24T09:13:36.810Z","3.0.0":"2019-06-13T16:07:20.324Z","2.1.0":"2019-03-31T17:53:34.125Z","2.0.0":"2019-03-07T19:00:04.908Z","1.2.0":"2018-02-02T03:28:18.400Z","1.1.0":"2016-11-01T09:35:10.608Z","1.0.0":"2016-10-19T17:27:32.921Z"},"users":{},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"repository":{"type":"git","url":"git+https://github.com/sindresorhus/mimic-fn.git"},"versions":{"5.0.0":{"name":"mimic-fn","version":"5.0.0","description":"Make a function mimic another one","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/mimic-fn.git"},"funding":"https://github.com/sponsors/sindresorhus","author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"type":"module","exports":"./index.js","engines":{"node":">=12"},"scripts":{"test":"xo && ava && tsd"},"keywords":["function","mimic","imitate","rename","copy","inherit","properties","name","func","fn","set","infer","change"],"devDependencies":{"ava":"^3.15.0","tsd":"^0.14.0","xo":"^0.38.2"},"types":"./index.d.ts","gitHead":"c8994d7c70a5e1e74efe97e12394b9878f943dab","bugs":{"url":"https://github.com/sindresorhus/mimic-fn/issues"},"homepage":"https://github.com/sindresorhus/mimic-fn#readme","_id":"mimic-fn@5.0.0","_nodeVersion":"20.9.0","_npmVersion":"9.2.0","dist":{"shasum":"a2bdb66dcd0731d0ad9c9a2235b43582f9d71564","size":3300,"noattachment":false,"key":"/mimic-fn/-/mimic-fn-5.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/mimic-fn/download/mimic-fn-5.0.0.tgz"},"_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"directories":{},"maintainers":[{"name":"sindresorhus","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mimic-fn_5.0.0_1699214099162_0.20470565228903603"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-11-05T19:54:59.336Z","publish_time":1699214099336,"_source_registry_name":"default","deprecated":"Renamed to mimic-function","_cnpm_publish_time":1699214099336},"4.0.0":{"name":"mimic-fn","version":"4.0.0","description":"Make a function mimic another one","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/mimic-fn.git"},"funding":"https://github.com/sponsors/sindresorhus","author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"type":"module","exports":"./index.js","engines":{"node":">=12"},"scripts":{"test":"xo && ava && tsd"},"keywords":["function","mimic","imitate","rename","copy","inherit","properties","name","func","fn","set","infer","change"],"devDependencies":{"ava":"^3.15.0","tsd":"^0.14.0","xo":"^0.38.2"},"gitHead":"c8994d7c70a5e1e74efe97e12394b9878f943dab","bugs":{"url":"https://github.com/sindresorhus/mimic-fn/issues"},"homepage":"https://github.com/sindresorhus/mimic-fn#readme","_id":"mimic-fn@4.0.0","_nodeVersion":"12.20.1","_npmVersion":"6.14.10","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"60a90550d5cb0b239cca65d893b1a53b29871ecc","size":3320,"noattachment":false,"key":"/mimic-fn/-/mimic-fn-4.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/mimic-fn/download/mimic-fn-4.0.0.tgz"},"directories":{},"maintainers":[{"name":"sindresorhus","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mimic-fn_4.0.0_1617823422055_0.746416395003386"},"_hasShrinkwrap":false,"publish_time":1617823422197,"_cnpm_publish_time":1617823422197},"3.1.0":{"name":"mimic-fn","version":"3.1.0","description":"Make a function mimic another one","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/mimic-fn.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=8"},"scripts":{"test":"xo && ava && tsd"},"keywords":["function","mimic","imitate","rename","copy","inherit","properties","name","func","fn","set","infer","change"],"devDependencies":{"ava":"^2.1.0","tsd":"^0.7.1","xo":"^0.24.0"},"gitHead":"2ada36ff62c03d97da9604c8a2f22a5153c87b06","bugs":{"url":"https://github.com/sindresorhus/mimic-fn/issues"},"homepage":"https://github.com/sindresorhus/mimic-fn#readme","_id":"mimic-fn@3.1.0","_nodeVersion":"14.5.0","_npmVersion":"6.14.5","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"65755145bbf3e36954b949c16450427451d5ca74","size":3364,"noattachment":false,"key":"/mimic-fn/-/mimic-fn-3.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/mimic-fn/download/mimic-fn-3.1.0.tgz"},"maintainers":[{"name":"sindresorhus","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mimic-fn_3.1.0_1595582016684_0.8596377806235356"},"_hasShrinkwrap":false,"publish_time":1595582016810,"_cnpm_publish_time":1595582016810},"3.0.0":{"name":"mimic-fn","version":"3.0.0","description":"Make a function mimic another one","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/mimic-fn.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=8"},"scripts":{"test":"xo && ava && tsd"},"keywords":["function","mimic","imitate","rename","copy","inherit","properties","name","func","fn","set","infer","change"],"devDependencies":{"ava":"^2.1.0","tsd":"^0.7.1","xo":"^0.24.0"},"gitHead":"a08e9cdca1b94f0cae6e11d2d805f2205a153878","bugs":{"url":"https://github.com/sindresorhus/mimic-fn/issues"},"homepage":"https://github.com/sindresorhus/mimic-fn#readme","_id":"mimic-fn@3.0.0","_nodeVersion":"12.4.0","_npmVersion":"6.9.0","dist":{"shasum":"76044cfa8818bbf6999c5c9acadf2d3649b14b4b","size":3259,"noattachment":false,"key":"/mimic-fn/-/mimic-fn-3.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/mimic-fn/download/mimic-fn-3.0.0.tgz"},"maintainers":[{"name":"sindresorhus","email":""}],"_npmUser":{"name":"ehmicky","email":"ehmicky@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mimic-fn_3.0.0_1560442040132_0.7815444311909043"},"_hasShrinkwrap":false,"publish_time":1560442040324,"_cnpm_publish_time":1560442040324},"2.1.0":{"name":"mimic-fn","version":"2.1.0","description":"Make a function mimic another one","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/mimic-fn.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=6"},"scripts":{"test":"xo && ava && tsd"},"keywords":["function","mimic","imitate","rename","copy","inherit","properties","name","func","fn","set","infer","change"],"devDependencies":{"ava":"^1.4.1","tsd":"^0.7.1","xo":"^0.24.0"},"gitHead":"d29f5387f4c19814a042d03a780ff4481ceac5a3","bugs":{"url":"https://github.com/sindresorhus/mimic-fn/issues"},"homepage":"https://github.com/sindresorhus/mimic-fn#readme","_id":"mimic-fn@2.1.0","_nodeVersion":"8.15.0","_npmVersion":"6.9.0","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b","size":2119,"noattachment":false,"key":"/mimic-fn/-/mimic-fn-2.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/mimic-fn/download/mimic-fn-2.1.0.tgz"},"maintainers":[{"name":"sindresorhus","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mimic-fn_2.1.0_1554054813982_0.46010347442389166"},"_hasShrinkwrap":false,"publish_time":1554054814125,"_cnpm_publish_time":1554054814125},"2.0.0":{"name":"mimic-fn","version":"2.0.0","description":"Make a function mimic another one","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/mimic-fn.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=6"},"scripts":{"test":"xo && ava && tsd-check"},"keywords":["function","mimic","imitate","rename","copy","inherit","properties","name","func","fn","set","infer","change"],"devDependencies":{"ava":"^1.3.1","tsd-check":"^0.3.0","xo":"^0.24.0"},"gitHead":"aa885ea38acdc9bfb55c3e7fd0ff2bfa75ccda71","bugs":{"url":"https://github.com/sindresorhus/mimic-fn/issues"},"homepage":"https://github.com/sindresorhus/mimic-fn#readme","_id":"mimic-fn@2.0.0","_nodeVersion":"8.15.0","_npmVersion":"6.8.0","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"0913ff0b121db44ef5848242c38bbb35d44cabde","size":1909,"noattachment":false,"key":"/mimic-fn/-/mimic-fn-2.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/mimic-fn/download/mimic-fn-2.0.0.tgz"},"maintainers":[{"name":"sindresorhus","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mimic-fn_2.0.0_1551985204769_0.7133439914854229"},"_hasShrinkwrap":false,"publish_time":1551985204908,"_cnpm_publish_time":1551985204908},"1.2.0":{"name":"mimic-fn","version":"1.2.0","description":"Make a function mimic another one","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/mimic-fn.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=4"},"scripts":{"test":"xo && ava"},"files":["index.js"],"keywords":["function","mimic","imitate","rename","copy","inherit","properties","name","func","fn","set","infer","change"],"devDependencies":{"ava":"*","xo":"*"},"gitHead":"d762fc495eef1e48718e1f39b82c39ff5e95dfe4","bugs":{"url":"https://github.com/sindresorhus/mimic-fn/issues"},"homepage":"https://github.com/sindresorhus/mimic-fn#readme","_id":"mimic-fn@1.2.0","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"820c86a39334640e99516928bd03fca88057d022","size":1765,"noattachment":false,"key":"/mimic-fn/-/mimic-fn-1.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/mimic-fn/download/mimic-fn-1.2.0.tgz"},"maintainers":[{"name":"sindresorhus","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mimic-fn-1.2.0.tgz_1517542098165_0.264689544448629"},"directories":{},"publish_time":1517542098400,"_hasShrinkwrap":false,"_cnpm_publish_time":1517542098400},"1.1.0":{"name":"mimic-fn","version":"1.1.0","description":"Make a function mimic another one","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/mimic-fn.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=4"},"scripts":{"test":"xo && ava"},"files":["index.js"],"keywords":["function","mimic","imitate","rename","copy","inherit","properties","name","func","fn","set","infer","change"],"devDependencies":{"ava":"*","xo":"*"},"xo":{"esnext":true},"gitHead":"3703ef8142ce6b7170297e58fee1a14799b79975","bugs":{"url":"https://github.com/sindresorhus/mimic-fn/issues"},"homepage":"https://github.com/sindresorhus/mimic-fn#readme","_id":"mimic-fn@1.1.0","_shasum":"e667783d92e89dbd342818b5230b9d62a672ad18","_from":".","_npmVersion":"2.15.9","_nodeVersion":"4.6.1","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"e667783d92e89dbd342818b5230b9d62a672ad18","size":1780,"noattachment":false,"key":"/mimic-fn/-/mimic-fn-1.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/mimic-fn/download/mimic-fn-1.1.0.tgz"},"maintainers":[{"name":"sindresorhus","email":""}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/mimic-fn-1.1.0.tgz_1477992909009_0.6083487698342651"},"directories":{},"publish_time":1477992910608,"_cnpm_publish_time":1477992910608,"_hasShrinkwrap":false},"1.0.0":{"name":"mimic-fn","version":"1.0.0","description":"Make a function mimic another one","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/mimic-fn.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=4"},"scripts":{"test":"xo && ava"},"files":["index.js"],"keywords":["function","mimic","imitate","rename","copy","inherit","properties","name","func","fn","set","infer","change"],"devDependencies":{"ava":"*","xo":"*"},"xo":{"esnext":true},"gitHead":"aa6ed7d5bd448aacfb68b249362e2997ca969696","bugs":{"url":"https://github.com/sindresorhus/mimic-fn/issues"},"homepage":"https://github.com/sindresorhus/mimic-fn#readme","_id":"mimic-fn@1.0.0","_shasum":"93c514dcbfb753539ceb8e7a1f55cbf815580da4","_from":".","_npmVersion":"2.15.9","_nodeVersion":"4.6.0","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"93c514dcbfb753539ceb8e7a1f55cbf815580da4","size":1882,"noattachment":false,"key":"/mimic-fn/-/mimic-fn-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/mimic-fn/download/mimic-fn-1.0.0.tgz"},"maintainers":[{"name":"sindresorhus","email":""}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/mimic-fn-1.0.0.tgz_1476898052705_0.4593465782236308"},"directories":{},"publish_time":1476898052921,"_cnpm_publish_time":1476898052921,"_hasShrinkwrap":false}},"readme":"<img src=\"media/logo.svg\" alt=\"mimic-fn\" width=\"400\">\n<br>\n\n> Make a function mimic another one\n\nUseful when you wrap a function in another function and like to preserve the original name and other properties.\n\n## Install\n\n```\n$ npm install mimic-fn\n```\n\n## Usage\n\n```js\nimport mimicFunction from 'mimic-fn';\n\nfunction foo() {}\nfoo.unicorn = '????';\n\nfunction wrapper() {\n\treturn foo();\n}\n\nconsole.log(wrapper.name);\n//=> 'wrapper'\n\nmimicFunction(wrapper, foo);\n\nconsole.log(wrapper.name);\n//=> 'foo'\n\nconsole.log(wrapper.unicorn);\n//=> '????'\n\nconsole.log(String(wrapper));\n//=> '/* Wrapped with wrapper() */\\nfunction foo() {}'\n```\n\n\n## API\n\n### mimicFunction(to, from, options?)\n\nModifies the `to` function to mimic the `from` function. Returns the `to` function.\n\n`name`, `displayName`, and any other properties of `from` are copied. The `length` property is not copied. Prototype, class, and inherited properties are copied.\n\n`to.toString()` will return the same as `from.toString()` but prepended with a `Wrapped with to()` comment.\n\n#### to\n\nType: `Function`\n\nMimicking function.\n\n#### from\n\nType: `Function`\n\nFunction to mimic.\n\n#### options\n\nType: `object`\n\n##### ignoreNonConfigurable\n\nType: `boolean`\\\nDefault: `false`\n\nSkip modifying [non-configurable properties](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor#Description) instead of throwing an error.\n\n## Related\n\n- [rename-fn](https://github.com/sindresorhus/rename-fn) - Rename a function\n- [keep-func-props](https://github.com/ehmicky/keep-func-props) - Wrap a function without changing its name and other properties\n\n---\n\n<div align=\"center\">\n\t<b>\n\t\t<a href=\"https://tidelift.com/subscription/pkg/npm-mimic-fn?utm_source=npm-mimic-fn&utm_medium=referral&utm_campaign=readme\">Get professional support for this package with a Tidelift subscription</a>\n\t</b>\n\t<br>\n\t<sub>\n\t\tTidelift helps make open source sustainable for maintainers while giving companies<br>assurances about security, maintenance, and licensing for their dependencies.\n\t</sub>\n</div>\n","_attachments":{},"homepage":"https://github.com/sindresorhus/mimic-fn#readme","bugs":{"url":"https://github.com/sindresorhus/mimic-fn/issues"},"license":"MIT"}