Skip to content
JS utils with "human" face
JavaScript
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
tests
.babelrc
.eslintrc.json
.gitignore
.npmignore
.travis.yml
CHANGELOG.md
README.md
package-lock.json
package.json
webpack.config.js
yarn.lock

README.md

Build Status Coverage Status

                          oooo$$$$$$$$$$$$oooo
                      oo$$$$$$$$$$$$$$$$$$$$$$$$o
                   oo$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$o         o$   $$ o$
   o $ oo        o$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$o       $$ $$ $$o$
oo $ $ "$      o$$$$$$$$$    $$$$$$$$$$$$$    $$$$$$$$$o       $$$o$$o$
"$$$$$$o$     o$$$$$$$$$      $$$$$$$$$$$      $$$$$$$$$$o    $$$$$$$$
  $$$$$$$    $$$$$$$$$$$      $$$$$$$$$$$      $$$$$$$$$$$$$$$$$$$$$$$
  $$$$$$$$$$$$$$$$$$$$$$$    $$$$$$$$$$$$$    $$$$$$$$$$$$$$  """$$$
   "$$$""""$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$     "$$$
    $$$   o$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$     "$$$o
   o$$"   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$       $$$o
   $$$    $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" "$$$$$$ooooo$$$$o
  o$$$oooo$$$$$  $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$   o$$$$$$$$$$$$$$$$$
  $$$$$$$$"$$$$   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$     $$$$""""""""
 """"       $$$$    "$$$$$$$$$$$$$$$$$$$$$$$$$$$$"      o$$$
            "$$$o     """$$$$$$$$$$$$$$$$$$"$$"         $$$
              $$$o          "$$""$$$$$$""""           o$$$
               $$$$o                                o$$$"
                "$$$$o      o$$$$$$o"$$$$o        o$$$$
                  "$$$$$oo     ""$$$$o$$$$$o   o$$$$""
                     ""$$$$$oooo  "$$$o$$$$$$$$$"""
                        ""$$$$$$$oo $$$$$$$$$$
                                """"$$$$$$$$$$$
                                    $$$$$$$$$$$$
                                     $$$$$$$$$$"
                                      "$$$""""

vertibar

Minimalistic JavaScript utils library intended to replace underscore / lodash.

Why?

Most methods people usually use from underscore or lodash already implemented natively in ES5 / ES6, but lots of developers keep pulling those monsters increasing size of their output bundles, polluting their code with purely readable _ characters and slowing down their project starting time.

As for those methods which are still missing in "native" JS API - underscore / lodash provides pretty ugly API. For example, which code does look better / more readable: const lone = _.clone(obj) or const clone = obj.deepCopy()?

So my intention is to extend "native" JS API with methods we often find missing.

Documentation

String

<string>.isURI() - returns Bool true if string is a valid URI <string>.capitalize() - returns a new capitalized string ("hello world".capitalize() => "Hello world")

Array

<array>.first - is a readonly property which returns first element of an array or undefined if array is empty

<array>.last - is a readonly property which returns last element of an array or undefined if array is empty

<array>.empty() - returns Bool true if array is empty, otherwise returns false

<array>.deepCopy() - returns a deep copy of an array

<array>.flatten() - flattens an array. Example: [1, [2, 3, [4, 5] ] ].flatten(); // [1, 2, 3, 4, 5]

<array>.head - is a readonly property implementing head of collection concept from functional programming. Returns the first element of an array

<array>.tail - is a readonly property implementing tail of collection concept from functional programming. Returns all but first elements from an array

<array>.dedup([optionalCondition]) - returns array with no duplicated elements, if there where any. This function uses strict equal to compare elements by default. If custom equal condition needs to be used - a "condition" function may be passed as a parameter.

This method expects optional condition function to have format:

(element1, element2) => <return true for duplicated elements>

Object

<anyObject>.deepCopy() - returns a deep copy of an object

Object.isUndefined(instance) - a "static" method. Returns Bool true if instance is undefined

Math

Math.roundTo(number, decimals) - rounds float point number to specified decimals using common mathematical rounding rules

Function

<any function>.throttle(rate, [optionalContext]) - throttles function at rate. Other words, prevent function to be called more frequent then rate parameter specifies. optionalContext - may be used to pass this to throttled function.

<any function>.debounce(wait, [optionalContext]) - "debounces" function call. Other words, it makes sure that actual call is made at least after wait milliseconds after last call attempt, preventing multiple frequent calls. optionalContext - may be used to pass this to debounced function.

You can’t perform that action at this time.