@ayanaware/bento
Version:
Modular runtime framework designed to solve complex tasks
57 lines (56 loc) • 1.6 kB
TypeScript
export declare class VariableManager {
private readonly variables;
private readonly validators;
/**
* Check if a given variable exists
* @param name name of variable
*
* @returns boolean
*/
hasVariable(name: string): boolean;
/**
* Fetch a value for a given variable name
* @param name name of variable
* @param def default value
*
* @returns variable value
*/
getVariable<T = string>(name: string, def?: T): T;
/**
* Get Key/Value Object of all variables
*
* @returns Object of Key/Value pairs
*/
getVariables(): Record<string, unknown>;
/**
* Update a given variables value
* @param name name of variable
* @param value new value
*/
setVariable<T = string>(name: string, value: T): T;
/**
* Fully removes all traces of a variable from bento
* @param name name of variable
*/
deleteVariable(name: string): void;
/**
* Add a new validator into Bento
* @param name validator name
* @param validator validator function
*/
addValidator(name: string, validator: (value: any, ...args: Array<any>) => boolean): void;
/**
* Remove validator from Bento
* @param name validator name
*/
removeValidator(name: string): void;
/**
* Run a validator
* @param name validator name
* @param value validator value
* @param args array of args to be passed
*
* @returns validator result
*/
runValidator(name: string, value: unknown, ...args: Array<any>): boolean;
}