redis-json
Version:
A wrapper library to store JSON Objects in redis-hashsets and retrieve it back as JSON objects
49 lines (48 loc) • 1.49 kB
TypeScript
import { IObj, IResult } from '../interfaces';
import type { IStringifier, IParser } from './jsonCache.types';
/**
* @internal
*/
export interface IFlattener {
flatten(obj: IObj): IResult;
unflatten(result: IResult): IObj;
}
/**
* @internal
*
* Class for flattening and unflattening an object / array
*
* This could've been a simple function but is rather a class
* because we are instantiating it during the constructor phase of
* JSONCache class by calling it with stringifier & parser options.
*/
export declare class Flattener implements IFlattener {
private stringifier;
private parser;
constructor(stringifier?: IStringifier, parser?: IParser);
/**
* Flattens the given object and converts it
* to a dept of 1
*
* @param obj Object to be flattened
*/
flatten(obj: IObj): IResult;
/**
* Unflattens the given object to its original
* format and also applies the necessary types
* that it originally had
*
* @param flattened Flattened object
*/
unflatten(flattened: IResult): IObj;
/***********************************
* PRIVATE METHODS - Flatten helpers
**********************************/
private traverse;
private assignResult;
/*************************************
* PRIVATE METHODS - Unflatten helpers
*************************************/
private mergeTypes;
private scaffoldStructure;
}