@orbit/records
Version:
A flexible data access and synchronization layer.
62 lines (61 loc) • 2.47 kB
TypeScript
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;