util.d.ts 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. export declare namespace util {
  2. type AssertEqual<T, U> = (<V>() => V extends T ? 1 : 2) extends <V>() => V extends U ? 1 : 2 ? true : false;
  3. export type isAny<T> = 0 extends 1 & T ? true : false;
  4. export const assertEqual: <A, B>(_: AssertEqual<A, B>) => void;
  5. export function assertIs<T>(_arg: T): void;
  6. export function assertNever(_x: never): never;
  7. export type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
  8. export type OmitKeys<T, K extends string> = Pick<T, Exclude<keyof T, K>>;
  9. export type MakePartial<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
  10. export type Exactly<T, X> = T & Record<Exclude<keyof X, keyof T>, never>;
  11. export type InexactPartial<T> = {
  12. [k in keyof T]?: T[k] | undefined;
  13. };
  14. export const arrayToEnum: <T extends string, U extends [T, ...T[]]>(items: U) => { [k in U[number]]: k; };
  15. export const getValidEnumValues: (obj: any) => any[];
  16. export const objectValues: (obj: any) => any[];
  17. export const objectKeys: ObjectConstructor["keys"];
  18. export const find: <T>(arr: T[], checker: (arg: T) => any) => T | undefined;
  19. export type identity<T> = objectUtil.identity<T>;
  20. export type flatten<T> = objectUtil.flatten<T>;
  21. export type noUndefined<T> = T extends undefined ? never : T;
  22. export const isInteger: NumberConstructor["isInteger"];
  23. export function joinValues<T extends any[]>(array: T, separator?: string): string;
  24. export const jsonStringifyReplacer: (_: string, value: any) => any;
  25. export {};
  26. }
  27. export declare namespace objectUtil {
  28. export type MergeShapes<U, V> = keyof U & keyof V extends never ? U & V : {
  29. [k in Exclude<keyof U, keyof V>]: U[k];
  30. } & V;
  31. type optionalKeys<T extends object> = {
  32. [k in keyof T]: undefined extends T[k] ? k : never;
  33. }[keyof T];
  34. type requiredKeys<T extends object> = {
  35. [k in keyof T]: undefined extends T[k] ? never : k;
  36. }[keyof T];
  37. export type addQuestionMarks<T extends object, _O = any> = {
  38. [K in requiredKeys<T>]: T[K];
  39. } & {
  40. [K in optionalKeys<T>]?: T[K];
  41. } & {
  42. [k in keyof T]?: unknown;
  43. };
  44. export type identity<T> = T;
  45. export type flatten<T> = identity<{
  46. [k in keyof T]: T[k];
  47. }>;
  48. export type noNeverKeys<T> = {
  49. [k in keyof T]: [T[k]] extends [never] ? never : k;
  50. }[keyof T];
  51. export type noNever<T> = identity<{
  52. [k in noNeverKeys<T>]: k extends keyof T ? T[k] : never;
  53. }>;
  54. export const mergeShapes: <U, T>(first: U, second: T) => T & U;
  55. export type extendShape<A extends object, B extends object> = keyof A & keyof B extends never ? A & B : {
  56. [K in keyof A as K extends keyof B ? never : K]: A[K];
  57. } & {
  58. [K in keyof B]: B[K];
  59. };
  60. export {};
  61. }
  62. export declare const ZodParsedType: {
  63. string: "string";
  64. nan: "nan";
  65. number: "number";
  66. integer: "integer";
  67. float: "float";
  68. boolean: "boolean";
  69. date: "date";
  70. bigint: "bigint";
  71. symbol: "symbol";
  72. function: "function";
  73. undefined: "undefined";
  74. null: "null";
  75. array: "array";
  76. object: "object";
  77. unknown: "unknown";
  78. promise: "promise";
  79. void: "void";
  80. never: "never";
  81. map: "map";
  82. set: "set";
  83. };
  84. export type ZodParsedType = keyof typeof ZodParsedType;
  85. export declare const getParsedType: (data: any) => ZodParsedType;