UNPKG

@orbit/records

Version:

A flexible data access and synchronization layer.

63 lines (62 loc) 3.12 kB
import { TransformBuilderFunc } from '@orbit/data'; import { StandardValidator, ValidatorForFn } from '@orbit/validators'; import { InitializedRecord, RecordIdentity, RecordInitializer, UninitializedRecord } from './record'; import { RecordNormalizer } from './record-normalizer'; import { RecordOperation } from './record-operation'; import { AddRecordTerm, AddToRelatedRecordsTerm, RemoveFromRelatedRecordsTerm, RemoveRecordTerm, ReplaceAttributeTerm, ReplaceKeyTerm, ReplaceRelatedRecordsTerm, ReplaceRelatedRecordTerm, UpdateRecordTerm } from './record-operation-term'; import { RecordSchema } from './record-schema'; import { StandardRecordValidator } from './record-validators/standard-record-validators'; export declare type RecordTransformBuilderFunc = TransformBuilderFunc<RecordOperation, RecordTransformBuilder>; export interface RecordTransformBuilderSettings<RT = string, RI = RecordIdentity, R = UninitializedRecord> { /** * @deprecated since v0.17, replaced by `recordNormalizer` */ recordInitializer?: RecordInitializer; schema?: RecordSchema; normalizer?: RecordNormalizer<RT, RI, R>; validatorFor?: ValidatorForFn<StandardValidator | StandardRecordValidator>; } export declare class RecordTransformBuilder<RT = string, RI = RecordIdentity, R = UninitializedRecord> { $schema?: RecordSchema; $normalizer?: RecordNormalizer<RT, RI, R>; $validatorFor?: ValidatorForFn<StandardValidator | StandardRecordValidator>; constructor(settings?: RecordTransformBuilderSettings<RT, RI, R>); /** * Instantiate a new `addRecord` operation. */ addRecord(record: R): AddRecordTerm<RT, RI, R>; /** * Instantiate a new `updateRecord` operation. */ updateRecord(record: R): UpdateRecordTerm<RT, RI, R>; /** * Instantiate a new `removeRecord` operation. */ removeRecord(record: RI): RemoveRecordTerm<RT, RI, R>; /** * Instantiate a new `replaceKey` operation. */ replaceKey(record: RI, key: string, value: string): ReplaceKeyTerm<RT, RI, R>; /** * Instantiate a new `replaceAttribute` operation. */ replaceAttribute(record: RI, attribute: string, value: unknown): ReplaceAttributeTerm<RT, RI, R>; /** * Instantiate a new `addToRelatedRecords` operation. */ addToRelatedRecords(record: RI, relationship: string, relatedRecord: RI): AddToRelatedRecordsTerm<RT, RI, R>; /** * Instantiate a new `removeFromRelatedRecords` operation. */ removeFromRelatedRecords(record: RI, relationship: string, relatedRecord: RI): RemoveFromRelatedRecordsTerm<RT, RI, R>; /** * Instantiate a new `replaceRelatedRecords` operation. */ replaceRelatedRecords(record: RI, relationship: string, relatedRecords: RI[]): ReplaceRelatedRecordsTerm<RT, RI, R>; /** * Instantiate a new `replaceRelatedRecord` operation. */ replaceRelatedRecord(record: RI, relationship: string, relatedRecord: RI | null): ReplaceRelatedRecordTerm<RT, RI, R>; $normalizeRecord(r: R): InitializedRecord; $normalizeRecordIdentity(ri: RI): RecordIdentity; }