is-fun
TypeScript icon, indicating that this package has built-in type declarations

1.0.4 • Public • Published

is-fun

Yes! One more package detecting that given variable is function.
Made as drop-in replacement for is-callable package, but lighter and faster

Install it via npm or yarn

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 = require("is-fun");
 
isFun(() => {}); // true
import 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); // 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")

Package Sidebar

Install

npm i is-fun

Weekly Downloads

69

Version

1.0.4

License

MIT

Unpacked Size

10.9 kB

Total Files

8

Last publish

Collaborators

  • xobotyi