Skip to content

Commit

Permalink
typings
Browse files Browse the repository at this point in the history
  • Loading branch information
OlivierCavadenti committed Dec 14, 2021
1 parent 2fe4931 commit c09f17a
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 13 deletions.
13 changes: 0 additions & 13 deletions lib/query/querycompiler.js
Expand Up @@ -1413,19 +1413,6 @@ class QueryCompiler {
.join(', ');
}

_getExtracts(nameFunction, statement, operator) {
return (
Array.isArray(statement.values) ? statement.values : [statement.values]
)
.map(function (value) {
return this._jsonExtract(nameFunction, {
column: statement.column,
path: value,
});
}, this)
.join(operator);
}

_jsonSet(nameFunction, params) {
const jsonSet = `${nameFunction}(${columnize_(
params.column,
Expand Down
30 changes: 30 additions & 0 deletions types/index.d.ts
Expand Up @@ -509,6 +509,12 @@ export declare namespace Knex {
fullOuterJoin: Join<TRecord, TResult>;
crossJoin: Join<TRecord, TResult>;

// Json manipulation
jsonExtract : JsonExtract<TRecord, TResult>;
jsonSet: JsonSet<TRecord, TResult>;
jsonInsert: JsonInsert<TRecord, TResult>;
jsonRemove: JsonRemove<TRecord, TResult>;

// Using
using: Using<TRecord, TResult>;

Expand Down Expand Up @@ -1122,6 +1128,30 @@ export declare namespace Knex {
): QueryBuilder<TRecord, TResult2>;
}

interface JsonExtraction {
column: string | Raw | QueryBuilder;
path: string;
alias?: string;
singleValue?: boolean;
}

interface JsonExtract<TRecord extends {} = any, TResult extends {} = any> {
(column: string | Raw | QueryBuilder, path: string, alias?: string, singleValue?: boolean): QueryBuilder<TRecord, TResult>;
(column: JsonExtraction[] | any[][], singleValue?: boolean): QueryBuilder<TRecord, TResult>;
}

interface JsonSet<TRecord extends {} = any, TResult extends {} = any> {
(column: string | Raw | QueryBuilder, path: string, value: any, alias?: string): QueryBuilder<TRecord, TResult>;
}

interface JsonInsert<TRecord extends {} = any, TResult extends {} = any> {
(column: string | Raw | QueryBuilder, path: string, value: any, alias?: string): QueryBuilder<TRecord, TResult>;
}

interface JsonRemove<TRecord extends {} = any, TResult extends {} = any> {
(column: string | Raw | QueryBuilder, path: string, value: any, alias?: string): QueryBuilder<TRecord, TResult>;
}

interface HintComment<TRecord extends {} = any, TResult extends {} = any> {
(hint: string): QueryBuilder<TRecord, TResult>;
(hints: readonly string[]): QueryBuilder<TRecord, TResult>;
Expand Down

0 comments on commit c09f17a

Please sign in to comment.