UNPKG

@dipscope/type-manager

Version:

Transform JSON strings or plain objects into JS class instances.

56 lines 2.55 kB
import { ReferenceHandler } from '../reference-handler'; import { ReferenceKey } from '../reference-key'; import { ReferenceValue } from '../reference-value'; import { ReferenceValueGetter } from '../reference-value-getter'; import { SerializerContext } from '../serializer-context'; /** * Json path reference handler preserves references using JSONPath. * * @type {JsonPathReferenceHandler} */ export declare class JsonPathReferenceHandler implements ReferenceHandler { /** * Regular expression used to get array key from a certain place of the JSONPath. * * @type {RegExp} */ private readonly arrayKeyRegExp; /** * Defines reference. Called during serialization. * * @param {SerializerContext<any>} serializerContext Serializer context. * @param {ReferenceKey} referenceKey Reference which acts as a key. This is basically a serializing object. * @param {ReferenceValueGetter} referenceValueGetter Function to get a reference value when one is not yet present for a key. * * @returns {ReferenceValue} Resolved reference value. */ define(serializerContext: SerializerContext<any>, referenceKey: ReferenceKey, referenceValueGetter: ReferenceValueGetter): ReferenceValue; /** * Restores reference. Called during deserialization. * * @param {SerializerContext<any>} serializerContext Serializer context. * @param {ReferenceKey} referenceKey Reference which acts as a key. This is basically a deserializing object. * @param {ReferenceValueGetter} referenceValueGetter Function to get a reference value when one is not yet present for a key. * * @returns {ReferenceValue} Resolved reference value. */ restore(serializerContext: SerializerContext<any>, referenceKey: ReferenceKey, referenceValueGetter: ReferenceValueGetter): ReferenceValue; /** * Defines reference target based on reference key. * * @param {SerializerContext<any>} serializerContext Serializer context. * @param {ReferenceKey} referenceKey Reference which acts as a key. This is basically a deserializing object. * * @returns {ReferenceKey} Reference which acts as a target key in context of JSONPath. */ private defineReferenceTarget; /** * Converts reference path to array. * * @param {string} referencePath Reference path. * * @returns {Array<string>} Array reference path. */ private convertReferencePathToArray; } //# sourceMappingURL=json-path-reference-handler.d.ts.map