@orbit/record-cache
Version:
Orbit base classes used to access and maintain a set of records.
60 lines (59 loc) • 3.44 kB
TypeScript
import { Evented } from '@orbit/core';
import { DefaultRequestOptions, RequestOptions } from '@orbit/data';
import { RecordKeyMap, RecordOperation, RecordSchema, RecordQueryBuilder, RecordTransformBuilder, RecordQueryExpression, RecordQuery, RecordTransform, RecordNormalizer, StandardRecordValidator } from '@orbit/records';
import { Dict } from '@orbit/utils';
import { StandardValidator, ValidatorForFn } from '@orbit/validators';
export interface RecordCacheQueryOptions extends RequestOptions {
raiseNotFoundExceptions?: boolean;
}
export interface RecordCacheTransformOptions extends RequestOptions {
raiseNotFoundExceptions?: boolean;
useBuffer?: boolean;
}
export interface RecordCacheSettings<QueryOptions extends RequestOptions = RecordCacheQueryOptions, TransformOptions extends RequestOptions = RecordCacheTransformOptions, QueryBuilder = RecordQueryBuilder, TransformBuilder = RecordTransformBuilder> {
name?: string;
schema: RecordSchema;
keyMap?: RecordKeyMap;
normalizer?: RecordNormalizer;
validatorFor?: ValidatorForFn<StandardValidator | StandardRecordValidator>;
validators?: Dict<StandardValidator | StandardRecordValidator>;
/**
* Automatically validate the contents of all requests.
*
* If true, builds a `validatorFor` function if one has not been provided.
* This will include standard validators as well as any custom `validators`
* that may be provided.
*
* @default true
*/
autoValidate?: boolean;
queryBuilder?: QueryBuilder;
transformBuilder?: TransformBuilder;
defaultQueryOptions?: DefaultRequestOptions<QueryOptions>;
defaultTransformOptions?: DefaultRequestOptions<TransformOptions>;
}
export interface RecordCache extends Evented {
}
export declare abstract class RecordCache<QueryOptions extends RequestOptions = RecordCacheQueryOptions, TransformOptions extends RequestOptions = RecordCacheTransformOptions, QueryBuilder = RecordQueryBuilder, TransformBuilder = RecordTransformBuilder> {
protected _name?: string;
protected _keyMap?: RecordKeyMap;
protected _schema: RecordSchema;
protected _queryBuilder: QueryBuilder;
protected _transformBuilder: TransformBuilder;
protected _validatorFor?: ValidatorForFn<StandardValidator | StandardRecordValidator>;
protected _defaultQueryOptions?: DefaultRequestOptions<QueryOptions>;
protected _defaultTransformOptions?: DefaultRequestOptions<TransformOptions>;
constructor(settings: RecordCacheSettings<QueryOptions, TransformOptions, QueryBuilder, TransformBuilder>);
get name(): string | undefined;
get schema(): RecordSchema;
get keyMap(): RecordKeyMap | undefined;
get validatorFor(): ValidatorForFn<StandardValidator | StandardRecordValidator> | undefined;
get queryBuilder(): QueryBuilder;
get transformBuilder(): TransformBuilder;
get defaultQueryOptions(): DefaultRequestOptions<QueryOptions> | undefined;
set defaultQueryOptions(options: DefaultRequestOptions<QueryOptions> | undefined);
get defaultTransformOptions(): DefaultRequestOptions<TransformOptions> | undefined;
set defaultTransformOptions(options: DefaultRequestOptions<TransformOptions> | undefined);
getQueryOptions(query: RecordQuery, expression?: RecordQueryExpression): QueryOptions | undefined;
getTransformOptions(transform: RecordTransform, operation?: RecordOperation): TransformOptions | undefined;
}