A curated list of small, focused Node.js modules.
Inspired by the 317682⭐
27481🍴
awesome) list thing.
?⭐
?🍴
One-line node modules)1538⭐
86🍴
Module best practices)- Evaluating Packages Part 1 - Turn to community
- Evaluating Packages Part 2 - Review repository
- 🌎 Small modules: it’s not quite that simple
- 🌎 In Defense of Hyper Modular JavaScript
- Tiny npm package: Guidelines to create a Node.js module following the small package philosophy
- 🌎 The cost of small modules
23⭐
32🍴
is-sorted) - A small module to check if an Array is sorted.11⭐
14🍴
array-first) - Get the first element or first n elements of an array.35⭐
14🍴
array-last) - Return the last element in an array.59⭐
16🍴
arr-flatten) - Recursively flatten an array or arrays.24⭐
7🍴
dedupe) - Remove duplicates from an array.25⭐
6🍴
array-range) - Creates a new array with given range.45⭐
18🍴
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.43⭐
5🍴
filled-array) - Returns an array filled with the specified input4⭐
0🍴
map-array) - Map object keys and values into an array.16⭐
1🍴
in-array) - Return true if any of passed values exists in array - faster than using indexOf.117⭐
8🍴
unordered-array-remove) - Efficiently remove an element from an unordered array without doing a splice.7⭐
4🍴
array-swap) - Swap position of two items in an array.5⭐
2🍴
mirrarray) - Creates a keymirror object from an array of valid keys.61⭐
14🍴
group-array) - Group array of objects into lists.11⭐
0🍴
array.chunk) - Split array/TypedArray to chunks of given size.66⭐
5🍴
fast-cartesian) - Fast cartesian product.
235⭐
25🍴
decamelize) - Convert a camelized string into a lowercased one with a custom separator: unicornRainbow → unicorn_rainbow.44⭐
8🍴
pad-left) - Left pad a string with zeros or a specified string.36⭐
3🍴
to-camel-case) - Convert a string to a camel case.11⭐
2🍴
to-capital-case) - Convert a string to a capital case.4⭐
3🍴
to-constant-case) - Convert a string to a constant case.5⭐
0🍴
to-dot-case) - Convert a string to a dot case.17⭐
5🍴
to-no-case) - Remove an existing case from a string.3⭐
0🍴
to-pascal-case) - Convert a string to a pascal case.6⭐
0🍴
to-sentence-case) - Convert a string to a sentence case.26⭐
2🍴
to-snake-case) - Convert a string to a snake case.6⭐
3🍴
to-space-case) - Convert a string to a space case.18⭐
6🍴
to-title-case) - Convert a string to a title case.1080⭐
91🍴
node-slug) - slugifies even utf-8 chars.0⭐
2🍴
rtrim) - Strip whitespace - or other characters - from the end of a string.34⭐
1🍴
slice.js) - Javascript library to enhance String.substring / Array.slice with python slice style.392⭐
37🍴
strip-ansi) - Strip ANSI escape codes.493⭐
51🍴
striptags) - An implementation of PHP's strip_tags in Node.js.1⭐
1🍴
parse-next-json-value) - Parse next JSON value from string allowing extraneous characters after value.1⭐
0🍴
pluralize) - A very tiny library to pluralize words
1058⭐
63🍴
pretty-ms) - Convert milliseconds to a human readable string: 1337000000 → 15d 11h 23m 20s.16⭐
3🍴
hirestime) - A wrapper around the built-in high resolution timer which simplifies the calculation of timestamps.1⭐
0🍴
periods) - Defined time-periods constants for Javascript, in milliseconds.2066⭐
124🍴
fecha) - Javascript Date formatting and parsing.3⭐
1🍴
akamai-time-reference) - Get reference time using Akamai's time reference service.5257⭐
414🍴
timeago.js) - A tiny(~1.7kb) library used to format date with*** time ago
statement.1⭐
0🍴
count-days-in-month) - Get the number of days in a given month.111⭐
17🍴
time-stamp) - Get a formatted timestamp.250⭐
10🍴
twas) - Generate a relative time string (Example: "3 seconds ago")
201⭐
41🍴
map-obj) - Map object keys and values into a new object.98⭐
8🍴
filter-obj) - Filter object keys and values into a new object.27⭐
5🍴
object-values) - Get the values of an object.2⭐
0🍴
object-pairs) - Turn an object into list of [key, value] pairs for mapping, iterating or other purposes.4⭐
1🍴
zipmap) - Returns a map with the keys mapped to the corresponding vals. zipmap also accepts a single value of objects or pairs.11⭐
2🍴
just-pluck) - Pluck without the madness.770⭐
110🍴
deep-equal) - Node's assert.deepEqual() algorithm as a standalone module.247⭐
37🍴
deep-assign) - Recursive Object.assign().271⭐
42🍴
set-value) - Create nested values and any intermediaries dot notation ('a.b.c'
) paths.245⭐
26🍴
get-value) - Use property paths (a.b.c) to get a nested value from an object.26⭐
7🍴
has-value) - Returns true if a value exists, false if empty. Works with deeply nested values using dot notation ('a.b.c'
) paths.1⭐
2🍴
has-key-deep) - Deep-search objects for keys. Keys can be searched by providing an array of keys, or using a dot-notiation.3⭐
1🍴
flatkeys) - Flatten object key hierarchies into a list of strings using a custom separator.21⭐
4🍴
flatten-obj) - Converts an object literal with deeply nested nodes to a simple key/value object.11⭐
4🍴
is-empty-object) - Check if an object is empty.307⭐
47🍴
stringify-object) - Stringify an object/array like JSON.stringify just without all the double-quotes.35⭐
4🍴
sorted-object) - Returns a copy of an object with its keys sorted.4⭐
0🍴
static-props) - Defines static object attributes usingObject.defineProperties
0⭐
1🍴
missing-deep-keys) - Returns an array of keys from first object that are missing in second.3⭐
0🍴
has-own-property) - Check if an object has a local property.2⭐
1🍴
merge-objects) - Deep-merge two objects. Arrays that are values of the same object key get concatenated.1029⭐
87🍴
deep-object-diff) - Deep diff two JavaScript Objects while preserving the data structure. Including nested structures of Arrays and Objects.
57⭐
3🍴
compose-function) - Compose a new function from smaller functionsf(g(x))
.314⭐
19🍴
curry) - A curry function without anything too clever.221⭐
29🍴
once) - Run a function exactly one time.8⭐
2🍴
deep-bind) - Bind a context to all functions in an object, including deeply nested functions.?⭐
?🍴
identity-function) - Always return the input argument.1075⭐
52🍴
mem) - An optimization technique used to speed up consecutive function calls by caching the result of calls with identical input.1012⭐
106🍴
throttle-debounce) - Throttle/debounce your functions.46⭐
2🍴
compose-tiny) - A very tiny and fast compose function.
200⭐
10🍴
is-even) - A good way to tell if a number is even or not (avoids type issues). Usesis-odd
andis-number
under the hood.256⭐
48🍴
is-number) - Returnstrue
if the value is a number.293⭐
73🍴
is-odd) - A good way to tell if a number is odd or not (avoids type issues). Usesis-number
under the hood.7⭐
1🍴
easy-math.js) - A tiny easy math library including addition, multiplication, subtraction, and division.2⭐
0🍴
my-prime) - A good way to tell if a number is prime or not.1⭐
0🍴
fun-gcd) - A tiny math library to get gcd of two numbers using Euclidean algorithm
1899⭐
106🍴
through2) - Tiny wrapper around Node streams2 Transform to avoid explicit subclassing noise.35⭐
4🍴
through2-filter) - A through2 to create an Array.prototype.filter analog for streams.70⭐
2🍴
through2-map) - A through2 to create an Array.prototype.map analog for streams.15⭐
1🍴
stream-spigot) - A readable stream generator, useful for testing or converting simple functions into Readable streams.575⭐
71🍴
concat-stream) - writable stream that concatenates strings or data and calls a callback with the result.1910⭐
163🍴
JSONStream) - streaming JSON.parse and stringify3⭐
0🍴
through2-map-promise) - A small promise-based wrapper for through2.903⭐
58🍴
pump) - pipe streams together and close all of them if one of them closes.347⭐
39🍴
split) - Break up a stream and reassemble it so that each line is a chunk.111⭐
20🍴
is-stream) - Check if something is a Node.js stream.101⭐
3🍴
syncthrough) - Transform your data as it pass by, synchronously.
1503⭐
67🍴
pify) - Promisify a callback-style function.10⭐
2🍴
promise-all-props) - LikePromise.all
but for object properties.86⭐
9🍴
sleep-promise) - Resolves a promise after a specified delay.281⭐
32🍴
is-promise) - Test whether an object looks like a promises-a+ promise.
111⭐
2🍴
quetie) - Just the cutest and tiniest queue/deque implementation!
5581⭐
251🍴
rimraf) - A deep deletion module for node (like rm -rf).?⭐
?🍴
mkdirp) - Recursively mkdir, like mkdir -p.29⭐
11🍴
du) - A simple JavaScript implementation of du -sb.233⭐
11🍴
file-size) - Lightweight filesize to human-readable / proportions w/o dependencies.731⭐
93🍴
tmp) - Temporary file and directory creator for node.js.170⭐
13🍴
fs-promise) - Node fs methods as Promise/A+ (optional fs-extra, graceful-fs).3⭐
1🍴
read-git-user) - Reads the username and email from.gitconfig
🔧 and returns it as json object.
183⭐
30🍴
delegate) - Lightweight event delegation.?⭐
?🍴
insert-css) - Insert a string of css into the head6⭐
0🍴
dom-element-value) - DOM element value getter/setter.147⭐
16🍴
image-promise) - Load one or more<img>
s in a Promise.12⭐
0🍴
get-media-size) - Get the original size of anyimg
/video
/svg
/canvas
tags or canvas context.59⭐
3🍴
document-ready) - Document ready listener for modern browsers.143⭐
5🍴
copee) - Copy text from browser to clipboard...natively!
5025⭐
487🍴
semver) - The semantic version parser used by npm.3⭐
0🍴
semver-max) - Find maximum (or minimum) version according to semver.2⭐
0🍴
semver-first-satisfied) - Find minimum in an array of version that satisfies a semver range.
164⭐
29🍴
abbrev) - Calculate the set of unique abbreviations for a given set of strings.8432⭐
477🍴
glob) - Glob functionality for node.js.141⭐
17🍴
username) - Get the username of the current user.?⭐
?🍴
minimist) - Parse argument options.160⭐
21🍴
png-to-ico) - Convert png to windows ico format.5⭐
0🍴
help-version) - Easily handle --help and --version arguments in your CLI application
119⭐
14🍴
pkg-conf) - Get namespaced config from the closest package.json.18⭐
2🍴
normalize-pkg) - Normalize values in package.json to improve compatibility, programmatic readability and usefulness with third party libs.
15⭐
5🍴
is-generator) - Check whether a given value is a generator function.
14449⭐
892🍴
uuid) - Generate RFC-compliant UUIDs in JavaScript.2143⭐
315🍴
node-mime) - Comprehensive MIME type mapping API based on mime-db module.5⭐
3🍴
not-defined) - Checks if foo is not defined, i.e. undefined, null, an empty string, array or object.21⭐
1🍴
is-fqdn) - Check if a string represent a fully qualified domain name.6⭐
1🍴
shurley) - Parses URLs from user input (with potential typos in protocols, bad copy+paste, etc.) and returns a proper URL.5⭐
1🍴
mime-type-check) - Get the MIME type of a file by its extension.24082⭐
785🍴
nanoid) - A tiny (130 bytes), secure, URL-friendly, unique string ID generator for JavaScript
24⭐
0🍴
npm-deprecated-check) - Check for deprecated packages and recommend alternative packages.
This section contains awesome lists that you may find useful if you use or write small NPM modules.
57318⭐
5808🍴
awesome-nodejs) - A curated list of delightful Node.js packages and resources.4453⭐
256🍴
awesome-npm) - Awesome npm resources and tips.
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 |
Rod Vagg | Max Ogden | Brian Woodward |
Contributions welcome! Read the contribution guidelines first.
To the extent possible under law, Andrea Parodi has waived all copyright and related or neighboring rights to this work.
4566⭐
462🍴
parro-it/awesome-micro-npm-packages)