Skip to content

Class: ChoicekitEngineBuilder<TGenerics, TArgs>

Class: ChoicekitEngineBuilder<TGenerics, TArgs>

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

Defined in: engine/builder.ts:34

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:159

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

Promise<ChoicekitEngine<TGenerics>>


withAchievements<TAchievements>(achievements): ChoicekitEngineBuilder<TGenerics & object>

Defined in: engine/builder.ts:93

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

Unlike the story variables, this is persisted seperately from saved states.

TAchievements extends GenericSerializableObject

TAchievements

ChoicekitEngineBuilder<TGenerics & object>


withClasses(…classes): ChoicekitEngineBuilder<TGenerics>

Defined in: engine/builder.ts:114

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:121

Special Choicekit configuration

TArgs["config"]

ChoicekitEngineBuilder<TGenerics>


withMigrators(migrations): ChoicekitEngineBuilder<TGenerics>

Defined in: engine/builder.ts:128

Add save migrations for to update older saves

TArgs["migrations"]

ChoicekitEngineBuilder<TGenerics>


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

Defined in: engine/builder.ts:55

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:81

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:141

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


withSettings<TSettings>(settings): ChoicekitEngineBuilder<TGenerics & object>

Defined in: engine/builder.ts:105

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

Unlike the story variables, this is persisted seperately from saved states.

TSettings extends GenericSerializableObject

TSettings

ChoicekitEngineBuilder<TGenerics & object>


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

Defined in: engine/builder.ts:64

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

TVars extends GenericSerializableObject

TVars | ((init) => TVars)

ChoicekitEngineBuilder<TGenerics & object>