Heap.Table

Объявляет heap-таблицу. Это главный и единственный поддерживаемый способ "создать" heap-таблицу.

Применение / сигнатура

import { Heap } from '@app/heap'
const Table = Heap.Table(tableName, fields)

Функция Heap.Table может быть вызывана только на верхнем уровне модуля, т.е. её нельзя вызывать в теле функции или любом другом блоке. Кроме того, нужно напрямую использовать объект Heap из импорта в этом модуле, то есть нельзя сделать:

import { Heap } from '@app/heap'
const RenamedHeap = Heap
const table = RenamedHeap.Table(...)

Аргументы

  • tableName: string *
    Название таблицы. Должно быть уникальным в рамках аккаунта, в котором создан файл кода таблицы.

    Название может содержать только латинские буквы (строчные и заглавные), цифры, символ подчёркивания (_), а также точку (.) и дефис (-), но только в середине названия в качестве разделителей.

    Название должно быть простым строковым литералом, записанным непосредственно в вызове Heap.Table, т.е. оно не может быть переменной, простым выражением с конкатенацией или шаблоном с интерполяцией. Это проверяется на этапе компиляции файла.

  • fields: { [key: string]: HeapSchema } *
    Объект, ключами которого являются названия полей верхнего уровня таблицы, а значениями - схемы, описывающие их типы (например, Heap.String()).

    Названия полей могут содержать только латинские буквы (строчные и заглавные), цифры, символ подчёркивания (_) и не должны начинаться с цифры.

    Поскольку запись таблицы на верхнем уровне представляет собой JSON-объект с полями, описание полей таблицы полностью аналогично описанию полей в Heap.Object.

Возвращаемое значение

Объект-репозиторий HeapTableRepo, который даёт доступ к CRUD-операциям над таблицей.

Примеры

Объявление и использование простой heap-таблицы
const issues = Heap.Table('issues', {
  title: Heap.NonEmptyString(),
  done: Heap.NonRequired(Heap.Boolean(), false),
  deadline: Heap.Nullable(Heap.DateTime()),
})
const firstIssue = await issues.create(ctx, {
  title: 'first',
]})
await issues.update(ctx, {
  id: firstIssue.id,
  deadline: new Date(2022, 11, 31),
]})

❤️ Made with love on Chatium

ООО "Чатиум"

Информация о компании