vnopts
Version:
validate and normalize options
25 lines (24 loc) • 1.08 kB
TypeScript
import { Schema, SchemaHandlers, SchemaParameters } from '../schema.js';
import { DeprecatedResult, ExpectedResult, ForwardResult, RedirectResult, TransferTo, Utils, ValidateResult } from '../types.js';
interface ChoiceInfo {
value: ChoiceValue;
deprecated?: boolean;
redirect?: TransferTo;
forward?: TransferTo;
/** do not show this value in `expected` */
hidden?: boolean;
}
type ChoiceValue = undefined | null | boolean | number | string;
interface ChoiceSchemaParameters extends SchemaParameters<ChoiceValue>, SchemaHandlers<ChoiceValue> {
choices: Array<ChoiceValue | ChoiceInfo>;
}
export declare class ChoiceSchema extends Schema<ChoiceValue, ChoiceSchemaParameters> {
private _choices;
constructor(parameters: ChoiceSchemaParameters);
expected({ descriptor }: Utils): ExpectedResult;
validate(value: unknown): ValidateResult;
deprecated(value: ChoiceValue): DeprecatedResult<ChoiceValue>;
forward(value: ChoiceValue): ForwardResult<ChoiceValue>;
redirect(value: ChoiceValue): RedirectResult<ChoiceValue>;
}
export {};