0.0.3 • Published 10 years ago

bb-utils v0.0.3

Weekly downloads
3
License
ISC
Repository
github
Last release
10 years ago

Ben's miscellaneous utilities

A collection of utility functions for Node.js (or Javascript generally).

Usage

Install:

npm install --save bb-utils

Run tests:

npm test

Modify:

Source is in coffeescript, located in src dir.

Coffee is compiled to JS via:

./node_modules/coffee-script/bin/coffee -c -b -o lib src/*.coffee

(also as npm prepublish script)

Functions

General

  • requireFresh: Wipe a module from the module cache and reload it.

  • callbackOrThrow: Pass an error along, either to a callback, or w/ an exception.

  • callbackOrLog: Tamer version of callbackOrThrow, this passes an error to a callback, or to console.error.

  • getStack: Get a stack trace as a string.

Objects

  • convertNumbersAndBooleans: Given an object, convert numeric strings to numbers, and convert boolean strings to booleans. With variable recursion depth and key patterns to ignore.

  • textToObject: For parsing flat-text config files, converts each line to a key:value in the returned object, with variable separator.

  • traverse: Get a value from an object, by traversing the object with a traversal string, separated by periods. Also handles arrays. (e.g. traverse(obj, 'x.y.z').)

  • traverseSet: Similar to traverse, this sets a value using a traversal path. Creates any missing pieces in the chain (as sub-objects). Handles arrays if they already exist, but won't create a new array.

Strings

  • pad: Pad an integer to a number of characters. (e.g. pad(1, 3) => '001')

  • guid: Generate a GUID in 8-4-4-4-12 format.

  • numericGuid: Like guid, but all numbers, not starting with 0.

  • pathify: Convert a string to a filename- or URL-friendly string.

  • printf: Very simple string interpolator.

  • printfPlural: Interpolation with single/plural handling.

  • sumAsciiStringToNum: Turn a string into a number, by adding together the ascii value of each char. Useful for hash ring algorithms.

Numbers

  • probability: Get a boolean given a probability (between 0 and 1).

  • isNumeric: Numeric test (numbers or numeric strings). Checks value not type (unlike _.isNumber).

Async

  • asyncSeriesTap: Addon to async, run a named series flow (key:fn style) with a beforeEach() and afterEach() callback, each getting (name, fn). Useful for debugging async flows or in tests.

  • waitForSomething: Wait for a checkFn callback to return true, with variable interval, timeout, and message.

  • debounceAfter: Combination of underscore/lodash's _.debounce and _.after, fire something after it has occured N times in M milliseconds.

URLs

  • resolveUrl: Join an array into a relative url, similar to path.resolve().

  • compareUrls: Check if two URLs are the same, optionally accounting for protocol, port, host, etc.

Arrays

  • startArrayWith and endArrayWith: Given two arrays, pull the elements in a 2nd array to the start or end of the first one.

Dates

  • maxDate and minDate: Given N dates (UTC strings or date objects), get the most recent or oldest.

Files

  • parsePath: Given a file path, return a hash with dir, filename, extension.

  • md5File: Get md5 hash of a file, by path.

0.0.3

10 years ago

0.0.2

10 years ago

0.0.1

10 years ago