Purr.js
Simple JavaScript utility library with respect to FP
Installation
Library can be installed via downloading a git repo:
git clone https://github.com/happyCoda/purrjs.git
or from npm:
npm i purrjs
Functions
- _checkType(thing) ⇒
Boolean
Checks entity's type
- _throwIfNotObjectOrArrayOrString(thing)
Throws if entity is not Object, Array or String. Wrapper method over _throwIfNotOneOfTypes
- _throwIfNotObjectOrArray(thing)
Throws if entity is not Object or Array. Wrapper method over _throwIfNotOneOfTypes
- _throwIfNotOneOfTypes(thing, types)
Throws if entity is not of one of types provided
- _throwWrongType(expected, given)
Throws exception with given explanations
- _checkArity(args, arity) ⇒
Boolean
Checks if args given fits arity provided
- _expose(global, item, name)
Makes any object available in global scope
- _inspect(collection, deeper) ⇒
String
Inspects objects
- _setRecursionMaxDepth(value)
Sets maximum recursion depth (useful for walk method)
- isObject(thing) ⇒
Boolean
Checks if entity is an Object
- isArray(thing) ⇒
Boolean
Checks if entity is an Array
- isFunction(thing) ⇒
Boolean
Checks if entity is an Function
- isBoolean(thing) ⇒
Boolean
Checks if entity is an Boolean
- isNumber(thing) ⇒
Boolean
Checks if entity is an Number
- isString(thing) ⇒
Boolean
Checks if entity is an String
- isNull(thing) ⇒
Boolean
Checks if entity is an Null
- isUndefined(thing) ⇒
Boolean
Checks if entity is an Undefined
- isSymbol(thing) ⇒
Boolean
Checks if entity is an Symbol
- is(thing, type) ⇒
Boolean
Checks if entity has a given type
- isOneOfTypes(thing, types) ⇒
Boolean
Checks if entity has one of the given types
- isTruthy(thing) ⇒
Boolean
Checks if entity has a truthy value
- isEmpty(thing) ⇒
Boolean
Checks if entity has an empty value ('', [], {})
- curry(func, arity, context) ⇒
function
|Any
Performs function currying
- compose(...args) ⇒
function
Composed functions
- noop(thing) ⇒
Any
Function placeholder in case you need some callback. Simply returns given value
- each(collection, func)
Iterates over collection and calls callback on every iteration
- map(collection, func) ⇒
Arrray
|Object
|String
Iterates over collection and calls callback on every iteration
- reduce(collection, func, acc) ⇒
Any
Reduces collection to single value
- filter(collection, func, reverse) ⇒
Arrray
|Object
|String
Filter collection by criteria
- reject(collection, func) ⇒
Arrray
|Object
|String
Reject collection's items by criteria
- all(collection, func) ⇒
Arrray
|Object
|String
Checks if all collection's items fit criteria
- any(collection, func) ⇒
Arrray
|Object
|String
Checks if any collection's items fit criteria
- times(num, func)
Calls the function a specified number of times
- find(collection, func) ⇒
Arrray
|Object
|Undefined
Searches element in collection
- contains(collection, valOrKey) ⇒
Boolean
Checks if element is in collection
- destroy(collection, key) ⇒
Boolean
Deletes property from collection
- groupBy(collection, criteria) ⇒
Object
Group collection's elements by given criteria
- orderBy(collection, criteria, direction) ⇒
Array
Order collection's elements by given criteria and direction
- uniq(collection) ⇒
Object
Drops all collection's duplicates
- toArray(arrayLike) ⇒
Array
Converts array like structures to array
- debounce(fn, wait, asap) ⇒
function
Creates debounced version of the function given
- pluck(collection, key) ⇒
Array
Creates new collection from the old one by the given key
- omit(collection, key) ⇒
Object
Drops values from collection
- extend(collection, source) ⇒
Object
Extends collection
- clone(collection) ⇒
Object
Clones collection
- mixin(collection, ...sources) ⇒
Object
Ads mixin's props to the collection
- chunk(collection, size, start) ⇒
Object
Gets collection chunk
- size(collection) ⇒
Number
Calculates collection size
- walk(collection, func, parent, depth)
Walks collection recursively
- flatten(collection, flatArr)
Makes multidimensional arrays flat
- inject(obj, stuff) ⇒
Object
Injects logic from purr to given object
- namespace(parent, nsstring) ⇒
Object
Creates namespace on the given object or new object
- ensureImplements(obj, methods) ⇒
Boolean
Ensures than object implements given interface
- randomNum(min, max) ⇒
Number
Generates random number
Boolean
_checkType(thing) ⇒ Checks entity's type
Kind: global function
Returns: Boolean
- true or false
Param | Type | Description |
---|---|---|
thing | Any |
Entity to check type for |
_throwIfNotObjectOrArrayOrString(thing)
Throws if entity is not Object, Array or String. Wrapper method over _throwIfNotOneOfTypes
Kind: global function
Param | Type | Description |
---|---|---|
thing | Any |
Entity to check type for |
_throwIfNotObjectOrArray(thing)
Throws if entity is not Object or Array. Wrapper method over _throwIfNotOneOfTypes
Kind: global function
Param | Type | Description |
---|---|---|
thing | Any |
Entity to check type for |
_throwIfNotOneOfTypes(thing, types)
Throws if entity is not of one of types provided
Kind: global function
Param | Type | Description |
---|---|---|
thing | Any |
Entity to check type for |
types | Array |
Array of types to check against |
_throwWrongType(expected, given)
Throws exception with given explanations
Kind: global function
Param | Type | Description |
---|---|---|
expected | String |
Expected type(s) |
given | String |
Type provided |
Boolean
_checkArity(args, arity) ⇒ Checks if args given fits arity provided
Kind: global function
Returns: Boolean
- true or false
Param | Type | Description |
---|---|---|
args | Array |
Arguments array |
arity | Number |
Arity of a function |
_expose(global, item, name)
Makes any object available in global scope
Kind: global function
Param | Type | Description |
---|---|---|
global | Object |
Any global object to include exposable |
item | Any |
Entity for expose |
name | String |
The name of the exposed entity |
String
_inspect(collection, deeper) ⇒ Inspects objects
Kind: global function
Returns: String
- stringified Stringified collection representation
Param | Type | Description |
---|---|---|
collection | Object |
Can be array or object |
deeper | Boolean |
Wether we need trailing coma |
_setRecursionMaxDepth(value)
Sets maximum recursion depth (useful for walk method)
Kind: global function
Param | Type | Description |
---|---|---|
value | Number |
New recursion depth |
Boolean
isObject(thing) ⇒ Checks if entity is an Object
Kind: global function
Returns: Boolean
- true or false
Param | Type | Description |
---|---|---|
thing | Any |
Entity to check type for |
Boolean
isArray(thing) ⇒ Checks if entity is an Array
Kind: global function
Returns: Boolean
- true or false
Param | Type | Description |
---|---|---|
thing | Any |
Entity to check type for |
Boolean
isFunction(thing) ⇒ Checks if entity is an Function
Kind: global function
Returns: Boolean
- true or false
Param | Type | Description |
---|---|---|
thing | Any |
Entity to check type for |
Boolean
isBoolean(thing) ⇒ Checks if entity is an Boolean
Kind: global function
Returns: Boolean
- true or false
Param | Type | Description |
---|---|---|
thing | Any |
Entity to check type for |
Boolean
isNumber(thing) ⇒ Checks if entity is an Number
Kind: global function
Returns: Boolean
- true or false
Param | Type | Description |
---|---|---|
thing | Any |
Entity to check type for |
Boolean
isString(thing) ⇒ Checks if entity is an String
Kind: global function
Returns: Boolean
- true or false
Param | Type | Description |
---|---|---|
thing | Any |
Entity to check type for |
Boolean
isNull(thing) ⇒ Checks if entity is an Null
Kind: global function
Returns: Boolean
- true or false
Param | Type | Description |
---|---|---|
thing | Any |
Entity to check type for |
Boolean
isUndefined(thing) ⇒ Checks if entity is an Undefined
Kind: global function
Returns: Boolean
- true or false
Param | Type | Description |
---|---|---|
thing | Any |
Entity to check type for |
Boolean
isSymbol(thing) ⇒ Checks if entity is an Symbol
Kind: global function
Returns: Boolean
- true or false
Param | Type | Description |
---|---|---|
thing | Any |
Entity to check type for |
Boolean
is(thing, type) ⇒ Checks if entity has a given type
Kind: global function
Returns: Boolean
- true or false
Param | Type | Description |
---|---|---|
thing | Any |
Entity to check type for |
type | String |
Entity's type to check against |
Boolean
isOneOfTypes(thing, types) ⇒ Checks if entity has one of the given types
Kind: global function
Returns: Boolean
- true or false
Param | Type | Description |
---|---|---|
thing | Any |
Entity to check type for |
types | Array |
Entity's types to check against |
Boolean
isTruthy(thing) ⇒ Checks if entity has a truthy value
Kind: global function
Returns: Boolean
- true or false
Param | Type | Description |
---|---|---|
thing | Any |
Entity to check |
Boolean
isEmpty(thing) ⇒ Checks if entity has an empty value ('', [], {})
Kind: global function
Returns: Boolean
- true or false
Param | Type | Description |
---|---|---|
thing | Any |
Entity to check |
function
| Any
curry(func, arity, context) ⇒ Performs function currying
Kind: global function
Returns: function
| Any
- Returns curried function
Param | Type | Default | Description |
---|---|---|---|
func | function |
Function to curry | |
arity | Number |
2 |
Number of arguments curried function expected |
context | Object |
|
Context to apply curried function on |
function
compose(...args) ⇒ Composed functions
Kind: global function
Returns: function
- Curried function
Param | Type | Description |
---|---|---|
...args | * |
Functions to compose |
Any
noop(thing) ⇒ Function placeholder in case you need some callback. Simply returns given value
Kind: global function
Returns: Any
- thing Some argument
Param | Type | Description |
---|---|---|
thing | Any |
Some argument |
each(collection, func)
Iterates over collection and calls callback on every iteration
Kind: global function
Param | Type | Description |
---|---|---|
collection | Arrray | Object | String |
Collection to iterate over |
func | function |
Callback function to to call |
Arrray
| Object
| String
map(collection, func) ⇒ Iterates over collection and calls callback on every iteration
Kind: global function
Returns: Arrray
| Object
| String
- collectionMapped New mapped collection
Param | Type | Description |
---|---|---|
collection | Arrray | Object | String |
Collection to iterate over |
func | function |
Callback function to call |
Any
reduce(collection, func, acc) ⇒ Reduces collection to single value
Kind: global function
Returns: Any
- acc Reduced value
Param | Type | Description |
---|---|---|
collection | Arrray | Object | String |
Collection to reduce |
func | function |
Callback function to call |
acc | Any |
Some initial accumulator value |
Arrray
| Object
| String
filter(collection, func, reverse) ⇒ Filter collection by criteria
Kind: global function
Returns: Arrray
| Object
| String
- result Filtered collection
Param | Type | Default | Description |
---|---|---|---|
collection | Arrray | Object | String |
Collection to filter | |
func | function | Array | Object |
Callback function to call | |
reverse | Boolean |
false |
Determines whether filter should invert condition |
Arrray
| Object
| String
reject(collection, func) ⇒ Reject collection's items by criteria
Kind: global function
Returns: Arrray
| Object
| String
- Rejected collection
Param | Type | Description |
---|---|---|
collection | Arrray | Object | String |
Collection to reject |
func | function | Array | Object |
Callback function to call |
Arrray
| Object
| String
all(collection, func) ⇒ Checks if all collection's items fit criteria
Kind: global function
Returns: Arrray
| Object
| String
- Checked collection
Param | Type | Description |
---|---|---|
collection | Arrray | Object | String |
Collection to check |
func | function |
Callback function to call |
Arrray
| Object
| String
any(collection, func) ⇒ Checks if any collection's items fit criteria
Kind: global function
Returns: Arrray
| Object
| String
- Checked collection
Param | Type | Description |
---|---|---|
collection | Arrray | Object | String |
Collection to check |
func | function |
Callback function to call |
times(num, func)
Calls the function a specified number of times
Kind: global function
Param | Type | Description |
---|---|---|
num | Number |
Number of times to call the function |
func | function |
Callback function to call |
Arrray
| Object
| Undefined
find(collection, func) ⇒ Searches element in collection
Kind: global function
Returns: Arrray
| Object
| Undefined
- Value found or undefined
Param | Type | Description |
---|---|---|
collection | Arrray | Object | String |
Collection to check |
func | function | Array | Object |
Iteratee for checking |
Boolean
contains(collection, valOrKey) ⇒ Checks if element is in collection
Kind: global function
Returns: Boolean
- true or false
Param | Type | Description |
---|---|---|
collection | Arrray | Object | String |
Collection to check |
valOrKey | Number | String |
Value for checking |
Boolean
destroy(collection, key) ⇒ Deletes property from collection
Kind: global function
Returns: Boolean
- true or false
Param | Type | Description |
---|---|---|
collection | Arrray | Object | String |
Collection to operate |
key | String |
Property to delete |
Object
groupBy(collection, criteria) ⇒ Group collection's elements by given criteria
Kind: global function
Returns: Object
- result Groupped collection
Param | Type | Description |
---|---|---|
collection | Object |
Collection to operate |
criteria | String |
Property to order collection by |
Array
orderBy(collection, criteria, direction) ⇒ Order collection's elements by given criteria and direction
Kind: global function
Returns: Array
- result Ordered collection
Param | Type | Description |
---|---|---|
collection | Array |
Collection to operate |
criteria | String |
Property to order collection by |
direction | String |
Ascendant or Descendant |
Object
uniq(collection) ⇒ Drops all collection's duplicates
Kind: global function
Returns: Object
- result Unique collection
Param | Type | Description |
---|---|---|
collection | Array |
Collection to operate |
Array
toArray(arrayLike) ⇒ Converts array like structures to array
Kind: global function
Returns: Array
- result Converted value
Param | Type | Description |
---|---|---|
arrayLike | Object |
Array like to convert |
function
debounce(fn, wait, asap) ⇒ Creates debounced version of the function given
Kind: global function
Returns: function
- Debounced function
Param | Type | Default | Description |
---|---|---|---|
fn | function |
The function to debounce | |
wait | Number |
200 |
Timeout value |
asap | Boolean |
false |
Whether function shuld be called immediately |
Array
pluck(collection, key) ⇒ Creates new collection from the old one by the given key
Kind: global function
Returns: Array
- result New collection of plucked values
Param | Type | Description |
---|---|---|
collection | Array | Object |
The collection to pluck |
key | String |
The key to pluck collection by |
Object
omit(collection, key) ⇒ Drops values from collection
Kind: global function
Returns: Object
- obj Mutated collection
Param | Type | Description |
---|---|---|
collection | Object |
The collection to omit |
key | String |
The property to delete |
Object
extend(collection, source) ⇒ Extends collection
Kind: global function
Returns: Object
- collection Extended collection
Param | Type | Description |
---|---|---|
collection | Object |
The collection to extend |
source | Object |
The extension source |
Object
clone(collection) ⇒ Clones collection
Kind: global function
Returns: Object
- clone Clone of the collection
Param | Type | Description |
---|---|---|
collection | Object |
The collection to clone |
Object
mixin(collection, ...sources) ⇒ Ads mixin's props to the collection
Kind: global function
Returns: Object
- collection Mutated collection
Param | Type | Description |
---|---|---|
collection | Object |
The collection to mutate |
...sources | * |
The mixin sources |
Object
chunk(collection, size, start) ⇒ Gets collection chunk
Kind: global function
Returns: Object
- Collection chunk
Param | Type | Default | Description |
---|---|---|---|
collection | Array | String |
The collection to operate | |
size | Number |
Chunk size | |
start | Number |
0 |
Chunk start position |
Number
size(collection) ⇒ Calculates collection size
Kind: global function
Returns: Number
- Collection size
Param | Type | Description |
---|---|---|
collection | Array | String |
The collection to operate |
walk(collection, func, parent, depth)
Walks collection recursively
Kind: global function
Param | Type | Default | Description |
---|---|---|---|
collection | Array | Object |
The collection to operate | |
func | function |
Callback to call | |
parent | Array | Object |
|
Parent entity |
depth | Number |
0 |
Walk's depth |
flatten(collection, flatArr)
Makes multidimensional arrays flat
Kind: global function
Param | Type | Description |
---|---|---|
collection | Array |
The Array to flat |
flatArr | Array |
New flattened array |
Object
inject(obj, stuff) ⇒ Injects logic from purr to given object
Kind: global function
Returns: Object
- obj Mutated object
Param | Type | Description |
---|---|---|
obj | Object |
Object to inject logic |
stuff | Array | String |
Properties to inject |
Object
namespace(parent, nsstring) ⇒ Creates namespace on the given object or new object
Kind: global function
Returns: Object
- parent Mutated object
Param | Type | Description |
---|---|---|
parent | Object |
Object create namespace |
nsstring | String |
String representation of namespace |
Boolean
ensureImplements(obj, methods) ⇒ Ensures than object implements given interface
Kind: global function
Returns: Boolean
- true or false
Param | Type | Description |
---|---|---|
obj | Object |
Object to operate |
methods | Array | String |
Interface to implement |
Number
randomNum(min, max) ⇒ Generates random number
Kind: global function
Returns: Number
- randNum Random number generated.
Param | Type | Description |
---|---|---|
min | Number |
Minimum number boundary. |
max | Number |
Maximum number boundary. |
Release History
- 2017-12-08 v1.0.0 v1.0.0 release
- 2013-08-07 v0.1.0 First release