@augment-vir/common
Version:
A collection of augments, helpers types, functions, and classes for any JavaScript environment.
11 lines (10 loc) • 1.85 kB
TypeScript
import { type AnyObject, type MaybePromise } from '@augment-vir/core';
export declare function getOrSetFromMap<MapKey extends object, MapValue>(map: WeakMap<MapKey, MapValue>, key: MapKey, createCallback: () => NoInfer<MapValue>): MapValue;
export declare function getOrSetFromMap<MapKey, MapValue>(map: Map<MapKey, MapValue>, key: MapKey, createCallback: () => NoInfer<MapValue>): MapValue;
export declare function getOrSetFromMap<MapKey extends object, MapValue>(map: WeakMap<MapKey, MapValue>, key: MapKey, createCallback: () => Promise<NoInfer<MapValue>>): Promise<MapValue>;
export declare function getOrSetFromMap<MapKey, MapValue>(map: Map<MapKey, MapValue>, key: MapKey, createCallback: () => Promise<NoInfer<MapValue>>): Promise<MapValue>;
export declare function getOrSetFromMap<MapKey extends object, MapValue>(map: WeakMap<MapKey, MapValue>, key: MapKey, createCallback: () => MaybePromise<NoInfer<MapValue>>): MaybePromise<MapValue>;
export declare function getOrSetFromMap<MapKey, MapValue>(map: Map<MapKey, MapValue>, key: MapKey, createCallback: () => MaybePromise<NoInfer<MapValue>>): MaybePromise<MapValue>;
export declare function getOrSet<OriginalObject extends AnyObject, Key extends keyof OriginalObject>(originalObject: OriginalObject, key: Key, createCallback: () => NoInfer<OriginalObject[Key]>): Required<OriginalObject>[Key];
export declare function getOrSet<OriginalObject extends AnyObject, Key extends keyof OriginalObject>(originalObject: OriginalObject, key: Key, createCallback: () => Promise<NoInfer<OriginalObject[Key]>>): Promise<Required<OriginalObject>[Key]>;
export declare function getOrSet<OriginalObject extends AnyObject, Key extends keyof OriginalObject>(originalObject: OriginalObject, key: Key, createCallback: () => MaybePromise<NoInfer<OriginalObject[Key]>>): MaybePromise<Required<OriginalObject>[Key]>;