| @@ -3,7 +3,7 @@ |
| 3 | 3 | |
| 4 | 4 | import type { SchemaMeta } from './meta' |
| 5 | 5 | import type { ResolvedPivot } from './pivot' |
| 6 | | -import type { DatabaseSchema } from './schema' |
| 6 | +import type { DatabaseSchema, AnyDatabaseSchema } from './schema' |
| 7 | 7 | import type { QueryBuilderOptions, QueryHooks, SupportedDialect} from './types' |
| 8 | 8 | import { config, getPlaceholder, getPlaceholders, isMysqlLike, setConfig } from './config' |
| 9 | 9 | import type { DriverConnection } from './db' |
| @@ -400,7 +400,7 @@ class QueryCache { |
| 400 | 400 | private cache = new Map<string, CacheEntry>() |
| 401 | 401 | private maxSize = 100 |
| 402 | 402 | |
| 403 | | - get(key: string): any | null { |
| 403 | + get<T = unknown>(key: string): T | null { |
| 404 | 404 | const entry = this.cache.get(key) |
| 405 | 405 | if (!entry) |
| 406 | 406 | return null |
| @@ -420,7 +420,7 @@ class QueryCache { |
| 420 | 420 | return entry.data |
| 421 | 421 | } |
| 422 | 422 | |
| 423 | | - set(key: string, data: any, ttlMs: number): void { |
| 423 | + set(key: string, data: unknown, ttlMs: number): void { |
| 424 | 424 | |
| 425 | 425 | if (this.cache.has(key)) |
| 426 | 426 | this.cache.delete(key) |
| @@ -526,15 +526,15 @@ export type SortDirection = 'asc' | 'desc' |
| 526 | 526 | * |
| 527 | 527 | * Helper type extracting a string union of column names for a given table. |
| 528 | 528 | */ |
| 529 | | -export type ColumnName<DB extends DatabaseSchema<any>, TTable extends keyof DB & string> = keyof DB[TTable]['columns'] & string |
| 529 | +export type ColumnName<DB extends AnyDatabaseSchema, TTable extends keyof DB & string> = keyof DB[TTable]['columns'] & string |
| 530 | 530 | |
| 531 | 531 | export type SelectedRow< |
| 532 | | - DB extends DatabaseSchema<any>, |
| 532 | + DB extends AnyDatabaseSchema, |
| 533 | 533 | _TTable extends keyof DB & string, |
| 534 | 534 | TSelected, |
| 535 | 535 | > = Readonly<TSelected> |
| 536 | 536 | |
| 537 | | -type PrimaryKeyValue<DB extends DatabaseSchema<any>, TTable extends keyof DB & string> = |
| 537 | +type PrimaryKeyValue<DB extends AnyDatabaseSchema, TTable extends keyof DB & string> = |
| 538 | 538 | DB[TTable]['primaryKey'] extends keyof DB[TTable]['columns'] |
| 539 | 539 | ? DB[TTable]['columns'][DB[TTable]['primaryKey']] |
| 540 | 540 | : unknown |
| @@ -545,7 +545,7 @@ type NumericColumnName<Columns> = { |
| 545 | 545 | : Exclude<Columns[K], null | undefined> extends number ? K : never |
| 546 | 546 | }[keyof Columns & string] |
| 547 | 547 | |
| 548 | | -type JoinColumn<DB extends DatabaseSchema<any>, TTables extends string> = TTables extends any |
| 548 | +type JoinColumn<DB extends AnyDatabaseSchema, TTables extends string> = TTables extends any |
| 549 | 549 | ? `${TTables}.${keyof DB[TTables]['columns'] & string}` |
| 550 | 550 | : never |
| 551 | 551 | |
| @@ -559,13 +559,13 @@ type JoinColumn<DB extends DatabaseSchema<any>, TTables extends string> = TTable |
| 559 | 559 | * untyped schemas keep compiling. A table that declares ZERO relations |
| 560 | 560 | * yields `never` — every relation name is rejected. |
| 561 | 561 | */ |
| 562 | | -export type TableRelationName<DB extends DatabaseSchema<any>, TTable extends keyof DB & string> = |
| 562 | +export type TableRelationName<DB extends AnyDatabaseSchema, TTable extends keyof DB & string> = |
| 563 | 563 | DB[TTable] extends { relations?: infer R } |
| 564 | 564 | ? unknown extends R ? string : keyof NonNullable<R> & string |
| 565 | 565 | : string |
| 566 | 566 | |
| 567 | 567 | type RelatedTableName< |
| 568 | | - DB extends DatabaseSchema<any>, |
| 568 | + DB extends AnyDatabaseSchema, |
| 569 | 569 | TTable extends keyof DB & string, |
| 570 | 570 | TRelation extends TableRelationName<DB, TTable>, |
| 571 | 571 | > = DB[TTable] extends { relations?: infer Relations } |
| @@ -575,7 +575,7 @@ type RelatedTableName< |
| 575 | 575 | : keyof DB & string |
| 576 | 576 | |
| 577 | 577 | type RelationQueryBuilder< |
| 578 | | - DB extends DatabaseSchema<any>, |
| 578 | + DB extends AnyDatabaseSchema, |
| 579 | 579 | TTable extends keyof DB & string, |
| 580 | 580 | TRelation extends TableRelationName<DB, TTable>, |
| 581 | 581 | > = SelectQueryBuilder< |
| @@ -584,7 +584,7 @@ type RelationQueryBuilder< |
| 584 | 584 | DB[RelatedTableName<DB, TTable, TRelation>]['columns'] |
| 585 | 585 | > |
| 586 | 586 | |
| 587 | | -type RelationConstraintRecord<DB extends DatabaseSchema<any>, TTable extends keyof DB & string> = { |
| 587 | +type RelationConstraintRecord<DB extends AnyDatabaseSchema, TTable extends keyof DB & string> = { |
| 588 | 588 | [R in TableRelationName<DB, TTable>]: Partial<Record<R, (qb: RelationQueryBuilder<DB, TTable, R>) => unknown>> |
| 589 | 589 | }[TableRelationName<DB, TTable>] |
| 590 | 590 | |
| @@ -597,7 +597,7 @@ type RelationConstraintRecord<DB extends DatabaseSchema<any>, TTable extends key |
| 597 | 597 | * relations accepts nothing (the bare `Partial<Record<never, ...>>` would be |
| 598 | 598 | * `{}`, which strings are assignable to — hence the explicit never guard). |
| 599 | 599 | */ |
| 600 | | -export type WithRelationArg<DB extends DatabaseSchema<any>, TTable extends keyof DB & string> = |
| 600 | +export type WithRelationArg<DB extends AnyDatabaseSchema, TTable extends keyof DB & string> = |
| 601 | 601 | [TableRelationName<DB, TTable>] extends [never] |
| 602 | 602 | ? never |
| 603 | 603 | : |
| @@ -614,7 +614,7 @@ type SnakeToPascal<S extends string> = S extends `${infer H}_${infer T}` |
| 614 | 614 | |
| 615 | 615 | |
| 616 | 616 | type _TypedDynamicWhereMethods< |
| 617 | | - DB extends DatabaseSchema<any>, |
| 617 | + DB extends AnyDatabaseSchema, |
| 618 | 618 | TTable extends keyof DB & string, |
| 619 | 619 | TSelected, |
| 620 | 620 | TJoined extends string, |
| @@ -639,7 +639,7 @@ type _TypedDynamicWhereMethods< |
| 639 | 639 | |
| 640 | 640 | |
| 641 | 641 | export type TypedSelectQueryBuilder< |
| 642 | | - DB extends DatabaseSchema<any>, |
| 642 | + DB extends AnyDatabaseSchema, |
| 643 | 643 | TTable extends keyof DB & string, |
| 644 | 644 | TSelected, |
| 645 | 645 | TJoined extends string = TTable, |
| @@ -685,7 +685,7 @@ export type TypedSelectQueryBuilder< |
| 685 | 685 | } |
| 686 | 686 | |
| 687 | 687 | type DynamicWhereMethods< |
| 688 | | - DB extends DatabaseSchema<any>, |
| 688 | + DB extends AnyDatabaseSchema, |
| 689 | 689 | TTable extends keyof DB & string, |
| 690 | 690 | TSelected, |
| 691 | 691 | TJoined extends string = TTable, |
| @@ -698,7 +698,7 @@ type DynamicWhereMethods< |
| 698 | 698 | } |
| 699 | 699 | |
| 700 | 700 | export interface BaseSelectQueryBuilder< |
| 701 | | - DB extends DatabaseSchema<any>, |
| 701 | + DB extends AnyDatabaseSchema, |
| 702 | 702 | TTable extends keyof DB & string, |
| 703 | 703 | TSelected, |
| 704 | 704 | TJoined extends string = TTable, |
| @@ -926,7 +926,7 @@ export interface BaseSelectQueryBuilder< |
| 926 | 926 | |
| 927 | 927 | orWhereNotNull: (column: keyof DB[TTable]['columns'] & string) => SelectQueryBuilder<DB, TTable, TSelected, TJoined> |
| 928 | 928 | |
| 929 | | - orWhereBetween: (column: keyof DB[TTable]['columns'] & string, start: any, end: any) => SelectQueryBuilder<DB, TTable, TSelected, TJoined> |
| 929 | + orWhereBetween: <K extends keyof DB[TTable]['columns'] & string>(column: K, start: DB[TTable]['columns'][K], end: DB[TTable]['columns'][K]) => SelectQueryBuilder<DB, TTable, TSelected, TJoined> |
| 930 | 930 | |
| 931 | 931 | orWhereExists: (subquery: { toSQL: () => any }) => SelectQueryBuilder<DB, TTable, TSelected, TJoined> |
| 932 | 932 | |
| @@ -1906,13 +1906,13 @@ export interface BaseSelectQueryBuilder< |
| 1906 | 1906 | |
| 1907 | 1907 | |
| 1908 | 1908 | |
| 1909 | | - |
| 1909 | + |
| 1910 | 1910 | |
| 1911 | 1911 | |
| 1912 | 1912 | |
| 1913 | 1913 | |
| 1914 | 1914 | |
| 1915 | | - |
| 1915 | + |
| 1916 | 1916 | |
| 1917 | 1917 | |
| 1918 | 1918 | |
| @@ -1965,7 +1965,7 @@ export interface InsertQueryBuilder<DB extends DatabaseSchema<any>, TTable exten |
| 1965 | 1965 | |
| 1966 | 1966 | |
| 1967 | 1967 | |
| 1968 | | - |
| 1968 | + |
| 1969 | 1969 | |
| 1970 | 1970 | |
| 1971 | 1971 | |
| @@ -2064,7 +2064,7 @@ export interface UpdateQueryBuilder<DB extends DatabaseSchema<any>, TTable exten |
| 2064 | 2064 | |
| 2065 | 2065 | |
| 2066 | 2066 | |
| 2067 | | - |
| 2067 | + |
| 2068 | 2068 | |
| 2069 | 2069 | |
| 2070 | 2070 | |
| @@ -2144,7 +2144,7 @@ export interface DeleteQueryBuilder<DB extends DatabaseSchema<any>, TTable exten |
| 2144 | 2144 | |
| 2145 | 2145 | |
| 2146 | 2146 | |
| 2147 | | - |
| 2147 | + |
| 2148 | 2148 | |
| 2149 | 2149 | |
| 2150 | 2150 | |
| @@ -2192,7 +2192,7 @@ export interface TableQueryBuilder<DB extends DatabaseSchema<any>, TTable extend |
| 2192 | 2192 | |
| 2193 | 2193 | |
| 2194 | 2194 | |
| 2195 | | - |
| 2195 | + |
| 2196 | 2196 | |
| 2197 | 2197 | |
| 2198 | 2198 | |
| @@ -2660,7 +2660,7 @@ finally { reserved.release() } |
| 2660 | 2660 | |
| 2661 | 2661 | |
| 2662 | 2662 | |
| 2663 | | - |
| 2663 | + |
| 2664 | 2664 | |
| 2665 | 2665 | |
| 2666 | 2666 | |
| @@ -2680,9 +2680,10 @@ export type TypedInsertQueryBuilder< |
| 2680 | 2680 | |
| 2681 | 2681 | |
| 2682 | 2682 | |
| 2683 | | - |
| 2683 | + |
| 2684 | + sql: DriverConnection |
| 2684 | 2685 | meta?: SchemaMeta |
| 2685 | | - |
| 2686 | + schema?: AnyDatabaseSchema |
| 2686 | 2687 | txDefaults?: TransactionOptions |
| 2687 | 2688 | |
| 2688 | 2689 | |