Pixi’VN
indexClasses

Class: GameWorkerManager

Defined in: src/worker/GameWorkerManager.ts:26

Optional integration point for offloading Pixi'VN's own heavy, pure (no DOM/PixiJS/audio) computations to a Worker the game project registers. Pixi'VN never creates a Worker itself and works exactly as before if none is registered - this is opt-in, not a requirement, so projects that can't or don't want to use Workers (SSR, certain embeds, ...) are unaffected.

The game project owns the Worker instance (so it controls the bundler-specific new Worker(new URL(...), { type: "module" }) call, any CSP/nonce concerns, and whether it exists at all) and just needs its onmessage wired to handleGameWorkerMessage - see that function's doc comment for the worker-side half of this.

Constructors

Constructor

> new GameWorkerManager(): GameWorkerManager

Returns

GameWorkerManager

Accessors

isAvailable

Get Signature

> get static isAvailable(): boolean

Defined in: src/worker/GameWorkerManager.ts:31

Returns

boolean

Methods

clone()

> static clone<T>(value): Promise<T>

Defined in: src/worker/GameWorkerManager.ts:108

Deep-clones value (JSON round-trip, matching createExportableElement) on the registered worker.

Type Parameters

T

T extends object

Parameters

value

T

Returns

Promise<T>


custom()

> static custom<TResult>(kind, payload): Promise<TResult>

Defined in: src/worker/GameWorkerManager.ts:118

Runs the handler a third-party library registered for kind (see registerGameWorkerHandler) on the registered worker, passing it payload. Lets a library built on top of Pixi'VN share this same worker instead of needing one of its own - see that function's doc comment for the worker-side half of this.

Type Parameters

TResult

TResult = unknown

Parameters

kind

string

payload

unknown

Returns

Promise<TResult>


diff()

> static diff(before, after): Promise<Difference[]>

Defined in: src/worker/GameWorkerManager.ts:103

Computes the microdiff difference between before and after on the registered worker.

Parameters

before

object

after

object

Returns

Promise<Difference[]>


register()

> static register(worker): void

Defined in: src/worker/GameWorkerManager.ts:40

Registers the Worker Pixi'VN may use for eligible heavy computations. Replaces any previously registered worker (its still-pending requests are rejected, never left hanging).

Parameters

worker

Worker

Returns

void


restoreDiff()

> static restoreDiff<T>(state, diff): Promise<T>

Defined in: src/worker/GameWorkerManager.ts:98

Applies diff to state on the registered worker (see restoreDiffChanges).

Type Parameters

T

T extends object

Parameters

state

T

diff

Difference[]

Returns

Promise<T>


unregister()

> static unregister(): void

Defined in: src/worker/GameWorkerManager.ts:47

Stops using the registered worker (does not terminate it - the caller owns its lifecycle).

Returns

void

On this page