@simpill/utils
v2.0.0
Published
Root package for simpill-utils: utils installed from npm (@simpill/<name>.utils). @simpill/acp-llm-cli is a git submodule (not a root dependency until published to npm). Run npm install at repo root. Use npm run use:local to point at local utils/ for deve
Maintainers
Readme
Philosophy
- 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
Install everything (recommended):
npm install @simpill/utilsOr install only what you need:
npm install @simpill/env.utils @simpill/array.utils @simpill/async.utilsUsage
Modern 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";Packages
| 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
- CONTRIBUTING.md — How to add and maintain packages in this monorepo.
License
ISC
