FuncType - v0.9.5
    Preparing search index...

    Variable ValidationConst

    Validation: <T extends unknown>(rule: ValidationRule) => Validator<T> & {
        combine: <T extends unknown>(
            ...validators: Validator<T>[],
        ) => Validator<T>;
        custom: <T extends unknown>(
            predicate: (value: unknown) => boolean,
            errorMessage: string,
        ) => Validator<T>;
        form: <T extends Record<string, unknown>>(
            schema: { [K in string | number | symbol]: Validator<T[K]> },
            data: Record<string, unknown>,
        ) => FormValidation<T>;
        rule: <T extends unknown>(rule: ValidationRule) => Validator<T>;
        validators: {
            email: Validator<string>;
            nonEmptyString: Validator<string>;
            numeric: Validator<number>;
            positiveNumber: Validator<number>;
            required: Validator<string>;
            url: Validator<string>;
            uuid: Validator<string>;
        };
    } = ...

    Type declaration

    • combine: <T extends unknown>(...validators: Validator<T>[]) => Validator<T>

      Combine multiple validators

      const validator = Validation.combine(
      Validation.rule<string>("required"),
      Validation.rule<string>("email"),
      Validation.rule<string>("maxLength:100")
      )
    • custom: <T extends unknown>(
          predicate: (value: unknown) => boolean,
          errorMessage: string,
      ) => Validator<T>

      Create a custom validator

      const isEven = Validation.custom<number>(
      (value) => typeof value === "number" && value % 2 === 0,
      "must be an even number"
      )
    • form: <T extends Record<string, unknown>>(
          schema: { [K in string | number | symbol]: Validator<T[K]> },
          data: Record<string, unknown>,
      ) => FormValidation<T>

      Validate a form with multiple fields

      const schema = {
      name: Validation.rule<string>("required"),
      email: Validation.rule<string>("email"),
      age: Validation.rule<number>("min:18")
      }
      const result = Validation.form(schema, { name: "John", email: "john@example.com", age: 25 })
    • rule: <T extends unknown>(rule: ValidationRule) => Validator<T>

      Create a validator from a rule string

      const validator = Validation.rule<number>("min:18")
      const result = validator(25) // Right(25)
      const error = validator(15) // Left(TypedError)
    • validators: {
          email: Validator<string>;
          nonEmptyString: Validator<string>;
          numeric: Validator<number>;
          positiveNumber: Validator<number>;
          required: Validator<string>;
          url: Validator<string>;
          uuid: Validator<string>;
      }

      Common pre-built validators