@lacspace/queue
An in-memory async task queue with a concurrency limit — run up to N async tasks at once and await individual results or the whole drain. Priority ordering, pause/start, clear, onIdle/onEmpty draining, and per-task abort via AbortSignal. A rejected task never stalls the queue. Comparable to p-queue/p-limit but tiny and dependency-free. Isomorphic.
npm i @lacspace/queueUsage
import { createQueue } from "@lacspace/queue";
// run at most 2 tasks at once
const queue = createQueue({ concurrency: 2 });
const results = await Promise.all(
urls.map((u) => queue.add(() => fetch(u).then((r) => r.json()))),
);
// higher priority jumps the line; a rejected task never stalls the queue
queue.add(fetchCritical, { priority: 10 });
console.log(queue.pending, queue.size); // running, waiting
await queue.onIdle(); // resolves when fully drainedExports 3
createQueueAbortErrorQueueClearedErrorKeywords
More in Core Runtime Kit
A tiny structured logger for Node and the browser — leveled JSON logging, child loggers, field redaction and pluggable transports (JSON, pretty, in-memory). A log below the active level costs almost nothing: the record is never even built. Errors serialise automatically; secrets get redacted before they leave the logger. Zero-dependency, isomorphic.
@lacspace/resultTyped, functional error handling — Result<T,E> (Ok/Err) and Option<T> (Some/None) so functions return errors as values instead of throwing. Constructors, guards, map/andThen/match, unwrap variants, trySync/tryAsync to wrap throwing code, and an all() combinator that short-circuits on the first error. Tree-shakeable, zero-dependency, isomorphic.
@lacspace/eventsA fully type-safe event emitter / tiny pub-sub for Node and the browser. Declare an events map (name → payload type) and get compile-time-checked on/emit. A throwing listener never blocks the others (errors are isolated), adding or removing listeners mid-emit is safe, and once/waitFor/onAny round it out. Comparable to mitt or nanoevents but strongly typed. Zero-dependency, isomorphic.