Skip to content

Class: ChoicekitEngineBuilder<TGenerics, TArgs>

Class: ChoicekitEngineBuilder<TGenerics, TArgs>

Section titled “Class: ChoicekitEngineBuilder<TGenerics, TArgs>”

Defined in: engine/builder.ts:33

To enforce type safety and work around typescript limitations with advanced generics, a builder for the engine is more convenient.

If you need a reset builder, simply instantiate a new instance.

TGenerics extends ChoicekitEngineGenerics

TArgs extends ChoicekitEngineArguments = ChoicekitEngineArguments<TGenerics>

  • BuilderMethods

new ChoicekitEngineBuilder<TGenerics, TArgs>(): ChoicekitEngineBuilder<TGenerics, TArgs>

ChoicekitEngineBuilder<TGenerics, TArgs>

build(): Promise<ChoicekitEngine<TGenerics>>

Defined in: engine/builder.ts:134

Use the given configuration to create a new typesafe engine for use

Promise<ChoicekitEngine<TGenerics>>


withClasses(…classes): ChoicekitEngineBuilder<TGenerics>

Defined in: engine/builder.ts:89

A list of compatible class constructors to allow userland-classes to be cloned and persisted without issue

TArgs["classes"]

ChoicekitEngineBuilder<TGenerics>


withConfig(config): ChoicekitEngineBuilder<TGenerics>

Defined in: engine/builder.ts:96

Special Choicekit configuration

TArgs["config"]

ChoicekitEngineBuilder<TGenerics>


withMigrators(migrations): ChoicekitEngineBuilder<TGenerics>

Defined in: engine/builder.ts:103

Add save migrations for to update older saves

TArgs["migrations"]

ChoicekitEngineBuilder<TGenerics>


withName<TName>(name): ChoicekitEngineBuilder<TGenerics & object>

Defined in: engine/builder.ts:54

Set the engine name.

Multiple engines with the same name share the same save data.

TName extends string

TName

ChoicekitEngineBuilder<TGenerics & object>


withPassages<TPassage>(…passages): ChoicekitEngineBuilder<TGenerics & object>

Defined in: engine/builder.ts:80

Add the crucial initial set of pasasges, where the first element is the starting passage.

If the tags / name / data type is too strict, just cast a string entry to the desired widened type using as like:

TPassage extends Readonly<{ data: unknown; name: string; tags: readonly string[]; }>

…[TPassage, ...TPassage[]]

ChoicekitEngineBuilder<TGenerics & object>

const engine = await new ChoicekitEngineBuilder().withPassages({name: "Start Passage" as string, data: "Lorem Ipsum" as string, tags: ["Start" as string]})

withPlugin<TPlugin>(plugin, config): ChoicekitEngineBuilder<TGenerics & object>

Defined in: engine/builder.ts:116

Register a plugin with its configuration.

Call this method multiple times to register multiple plugins. Each plugin’s mutations will be properly typed and accumulated.

TPlugin extends ChoicekitPlugin

TPlugin

TPlugin extends ChoicekitPlugin<RGenerics> ? RGenerics["config"] : never

ChoicekitEngineBuilder<TGenerics & object>

BuilderMethods.withPlugin


withVars<TVars>(vars): ChoicekitEngineBuilder<TGenerics & object>

Defined in: engine/builder.ts:63

Set an object containing the variables to be used in the story via the engine

TVars extends GenericSerializableObject

TVars | ((init) => TVars)

ChoicekitEngineBuilder<TGenerics & object>