@arrows/dispatch
Table of contents
- Introduction
- Installation
- API reference
- License
Introduction
The library contains a collection of dispatch functions.
All functions with the arity (number of arguments) greater than one are automatically curried, so a partial application is possible.
The library has built-in type definitions, which provide an excellent IDE support.
Installation
Via NPM:
npm i @arrows/dispatch
Via Yarn:
yarn add @arrows/dispatch
All modules can be imported independently (to reduce bundle size), here are some import methods (you can use either CommonJS or ES modules):
import dispatch from '@arrows/dispatch'
import { getType } from '@arrows/dispatch'
import getType from '@arrows/dispatch/getType'
API reference
getType
Retrieves the type of a value (using the internal [[Class]]
property).
A more useful alternative for the typeof
operator.
It does not return custom prototypes - if you need that, use the is
function instead.
See: types for the list of the most common values.
See: MDN - Object.prototype.toString.call
Parameters
Returns
- Returns an underlying class as a string.
Interface
(value) => underlying_class_name
Example
getType(1)
getType(/abc/)
getType([1, 2, 3])
identity
Standard identity function - useful as a default dispatch or a placeholder.
Parameters
Returns
- Returns the argument as-is.
Interface
(value) => value
Example
identity('foo')
identity([1, 2, 3])
is
Checks if a value is an instance of a prototype/class.
Parameters
prototype
- A prototype/class with which you want to check the value.value
- Any value
Returns
- Returns
true
is a value is an instance of a prototype/class, false
otherwise.
Interface
(prototype, value) => boolean
Example
class Cat {}
class Dog {}
const cat = new Cat()
const dog = new Dog()
is(Cat, cat)
is(Dog, cat)
is(Cat)(cat)
is(Dog)(cat)
isIn
Checks if a value is inside an array/set.
Parameters
list
- An array or a set of valuesvalue
- Any value
Returns
- Returns
true
is a value is inside an array/set, false
otherwise.
Interface
(array_or_set, value) => boolean
Examples
const names = ['Alice', 'Joe', 'John']
isIn(names, 'Alice')
isIn(names, 'Bob')
isIn(names)('Alice')
isIn(names)('Bob')
const names = new Set(['Alice', 'Joe', 'John'])
isIn(names, 'Alice')
isIn(names, 'Bob')
isIn(names)('Alice')
isIn(names)('Bob')
types
An object that contains a list of the most common types to use with the getType function. You can use it instead of using raw strings (which is error-prone).
Example
getType([1, 2, 3]) === types.Array
getType(() => null) === types.Function
getType(Promise.resolve()) === types.Promise
getType('1') === types.Number
License
Project is under open, non-restrictive ISC license.