Yes! One more package detecting that given variable is function.
Made as drop-in replacement for is-callable package, but lighter and faster
npm install is-fun# or via yarn yarn add is-fun
Use it wherever and however you want - node.js or webpack, CJS or ESM modules!
const isFun = ; ; // true
; isFunundefined; // falseisFunnull; // falseisFunfalse; // falseisFuntrue; // falseisFun; // falseisFun; // falseisFun/a/g; // falseisFunnew RegExp"a", "g"; // falseisFunnew Date; // falseisFun42; // falseisFunNaN; // falseisFunInfinity; // falseisFunnew Number42; // falseisFun"foo"; // falseisFunObject"foo"; // false isFun; // trueisFun; // trueisFunx * x; // true
Performance (recent benchmarks results)
benchmarks ran on 3.4GHz Core i7 CPU width 16GB DDR4 RAM
npm run build && npm i -C benchmark && npm -C benchmark start
# Regular function is-callable × 3,679,405 ops/sec; (result: "true") is-fun × 6,736,726 ops/sec; (result: "true") # Fake function is-callable × 45,630 ops/sec; (result: "false") is-fun × 112,172 ops/sec; (result: "false") # Typed array constructor is-callable × 1,692,920 ops/sec; (result: "true") is-fun × 2,716,742 ops/sec; (result: "true") # Class constructor is-callable × 7,058,944 ops/sec; (result: "false") is-fun × 7,109,810 ops/sec; (result: "false") # Arrow function is-callable × 95,493,127 ops/sec; (result: "true") is-fun × 89,843,495 ops/sec; (result: "true") # Null is-callable × 124,068,441 ops/sec; (result: "false") is-fun × 126,135,930 ops/sec; (result: "false") # Number is-callable × 863,066,938 ops/sec; (result: "false") is-fun × 863,418,881 ops/sec; (result: "false")