Skip to content

Core API

The core package owns config validation, the seeded PRNG, event emission, presets, and the browser-side chaos engine used by every adapter.

export {
ChaosMaker,
ChaosConfigError,
validateConfig,
ChaosEventEmitter,
ChaosConfigBuilder,
presets,
createPrng,
generateSeed,
SW_BRIDGE_SOURCE,
};
class ChaosMaker {
constructor(config: ChaosConfig);
start(): void;
stop(): void;
getSeed(): number;
getLog(): ChaosEvent[];
clearLog(): void;
on(type: ChaosEventType | '*', listener: ChaosEventListener): void;
off(type: ChaosEventType | '*', listener: ChaosEventListener): void;
}

Most users should call a framework adapter instead of constructing ChaosMaker directly.

function createPrng(seed?: number): { random: () => number; seed: number };
function generateSeed(): number;

generateSeed() is the only intentional Math.random() use in core. All chaos decisions use createPrng(seed).random.

import { installChaosSW } from '@chaos-maker/core/sw';
installChaosSW({ source: 'message' });

The main package also exports SW_BRIDGE_SOURCE for adapters. Most users should prefer adapter helpers such as injectSWChaos() instead of calling the bridge directly.