UNPKG

@augment-vir/common

Version:

A collection of augments, helpers types, functions, and classes for any JavaScript environment.

11 lines (10 loc) 1.85 kB
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]>;