Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
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

  • 1.0.4
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
18
decreased by-21.74%
Maintainers
1
Weekly downloads
 
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

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc