npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

purrjs

v1.0.0

Published

Pure JavaScript library

Readme

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

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 |

_checkArity(args, arity) ⇒ Boolean

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 |

_inspect(collection, deeper) ⇒ String

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 |

isObject(thing) ⇒ Boolean

Checks if entity is an Object

Kind: global function
Returns: Boolean - true or false

| Param | Type | Description | | --- | --- | --- | | thing | Any | Entity to check type for |

isArray(thing) ⇒ Boolean

Checks if entity is an Array

Kind: global function
Returns: Boolean - true or false

| Param | Type | Description | | --- | --- | --- | | thing | Any | Entity to check type for |

isFunction(thing) ⇒ Boolean

Checks if entity is an Function

Kind: global function
Returns: Boolean - true or false

| Param | Type | Description | | --- | --- | --- | | thing | Any | Entity to check type for |

isBoolean(thing) ⇒ Boolean

Checks if entity is an Boolean

Kind: global function
Returns: Boolean - true or false

| Param | Type | Description | | --- | --- | --- | | thing | Any | Entity to check type for |

isNumber(thing) ⇒ Boolean

Checks if entity is an Number

Kind: global function
Returns: Boolean - true or false

| Param | Type | Description | | --- | --- | --- | | thing | Any | Entity to check type for |

isString(thing) ⇒ Boolean

Checks if entity is an String

Kind: global function
Returns: Boolean - true or false

| Param | Type | Description | | --- | --- | --- | | thing | Any | Entity to check type for |

isNull(thing) ⇒ Boolean

Checks if entity is an Null

Kind: global function
Returns: Boolean - true or false

| Param | Type | Description | | --- | --- | --- | | thing | Any | Entity to check type for |

isUndefined(thing) ⇒ Boolean

Checks if entity is an Undefined

Kind: global function
Returns: Boolean - true or false

| Param | Type | Description | | --- | --- | --- | | thing | Any | Entity to check type for |

isSymbol(thing) ⇒ Boolean

Checks if entity is an Symbol

Kind: global function
Returns: Boolean - true or false

| Param | Type | Description | | --- | --- | --- | | thing | Any | Entity to check type for |

is(thing, type) ⇒ Boolean

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 |

isOneOfTypes(thing, types) ⇒ Boolean

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 |

isTruthy(thing) ⇒ Boolean

Checks if entity has a truthy value

Kind: global function
Returns: Boolean - true or false

| Param | Type | Description | | --- | --- | --- | | thing | Any | Entity to check |

isEmpty(thing) ⇒ Boolean

Checks if entity has an empty value ('', [], {})

Kind: global function
Returns: Boolean - true or false

| Param | Type | Description | | --- | --- | --- | | thing | Any | Entity to check |

curry(func, arity, context) ⇒ function | Any

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 |

compose(...args) ⇒ function

Composed functions

Kind: global function
Returns: function - Curried function

| Param | Type | Description | | --- | --- | --- | | ...args | * | Functions to compose |

noop(thing) ⇒ Any

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 |

map(collection, func) ⇒ Arrray | Object | String

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 |

reduce(collection, func, acc) ⇒ Any

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 |

filter(collection, func, reverse) ⇒ Arrray | Object | String

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 |

reject(collection, func) ⇒ Arrray | Object | String

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 |

all(collection, func) ⇒ Arrray | Object | String

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 |

any(collection, func) ⇒ Arrray | Object | String

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 |

find(collection, func) ⇒ Arrray | Object | Undefined

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 |

contains(collection, valOrKey) ⇒ Boolean

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 |

destroy(collection, key) ⇒ Boolean

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 |

groupBy(collection, criteria) ⇒ Object

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 |

orderBy(collection, criteria, direction) ⇒ Array

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 |

uniq(collection) ⇒ Object

Drops all collection's duplicates

Kind: global function
Returns: Object - result Unique collection

| Param | Type | Description | | --- | --- | --- | | collection | Array | Collection to operate |

toArray(arrayLike) ⇒ Array

Converts array like structures to array

Kind: global function
Returns: Array - result Converted value

| Param | Type | Description | | --- | --- | --- | | arrayLike | Object | Array like to convert |

debounce(fn, wait, asap) ⇒ function

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 |

pluck(collection, key) ⇒ Array

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 |

omit(collection, key) ⇒ Object

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 |

extend(collection, source) ⇒ Object

Extends collection

Kind: global function
Returns: Object - collection Extended collection

| Param | Type | Description | | --- | --- | --- | | collection | Object | The collection to extend | | source | Object | The extension source |

clone(collection) ⇒ Object

Clones collection

Kind: global function
Returns: Object - clone Clone of the collection

| Param | Type | Description | | --- | --- | --- | | collection | Object | The collection to clone |

mixin(collection, ...sources) ⇒ Object

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 |

chunk(collection, size, start) ⇒ Object

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 |

size(collection) ⇒ Number

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 |

inject(obj, stuff) ⇒ Object

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 |

namespace(parent, nsstring) ⇒ Object

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 |

ensureImplements(obj, methods) ⇒ Boolean

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 |

randomNum(min, max) ⇒ Number

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