@orbit/jsonapi
Version:
JSON:API support for Orbit.
25 lines (24 loc) • 1.28 kB
TypeScript
import { InitializedRecord, RecordSchema, RecordKeyMap } from '@orbit/records';
import { Dict } from '@orbit/utils';
import { Resource } from '../resource-document';
import { JSONAPIBaseSerializer } from './jsonapi-base-serializer';
import { SerializerForFn } from '@orbit/serializers';
export interface JSONAPIResourceIdentityDeserializationOptions {
primaryRecord?: InitializedRecord;
includeKeys?: boolean;
}
export interface JSONAPIResourceIdentitySerializerSettings {
serializerFor: SerializerForFn;
deserializationOptions?: JSONAPIResourceIdentityDeserializationOptions;
schema: RecordSchema;
keyMap?: RecordKeyMap;
getResourceKey?: (recordType: string) => string;
}
export declare class JSONAPIResourceIdentitySerializer extends JSONAPIBaseSerializer<InitializedRecord, Resource, unknown, JSONAPIResourceIdentityDeserializationOptions> {
protected _resourceKeys: Dict<string>;
protected _getCustomResourceKey?: (recordType: string) => string;
getResourceKey(type: string): string;
constructor(settings: JSONAPIResourceIdentitySerializerSettings);
serialize(recordIdentity: InitializedRecord): Resource;
deserialize(resource: Resource, customOptions?: JSONAPIResourceIdentityDeserializationOptions): InitializedRecord;
}