@dipscope/type-manager
Version:
Transform JSON strings or plain objects into JS class instances.
56 lines • 2.55 kB
TypeScript
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