@dice-roller/rpg-dice-roller / modifiers / ModifierRegistry
Class: ModifierRegistry
Defined in: src/modifiers/ModifierRegistry.ts:20
Modifier handlers by name.
Replace a built-in handler by registering another with the same name, then pass the registry as the modifiers option to a Roller or Roll. Names are the existing ModifierName AST names; registering a handler does not add notation to the parser.
Example
const modifiers = new ModifierRegistry().register({
...keepHandler,
apply: (items) => [...items],
});
const roller = new Roller({ modifiers });Constructors
Constructor
new ModifierRegistry():
ModifierRegistry
Defined in: src/modifiers/ModifierRegistry.ts:24
A registry with the 11 built-in handlers registered.
Returns
ModifierRegistry
Accessors
handlers
Get Signature
get handlers(): readonly
ModifierHandler<ModifierNode>[]
Defined in: src/modifiers/ModifierRegistry.ts:78
The registered handlers, in execution order.
Returns
readonly ModifierHandler<ModifierNode>[]
Methods
get()
get<
K>(name):ModifierHandlerOf<K> |undefined
Defined in: src/modifiers/ModifierRegistry.ts:47
Returns the handler for the name, or undefined if none is registered.
Type Parameters
K
K extends "max" | "min" | "explode" | "target" | "drop" | "keep" | "re-roll" | "unique" | "critical-success" | "critical-failure" | "sort"
Parameters
name
K
Returns
ModifierHandlerOf<K> | undefined
getOrThrow()
getOrThrow<
K>(name):ModifierHandlerOf<K>
Defined in: src/modifiers/ModifierRegistry.ts:52
Type Parameters
K
K extends "max" | "min" | "explode" | "target" | "drop" | "keep" | "re-roll" | "unique" | "critical-success" | "critical-failure" | "sort"
Parameters
name
K
Returns
Throws
no handler is registered with the name
has()
has(
name):boolean
Defined in: src/modifiers/ModifierRegistry.ts:63
Whether a handler is registered under the name.
Parameters
name
"max" | "min" | "explode" | "target" | "drop" | "keep" | "re-roll" | "unique" | "critical-success" | "critical-failure" | "sort"
Returns
boolean
inExecutionOrder()
inExecutionOrder<
N>(modifiers):N[]
Defined in: src/modifiers/ModifierRegistry.ts:89
Returns a sorted copy of modifier nodes by their handler's order. Equal orders retain their input order. This method does not validate every node: sorting zero or one node does not look up its handler. Evaluation looks up each handler separately.
Type Parameters
N
N extends ModifierNode
Parameters
modifiers
readonly N[]
Returns
N[]
Throws
a node compared during sorting has no registered handler
register()
register(...
handlers):this
Defined in: src/modifiers/ModifierRegistry.ts:38
Registers handlers, replacing any already registered with the same name.
Parameters
handlers
...ModifierHandler<ModifierNode>[]
Returns
this
remove()
remove(
name):boolean
Defined in: src/modifiers/ModifierRegistry.ts:73
Removes the handler registered with the name. Notation that uses the modifier then throws when it's rolled.
Parameters
name
"max" | "min" | "explode" | "target" | "drop" | "keep" | "re-roll" | "unique" | "critical-success" | "critical-failure" | "sort"
Returns
boolean
whether a handler was registered with the name
empty()
staticempty():ModifierRegistry
Defined in: src/modifiers/ModifierRegistry.ts:29
A registry with no handlers, not even the built-ins.
Returns
ModifierRegistry