Socket
Book a DemoInstallSign in
Socket

is-fun

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

is-fun

Checks whether given variable is callable. Works fine function and generators in spite of ES6 @@toStringTag

latest
Source
npmnpm
Version
1.0.4
Version published
Maintainers
1
Created
Source

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")

Keywords

callable

FAQs

Package last updated on 28 Jun 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts