Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

is-callable

Package Overview
Dependencies
Maintainers
1
Versions
18
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

is-callable - npm Package Compare versions

Comparing version 1.2.3 to 1.2.4

14

CHANGELOG.md

@@ -0,1 +1,15 @@

1.2.4 / 2021-08-05
=================
* [Fix] use `has-tostringtag` approach to behave correctly in the presence of symbol shams
* [readme] fix repo URLs
* [readme] add actions and codecov badges
* [readme] remove defunct badges
* [meta] ignore eclint checking coverage output
* [meta] use `prepublishOnly` script for npm 7+
* [actions] use `node/install` instead of `node/run`; use `codecov` action
* [actions] remove unused workflow file
* [Tests] run `nyc` on all tests; use `tape` runner
* [Tests] use `available-typed-arrays`, `for-each`, `has-symbols`, `object-inspect`
* [Dev Deps] update `available-typed-arrays`, `eslint`, `@ljharb/eslint-config`, `aud`, `object-inspect`, `tape`
1.2.3 / 2021-01-31

@@ -2,0 +16,0 @@ =================

2

index.js

@@ -48,3 +48,3 @@ 'use strict';

var genClass = '[object GeneratorFunction]';
var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';
var hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`
/* globals document: false */

@@ -51,0 +51,0 @@ var documentDotAll = typeof document === 'object' && typeof document.all === 'undefined' && document.all !== undefined ? document.all : {};

{
"name": "is-callable",
"version": "1.2.3",
"version": "1.2.4",
"author": {

@@ -23,17 +23,8 @@ "name": "Jordan Harband",

"scripts": {
"prepublish": "safe-publish-latest",
"prepublishOnly": "safe-publish-latest",
"prepublish": "not-in-publish || npm run prepublishOnly",
"pretest": "npm run --silent lint",
"test": "npm run --silent tests-only",
"posttest": "npx aud --production",
"tests-only": "npm run --silent test:stock && npm run --silent test:staging",
"test:stock": "node test",
"test:staging": "node --es-staging test",
"coverage": "npm run --silent istanbul",
"covert": "covert test",
"covert:quiet": "covert test --quiet",
"istanbul": "npm run --silent istanbul:clean && npm run --silent istanbul:std && npm run --silent istanbul:harmony && npm run --silent istanbul:merge && istanbul check",
"istanbul:clean": "rimraf coverage coverage-std coverage-harmony",
"istanbul:merge": "istanbul-merge --out coverage/coverage.raw.json coverage-harmony/coverage.raw.json coverage-std/coverage.raw.json && istanbul report html",
"istanbul:harmony": "node --harmony ./node_modules/istanbul/lib/cli.js cover test --dir coverage-harmony",
"istanbul:std": "istanbul cover test --report html --dir coverage-std",
"test": "npm run tests-only --",
"posttest": "aud --production",
"tests-only": "nyc tape 'test/**/*.js'",
"prelint": "eclint check *",

@@ -44,3 +35,3 @@ "lint": "eslint ."

"type": "git",
"url": "git://github.com/ljharb/is-callable.git"
"url": "git://github.com/inspect-js/is-callable.git"
},

@@ -59,18 +50,19 @@ "keywords": [

],
"dependencies": {},
"devDependencies": {
"@ljharb/eslint-config": "^17.5.0",
"aud": "^1.1.3",
"covert": "^1.1.1",
"@ljharb/eslint-config": "^17.6.0",
"aud": "^1.1.5",
"available-typed-arrays": "^1.0.4",
"eclint": "^2.8.1",
"eslint": "^7.19.0",
"foreach": "^2.0.5",
"istanbul": "1.1.0-alpha.1",
"istanbul-merge": "^1.1.1",
"es-value-fixtures": "^1.2.1",
"eslint": "^7.32.0",
"for-each": "^0.3.3",
"has-tostringtag": "^1.0.0",
"make-arrow-function": "^1.2.0",
"make-async-function": "^1.0.0",
"make-generator-function": "^2.0.0",
"nyc": "^10.3.2",
"object-inspect": "^1.11.0",
"rimraf": "^2.7.1",
"safe-publish-latest": "^1.1.4",
"tape": "^5.1.1"
"tape": "^5.3.0"
},

@@ -77,0 +69,0 @@ "testling": {

# is-callable <sup>[![Version Badge][2]][1]</sup>
[![Build Status][3]][4]
[![github actions][actions-image]][actions-url]
[![coverage][codecov-image]][codecov-url]
[![dependency status][5]][6]

@@ -11,4 +12,2 @@ [![dev dependency status][7]][8]

[![browser support][9]][10]
Is this JS value callable? Works with Functions and GeneratorFunctions, despite ES6 @@toStringTag.

@@ -56,15 +55,15 @@

[1]: https://npmjs.org/package/is-callable
[2]: http://versionbadg.es/ljharb/is-callable.svg
[3]: https://travis-ci.org/ljharb/is-callable.svg
[4]: https://travis-ci.org/ljharb/is-callable
[5]: https://david-dm.org/ljharb/is-callable.svg
[6]: https://david-dm.org/ljharb/is-callable
[7]: https://david-dm.org/ljharb/is-callable/dev-status.svg
[8]: https://david-dm.org/ljharb/is-callable#info=devDependencies
[9]: https://ci.testling.com/ljharb/is-callable.png
[10]: https://ci.testling.com/ljharb/is-callable
[2]: https://versionbadg.es/inspect-js/is-callable.svg
[5]: https://david-dm.org/inspect-js/is-callable.svg
[6]: https://david-dm.org/inspect-js/is-callable
[7]: https://david-dm.org/inspect-js/is-callable/dev-status.svg
[8]: https://david-dm.org/inspect-js/is-callable#info=devDependencies
[11]: https://nodei.co/npm/is-callable.png?downloads=true&stars=true
[license-image]: http://img.shields.io/npm/l/is-callable.svg
[license-image]: https://img.shields.io/npm/l/is-callable.svg
[license-url]: LICENSE
[downloads-image]: http://img.shields.io/npm/dm/is-callable.svg
[downloads-url]: http://npm-stat.com/charts.html?package=is-callable
[downloads-image]: https://img.shields.io/npm/dm/is-callable.svg
[downloads-url]: https://npm-stat.com/charts.html?package=is-callable
[codecov-image]: https://codecov.io/gh/inspect-js/is-callable/branch/main/graphs/badge.svg
[codecov-url]: https://app.codecov.io/gh/inspect-js/is-callable/
[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/is-callable
[actions-url]: https://github.com/inspect-js/is-callable/actions

@@ -8,3 +8,7 @@ 'use strict';

var isCallable = require('../');
var hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';
var hasToStringTag = require('has-tostringtag/shams')();
var v = require('es-value-fixtures');
var forEach = require('for-each');
var inspect = require('object-inspect');
var typedArrayNames = require('available-typed-arrays')();
var generators = require('make-generator-function')();

@@ -19,3 +23,2 @@ var arrows = require('make-arrow-function').list();

} catch (e) { /**/ }
var forEach = require('foreach');

@@ -68,35 +71,21 @@ var noop = function () {};

test('not callables', function (t) {
t.test('non-number/string primitives', function (st) {
st.notOk(isCallable(), 'undefined is not callable');
st.notOk(isCallable(null), 'null is not callable');
st.notOk(isCallable(false), 'false is not callable');
st.notOk(isCallable(true), 'true is not callable');
st.end();
});
t.notOk(isCallable(), 'implicit undefined is not callable');
t.notOk(isCallable([]), 'array is not callable');
t.notOk(isCallable({}), 'object is not callable');
t.notOk(isCallable(/a/g), 'regex literal is not callable');
t.notOk(isCallable(new RegExp('a', 'g')), 'regex object is not callable');
t.notOk(isCallable(new Date()), 'new Date() is not callable');
t.test('numbers', function (st) {
st.notOk(isCallable(42), 'number is not callable');
st.notOk(isCallable(Object(42)), 'number object is not callable');
st.notOk(isCallable(NaN), 'NaN is not callable');
st.notOk(isCallable(Infinity), 'Infinity is not callable');
st.end();
forEach(v.nonFunctions.concat([
Object(42),
Object('foo'),
NaN,
[],
/a/g,
new RegExp('a', 'g'),
new Date()
]), function (nonFunction) {
t.equal(isCallable(nonFunction), false, inspect(nonFunction) + ' is not callable');
});
t.test('strings', function (st) {
st.notOk(isCallable('foo'), 'string primitive is not callable');
st.notOk(isCallable(Object('foo')), 'string object is not callable');
st.end();
});
t.test('non-function with function in its [[Prototype]] chain', function (st) {
var Foo = function Bar() {};
Foo.prototype = noop;
st.equal(true, isCallable(Foo), 'sanity check: Foo is callable');
st.equal(false, isCallable(new Foo()), 'instance of Foo is not callable');
st.equal(isCallable(Foo), true, 'sanity check: Foo is callable');
st.equal(isCallable(new Foo()), false, 'instance of Foo is not callable');
st.end();

@@ -108,3 +97,3 @@ });

test('@@toStringTag', { skip: !hasSymbols || !Symbol.toStringTag }, function (t) {
test('@@toStringTag', { skip: !hasToStringTag }, function (t) {
var fakeFunction = {

@@ -121,14 +110,2 @@ toString: function () { return String(return3); },

var typedArrayNames = [
'Int8Array',
'Uint8Array',
'Uint8ClampedArray',
'Int16Array',
'Uint16Array',
'Int32Array',
'Uint32Array',
'Float32Array',
'Float64Array'
];
test('Functions', function (t) {

@@ -142,10 +119,5 @@ t.ok(isCallable(noop), 'function is callable');

test('Typed Arrays', function (st) {
test('Typed Arrays', { skip: typedArrayNames.length === 0 }, function (st) {
forEach(typedArrayNames, function (typedArray) {
/* istanbul ignore if : covered in node 0.6 */
if (typeof global[typedArray] === 'undefined') {
st.comment('# SKIP typed array "' + typedArray + '" not supported');
} else {
st.ok(isCallable(global[typedArray]), typedArray + ' is callable');
}
st.ok(isCallable(global[typedArray]), typedArray + ' is callable');
});

@@ -152,0 +124,0 @@ st.end();

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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