UNPKG

typedoc

Version:

Create api documentation for TypeScript projects.

23 lines (22 loc) 928 B
import type { Serializer } from "./serializer.js"; import type { ModelToObject } from "./schema.js"; /** * Represents Serializer plugin component. * * Like {@link Converter} plugins each {@link Serializer} plugin defines a predicate that instructs if an * object can be serialized by it. This is done dynamically at runtime via a `supports` method. */ export interface SerializerComponent<T extends object> { /** * The priority this serializer should be executed with. * A higher priority means the {@link Serializer} will be applied earlier. */ readonly priority: number; /** * Technically this should return `item is T`, but that doesn't play nicely * with inference, so allow the looser `boolean` return type. * @param item */ supports(item: unknown): boolean; toObject(item: T, obj: Partial<ModelToObject<T>>, serializer: Serializer): Partial<ModelToObject<T>>; }