schema.d.ts 2.3 KB

1234567891011121314151617181920212223242526272829303132
  1. import { DefaultResult, DeprecatedResult, ExpectedResult, ForwardResult, OptionValue, RedirectResult, Utils, ValidateResult } from './types';
  2. export interface SchemaParameters<$Value> extends SchemaHandlers<$Value> {
  3. name: string;
  4. }
  5. export interface SchemaHandlers<$Value> {
  6. default?: DefaultResult<$Value> | ((schema: Schema<$Value>, utils: Utils) => DefaultResult<$Value>);
  7. expected?: ExpectedResult | ((schema: Schema<$Value>, utils: Utils) => ExpectedResult);
  8. validate?: ValidateResult | ((value: unknown, schema: Schema<$Value>, utils: Utils) => ValidateResult);
  9. deprecated?: DeprecatedResult<$Value> | ((value: $Value, schema: Schema<$Value>, utils: Utils) => DeprecatedResult<$Value>);
  10. forward?: ForwardResult<$Value> | ((value: $Value, schema: Schema<$Value>, utils: Utils) => ForwardResult<$Value>);
  11. redirect?: RedirectResult<$Value> | ((value: $Value, schema: Schema<$Value>, utils: Utils) => RedirectResult<$Value>);
  12. overlap?: (currentValue: $Value, newValue: $Value, schema: Schema<$Value>, utils: Utils) => $Value;
  13. preprocess?: (value: unknown, schema: Schema<$Value>, utils: Utils) => unknown;
  14. postprocess?: (value: $Value, schema: Schema<$Value>, utils: Utils) => unknown;
  15. }
  16. export declare function createSchema<$Schema extends Schema<any>, $Parameters extends $Schema['_parametersType']>(SchemaConstructor: new (parameters: $Parameters) => $Schema, parameters: $Parameters): $Schema;
  17. export declare abstract class Schema<$Value extends OptionValue, $Parameters extends SchemaHandlers<$Value> = SchemaHandlers<$Value>> {
  18. static create<$Schema extends Schema<any>>(parameters: $Schema['_parametersType']): $Schema;
  19. name: string;
  20. _valueType: $Value;
  21. _parametersType: $Parameters;
  22. constructor(parameters: SchemaParameters<$Value>);
  23. default(_utils: Utils): DefaultResult<$Value>;
  24. expected(_utils: Utils): ExpectedResult;
  25. validate(_value: unknown, _utils: Utils): ValidateResult;
  26. deprecated(_value: $Value, _utils: Utils): DeprecatedResult<$Value>;
  27. forward(_value: $Value, _utils: Utils): ForwardResult<$Value>;
  28. redirect(_value: $Value, _utils: Utils): RedirectResult<$Value>;
  29. overlap(currentValue: $Value, _newValue: $Value, _utils: Utils): $Value;
  30. preprocess(value: unknown, _utils: Utils): unknown;
  31. postprocess(value: $Value, _utils: Utils): unknown;
  32. }