UNPKG

@baqhub/sdk

Version:

The official JavaScript SDK for the BAQ federated app platform.

37 lines (36 loc) 1.96 kB
import * as IO from "../../helpers/io.js"; import { AnyRecord, CleanRecordType, Record } from "../records/record.js"; import { RecordKey } from "../records/recordKey.js"; import { RAnyRecordType, RRecordType, RecordType } from "../records/recordType.js"; export interface RecordLink<T extends AnyRecord> { entity: string; originalEntity?: string; versionCreatedAt?: Date; recordId: string; _type?: T; } export type AnyRecordLink = RecordLink<AnyRecord>; export declare class RRecordLinkClass<T extends RAnyRecordType> extends IO.Type<RecordLink<Record<IO.TypeOf<T>, any>>, unknown, unknown> { constructor(_type?: T); } declare function recordLink<T extends AnyRecord>(type?: CleanRecordType<T>): RRecordLinkClass<IO.Type<T["type"], any, unknown>>; declare function recordLinkOf<E extends string, R extends string>(_entity: E, _recordId: R): RRecordLinkClass<RRecordType<any, any, E, R>>; export type RecordLinkOf<E extends string, R extends string> = RecordLink<Record<RecordType<any, any, E, R>, any>>; declare function buildRecordLink(entity: string, recordId: string): AnyRecordLink; declare function linkToKey<T extends AnyRecord>(link: RecordLink<T>): RecordKey<T>; declare function isLinkedRecord<R extends AnyRecord, L extends R>(record: R, recordLink: RecordLink<L>): record is L; declare function findLinkedRecord<R extends AnyRecord, L extends R>(records: ReadonlyArray<R>, link: RecordLink<L>): L | undefined; declare function isSameRecordLink(link1: AnyRecordLink, link2: AnyRecordLink): boolean; export declare const RecordLink: { io: typeof recordLink; ioOf: typeof recordLinkOf; new: typeof buildRecordLink; toKey: typeof linkToKey; isRecord: typeof isLinkedRecord; findRecord: typeof findLinkedRecord; isSame: typeof isSameRecordLink; }; export declare const AnyRecordLink: { io: () => RRecordLinkClass<IO.Type<import("../records/recordType.js").AnyRecordType, any, unknown>>; }; export {};