Skip to content

@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.