@arrows/dispatch
v1.0.3
Published
Functional dispatch library
Downloads
113,958
Maintainers
Readme
@arrows/dispatch
Table of contents
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
value
- Any value
Returns
- Returns an underlying class as a string.
Interface
(value) => underlying_class_name
Example
getType(1) // -> "Number"
getType(/abc/) // -> "RegExp"
getType([1, 2, 3]) // -> "Array"
identity
Standard identity function - useful as a default dispatch or a placeholder.
Parameters
value
- Any value
Returns
- Returns the argument as-is.
Interface
(value) => value
Example
identity('foo') // -> "foo"
identity([1, 2, 3]) // -> [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) // -> true
is(Dog, cat) // -> false
is(Cat)(cat) // -> true
is(Dog)(cat) // -> false
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') // -> true
isIn(names, 'Bob') // -> false
isIn(names)('Alice') // -> true
isIn(names)('Bob') // -> false
const names = new Set(['Alice', 'Joe', 'John'])
isIn(names, 'Alice') // -> true
isIn(names, 'Bob') // -> false
isIn(names)('Alice') // -> true
isIn(names)('Bob') // -> false
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 // -> true
getType(() => null) === types.Function // -> true
getType(Promise.resolve()) === types.Promise // -> true
getType('1') === types.Number // -> false
License
Project is under open, non-restrictive ISC license.