ts-japi
Version:
A highly-modular (typescript-friendly)-framework agnostic library for serializing data to the JSON:API specification
19 lines • 1.37 kB
TypeScript
import type { DataDocument } from "../interfaces/json-api.interface";
import type { SerializerOptions } from "../interfaces/serializer.interface";
import type Resource from "../models/resource.model";
import type ResourceIdentifier from "../models/resource-identifier.model";
import type { Dictionary, nullish, SingleOrArray } from "../types/global.types";
import type { Helpers } from "../utils/serializer.utils";
import type Relator from "./relator";
import Serializer from "./serializer";
export default class PolymorphicSerializer<PrimaryType extends Dictionary<any>> extends Serializer<PrimaryType> {
private serialisers;
private key;
constructor(commonName: string, key: keyof PrimaryType, serializers: Record<string, () => Serializer> | Record<string, Serializer>);
serialize(data: SingleOrArray<PrimaryType> | nullish, options?: Partial<SerializerOptions<PrimaryType>>): Promise<Partial<DataDocument<PrimaryType>>>;
createIdentifier(data: PrimaryType, options?: SerializerOptions<PrimaryType>): ResourceIdentifier;
createResource(data: PrimaryType, options?: Partial<SerializerOptions<PrimaryType>>, helpers?: Helpers<PrimaryType>, relatorDataCache?: Map<Relator<any>, Dictionary<any>[]>): Promise<Resource<PrimaryType>>;
private serializeType;
private getSerializerForData;
}
//# sourceMappingURL=polymorphic-serialiser.d.ts.map