HeapTableRepo.isMyRecord

Позволяет определить - принадлежит ли переданный heap-объект данной heap-таблице. Является также "typescript type guard", то есть приводит тип переденной "бесформенной" переменной к типу heap-объекта таблицы с её полями.

Принадлежность опрелеляется через сравнение системного поля heapType у heap-объекта со свойством type таблицы.

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

table.isMyRecord(object)
  • Аргументы

    • object: any
      Проверяемый объект.
  • Возвращаемое значение: boolean true, если переданная переменная является объектом с полем heapType, со значением, совпадающим со свойством type у данной таблицы. Во всех остальных случаях - false.

Примеры


Определение типа записи, на которую указывает GenericLink-поле.

const Orders = Heap.Table('orders', {
  customer: Heap.GenericLink(),
})
const Orgs = Heap.Table('orgs', {
  name: Heap.String(),
})
const Persons = Heap.Table('persons', {
  firstName: Heap.String(),
  lastName: Heap.String(),
})

async function getCustomerDisplayName(ctx: app.Ctx, order: typeof Orders.T): Promise<string> {
  const customer = await orders.customer.get(ctx)
  if (Orgs.isMyRecord(customer)) {
    return customer.name
  } else if (Persons.isMyRecord(customer)) {
    return customer.firstName + ' ' + customer.lastName
  } else {
    throw 'unsupported customer type ' + customer.heapType  }
}

❤️ Made with love on Chatium

ООО "Чатиум"

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