roll-parser - v3.4.0
    Preparing search index...

    Variable ROLL_PARSER_ERROR_CODESConst

    ROLL_PARSER_ERROR_CODES: readonly [
        "UNEXPECTED_CHARACTER",
        "UNEXPECTED_IDENTIFIER",
        "UNEXPECTED_TOKEN",
        "UNEXPECTED_END",
        "EXPECTED_TOKEN",
        "INVALID_DICE_COUNT",
        "INVALID_DICE_SIDES",
        "DICE_LIMIT_EXCEEDED",
        "DIVISION_BY_ZERO",
        "MODULO_BY_ZERO",
        "UNKNOWN_OPERATOR",
        "UNKNOWN_NODE_TYPE",
        "INVALID_KEEP_DROP_COUNT",
        "INVALID_KEEP_DROP_TARGET",
        "EXPLODE_LIMIT_EXCEEDED",
        "INVALID_EXPLODE_TARGET",
        "REROLL_LIMIT_EXCEEDED",
        "INVALID_REROLL_TARGET",
        "INVALID_SUCCESS_COUNT_TARGET",
        "INVALID_SORT_TARGET",
        "INVALID_CRIT_THRESHOLD_TARGET",
        "INVALID_DIE_BOUND_TARGET",
        "INVALID_THRESHOLD",
        "NESTED_VERSUS",
        "INVALID_FUNCTION_ARITY",
        "UNKNOWN_FUNCTION",
        "UNDEFINED_VARIABLE",
        "INVALID_VARIABLE_VALUE",
        "AMBIGUOUS_DICE_CHAIN",
        "MAX_DEPTH_EXCEEDED",
        "NON_FINITE_RESULT",
        "INCOMPATIBLE_RNG_STATE",
        "INVALID_EVALUATION_LIMIT",
        "INVALID_NOTATION_TYPE",
    ] = ...

    Every roll-parser error code, as a readonly tuple. Single source of truth — the RollParserErrorCode union is derived from it, and it is the runtime counterpart for the type: validating an untrusted string, driving an exhaustive UI (a message-catalog completeness check, a settings list), or iterating the codes in tests.

    import { ROLL_PARSER_ERROR_CODES, type RollParserErrorCode } from 'roll-parser';

    function isKnownCode(value: string): value is RollParserErrorCode {
    return (ROLL_PARSER_ERROR_CODES as readonly string[]).includes(value);
    }