Skip to content

damianofusco/awesome-micro-npm-packages

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 

Repository files navigation

Awesome Micro npm Packages Awesome

A curated list of small, focused Node.js modules.

Inspired by the awesome list thing.

Articles

Modules

Array

  • is-sorted - A small module to check if an Array is sorted.
  • array-first - Get the first element or first n elements of an array.
  • array-last - Return the last element in an array.
  • arr-flatten - Recursively flatten an array or arrays.
  • dedupe - Remove duplicates from an array.
  • array-range - Creates a new array with given range.
  • arr-diff - Returns an array with only the unique values from the first array, by excluding all values from additional arrays using strict equality for comparisons.
  • filled-array - Returns an array filled with the specified input
  • map-array - Map object keys and values into an array.
  • in-array - Return true if any of passed values exists in array - faster than using indexOf.
  • unordered-array-remove - Efficiently remove an element from an unordered array without doing a splice.

String

Date & Time

  • pretty-ms - Convert milliseconds to a human readable string: 1337000000 → 15d 11h 23m 20s.
  • hirestime - A wrapper around the built-in high resolution timer which simplifies the calculation of timestamps.
  • periods - Defined time-periods constants for Javascript, in milliseconds.
  • fecha - Javascript Date formatting and parsing.
  • akamai-time-reference - Get reference time using Akamai's time reference service.

Object

  • map-obj - Map object keys and values into a new object.
  • filter-obj - Filter object keys and values into a new object.
  • object-values - Get the values of an object.
  • object-pairs - Turn an object into list of [key, value] pairs for mapping, iterating or other purposes.
  • zipmap - Returns a map with the keys mapped to the corresponding vals. zipmap also accepts a single value of objects or pairs.
  • just-pluck - Pluck without the madness.
  • deep-equal - Node's assert.deepEqual() algorithm as a standalone module.
  • deep-assign - Recursive Object.assign().
  • set-value - Create nested values and any intermediaries dot notation ('a.b.c') paths.
  • get-value - Use property paths (a.b.c) to get a nested value from an object.
  • has-value - Returns true if a value exists, false if empty. Works with deeply nested values using dot notation ('a.b.c') paths.
  • has-key-deep - Deep-search objects for keys. Keys can be searched by providing an array of keys, or using a dot-notiation.
  • flatkeys - Flatten object key hierarchies into a list of strings using a custom separator.
  • flatten-obj - Converts an object literal with deeply nested nodes to a simple key/value object.
  • is-empty-object - Check if an object is empty.
  • stringify-object - Stringify an object/array like JSON.stringify just without all the double-quotes.
  • sorted-object - Returns a copy of an object with its keys sorted.
  • static-props - Defines static object attributes using Object.defineProperties

Function

  • compose-function - Compose a new function from smaller functions `f(g(x)).
  • curry - A curry function without anything too clever.
  • once - Run a function exactly one time.
  • deep-bind - Bind a context to all functions in an object, including deeply nested functions.
  • identity-function - Always return the input argument.
  • mem - An optimization technique used to speed up consecutive function calls by caching the result of calls with identical input.

Math

  • is-number - Returns true if the value is a number.

Stream

  • through2 - Tiny wrapper around Node streams2 Transform to avoid explicit subclassing noise.
  • through2-filter - A through2 to create an Array.prototype.filter analog for streams.
  • through2-map - A through2 to create an Array.prototype.map analog for streams.
  • stream-spigot - A readable stream generator, useful for testing or converting simple functions into Readable streams.
  • concat-stream - writable stream that concatenates strings or data and calls a callback with the result.
  • JSONStream - streaming JSON.parse and stringify

Promise

  • pify - Promisify a callback-style function.
  • promise-all-props - Like Promise.all but for object properties.
  • sleep-promise - Resolves a promise after a specified delay.
  • is-promise - Test whether an object looks like a promises-a+ promise.

File System

  • rimraf - A deep deletion module for node (like rm -rf).
  • mkdirp - Recursively mkdir, like mkdir -p.
  • du - A simple JavaScript implementation of du -sb.
  • file-size - Lightweight filesize to human-readable / proportions w/o dependencies.
  • tmp - Temporary file and directory creator for node.js.
  • fs-promise - Node fs methods as Promise/A+ (optional fs-extra, graceful-fs).

Browser

Semver

  • semver - The semantic version parser used by npm.
  • semver-max - Find maximum (or minimum) version according to semver.
  • semver-first-satisfied - Find minimum in an array of version that satisfies a semver range.

CLI

  • abbrev - Calculate the set of unique abbreviations for a given set of strings.
  • glob - Glob functionality for node.js.
  • username - Get the username of the current user.

Module management

  • pkg-conf - Get namespaced config from the closest package.json.
  • normalize-pkg - Normalize values in package.json to improve compatibility, programmatic readability and usefulness with third party libs.

Generators

  • is-generator - Check whether a given value is a generator function.

Other

  • node-uuid - Generate RFC-compliant UUIDs in JavaScript.
  • node-mime - Comprehensive MIME type mapping API based on mime-db module.
  • not-defined - Is a shortcut to typeof foo === 'undefined'.

Related lists

This section contains awesome lists that you may find useful if you use or write small NPM modules.

  • awesome-nodejs - A curated list of delightful Node.js packages and resources.
  • awesome-npm - Awesome npm resources and tips.

Small modules rockstars to follow

These people are used to develop awesome NPM modules that follows the single responsibility philosophy. Follow them to discover new great modules:

Sindre Sorhus James Halliday Eugene Sharygin Isaac Z. Schlueter Jon Schlinkert Dominic Tarr
Sindre Sorhus James Halliday Eugene Sharygin Isaac Z. Schlueter Jon Schlinkert Dominic Tarr
Rod Vagg Max Ogden
Rod Vagg Max Ogden

Contribute

Contributions welcome! Read the contribution guidelines first.

License

CC0

To the extent possible under law, Andrea Parodi has waived all copyright and related or neighboring rights to this work.

About

A curated list of small, focused npm packages.

Resources

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published