UNPKG

@orbit/record-cache

Version:

Orbit base classes used to access and maintain a set of records.

69 lines (68 loc) 6.52 kB
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; }