utils.d.ts 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. export declare function getTimeMeasureUtils(maxDelay: number, fnName: string): {
  2. measureTime<T>(fn: () => T): T;
  3. warnIfExceeded(): void;
  4. };
  5. export declare function delay(ms: number): Promise<unknown>;
  6. export declare function find<T>(iterable: Iterable<T>, comparator: (item: T) => boolean): T | undefined;
  7. export declare class Tuple<Items extends ReadonlyArray<unknown> = []> extends Array<Items[number]> {
  8. constructor(length: number);
  9. constructor(...items: Items);
  10. static get [Symbol.species](): any;
  11. concat<AdditionalItems extends ReadonlyArray<unknown>>(items: Tuple<AdditionalItems>): Tuple<[...Items, ...AdditionalItems]>;
  12. concat<AdditionalItems extends ReadonlyArray<unknown>>(items: AdditionalItems): Tuple<[...Items, ...AdditionalItems]>;
  13. concat<AdditionalItems extends ReadonlyArray<unknown>>(...items: AdditionalItems): Tuple<[...Items, ...AdditionalItems]>;
  14. prepend<AdditionalItems extends ReadonlyArray<unknown>>(items: Tuple<AdditionalItems>): Tuple<[...AdditionalItems, ...Items]>;
  15. prepend<AdditionalItems extends ReadonlyArray<unknown>>(items: AdditionalItems): Tuple<[...AdditionalItems, ...Items]>;
  16. prepend<AdditionalItems extends ReadonlyArray<unknown>>(...items: AdditionalItems): Tuple<[...AdditionalItems, ...Items]>;
  17. }
  18. export declare function freezeDraftable<T>(val: T): T;
  19. interface WeakMapEmplaceHandler<K extends object, V> {
  20. /**
  21. * Will be called to get value, if no value is currently in map.
  22. */
  23. insert?(key: K, map: WeakMap<K, V>): V;
  24. /**
  25. * Will be called to update a value, if one exists already.
  26. */
  27. update?(previous: V, key: K, map: WeakMap<K, V>): V;
  28. }
  29. interface MapEmplaceHandler<K, V> {
  30. /**
  31. * Will be called to get value, if no value is currently in map.
  32. */
  33. insert?(key: K, map: Map<K, V>): V;
  34. /**
  35. * Will be called to update a value, if one exists already.
  36. */
  37. update?(previous: V, key: K, map: Map<K, V>): V;
  38. }
  39. export declare function emplace<K, V>(map: Map<K, V>, key: K, handler: MapEmplaceHandler<K, V>): V;
  40. export declare function emplace<K extends object, V>(map: WeakMap<K, V>, key: K, handler: WeakMapEmplaceHandler<K, V>): V;
  41. export {};