Lightweight, type-safe TypeScript utility packages for modern JavaScript and Node.js.
Install • Packages • Usage • Contributing
- Minimal — One job per package, few dependencies.
- Type-safe — TypeScript strict mode, no
any. - Tested — 80%+ coverage; shared style and tooling.
Most packages live in this repo and are published under the @simpill scope on npm. @simpill/acp-llm-cli is included as a git submodule at utils/@simpill-acp-llm-cli.utils/ (source).
Clone with submodules:
git clone --recurse-submodules https://github.com/SkinnnyJay/simpill-utils.git
# or, after clone:
git submodule update --init --recursiveInstall everything (recommended):
npm install @simpill/utilsOr install only what you need:
npm install @simpill/env.utils @simpill/array.utils @simpill/async.utilsModern TypeScript (CommonJS builds today): import from the package(s) you installed.
import { getEnvString } from "@simpill/env.utils";
import { unique, chunk } from "@simpill/array.utils";
import { delay, retry } from "@simpill/async.utils";Subpath exports (client / server / shared) when a package supports them:
import { getEdgeString } from "@simpill/env.utils/client";
import { getEnvString } from "@simpill/env.utils/server";Type-only imports:
import type { AppError } from "@simpill/errors.utils";| Package | Description |
|---|---|
| @simpill/acp-llm-cli | ACP LLM CLI harness (git submodule) |
| @simpill/adapters.utils | Adapter helpers, logger and cache adapter interfaces |
| @simpill/algorithms.utils | Merge sort, quick sort, binary search, lower/upper bound |
| @simpill/annotations.utils | Typed metadata store and annotation helpers |
| @simpill/api.utils | Typed API client, Zod validation, handler registry, middleware |
| @simpill/array.utils | unique, chunk, compact, groupBy, sortBy, partition, zip |
| @simpill/async.utils | retry, delay, raceWithTimeout, Semaphore |
| @simpill/cache.utils | LRU map, TTL cache, memoize |
| @simpill/collections.utils | LinkedList, Queue, Stack, LRU/TTL, MultiMap, BiMap |
| @simpill/crypto.utils | Hash, randomBytes, timing-safe compare (Node) |
| @simpill/data.utils | validate, prepare, lifecycle, extend, config |
| @simpill/env.utils | Type-safe env vars (Node and Edge) |
| @simpill/enum.utils | getEnumValue, isValidEnumValue, EnumHelper |
| @simpill/errors.utils | AppError, error codes, serializeError |
| @simpill/events.utils | PubSub, observer, typed event emitter |
| @simpill/factories.utils | createFactory, singletonFactory, errorFactory |
| @simpill/file.utils | readFileUtf8, readFileJson, writeFile, ensureDir (Node) |
| @simpill/function.utils | debounce, throttle, once, pipe, compose |
| @simpill/http.utils | Fetch with timeout/retry, typed HTTP client |
| @simpill/logger.utils | Structured logging with correlation context |
| @simpill/middleware.utils | Middleware types, correlation ID middleware |
| @simpill/misc.utils | singleton, debounce, throttle, LRU, polling, once, memoize |
| @simpill/nextjs.utils | Safe server actions, route helpers, request context |
| @simpill/number.utils | clamp, roundTo, toInt/Float, isInRange, lerp, sum, avg |
| @simpill/object.utils | pick, omit, merge, get/set by path, guards |
| @simpill/observability.utils | Correlation middleware, request context, logger |
| @simpill/patterns.utils | Result/Either, strategySelector, pipeAsync |
| @simpill/protocols.utils | HTTP/correlation/env protocol constants and types |
| @simpill/react.utils | useLatest, createSafeContext, useStableCallback |
| @simpill/request-context.utils | AsyncLocalStorage requestId, traceId |
| @simpill/resilience.utils | Circuit breaker, rate limiter, bulkhead, jitter |
| @simpill/socket.utils | Reconnecting WebSocket client with heartbeat |
| @simpill/string.utils | Formatting, casing, trim, slugify |
| @simpill/test.utils | Test patterns, faker, enricher, runner helpers |
| @simpill/time.utils | getUnixTimeStamp, add* (days/hours), diff, interval manager |
| @simpill/token-optimizer.utils | Token cleaning, strategies, telemetry |
| @simpill/uuid.utils | generate (v1/v4/v5), validate, isUUID, parseUUID |
| @simpill/zod.utils | Schema helpers, safe-parse, transforms, OpenAPI metadata |
| @simpill/zustand.utils | Store factory, persist, devtools, slices |
Source: github.com/SkinnnyJay/simpill-utils
- CONTRIBUTING.md — How to add and maintain packages in this monorepo.
ISC
