Lazy-load and auto-install any npm module through a single namespace. No bundler glue. No dependency list. Just use it.
npm install entirety
// No installs. No imports. Just run. import Entirety from "entirety"; await Entirety.Lodash.camelCase("hello world"); [entirety] installing lodash via npm… → "helloWorld" await Entirety.Axios.get("https://api.github.com/zen"); [entirety] installing axios via npm… → "Non-blocking I/O is better than blocking I/O." await Entirety.use("nanoid").nanoid(); [entirety] installing nanoid via npm… → "V1StGXR8_Z5jdHi6B-myT"
Property access defers to import(). Unused libraries cost exactly zero at runtime.
Missing package? Entirety detects your pm — npm, pnpm, yarn, bun — runs the install, and retries the import. Transparently.
Entirety.Lodash. Entirety.Axios. Or Entirety.use("anything"). Same ergonomics for the whole ecosystem.
import _ from "lodash"; import axios from "axios"; import dayjs from "dayjs"; import { nanoid } from "nanoid"; import { z } from "zod"; // + npm install every one of them // + remember which exports are named // + remember which are default // + remember which need peer deps
Five imports. Five installs. Five shapes to memorize.
import Entirety from "entirety"; // That's the whole import section. await Entirety.Lodash.camelCase(x); await Entirety.Axios.get(url); await Entirety.use("dayjs"); await Entirety.use("nanoid").nanoid(); await Entirety.use("zod").z.string();
One import. One install. Entirety handles the rest on first access.
Works on Node 20+. ESM native. No build step required.
npm install entirety