UNPKG

@randsum/notation

Version:

A flexible, type-safe dice notation parser and validator

53 lines (45 loc) 1.11 kB
import type { CustomDiceNotation, CustomRollOptions, NumericDiceNotation, NumericRollOptions } from '@randsum/core' // ----------------------- // --- VALIDATION --- // ----------------------- interface BaseValidationResult { valid: boolean type: 'numerical' | 'custom' | 'invalid' description: string[] } export interface NumericValidationResult extends BaseValidationResult { valid: true type: 'numerical' digested: NumericRollOptions notation: NumericDiceNotation } export interface CustomValidationResult extends BaseValidationResult { valid: true type: 'custom' digested: CustomRollOptions notation: CustomDiceNotation } export interface InvalidValidationResult extends BaseValidationResult { valid: false type: 'invalid' digested: Record<string, never> } export type ValidationResult = | NumericValidationResult | CustomValidationResult | InvalidValidationResult export type { BaseRollOptions, CustomDiceNotation, CustomRollOptions, DiceNotation, ModifierOptions, NumericDiceNotation, NumericRollOptions, RollOptions } from '@randsum/core'