UNPKG

@orbit/jsonapi

Version:

JSON:API support for Orbit.

75 lines (74 loc) 5.22 kB
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; }