@orbit/record-cache
Version:
Orbit base classes used to access and maintain a set of records.
22 lines (21 loc) • 1.5 kB
TypeScript
import { InitializedRecord, RecordIdentity, RecordOperation } from '@orbit/records';
import { AsyncOperationProcessor } from '../async-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 AsyncCacheIntegrityProcessor extends AsyncOperationProcessor {
after(operation: RecordOperation): Promise<RecordOperation[]>;
finally(operation: RecordOperation): Promise<RecordOperation[]>;
protected addInverseRelationship(record: RecordIdentity, relationship: string, relatedRecord: RecordIdentity | null): Promise<void>;
protected addInverseRelationships(record: RecordIdentity, relationship: string, relatedRecords: RecordIdentity[]): Promise<void>;
protected addAllInverseRelationships(record: InitializedRecord): Promise<void>;
protected removeInverseRelationship(record: RecordIdentity, relationship: string, relatedRecord?: RecordIdentity | null): Promise<void>;
protected removeInverseRelationships(record: RecordIdentity, relationship: string, relatedRecords?: RecordIdentity[]): Promise<void>;
protected removeAllInverseRelationships(record: RecordIdentity): Promise<void>;
protected clearInverseRelationshipOps(record: RecordIdentity): Promise<RecordOperation[]>;
}