@orbit/records
Version:
A flexible data access and synchronization layer.
63 lines (62 loc) • 3.12 kB
TypeScript
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;
}