UNPKG

ts-std-lib

Version:
28 lines (27 loc) 1.36 kB
import 'reflect-metadata'; import { Json } from './Json'; import { IJsonSerializer, jsonSerializer } from './IJsonSerializer'; import { IJsonSerializable } from './Json'; export interface JsonSerializableConstructor { fromJSON<T extends JsonSerializable>(json: Json): T; } /** * A base type to use for objects that can then be serialized to/from json using decorators */ export declare abstract class JsonSerializable implements IJsonSerializable { static fromJSON<T extends JsonSerializable>(json: Json): T; toJSON(_key?: string | number): Json; } /** * A default implementation of IJsonSerializer */ export declare class DefaultSerializer implements IJsonSerializer<any> { readonly [jsonSerializer] = true; private readonly _jsonSerializableConstructor; constructor(jsonSerializableConstructor?: JsonSerializableConstructor); serialize(object: unknown): Json; deserialize(json: Json): any; } export declare function jsonProperty<T>(name?: string, serializer?: IJsonSerializer<T> | JsonSerializableConstructor): PropertyDecorator; export declare function jsonProperty<T>(serializer?: IJsonSerializer<T> | JsonSerializableConstructor): PropertyDecorator; export declare function jsonParameter<T>(name?: string, serializer?: IJsonSerializer<T> | JsonSerializableConstructor): ParameterDecorator;