Express CSV Logo

Time

Time fields use x.time() for time values (no date component).

x.time().label("Shift Start")

columnNameAliases

Adds alternate CSV header names for this field.

.columnNameAliases(aliases: string[])

  • aliases lists header names that should map to this schema key.
  • 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., { shiftStart: 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.

precision

Sets the number of fractional-second digits.

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

  • precision sets the precision from 0 to 9, e.g., 3.
  • message overrides the validation error text, e.g., "Time must include milliseconds".