UNPKG

@orbit/records

Version:

A flexible data access and synchronization layer.

62 lines (61 loc) 2.47 kB
import { Dict } from '@orbit/utils'; export interface LinkObject { href: string; meta?: Dict<unknown>; } export declare type Link = string | LinkObject; export interface RecordIdentity { type: string; id: string; } export interface RecordHasOneRelationship { data?: RecordIdentity | null; links?: Dict<Link>; meta?: Dict<unknown>; } export interface RecordHasManyRelationship { data?: RecordIdentity[]; links?: Dict<Link>; meta?: Dict<unknown>; } export declare type RecordRelationship = RecordHasOneRelationship | RecordHasManyRelationship; export interface RecordFields { keys?: Dict<string>; attributes?: Dict<unknown>; relationships?: Dict<RecordRelationship>; links?: Dict<Link>; meta?: Dict<unknown>; } /** * @deprecated since v0.17, use alias `InitializedRecord` instead */ export interface Record extends RecordFields, RecordIdentity { } export interface InitializedRecord extends RecordFields, RecordIdentity { } export interface UninitializedRecord extends RecordFields { type: string; id?: string; } export interface RecordKeyValue { type: string; key: string; value: string; } /** * @deprecated since v0.17, replaced by `RecordNormalizer` */ export interface RecordInitializer { initializeRecord(record: UninitializedRecord): InitializedRecord; } export declare function cloneRecordIdentity(identity: RecordIdentity): RecordIdentity; export declare function equalRecordIdentities(record1?: RecordIdentity | null, record2?: RecordIdentity | null): boolean; export declare function equalRecordIdentitySets(set1: RecordIdentity[], set2: RecordIdentity[]): boolean; export declare function uniqueRecordIdentities(set1: RecordIdentity[], set2: RecordIdentity[]): RecordIdentity[]; export declare function dedupeRecordIdentities(recordIdentities: RecordIdentity[]): RecordIdentity[]; export declare function recordsInclude(records: RecordIdentity[], match: RecordIdentity): boolean; export declare function recordsIncludeAll(records: RecordIdentity[], match: RecordIdentity[]): boolean; export declare function mergeRecords(current: InitializedRecord | null, updates: InitializedRecord): InitializedRecord; export declare function isRecordIdentity(identity: RecordIdentity | unknown): identity is RecordIdentity; export declare function serializeRecordIdentity(record: RecordIdentity): string; export declare function deserializeRecordIdentity(identity: string): RecordIdentity;