awesome-micro-npm-packages
by parro-it
A curated list of small, focused npm packages.
AI summary
Micro npm packages
A curated collection of small, reusable Node.js modules.
- stars
- 4.6K
- forks
- 461
- watching
- 196
- awesome lists
- 3
- entries
- 149
What's in the list
149 links in 20 sections, with live GitHub stats.activeno commit in 2y
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
array-swap
Swap position of two items in an array
mirrarray
Creates a keymirror object from an array of valid keys
group-array
Group array of objects into lists
array.chunk
Split array/TypedArray to chunks of given size
fast-cartesian
Fast cartesian product
Modules / String
decamelize
Convert a camelized string into a lowercased one with a custom separator: unicornRainbow → unicorn_rainbow
pad-left
Left pad a string with zeros or a specified string
to-camel-case
Convert a string to a camel case
to-capital-case
Convert a string to a capital case
to-constant-case
Convert a string to a constant case
to-dot-case
Convert a string to a dot case
to-no-case
Remove an existing case from a string
to-pascal-case
Convert a string to a pascal case
to-sentence-case
Convert a string to a sentence case
to-snake-case
Convert a string to a snake case
to-space-case
Convert a string to a space case
to-title-case
Convert a string to a title case
node-slug
slugifies even utf-8 chars
rtrim
Strip whitespace - or other characters - from the end of a string
slice.js
Javascript library to enhance String.substring / Array.slice with python slice style
strip-ansi
Strip ANSI escape codes
parse-next-json-value
Parse next JSON value from string allowing extraneous characters after value
pluralize
A very tiny library to pluralize words
Modules / 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
timeago.js
A tiny(~1.7kb) library used to format date with statement
count-days-in-month
Get the number of days in a given month
time-stamp
Get a formatted timestamp
twas
Generate a relative time string (Example: "3 seconds ago")
Modules / 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 ( ) 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 ( ) 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
missing-deep-keys
Returns an array of keys from first object that are missing in second
has-own-property
Check if an object has a local property
merge-objects
Deep-merge two objects. Arrays that are values of the same object key get concatenated
deep-object-diff
Deep diff two JavaScript Objects while preserving the data structure. Including nested structures of Arrays and Objects
Modules / Function
compose-function
Compose a new function from smaller functions
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
throttle-debounce
Throttle/debounce your functions
compose-tiny
A very tiny and fast compose function
Modules / Math
is-even
A good way to tell if a number is even or not (avoids type issues). Uses and under the hood
is-number
Returns if the value is a number
is-odd
A good way to tell if a number is odd or not (avoids type issues). Uses under the hood
easy-math.js
A tiny easy math library including addition, multiplication, subtraction, and division
my-prime
A good way to tell if a number is prime or not
fun-gcd
A tiny math library to get gcd of two numbers using Euclidean algorithm
Modules / 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
through2-map-promise
A small promise-based wrapper for through2
pump
pipe streams together and close all of them if one of them closes
split
Break up a stream and reassemble it so that each line is a chunk
is-stream
Check if something is a Node.js stream
syncthrough
Transform your data as it pass by, synchronously
Modules / Promise
pify
Promisify a callback-style function
promise-all-props
Like 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
Modules / Data Structure
quetie
Just the cutest and tiniest queue/deque implementation!
Modules / 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)
read-git-user
Reads the username and email from and returns it as json object
Modules / Browser
delegate
Lightweight event delegation
- insert-css
Insert a string of css into the head
dom-element-value
DOM element value getter/setter
image-promise
Load one or more s in a Promise
get-media-size
Get the original size of any / / / tags or canvas context
document-ready
Document ready listener for modern browsers
copee
Copy text from browser to clipboard...natively!
Modules / 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
Modules / 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
- minimist
Parse argument options
png-to-ico
Convert png to windows ico format
help-version
Easily handle --help and --version arguments in your CLI application
Modules / 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
Modules / Generators
is-generator
Check whether a given value is a generator function
Modules / Other
uuid
Generate RFC-compliant UUIDs in JavaScript
node-mime
Comprehensive MIME type mapping API based on mime-db module
not-defined
Checks if foo is not defined, i.e. undefined, null, an empty string, array or object
is-fqdn
Check if a string represent a fully qualified domain name
shurley
Parses URLs from user input (with potential typos in protocols, bad copy+paste, etc.) and returns a proper URL
mime-type-check
Get the MIME type of a file by its extension
nanoid
A tiny (130 bytes), secure, URL-friendly, unique string ID generator for JavaScript
Modules / Tools
npm-deprecated-check
Check for deprecated packages and recommend alternative packages
Related lists
awesome-nodejs
A curated list of delightful Node.js packages and resources
awesome-npm
Awesome npm resources and tips
Small modules rockstars to follow
Nothing in this list matches your filter.
Featured in 3 awesome lists
Each link jumps to the spot where the list mentions awesome-micro-npm-packages.