Express CSV Logo

Number

Number fields use x.number() for numeric values. Parsed from common formats (commas, currency symbols, percentages).

x.number().label("Price").min(0).currency("USD")

columnNameAliases

Adds alternate CSV header names for this field.

.columnNameAliases(aliases: string[])

  • aliases lists header names that should map to this schema key, e.g., ["Amount", "Total"].
  • Aliases are used during column matching alongside the field key and label. They do not change the output object key.

label

Sets the user-facing label shown in the importer.

.label(text: string)

  • text sets the label text.

description

Sets help text shown below the field.

.description(text: string)

  • text sets the description text.

optional

Allows the field to be empty.

.optional()

  • Empty optional values are delivered as null.
  • The row object still includes the field key, e.g., { discount: null }.

default

Available after .optional().

.default(defaultValue: unknown | (() => unknown | Promise<unknown>))

  • defaultValue can be a static value or a function used when the field is empty.
  • Defaults apply to missing values, null, empty strings, and whitespace-only strings.
  • When a default is used, it is returned directly instead of validating or refining the empty value.

min

Sets the minimum numeric value.

.min(value: number, options?: { message?: string })

  • value sets the minimum numeric value.
  • message overrides the validation error text, e.g., "Must be at least 18".

max

Sets the maximum numeric value.

.max(value: number, options?: { message?: string })

  • value sets the maximum numeric value.
  • message overrides the validation error text, e.g., "Must be 100 or less".

integer

Restricts values to whole numbers.

.integer(options?: { message?: string })

  • message overrides the validation error text, e.g., "Must be a whole number".

multipleOf

Requires a multiple of a given value.

.multipleOf(value: number, options?: { message?: string })

  • value sets the required step or divisor, e.g., 0.25.
  • message overrides the validation error text, e.g., "Must be a multiple of 5".

currency

Marks the number as a currency value.

.currency(currencyCode: string)

  • currencyCode sets the ISO 4217 currency code, e.g., "USD" or "EUR".

percentage

Marks the number as a percentage for formatting.

.percentage()