utils.d.cts 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import type { Cache } from "./cache/core/cache.cjs";
  2. import type { AnyColumn } from "./column.cjs";
  3. import type { Logger } from "./logger.cjs";
  4. import { Param, SQL, View } from "./sql/sql.cjs";
  5. import { Table } from "./table.cjs";
  6. export declare function haveSameKeys(left: Record<string, unknown>, right: Record<string, unknown>): boolean;
  7. export type UpdateSet = Record<string, SQL | Param | AnyColumn | null | undefined>;
  8. export type OneOrMany<T> = T | T[];
  9. export type Update<T, TUpdate> = {
  10. [K in Exclude<keyof T, keyof TUpdate>]: T[K];
  11. } & TUpdate;
  12. export type Simplify<T> = {
  13. [K in keyof T]: T[K];
  14. } & {};
  15. export type Not<T extends boolean> = T extends true ? false : true;
  16. export type IsNever<T> = [T] extends [never] ? true : false;
  17. export type IsUnion<T, U extends T = T> = (T extends any ? (U extends T ? false : true) : never) extends false ? false : true;
  18. export type SingleKeyObject<T, TError extends string, K = keyof T> = IsNever<K> extends true ? never : IsUnion<K> extends true ? DrizzleTypeError<TError> : T;
  19. export type FromSingleKeyObject<T, Result, TError extends string, K = keyof T> = IsNever<K> extends true ? never : IsUnion<K> extends true ? DrizzleTypeError<TError> : Result;
  20. export type SimplifyMappedType<T> = [T] extends [unknown] ? T : never;
  21. export type ShallowRecord<K extends keyof any, T> = SimplifyMappedType<{
  22. [P in K]: T;
  23. }>;
  24. export type Assume<T, U> = T extends U ? T : U;
  25. export type Equal<X, Y> = (<T>() => T extends X ? 1 : 2) extends (<T>() => T extends Y ? 1 : 2) ? true : false;
  26. export interface DrizzleTypeError<T extends string> {
  27. $drizzleTypeError: T;
  28. }
  29. export type ValueOrArray<T> = T | T[];
  30. export type Or<T1, T2> = T1 extends true ? true : T2 extends true ? true : false;
  31. export type IfThenElse<If, Then, Else> = If extends true ? Then : Else;
  32. export type PromiseOf<T> = T extends Promise<infer U> ? U : T;
  33. export type Writable<T> = {
  34. -readonly [P in keyof T]: T[P];
  35. };
  36. export type NonArray<T> = T extends any[] ? never : T;
  37. export declare function getTableColumns<T extends Table>(table: T): T['_']['columns'];
  38. export declare function getViewSelectedFields<T extends View>(view: T): T['_']['selectedFields'];
  39. export type ColumnsWithTable<TTableName extends string, TForeignTableName extends string, TColumns extends AnyColumn<{
  40. tableName: TTableName;
  41. }>[]> = {
  42. [Key in keyof TColumns]: AnyColumn<{
  43. tableName: TForeignTableName;
  44. }>;
  45. };
  46. export type Casing = 'snake_case' | 'camelCase';
  47. export interface DrizzleConfig<TSchema extends Record<string, unknown> = Record<string, never>> {
  48. logger?: boolean | Logger;
  49. schema?: TSchema;
  50. casing?: Casing;
  51. cache?: Cache;
  52. }
  53. export type ValidateShape<T, ValidShape, TResult = T> = T extends ValidShape ? Exclude<keyof T, keyof ValidShape> extends never ? TResult : DrizzleTypeError<`Invalid key(s): ${Exclude<(keyof T) & (string | number | bigint | boolean | null | undefined), keyof ValidShape>}`> : never;
  54. export type KnownKeysOnly<T, U> = {
  55. [K in keyof T]: K extends keyof U ? T[K] : never;
  56. };
  57. export type IsAny<T> = 0 extends (1 & T) ? true : false;
  58. export type IfNotImported<T, Y, N> = unknown extends T ? Y : N;
  59. export type ImportTypeError<TPackageName extends string> = `Please install \`${TPackageName}\` to allow Drizzle ORM to connect to the database`;
  60. export type RequireAtLeastOne<T, Keys extends keyof T = keyof T> = Keys extends any ? Required<Pick<T, Keys>> & Partial<Omit<T, Keys>> : never;
  61. export declare function isConfig(data: any): boolean;
  62. export type NeonAuthToken = string | (() => string | Promise<string>);
  63. export declare const textDecoder: TextDecoder | null;