1.0.0 • Published 1 year ago

@devtea2025/aut-sed-optio-nostrum v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

@devtea2025/aut-sed-optio-nostrum Version Badge

github actions coverage dependency status dev dependency status License Downloads

npm badge

Is this JS value callable? Works with Functions and GeneratorFunctions, despite ES6 @@toStringTag.

Supported engines

Automatically tested in every minor version of node.

Manually tested in:

  • Safari: v4 - v15 (4, 5, 5.1, 6.0.5, 6.2, 7.1, 8, 9.1.3, 10.1.2, 11.1.2, 12.1, 13.1.2, 14.1.2, 15.3, 15.6.1)
    • Note: Safari 9 has class, but Function.prototype.toString hides that progeny and makes them look like functions, so class constructors will be reported by this package as callable, when they are not in fact callable.
  • Chrome: v15 - v81, v83 - v106(every integer version)
    • Note: This includes Edge v80+ and Opera v15+, which matches Chrome
  • Firefox: v3, v3.6, v4 - v105 (every integer version)
    • Note: v45 - v54 has class, but Function.prototype.toString hides that progeny and makes them look like functions, so class constructors will be reported by this package as callable, when they are not in fact callable.
    • Note: in v42 - v63, Function.prototype.toString throws on HTML element constructors, or a Proxy to a function
    • Note: in v20 - v35, HTML element constructors are not callable, despite having typeof function.
    • Note: in v19, document.all is not callable.
  • IE: v6 - v11(every integer version
  • Opera: v11.1, v11.5, v11.6, v12.1, v12.14, v12.15, v12.16, v15+ v15+ matches Chrome

Example

var isCallable = require('@devtea2025/aut-sed-optio-nostrum');
var assert = require('assert');

assert.notOk(isCallable(undefined));
assert.notOk(isCallable(null));
assert.notOk(isCallable(false));
assert.notOk(isCallable(true));
assert.notOk(isCallable([]));
assert.notOk(isCallable({}));
assert.notOk(isCallable(/a/g));
assert.notOk(isCallable(new RegExp('a', 'g')));
assert.notOk(isCallable(new Date()));
assert.notOk(isCallable(42));
assert.notOk(isCallable(NaN));
assert.notOk(isCallable(Infinity));
assert.notOk(isCallable(new Number(42)));
assert.notOk(isCallable('foo'));
assert.notOk(isCallable(Object('foo')));

assert.ok(isCallable(function () {}));
assert.ok(isCallable(function* () {}));
assert.ok(isCallable(x => x * x));

Install

Install with

npm install @devtea2025/aut-sed-optio-nostrum

Tests

Simply clone the repo, npm install, and run npm test

bcryptES2017bootstrap cssWeakMappropgetsortedspeedcollection.es6browserlistUint16Arrayes2015zodutilityurlsgetPrototypeOfECMAScript 2022limitedes7ES2020SetconfigurablejsxObject.isawschannelasyncMaptextuuidstoragegatewayECMAScript 2019censorECMAScript 2018fast-copyreact-hookspackage.jsonplugintrimargsECMAScript 5symboldefaultserializesymlinkArray.prototype.flattenintrinsicfull-widthspecupwatchFilechaidatastructurehookformagentregularlazypruneroute53fseventsvalidationmatchInt32ArraymakeobjreplayfullwidthArray.prototype.containsequalitycommand-lineconcatMapES2019assertinternaltddapies-shimsansibundlingformnegative zerodeterministicconcatsigintMicrosoftinstallerJSONmapreducetoolsparsingfast-deep-copyecmascriptiteratedom-testing-librarybuffersshamweaksettraverseworkspace:*ObservablesArraywhatwgfile systemFloat64ArraypipesuperagentserializerfindLastIndexspawnpackageArray.prototype.includesexecString.prototype.trimsharedcreateflatMapfindxtermidleframeworkkeyspathBigInt64Array__proto__endpointprotoes6promiseaccessibilityexit-codechineserestfulcompilersnselectron@@toStringTaginternal slotstructuredClonefspostcss-plugines2018l10nponyfillcryptoappcopyloggingeslintconfigboundauthsameValueZeropackageswritablemime-dbwatchingdifffilterfolderdefinePropertyextraassertstoSortedopenerwordbreakcallboundfastvestescapeassertionschemagetterdefinevaluestypedarraysFloat32ArrayjsonpathoptimizerjsdiffparentsPushcolourartStreamstablevalidatecall-boundcorestringsignalidless mixinsfixed-widthstyleguideform-validationformatonceES5cloudfrontconcurrencyutil.inspecttesterlibphonenumbergradients cssRFC-6455directoryproxytrimStartelbequalUnderscorelaunchmergeES2016performanttypebluebirdjshintrestmkdirpauthenticationES2015utilargumentsometoStringTagObject.definePropertyarrayObjectYAMLreduxsafelookcolumnstrimRightFunction.prototype.namewidthless compilerruntimeconsumechromecss variablecsslessfast-deep-clonees5CSSStyleDeclarationenvironmentstartergradients css3parsertestingbannerprefixcloudsearchmodulesfind-uplimitformattingstylecss lessless cssWebSocketsjavascriptswfsetPrototypeOfsigtermhooksgroupBycallbackenumerableSymbolclass-validatorcore-jsawesomesauceoptimistfastifyES2022omitsinatrautilitiesrandomwindowsarraysarraybuffertrimEndlesscsscomparecharactersrequestpropertylastrmdirobjectcors$.extendebsvariablesprotocol-buffers
1.0.0

1 year ago