@orbit/jsonapi
Version:
JSON:API support for Orbit.
75 lines (74 loc) • 5.22 kB
TypeScript
import { Dict } from '@orbit/utils';
import { RecordSchema, RecordKeyMap, InitializedRecord, RecordIdentity, RecordOperation, ModelDefinition } from '@orbit/records';
import { Serializer, SerializerForFn, StringSerializer } from '@orbit/serializers';
import { Resource, ResourceDocument, ResourceIdentity, ResourceRelationship } from './resource-document';
import { ResourceAtomicOperation, RecordOperationsDocument } from './resource-operations';
import { ResourceAtomicOperationsDocument } from './resource-operations';
import { RecordDocument } from './record-document';
import { JSONAPIResourceSerializer } from './serializers/jsonapi-resource-serializer';
import { JSONAPIResourceIdentitySerializer } from './serializers/jsonapi-resource-identity-serializer';
import { JSONAPIAtomicOperationSerializer } from './serializers/jsonapi-atomic-operation-serializer';
import { JSONAPIResourceFieldSerializer } from './serializers/jsonapi-resource-field-serializer';
export interface JSONAPISerializationOptions {
primaryRecord?: InitializedRecord;
primaryRecords?: InitializedRecord[];
}
export interface JSONAPISerializerSettings {
schema: RecordSchema;
keyMap?: RecordKeyMap;
serializers?: Dict<Serializer>;
}
/**
* @deprecated since v0.17, remove in v0.18
*/
export declare class JSONAPISerializer implements Serializer<RecordDocument, ResourceDocument, JSONAPISerializationOptions, JSONAPISerializationOptions> {
protected _schema: RecordSchema;
protected _keyMap?: RecordKeyMap;
protected _serializerFor: SerializerForFn;
constructor(settings: JSONAPISerializerSettings);
get schema(): RecordSchema;
get keyMap(): RecordKeyMap | undefined;
get serializerFor(): SerializerForFn;
resourceKey(type: string): string;
resourceType(type: string): string;
resourceRelationship(type: string | undefined, relationship: string): string;
resourceAttribute(type: string | undefined, attr: string): string;
resourceIdentity(identity: RecordIdentity): Resource;
resourceIds(type: string, ids: string[]): (string | undefined)[];
resourceId(type: string, id: string): string | undefined;
recordId(type: string, resourceId: string): string;
recordType(resourceType: string): string;
recordIdentity(resourceIdentity: ResourceIdentity): RecordIdentity;
recordAttribute(type: string, resourceAttribute: string): string;
recordRelationship(type: string, resourceRelationship: string): string;
serialize(document: RecordDocument): ResourceDocument;
serializeAtomicOperationsDocument(document: RecordOperationsDocument): ResourceAtomicOperationsDocument;
serializeAtomicOperations(operations: RecordOperation[]): ResourceAtomicOperation[];
serializeAtomicOperation(operation: RecordOperation): ResourceAtomicOperation;
serializeRecords(records: InitializedRecord[]): Resource[];
serializeRecord(record: InitializedRecord): Resource;
serializeIdentity(record: InitializedRecord): Resource;
serializeId(resource: Resource, record: RecordIdentity, model: ModelDefinition): void;
serializeAttributes(resource: Resource, record: InitializedRecord, model: ModelDefinition): void;
serializeAttribute(resource: Resource, record: InitializedRecord, attr: string, model: ModelDefinition): void;
serializeRelationships(resource: Resource, record: InitializedRecord, model: ModelDefinition): void;
serializeRelationship(resource: Resource, record: InitializedRecord, relationship: string, model: ModelDefinition): void;
deserialize(document: ResourceDocument, options?: JSONAPISerializationOptions): RecordDocument;
deserializeAtomicOperationsDocument(document: ResourceAtomicOperationsDocument): RecordOperationsDocument;
deserializeAtomicOperations(operations: ResourceAtomicOperation[]): RecordOperation[];
deserializeAtomicOperation(operation: ResourceAtomicOperation): RecordOperation;
deserializeResourceIdentity(resource: Resource, primaryRecord?: InitializedRecord): InitializedRecord;
deserializeResource(resource: Resource, primaryRecord?: InitializedRecord): InitializedRecord;
deserializeAttributes(record: InitializedRecord, resource: Resource, model: ModelDefinition): void;
deserializeAttribute(record: InitializedRecord, attr: string, value: unknown, model: ModelDefinition): void;
deserializeRelationships(record: InitializedRecord, resource: Resource, model: ModelDefinition): void;
deserializeRelationship(record: InitializedRecord, relationship: string, value: ResourceRelationship, model: ModelDefinition): void;
deserializeLinks(record: InitializedRecord, resource: Resource, model: ModelDefinition): void;
deserializeMeta(record: InitializedRecord, resource: Resource, model: ModelDefinition): void;
protected get resourceSerializer(): JSONAPIResourceSerializer;
protected get identitySerializer(): JSONAPIResourceIdentitySerializer;
protected get typeSerializer(): StringSerializer;
protected get fieldSerializer(): JSONAPIResourceFieldSerializer;
protected get atomicOperationSerializer(): JSONAPIAtomicOperationSerializer;
protected _generateNewId(type: string, keyName: string, keyValue: string): string;
}