Skip to content

Commit

Permalink
refactor: simplify types
Browse files Browse the repository at this point in the history
  • Loading branch information
thetutlage committed Oct 6, 2019
1 parent bac1467 commit 118391e
Show file tree
Hide file tree
Showing 3 changed files with 138 additions and 405 deletions.
35 changes: 10 additions & 25 deletions adonis-typings/database.ts
Original file line number Diff line number Diff line change
Expand Up @@ -93,26 +93,19 @@ declare module '@ioc:Adonis/Lucid/Database' {
* Get new query builder instance for select, update and
* delete calls
*/
query<
Record extends any = any,
Result extends any = Record,
> (): DatabaseQueryBuilderContract<Record, Result> & ExcutableQueryBuilderContract<Result>,
query<Result extends any = any> (
): DatabaseQueryBuilderContract<Result> & ExcutableQueryBuilderContract<Result>,

/**
* Get new query builder instance inserts
*/
insertQuery<
Record extends any = any,
ReturnColumns extends any = Record
> (
): InsertQueryBuilderContract<Record, ReturnColumns[]> & ExcutableQueryBuilderContract<ReturnColumns[]>,
insertQuery<ReturnColumns extends any = any> (
): InsertQueryBuilderContract & ExcutableQueryBuilderContract<ReturnColumns[]>,

/**
* Get raw query builder instance
*/
raw<
Result extends any = any
> (
raw<Result extends any = any> (
sql: string,
bindings?: { [key: string]: StrictValuesWithoutRaw } | StrictValuesWithoutRaw,
): RawContract & ExcutableQueryBuilderContract<Result>
Expand Down Expand Up @@ -594,29 +587,21 @@ declare module '@ioc:Adonis/Lucid/Database' {
/**
* Get query builder instance for a given connection.
*/
query<
Record extends any = any,
Result extends any = Record,
> (
query<Result extends any = any> (
options?: DatabaseClientOptions,
): DatabaseQueryBuilderContract<Record, Result> & ExcutableQueryBuilderContract<Result>,
): DatabaseQueryBuilderContract<Result> & ExcutableQueryBuilderContract<Result>,

/**
* Get insert query builder instance for a given connection.
*/
insertQuery<
Record extends any = any,
ReturnColumns extends any = Record
> (
insertQuery<ReturnColumns extends any = any> (
options?: DatabaseClientOptions,
): InsertQueryBuilderContract<Record, ReturnColumns[]> & ExcutableQueryBuilderContract<ReturnColumns[]>,
): InsertQueryBuilderContract & ExcutableQueryBuilderContract<ReturnColumns[]>,

/**
* Get raw query builder instance
*/
raw<
Result extends any = any
> (
raw<Result extends any = any> (
sql: string,
bindings?: { [key: string]: StrictValuesWithoutRaw } | StrictValuesWithoutRaw[],
options?: DatabaseClientOptions,
Expand Down
16 changes: 8 additions & 8 deletions adonis-typings/model.ts
Original file line number Diff line number Diff line change
Expand Up @@ -293,18 +293,18 @@ declare module '@ioc:Adonis/Lucid/Model' {
* Possible signatures for adding a where clause
*/
interface WherePivot<Builder extends ChainableContract> {
(key: string, value: StrictValues | ChainableContract<any>): Builder
(key: string, operator: string, value: StrictValues | ChainableContract<any>): Builder
(key: string, value: StrictValues | ChainableContract): Builder
(key: string, operator: string, value: StrictValues | ChainableContract): Builder
}

/**
* Possible signatures for adding where in clause.
*/
interface WhereInPivot<Builder extends ChainableContract> {
(K: string, value: (StrictValues | ChainableContract<any>)[]): Builder
(K: string[], value: (StrictValues | ChainableContract<any>)[][]): Builder
(k: string, subquery: ChainableContract<any> | QueryCallback<Builder>): Builder
(k: string[], subquery: ChainableContract<any>): Builder
(K: string, value: (StrictValues | ChainableContract)[]): Builder
(K: string[], value: (StrictValues | ChainableContract)[][]): Builder
(k: string, subquery: ChainableContract | QueryCallback<Builder>): Builder
(k: string[], subquery: ChainableContract): Builder
}

/**
Expand Down Expand Up @@ -369,8 +369,8 @@ declare module '@ioc:Adonis/Lucid/Model' {
* Model query builder will have extras methods on top of Database query builder
*/
export interface ModelQueryBuilderContract<
Model extends ModelConstructorContract,
> extends ChainableContract<Model['$refs']> {
Model extends ModelConstructorContract
> extends ChainableContract {
model: Model

/**
Expand Down

0 comments on commit 118391e

Please sign in to comment.