Package Exports
- is-fun
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (is-fun) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
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-funUse it wherever and however you want - node.js or webpack, CJS or ESM modules!
const isFun = require("is-fun");
isFun(() => {}); // trueimport isFun from "is-fun";
isFun(undefined); // false
isFun(null); // false
isFun(false); // false
isFun(true); // false
isFun([]); // false
isFun({}); // false
isFun(/a/g); // false
isFun(new RegExp("a", "g")); // false
isFun(new Date()); // false
isFun(42); // false
isFun(NaN); // false
isFun(Infinity); // false
isFun(new Number(42)); // false
isFun("foo"); // false
isFun(Object("foo")); // false
isFun(function() {}); // true
isFun(function*() {}); // true
isFun(x => x * x); // truePerformance (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")