@orbit/record-cache
Version:
Orbit base classes used to access and maintain a set of records.
22 lines (21 loc) • 1.41 kB
TypeScript
import { InitializedRecord, RecordIdentity, RecordOperation } from '@orbit/records';
import { SyncOperationProcessor } from '../sync-operation-processor';
/**
* An operation processor that ensures that a cache's data is consistent and
* doesn't contain any dead references.
*
* This is achieved by maintaining a mapping of reverse relationships for each
* record. When a record is removed, any references to it can also be identified
* and removed.
*/
export declare class SyncCacheIntegrityProcessor extends SyncOperationProcessor {
after(operation: RecordOperation): RecordOperation[];
finally(operation: RecordOperation): RecordOperation[];
protected addInverseRelationship(record: RecordIdentity, relationship: string, relatedRecord: RecordIdentity | null): void;
protected addInverseRelationships(record: RecordIdentity, relationship: string, relatedRecords: RecordIdentity[]): void;
protected addAllInverseRelationships(record: InitializedRecord): void;
protected removeInverseRelationship(record: RecordIdentity, relationship: string, relatedRecord?: RecordIdentity | null): void;
protected removeInverseRelationships(record: RecordIdentity, relationship: string, relatedRecords?: RecordIdentity[]): void;
protected removeAllInverseRelationships(record: RecordIdentity): void;
protected clearInverseRelationshipOps(record: RecordIdentity): RecordOperation[];
}