[![npm](https://img.shields.io/npm/v/@graubnla/helpers.svg)](https://www.npmjs.com/package/@graubnla/helpers) [![Travis](https://img.shields.io/travis/lgraubner/helpers.svg)](https://travis-ci.org/lgraubner/helpers)


306.0.03 years ago4 years agoMinified + gzip package size for @graubnla/helpers in KB


JavaScript helper functions

npm Travis

Loose collection of helper functions with expressiveness and minimal overhead in mind.

Table of contents


basename(str[, sep])

Returns string

Returns basename of a path.

import basename from '@graubnla/helpers/basename';

const path = 'this/is/a/path';

basename(path); // "path"


Returns Array

Clones an array.

import cloneArray from '@graubnla/helpers/cloneArray';

const arr = ['monkey', 'lion'];

const clonedArr = cloneArray(arr);


Returns Object

Clones an object.

import cloneObject from '@graubnla/helpers/cloneObject';

const obj = { animal: 'monkey' };

const clonedObj = cloneObject(obj);

formatNumber(num[, precision, decimal, thousand])

Returns string

Formats number.

import formatNumber from '@graubnla/helpers/formatNumber';

const num = 3256.1415;

console.log(formatNumber(num, 2, ',', '.')); // "3.256,14"


Returns string

Extracts file extension from filename string. Also works with path and url.

import getFileExtension from '@graubnla/helpers/getFileExtension';

const ext = getFileExtension('image.png');
console.log(ext); // "png"


Returns boolean

Detect if given value is an object.

import isObject from '@graubnla/helpers/isObject';

console.log(isObject({})); // true

mergeDeep(target, source)

Returns Object

Deep merges two objects. Mutates the target object.

import mergeDeep from '@graubnla/helpers/mergeDeep';

const target = { foo: { bar: 'baz' } };
const source = { foo: { bar: 2 }, num: 3 };

console.log(mergeDeep(target, source)); // { foo: { bar: 2 }, num: 3 }


Returns undefined

No operation function. Does nothing.

import noop from '@graubnla/helpers/noop';

noop(); // undefined

pipe(fn1, fn2[, fn3, ...])

Pipe argument through multiple functions.

import pipe from '@graubnla/helpers/pipe';

const process = pipe(fn1, fn2, fn3);
const result = process(arg);


Returns string

Pretty prints JSON string.

import prettyJSON from '@graubnla/helpers/prettyJSON';

const obj = {
  animal: 'monkey',
  num: 2

// "{
//   "animal": "monkey",
//   "num": 2
// }"

random(min, max)

Returns number

Creates random number between (including) min and max.

import random from '@graubnla/helpers/random';

console.log(random(1, 100)); // random


Returns string

Removes trailing slashes from a string.

import removeTrailinSlash from '@graubnla/helpers/removeTrailinSlash';

const newStr = removeTrailingSlash('/animal/monkey/');
console.log(newStr); // "/animal/monkey"

round(num[, precision])

Returns number

Round numbers with given precision.

import round from '@graubnla/helpers/round';

console.log(round(3.1415, 2)); // 3.14


Returns string

Strip all html like tags from string.

import stripTags from '@graubnla/helpers/stripTags';

const str = '<p>I like monkeys.</p>';

console.log(stripTags(str)); // I like monkeys.


Returns string

Generate percentage string of given input.

import percentage from '@graubnla/helpers/percentage';

const num = 0.12;

console.log(percentage(num)); // "12%"


Returns string

Create slug from string. Transforms to lower-case, remove whitespace, and special chars.

import slug from '@graubnla/helpers/slug';

const str = 'I like monkeys.';

console.log(slug(str)); // i-like-monkeys


Returns number

Creates a millisecond timestamp of now.

import timestamp from '@graubnla/helpers/timestamp';

console.log(timestamp()); // 1513173869345



Returns Node

Shortcut for document.querySelector. Returns first matching element or null.

import $ from '@graubnla/helpers/dom/$';

const el = $('.element');


Returns NodeList

Shortcut for document.querySelectorAll.

import $$ from '@graubnla/helpers/dom/$$';

const els = $$('.element');


Return Object

Returns top and left offset of an element relative to the document.

import offset from '@graubnla/helpers/dom/offset';

const el = document.querySelector('#el');
console.log(offset(el)); // { top: 123, left: 456 }


Executes callback on document ready.

import onReady from '@graubnla/helpers/dom/onReady';

onReady(() => {
  // document ready

scrollTo(dest[, duration, easing])

Scrolls view to specified y value or element position. Accepts duration parameter in milliseconds and an alternate easing function. Uses requestAnimationFrame for performant animation.

import scrollTo from '@graubnla/helpers/dom/scrollTo';

const el = document.getElementById('element');

// scroll to top
scrollTo(0, 500);


MIT © Lars Graubner

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.