Объявляет поле, которое может принимать значение любого из вариантов заданного Typescript Enum.
import { Heap } from '@app/heap'
Heap.Enum(targetEnum, options)
Enum-ы не рекомендованы к использованию в языке Typescript, но поддерживаются для обратной совместимости. Поэтому данный тип схемы также не рекомендуется использовать, если вы уже не используете Enum-ы в своей модели данных. Рассмотрите Heap.Union в качестве альтернативы.
targetEnum: Enum object
*
Enum, объявленный в typescript-коде, которому должно соответствовать данное поле.
options: {
default}
Объект с дополнительными необязательными параметрами поля.
array
JSON-схема anyOf со строковыми и/или числовыми литералами, соответствующими всем возможным значениям targetEnum.
enum CustomerStatus {
New = 'New',
Returning = 'Returning',
Lost = 'Lost',
}
const customers = Heap.Table('customers', {
age: Heap.Enum(CustomerStatus, { default: CustomerStatus.New }),
})
const enumLikePossibleGrades = {
bad: 1,
better: 3,
good: 4,
great: 'excellent!',
}
const pupils = Heap.Table('pupils', {
grade: Heap.Enum(enumLikePossibleGrades),
})
await pupils.create(ctx, { grade: 4 })
await pupils.create(ctx, { grade: 'excellent!' })