Package Exports
- @arrows/dispatch
- @arrows/dispatch/getType
- @arrows/dispatch/types
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@arrows/dispatch) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
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/dispatchVia Yarn:
yarn add @arrows/dispatchAll 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_nameExample
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) => valueExample
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
trueis a value is an instance of a prototype/class,falseotherwise.
Interface
(prototype, value) => booleanExample
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) // -> falseisIn
Checks if a value is inside an array/set.
Parameters
list- An array or a set of valuesvalue- Any value
Returns
- Returns
trueis a value is inside an array/set,falseotherwise.
Interface
(array_or_set, value) => booleanExamples
const names = ['Alice', 'Joe', 'John']
isIn(names, 'Alice') // -> true
isIn(names, 'Bob') // -> false
isIn(names)('Alice') // -> true
isIn(names)('Bob') // -> falseconst names = new Set(['Alice', 'Joe', 'John'])
isIn(names, 'Alice') // -> true
isIn(names, 'Bob') // -> false
isIn(names)('Alice') // -> true
isIn(names)('Bob') // -> falsetypes
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 // -> falseLicense
Project is under open, non-restrictive ISC license.