NameMap.d.ts 525 B

123456789101112131415161718
  1. import type { InternalNamePath } from '../interface';
  2. interface KV<T> {
  3. key: InternalNamePath;
  4. value: T;
  5. }
  6. /**
  7. * NameMap like a `Map` but accepts `string[]` as key.
  8. */
  9. declare class NameMap<T> {
  10. private kvs;
  11. set(key: InternalNamePath, value: T): void;
  12. get(key: InternalNamePath): T;
  13. update(key: InternalNamePath, updater: (origin: T) => T | null): void;
  14. delete(key: InternalNamePath): void;
  15. map<U>(callback: (kv: KV<T>) => U): U[];
  16. toJSON(): Record<string, T>;
  17. }
  18. export default NameMap;