npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

embiggen

v1.0.3

Published

Javascript Embiggenation Engine

Downloads

5

Readme

Embiggen JS

"A noble spirit embiggens the smallest array."

A Javascript library that implements Array.embiggen, enabling you to embiggen an array of any type(s), using a variety of embiggenators.

Usage

Node

import 'embiggen';

Browser

Navigate to the source folder (or clone the repo) and run

npm run build

Then the JS file is available in dist/main.js;

Example

let data = ["data", 12, {test: "true"}, [1, "why?"], 99];
const possiblyEmbiggened = data.embiggen();
if (possiblyEmbiggened !== null) {
	// Then you received a new, muchly embiggened array
} else {
	// Your array was embiggened in place
	if (data.embiggened) {
		// Your array received a property embiggenation
	} else {
		// The data in your array will have been embiggened thusly:
		// - perhaps it was embiggened lengthwise
		// - plausibly it was embiggened in magnitude
		// - :shrug: possible both?
		// - if you passed an optionalEmbiggenatorFn, maybe it also was used on the array??
	}
}

Example outputs

["123", {}, "lol", 123, "B==>"].embiggen()
> [150, '[object Object]', 327, '{', 250]
["123", {}, "lol", 123, "B==>"].embiggen()
> [150, 150, Infinity, '[object Object]', 'loOoOoOoOoOoOl', 'LOL', '{', 15129, 'B========> - - - - -', 'B==>']
["123", {}, "lol", 123, "B==>"].embiggen()
> ['123', '[object Object]', 'loOoOoOoOoOoOl', '{', 250]
["123", {}, "lol", 123, "B==>"].embiggen()
> ['123', '123', {…}, {…}, 'lol', 'lol', 123, 123, 'B==>', 'B==>']
["123", {}, "lol", 123, "B==>"].embiggen()
null // embiggened in-place

optionalEmbiggenatorFn

Array.embiggen takes an optionalEmbiggenatorFn, which potentially receives the entire (possibly already embiggenated) array as an argument, and can then attempt to embiggen it - and if it errors out for any reason, this exception will be caught and duly ignored.

Advanced Usage

Assuming your life is just too stressful to cope with the unkown, and you wish to control the embiggenation, I suppose you could force the embiggenation types that you desire.

Array.embiggen(optionalEmbiggenatorFn, inPlace=null, embiggenLength=null, embiggenMagnitude=null, embiggenArrayProperty=null)

Also it is possible to alter the globally exported embiggenator functions:

In a browser context replace global with window

global._lengthEmbiggenators = lengthEmbiggenators;
global._magnitudeEmbiggenators = magnitudeEmbiggenators;

Length Embiggenators

As per the name, length embiggenators will impact the length of an array in a way that conceivably embiggens it. These take the entire array as input, and are expected to alter the array in place and return it (extending it is obviously fine).

global._lengthEmbiggenators [...fn]

Magnitude Embiggenators

These are exported as an object, by data type, and act on a single piece of data in the array.

global._magnitudeEmbiggenators = {
	"string": [...fn],
	"number": [...fn],
	"object": [...fn],
}

These functions should be able to handle all input of their type. Nested Arrays are simply embiggened recursively.

Happy embiggening!