You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

37 lines
1.8 KiB

  1. 'use strict';
  2. declare global {
  3. export type PartialDeep<T> = T extends Record<string, unknown> ? { [K in keyof T]?: PartialDeep<T[K]> } : T;
  4. export type PickPartialDeep<T, K extends keyof T> = Omit<Partial<T>, K> & { [P in K]?: Partial<T[P]> };
  5. export type Mutable<T> = { -readonly [P in keyof T]: T[P] };
  6. export type PickMutable<T, K extends keyof T> = Omit<T, K> & { -readonly [P in K]: T[P] };
  7. export type ExcludeSome<T, K extends keyof T, R> = Omit<T, K> & { [P in K]-?: Exclude<T[P], R> };
  8. export type ExtractSome<T, K extends keyof T, R> = Omit<T, K> & { [P in K]-?: Extract<T[P], R> };
  9. export type RequireSome<T, K extends keyof T> = Omit<T, K> & { [P in K]-?: T[P] };
  10. export type AllNonNullable<T> = { [P in keyof T]-?: NonNullable<T[P]> };
  11. export type SomeNonNullable<T, K extends keyof T> = Omit<T, K> & { [P in K]-?: NonNullable<T[P]> };
  12. export type NarrowRepo<T extends { repo?: unknown }> = ExcludeSome<T, 'repo', string | undefined>;
  13. export type NarrowRepos<T extends { repos?: unknown }> = ExcludeSome<T, 'repos', string | string[] | undefined>;
  14. }
  15. export * as Arrays from './system/array';
  16. export * as Dates from './system/date';
  17. export * from './system/decorators/gate';
  18. export * from './system/decorators/log';
  19. export * from './system/decorators/memoize';
  20. export * from './system/decorators/serialize';
  21. export * from './system/decorators/timeout';
  22. export * as Encoding from './system/encoding';
  23. export * as Functions from './system/function';
  24. export * as Iterables from './system/iterable';
  25. export * as Objects from './system/object';
  26. export * as Paths from './system/path';
  27. export * as Promises from './system/promise';
  28. export * from './system/searchTree';
  29. export * from './system/stopwatch';
  30. export * as Strings from './system/string';
  31. export * as Versions from './system/version';