@orbit/record-cache
Version:
Orbit base classes used to access and maintain a set of records.
69 lines (68 loc) • 6.52 kB
TypeScript
import { DefaultRequestOptions, FullRequestOptions, FullResponse, QueryOrExpressions, RequestOptions, TransformOrOperations } from '@orbit/data';
import { InitializedRecord, RecordIdentity, RecordOperation, RecordOperationResult, RecordOperationTerm, RecordQuery, RecordQueryBuilder, RecordQueryExpression, RecordQueryResult, RecordTransform, RecordTransformBuilder, RecordTransformBuilderFunc, RecordTransformResult, SyncRecordQueryable, SyncRecordUpdatable } from '@orbit/records';
import { Dict } from '@orbit/utils';
import { SyncLiveQuery } from './live-query/sync-live-query';
import { SyncInverseTransformOperator } from './operators/sync-inverse-transform-operators';
import { SyncQueryOperator } from './operators/sync-query-operators';
import { SyncTransformOperator } from './operators/sync-transform-operators';
import { RecordChangeset, RecordRelationshipIdentity, SyncRecordAccessor } from './record-accessor';
import { RecordCache, RecordCacheQueryOptions, RecordCacheSettings, RecordCacheTransformOptions } from './record-cache';
import { RecordTransformBuffer } from './record-transform-buffer';
import { PatchResult, RecordCacheUpdateDetails } from './response';
import { SyncOperationProcessor, SyncOperationProcessorClass } from './sync-operation-processor';
export interface SyncRecordCacheSettings<QO extends RequestOptions = RecordCacheQueryOptions, TO extends RequestOptions = RecordCacheTransformOptions, QB = RecordQueryBuilder, TB = RecordTransformBuilder> extends RecordCacheSettings<QO, TO, QB, TB> {
processors?: SyncOperationProcessorClass[];
queryOperators?: Dict<SyncQueryOperator>;
transformOperators?: Dict<SyncTransformOperator>;
inverseTransformOperators?: Dict<SyncInverseTransformOperator>;
debounceLiveQueries?: boolean;
transformBuffer?: RecordTransformBuffer;
}
export declare abstract class SyncRecordCache<QO extends RequestOptions = RecordCacheQueryOptions, TO extends RequestOptions = RecordCacheTransformOptions, QB = RecordQueryBuilder, TB = RecordTransformBuilder, QueryResponseDetails = unknown, TransformResponseDetails extends RecordCacheUpdateDetails = RecordCacheUpdateDetails> extends RecordCache<QO, TO, QB, TB> implements SyncRecordAccessor, SyncRecordQueryable<QueryResponseDetails, QB, QO>, SyncRecordUpdatable<TransformResponseDetails, TB, TO> {
protected _processors: SyncOperationProcessor[];
protected _queryOperators: Dict<SyncQueryOperator>;
protected _transformOperators: Dict<SyncTransformOperator>;
protected _inverseTransformOperators: Dict<SyncInverseTransformOperator>;
protected _debounceLiveQueries: boolean;
protected _transformBuffer?: RecordTransformBuffer;
constructor(settings: SyncRecordCacheSettings<QO, TO, QB, TB>);
get processors(): SyncOperationProcessor[];
getQueryOperator(op: string): SyncQueryOperator;
getTransformOperator(op: string): SyncTransformOperator;
getInverseTransformOperator(op: string): SyncInverseTransformOperator;
abstract getRecordSync(recordIdentity: RecordIdentity): InitializedRecord | undefined;
abstract getRecordsSync(typeOrIdentities?: string | RecordIdentity[]): InitializedRecord[];
abstract getInverseRelationshipsSync(recordIdentityOrIdentities: RecordIdentity | RecordIdentity[]): RecordRelationshipIdentity[];
abstract setRecordSync(record: InitializedRecord): void;
abstract setRecordsSync(records: InitializedRecord[]): void;
abstract removeRecordSync(recordIdentity: RecordIdentity): InitializedRecord | undefined;
abstract removeRecordsSync(recordIdentities: RecordIdentity[]): InitializedRecord[];
abstract addInverseRelationshipsSync(relationships: RecordRelationshipIdentity[]): void;
abstract removeInverseRelationshipsSync(relationships: RecordRelationshipIdentity[]): void;
applyRecordChangesetSync(changeset: RecordChangeset): void;
getRelatedRecordSync(identity: RecordIdentity, relationship: string): RecordIdentity | null | undefined;
getRelatedRecordsSync(identity: RecordIdentity, relationship: string): RecordIdentity[] | undefined;
/**
* Queries the cache.
*/
query<RequestData extends RecordQueryResult = RecordQueryResult>(queryOrExpressions: QueryOrExpressions<RecordQueryExpression, QB>, options?: DefaultRequestOptions<QO>, id?: string): RequestData;
query<RequestData extends RecordQueryResult = RecordQueryResult>(queryOrExpressions: QueryOrExpressions<RecordQueryExpression, QB>, options: FullRequestOptions<QO>, id?: string): FullResponse<RequestData, QueryResponseDetails, RecordOperation>;
/**
* Updates the cache.
*/
update<RequestData extends RecordTransformResult = RecordTransformResult>(transformOrOperations: TransformOrOperations<RecordOperation, TB>, options?: DefaultRequestOptions<TO>, id?: string): RequestData;
update<RequestData extends RecordTransformResult = RecordTransformResult>(transformOrOperations: TransformOrOperations<RecordOperation, TB>, options: FullRequestOptions<TO>, id?: string): FullResponse<RequestData, TransformResponseDetails, RecordOperation>;
/**
* Patches the cache with an operation or operations.
*
* @deprecated since v0.17
*/
patch(operationOrOperations: RecordOperation | RecordOperation[] | RecordOperationTerm | RecordOperationTerm[] | RecordTransformBuilderFunc): PatchResult;
liveQuery(queryOrExpressions: QueryOrExpressions<RecordQueryExpression, QB>, options?: DefaultRequestOptions<QO>, id?: string): SyncLiveQuery<QO, TO, QB, TB>;
protected _query<RequestData extends RecordQueryResult = RecordQueryResult>(query: RecordQuery, options?: QO): FullResponse<RequestData, QueryResponseDetails, RecordOperation>;
protected _update<RequestData extends RecordTransformResult = RecordTransformResult>(transform: RecordTransform, options?: TO): FullResponse<RequestData, TransformResponseDetails, RecordOperation>;
protected _getTransformBuffer(): RecordTransformBuffer;
protected _initTransformBuffer(transform: RecordTransform): RecordTransformBuffer;
protected _applyTransformOperations(transform: RecordTransform, ops: RecordOperation[] | RecordOperationTerm[], response: FullResponse<RecordOperationResult[], RecordCacheUpdateDetails, RecordOperation>, primary?: boolean): void;
protected _applyTransformOperation(transform: RecordTransform, operation: RecordOperation | RecordOperationTerm, response: FullResponse<RecordOperationResult[], RecordCacheUpdateDetails, RecordOperation>, primary?: boolean): void;
}