Объявляет поле-объект с заданной структурой.
import { Heap } from '@app/heap'
Heap.Object(propertiesSchema, options)
propertiesSchema: { [key: string]: HeapSchema }
*
Объект, ключами которого являются названия полей объекта, а значениями - схемы, описывающие их типы.
Названия полей могут содержать только латинские буквы (строчные и заглавные), цифры, символ
подчёркивания (_
) и не должны начинаться с цифры.
Значениями могут быть любые поддерживаемые схемы, которые можно объявить с помощью функций объекта Heap (кроме тех, что объявляют/модицифируют целые таблицы).
Модификаторы Heap.Optional, Heap.NonRequired (и его производная - Heap.Nullable) предназначены эксклюзивно для полей объекта (включая поля таблицы верхнего уровня) и не могут применяться где-либо ещё.
options: {
default }
Объект с дополнительными необязательными параметрами поля.
object
Свойство additionalProperties
из JSON-схемы не поддерживается. Если на вход подать
объект с полями, которые не перечислены в схеме, то такие "лишние" поля будут проигнорированы и не будут
записаны или прочитаны из хранилища.
JSON-схема для object.
const issues = Heap.Table('issues', {
owner: Heap.Object({
name: Heap.String(),
role: Heap.NonRequired(Heap.Enum(IssueOwnerRole), IssueOwnerRole.Employee),
rank: Heap.Optional(Heap.Number()),
}),
})