array

Learn about the available options, methods and use cases.

Usage

Following is the simple usage of this validator

import e from "validator";

await e.array(
    e.string(), // Optionally pass a validator
    {} // Optionally pass options
)
.validate([]) // returns []

Options

Following are the available options for this validator

interface IArrayValidatorOptions extends TBaseValidatorOptions {
  /** Pass custom messages for the errors */
  messages?: Partial<
    Record<
      "typeError" | "nanKey" | "smallerLength" | "greaterLength",
      TErrorMessage
    >
  >;

  /** Validate array minimum length */
  minLength?: number;

  /** Validate array maximum length */
  maxLength?: number;

  /**
   * Partialize the underlying validator (makes undefined values in the props acceptable)
   *
   * Use e.partial() instead, if working with typescript
   */
  partial?: boolean;

  /**
   * Converts the underlying validator's props that are partialized/optional to required
   *
   * Use e.required() instead, if working with typescript
   */
  required?: boolean;

  /**
   * (Casting Option) Requires `cast` to be `true`
   *
   * Set a splitter that will be used to split elements in the string and convert it into array during the cast.
   */
  splitter?: string | RegExp;

  /**
   * (Casting Option) Requires `cast` to be `true`
   *
   * Normally this validator will allow you to validate an object (like an array) if the cast is `true` and
   * properties of this object are number like.
   * But if the validator detects a NaN property on the object, it will throw a nanKey error!
   *
   * If you want to avoid nanKey error by ignoring any NaN keys in the object then pass `true` here.
   */
  ignoreNanKeys?: boolean;

  /**
   * (Casting Option) Requires `cast` to be `true`
   *
   * Normally this validator will allow you to validate an object (like an array) if the cast is `true` and
   * properties of this object are number like.
   * But if the validator detects a NaN property on the object, it will throw a nanKey error!
   *
   * If you want to avoid nanKey error by pushing the value of a NaN key into the resulting array then pass `true` here.
   */
  pushNanKeys?: boolean;

  /**
   * (Casting Option) Requires `cast` to be `true`
   *
   * If `cast` is `true`, the validator will try to convert a non-splitable/non-object item into an array.
   * If you pass boolean (true) into the array validator, it will cast it to [true], an array of boolean.
   *
   * If you want to disable this behavior, pass `true` here.
   */
  noCastSingularToArray?: boolean;
}

Methods

Following are the available methods on this validator

Examples

Read the examples below to understand different use cases

Case 1 (Basic usage)

Case 2 (Usage with other validators)

Case 3 (With casting)

Last updated

Was this helpful?