Skip to content

array

array<TArrayType, TFieldMeta>(options): ArrayField<TArrayType, TFieldMeta>

Defined in: packages/core/src/fields/array/config.ts:59

Creates an array field with all defaults applied.

Array fields store ordered lists of values — strings, numbers, booleans, or nested objects. Items are validated by a nested field definition (items) which supports any VexCMS field type including nested arrays.

Accepts ArrayFieldInput (all optional) and returns ArrayField with all defaults applied.

Defaults applied:

  • label"" (inferred from the field key by defineCollection)
  • labels.singular"Item"
  • labels.plural"Items"
  • requiredfalse
  • defaultValue[]
  • admin.hiddenfalse
  • admin.readOnlyfalse
  • admin.position"main"
  • admin.width"full"
  • admin.cellAlignment"left"

TArrayType extends ArrayType = string

TFieldMeta extends BaseFieldMeta = BaseFieldMeta

ArrayFieldInput<TArrayType, TFieldMeta>

Array field configuration. All properties are optional.

ArrayField<TArrayType, TFieldMeta>

Resolved array field definition with all defaults applied.

import { array, text, defineCollection } from '@vexcms/core'
posts: defineCollection({
fields: {
// Simple string tags array
tags: array({
items: text(),
}),
// Number array with a min length
scores: array({
items: number(),
min: { value: 1 },
}),
// Nested array — array of arrays of numbers
matrix: array({
items: array({ items: number() }),
}),
}
})