Appearance
@idlekitjs/utils
Shared utility helpers used by packages and games.
What it provides
clamp(value, min, max).finiteOr(value, fallback).positiveOr(value, fallback).FrameRateMeter.
When to use it
Use @idlekitjs/utils for small platform-agnostic helpers that have no engine, DOM, browser or gameplay dependency. It is intentionally small and safe for any package to import.
Basic usage
ts
import { FrameRateMeter, clamp, finiteOr, positiveOr } from "@idlekitjs/utils";
const speed = positiveOr(config.speed, 1);
const progress = clamp(elapsed / duration, 0, 1);
const budget = finiteOr(inputBudget, 0);
const fps = new FrameRateMeter();
fps.sample(1000);
fps.sample(1016);Boundaries
@idlekitjs/utils imports no other IdleKit package and does not touch browser globals. Browser/display helpers such as devicePixelRatio live in @idlekitjs/browser. Engine behavior belongs in @idlekitjs/core, and gameplay behavior belongs in @idlekitjs/mechanics.