rename-function
Advanced tools
Comparing version 1.0.2 to 1.0.3
## 1.0.3 - 2016-04-14 | ||
- Release v1.0.3 / npm@v1.0.3 | ||
- refactor | ||
- add more tests | ||
## 1.0.2 - 2016-04-14 | ||
@@ -4,0 +9,0 @@ - Release v1.0.2 / npm@v1.0.2 |
17
index.js
@@ -40,6 +40,17 @@ /*! | ||
} | ||
name = typeof name === 'string' ? utils.namify(name) : false | ||
if (name === utils.getFnName(fn)) return fn | ||
name = name || '' | ||
var isObject = utils.isExtendable(name) | ||
if (utils.isInvalid(arguments, name, isObject)) { | ||
return fn | ||
} | ||
var fnName = utils.getFnName(fn) || '' | ||
ctx = isObject ? name : ctx | ||
name = typeof name === 'string' ? name : 123 | ||
name = name === 123 ? fnName : utils.namify(name) | ||
if (fnName === name && !utils.isExtendable(ctx)) { | ||
return fn | ||
} | ||
var str = format('return function %s() { return fn.apply(ctx || this, arguments) }', name) | ||
@@ -46,0 +57,0 @@ var func = (new Function('fn', 'ctx', str))(fn, ctx || this) // eslint-disable-line no-new-func |
{ | ||
"name": "rename-function", | ||
"version": "1.0.2", | ||
"version": "1.0.3", | ||
"description": "Rename a given function. Tries to be cross-platform and guaranteed. Useful when you want to preserve name of bound function. In bonus, allows passing context to the renamed function.", | ||
@@ -16,2 +16,3 @@ "repository": "tunnckoCore/rename-function", | ||
"get-fn-name": "^1.0.0", | ||
"is-extendable": "^0.1.1", | ||
"lazy-cache": "^1.0.3", | ||
@@ -64,2 +65,2 @@ "namify": "^0.1.3" | ||
} | ||
} | ||
} |
@@ -29,2 +29,3 @@ 'use strict' | ||
require('get-fn-name') | ||
require('is-extendable') | ||
require('namify') | ||
@@ -38,2 +39,8 @@ | ||
utils.isInvalid = function isInvalid (args, name, isObject) { | ||
if (args.length === 1) return true | ||
if (args.length === 2 && !isObject && typeof name !== 'string') return true | ||
return false | ||
} | ||
/** | ||
@@ -40,0 +47,0 @@ * Expose `utils` modules |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
11712
91
5
+ Addedis-extendable@^0.1.1
+ Addedis-extendable@0.1.1(transitive)