@bishwenduk029/fringe
Version:
Edge rendered React and GraphQL
17 lines (16 loc) • 1.13 kB
TypeScript
import { NormKey, NormMap } from './norm-map';
/**
* Fetches an object from the normalized map, taking as type parameter the object
* has when denormalized, but returning the type it will have as a normalized object.
* @param key The normalized map key
* @param normMap The normalized map
*/
export declare function getNormalizedObject<TDenormalized>(key: string, normMap: NormMap): NormalizedObject<TDenormalized>;
export declare type NormalizedField<T> = T extends string ? string : T extends number ? number : T extends boolean ? boolean : T extends {} ? string : T extends ReadonlyArray<string> ? ReadonlyArray<string> : T extends ReadonlyArray<boolean> ? ReadonlyArray<boolean> : T extends ReadonlyArray<number> ? ReadonlyArray<number> : T extends ReadonlyArray<object> ? ReadonlyArray<NormKey> : 'undefined value';
/**
* This type maps a denormalized object type to a normalized object type.
* It does it by converting arrays of objects into arrays of normalized map keys.
*/
export declare type NormalizedObject<TDenormalized> = {
readonly [P in keyof TDenormalized]: NormalizedField<TDenormalized[P]>;
};