drizzle-orm 0.10.45 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +47 -55
- package/builders/aggregators/abstractAggregator.js +1 -1
- package/builders/aggregators/selectAggregator.d.ts +2 -0
- package/builders/aggregators/selectAggregator.js +24 -3
- package/builders/highLvlBuilders/abstractRequestBuilder.d.ts +3 -3
- package/builders/highLvlBuilders/abstractRequestBuilder.js +1 -0
- package/builders/highLvlBuilders/joins/joinBuilderResponse.d.ts +8 -0
- package/builders/highLvlBuilders/joins/joinBuilderResponse.js +16 -0
- package/builders/highLvlBuilders/joins/proxies/joinProxies.d.ts +16 -0
- package/builders/highLvlBuilders/joins/proxies/joinProxies.js +47 -0
- package/builders/highLvlBuilders/joins/selectJoinBuilder.d.ts +43 -0
- package/builders/highLvlBuilders/joins/selectJoinBuilder.js +109 -0
- package/builders/highLvlBuilders/selectRequestBuilder.d.ts +28 -12
- package/builders/highLvlBuilders/selectRequestBuilder.js +45 -4
- package/builders/index.d.ts +3 -0
- package/builders/index.js +15 -1
- package/builders/joinBuilders/builders/abstractJoinBuilder.d.ts +1 -1
- package/builders/joinBuilders/builders/selectWithFiveJoins.d.ts +1 -1
- package/builders/joinBuilders/builders/selectWithFourJoins.d.ts +1 -1
- package/builders/joinBuilders/builders/selectWithJoin.d.ts +1 -1
- package/builders/joinBuilders/builders/selectWithThreeJoins.d.ts +1 -1
- package/builders/joinBuilders/builders/selectWithTwoJoins.d.ts +1 -1
- package/builders/lowLvlBuilders/selects/selectFrom.d.ts +3 -0
- package/builders/lowLvlBuilders/selects/selectFrom.js +1 -0
- package/builders/lowLvlBuilders/selects/selectJoined.d.ts +3 -0
- package/builders/lowLvlBuilders/selects/selectJoined.js +4 -0
- package/builders/requestBuilders/where/and.d.ts +1 -4
- package/builders/requestBuilders/where/and.js +2 -2
- package/builders/requestBuilders/where/const.d.ts +1 -4
- package/builders/requestBuilders/where/const.js +1 -1
- package/builders/requestBuilders/where/constArray.d.ts +1 -4
- package/builders/requestBuilders/where/constArray.js +1 -1
- package/builders/requestBuilders/where/eqWhere.d.ts +1 -1
- package/builders/requestBuilders/where/eqWhere.js +3 -3
- package/builders/requestBuilders/where/greater.d.ts +1 -4
- package/builders/requestBuilders/where/greater.js +3 -3
- package/builders/requestBuilders/where/greaterEq.d.ts +1 -4
- package/builders/requestBuilders/where/greaterEq.js +3 -3
- package/builders/requestBuilders/where/in.d.ts +1 -4
- package/builders/requestBuilders/where/in.js +3 -3
- package/builders/requestBuilders/where/isNotNull.d.ts +1 -4
- package/builders/requestBuilders/where/isNotNull.js +2 -2
- package/builders/requestBuilders/where/isNull.d.ts +1 -4
- package/builders/requestBuilders/where/isNull.js +2 -2
- package/builders/requestBuilders/where/less.d.ts +1 -4
- package/builders/requestBuilders/where/less.js +3 -3
- package/builders/requestBuilders/where/lessEq.d.ts +1 -4
- package/builders/requestBuilders/where/lessEq.js +3 -3
- package/builders/requestBuilders/where/like.d.ts +1 -4
- package/builders/requestBuilders/where/like.js +3 -3
- package/builders/requestBuilders/where/notEqWhere.d.ts +1 -4
- package/builders/requestBuilders/where/notEqWhere.js +3 -3
- package/builders/requestBuilders/where/or.d.ts +1 -4
- package/builders/requestBuilders/where/or.js +2 -2
- package/builders/requestBuilders/where/rawWhere.d.ts +1 -4
- package/builders/requestBuilders/where/rawWhere.js +1 -1
- package/builders/requestBuilders/where/static.d.ts +1 -0
- package/builders/requestBuilders/where/static.js +3 -1
- package/builders/requestBuilders/where/var.d.ts +1 -4
- package/builders/requestBuilders/where/var.js +2 -2
- package/builders/requestBuilders/where/where.d.ts +1 -4
- package/db/dbConnector.js +2 -2
- package/db/session.d.ts +5 -2
- package/db/session.js +8 -1
- package/docs/cases/simple_join.js +5 -5
- package/docs/tables/userGroupsTable.d.ts +1 -0
- package/docs/tables/userGroupsTable.js +1 -0
- package/docs/tables/usersTable.js +1 -1
- package/mappers/responseMapper.d.ts +3 -4
- package/mappers/responseMapper.js +2 -1
- package/package.json +6 -3
- package/serializer/serializer.d.ts +15 -4
- package/tables/abstractTable.d.ts +3 -4
- package/tables/abstractTable.js +1 -0
- package/tables/inferTypes.d.ts +6 -2
- package/test.js +108 -46
package/builders/index.js
CHANGED
|
@@ -1,9 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
|
+
};
|
|
2
12
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
13
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
14
|
};
|
|
5
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.isNotNull = exports.raw = exports.lessEq = exports.less = exports.greaterEq = exports.greater = exports.like = exports.or = exports.and = exports.in = exports.eq = exports.combine = exports.set = exports.Update = exports.Select = exports.Insert = exports.Delete = exports.Create = exports.SelectResponseJoin = exports.SelectResponseTwoJoins = exports.SelectTRBWithTwoJoins = exports.SelectTRBWithJoin = exports.Join = exports.JoinWith = exports.to = exports.UpdateTRB = exports.SelectTRB = exports.InsertTRB = exports.DeleteTRB = void 0;
|
|
16
|
+
exports.isNotNull = exports.raw = exports.lessEq = exports.less = exports.greaterEq = exports.greater = exports.like = exports.or = exports.and = exports.in = exports.eq = exports.combine = exports.set = exports.Update = exports.Select = exports.Insert = exports.Delete = exports.Create = exports.SelectResponseJoin = exports.SelectResponseTwoJoins = exports.SelectTRBWithTwoJoins = exports.SelectTRBWithJoin = exports.Join = exports.JoinWith = exports.to = exports.JoinBuilderResponses = exports.UpdateTRB = exports.SelectTRB = exports.InsertTRB = exports.DeleteTRB = void 0;
|
|
7
17
|
/* eslint-disable import/no-cycle */
|
|
8
18
|
var deleteRequestBuilder_1 = require("./highLvlBuilders/deleteRequestBuilder");
|
|
9
19
|
Object.defineProperty(exports, "DeleteTRB", { enumerable: true, get: function () { return __importDefault(deleteRequestBuilder_1).default; } });
|
|
@@ -13,6 +23,10 @@ var selectRequestBuilder_1 = require("./highLvlBuilders/selectRequestBuilder");
|
|
|
13
23
|
Object.defineProperty(exports, "SelectTRB", { enumerable: true, get: function () { return __importDefault(selectRequestBuilder_1).default; } });
|
|
14
24
|
var updateRequestBuilder_1 = require("./highLvlBuilders/updateRequestBuilder");
|
|
15
25
|
Object.defineProperty(exports, "UpdateTRB", { enumerable: true, get: function () { return __importDefault(updateRequestBuilder_1).default; } });
|
|
26
|
+
__exportStar(require("./highLvlBuilders/joins/selectJoinBuilder"), exports);
|
|
27
|
+
var joinBuilderResponse_1 = require("./highLvlBuilders/joins/joinBuilderResponse");
|
|
28
|
+
Object.defineProperty(exports, "JoinBuilderResponses", { enumerable: true, get: function () { return __importDefault(joinBuilderResponse_1).default; } });
|
|
29
|
+
__exportStar(require("./highLvlBuilders/joins/proxies/joinProxies"), exports);
|
|
16
30
|
var static_1 = require("./joinBuilders/static");
|
|
17
31
|
Object.defineProperty(exports, "to", { enumerable: true, get: function () { return __importDefault(static_1).default; } });
|
|
18
32
|
var joinWith_1 = require("./joinBuilders/joinWith");
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { JoinType } from '@/builders/highLvlBuilders/joins/selectJoinBuilder';
|
|
2
|
+
import AbstractTable from '@/tables/abstractTable';
|
|
1
3
|
import { AbstractColumn } from '../../../columns/column';
|
|
2
4
|
import ColumnType from '../../../columns/types/columnType';
|
|
3
5
|
import SelectAggregator from '../../aggregators/selectAggregator';
|
|
@@ -16,6 +18,7 @@ export default class SelectFrom {
|
|
|
16
18
|
} | undefined;
|
|
17
19
|
id?: number | undefined;
|
|
18
20
|
}[]) => SelectJoined;
|
|
21
|
+
joined2: (joins: Array<JoinType<AbstractTable<any>>>) => SelectJoined;
|
|
19
22
|
limit: (limit?: number | undefined) => SelectFrom;
|
|
20
23
|
offset: (offset?: number | undefined) => SelectFrom;
|
|
21
24
|
orderBy: (orderBy?: AbstractColumn<ColumnType<{}>, boolean, boolean, any> | undefined, order?: Order | undefined) => SelectFrom;
|
|
@@ -8,6 +8,7 @@ const whereSelect_1 = __importDefault(require("./whereSelect"));
|
|
|
8
8
|
class SelectFrom {
|
|
9
9
|
constructor(aggregator) {
|
|
10
10
|
this.joined = (joins) => new selectJoined_1.default(this._aggregator).apply(joins);
|
|
11
|
+
this.joined2 = (joins) => new selectJoined_1.default(this._aggregator).apply2(joins);
|
|
11
12
|
this.limit = (limit) => {
|
|
12
13
|
this._aggregator.limit(limit);
|
|
13
14
|
return this;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { JoinType } from '@/builders/highLvlBuilders/joins/selectJoinBuilder';
|
|
2
|
+
import AbstractTable from '@/tables/abstractTable';
|
|
1
3
|
import { AbstractColumn } from '../../../columns/column';
|
|
2
4
|
import ColumnType from '../../../columns/types/columnType';
|
|
3
5
|
import SelectAggregator from '../../aggregators/selectAggregator';
|
|
@@ -15,6 +17,7 @@ export default class SelectJoined {
|
|
|
15
17
|
} | undefined;
|
|
16
18
|
id?: number | undefined;
|
|
17
19
|
}[]) => SelectJoined;
|
|
20
|
+
apply2: (joins: Array<JoinType<AbstractTable<any>>>) => SelectJoined;
|
|
18
21
|
limit: (limit?: number | undefined) => SelectJoined;
|
|
19
22
|
offset: (offset?: number | undefined) => SelectJoined;
|
|
20
23
|
orderBy: (orderBy?: AbstractColumn<ColumnType<{}>, boolean, boolean, any> | undefined, order?: Order | undefined) => SelectJoined;
|
|
@@ -3,11 +3,8 @@ import { ISession } from '../../../db/session';
|
|
|
3
3
|
export default class And extends Expr {
|
|
4
4
|
private expressions;
|
|
5
5
|
constructor(expressions: Expr[]);
|
|
6
|
-
toQuery: ({ position,
|
|
6
|
+
toQuery: ({ position, session, }: {
|
|
7
7
|
position?: number | undefined;
|
|
8
|
-
tableCache?: {
|
|
9
|
-
[tableName: string]: string;
|
|
10
|
-
} | undefined;
|
|
11
8
|
session: ISession;
|
|
12
9
|
}) => {
|
|
13
10
|
query: string;
|
|
@@ -8,13 +8,13 @@ const where_1 = __importDefault(require("./where"));
|
|
|
8
8
|
class And extends where_1.default {
|
|
9
9
|
constructor(expressions) {
|
|
10
10
|
super();
|
|
11
|
-
this.toQuery = ({ position,
|
|
11
|
+
this.toQuery = ({ position, session, }) => {
|
|
12
12
|
let nextPosition = position || 1;
|
|
13
13
|
const result = ['('];
|
|
14
14
|
const valuesResult = [];
|
|
15
15
|
for (let i = 0; i < this.expressions.length; i += 1) {
|
|
16
16
|
const expression = this.expressions[i];
|
|
17
|
-
const expressionResult = expression.toQuery({ position: nextPosition,
|
|
17
|
+
const expressionResult = expression.toQuery({ position: nextPosition, session });
|
|
18
18
|
valuesResult.push(...expressionResult.values);
|
|
19
19
|
result.push(expressionResult.query);
|
|
20
20
|
nextPosition += expressionResult.values.length;
|
|
@@ -3,11 +3,8 @@ import Expr from './where';
|
|
|
3
3
|
export default class Const extends Expr {
|
|
4
4
|
private value;
|
|
5
5
|
constructor(value: any);
|
|
6
|
-
toQuery: ({ position,
|
|
6
|
+
toQuery: ({ position, session, }: {
|
|
7
7
|
position?: number | undefined;
|
|
8
|
-
tableCache?: {
|
|
9
|
-
[tableName: string]: string;
|
|
10
|
-
} | undefined;
|
|
11
8
|
session: ISession;
|
|
12
9
|
}) => {
|
|
13
10
|
query: string;
|
|
@@ -8,7 +8,7 @@ const where_1 = __importDefault(require("./where"));
|
|
|
8
8
|
class Const extends where_1.default {
|
|
9
9
|
constructor(value) {
|
|
10
10
|
super();
|
|
11
|
-
this.toQuery = ({ position,
|
|
11
|
+
this.toQuery = ({ position, session, }) => {
|
|
12
12
|
const nextPosition = position || 1;
|
|
13
13
|
if (this.value instanceof Date) {
|
|
14
14
|
return { query: session.parametrized(nextPosition), values: [`${this.value.toISOString()}`] };
|
|
@@ -3,11 +3,8 @@ import { ISession } from '../../../db/session';
|
|
|
3
3
|
export default class ConstArray extends Expr {
|
|
4
4
|
private values;
|
|
5
5
|
constructor(values: Array<any>);
|
|
6
|
-
toQuery: ({ position,
|
|
6
|
+
toQuery: ({ position, session, }: {
|
|
7
7
|
position?: number | undefined;
|
|
8
|
-
tableCache?: {
|
|
9
|
-
[tableName: string]: string;
|
|
10
|
-
} | undefined;
|
|
11
8
|
session: ISession;
|
|
12
9
|
}) => {
|
|
13
10
|
query: string;
|
|
@@ -8,7 +8,7 @@ const where_1 = __importDefault(require("./where"));
|
|
|
8
8
|
class ConstArray extends where_1.default {
|
|
9
9
|
constructor(values) {
|
|
10
10
|
super();
|
|
11
|
-
this.toQuery = ({ position,
|
|
11
|
+
this.toQuery = ({ position, session, }) => {
|
|
12
12
|
let nextPosition = position || 1;
|
|
13
13
|
const finalArray = [];
|
|
14
14
|
const finalValues = [];
|
|
@@ -4,7 +4,7 @@ export default class EqWhere extends Expr {
|
|
|
4
4
|
private left;
|
|
5
5
|
private right;
|
|
6
6
|
constructor(left: Expr, right: Expr);
|
|
7
|
-
toQuery: ({ position,
|
|
7
|
+
toQuery: ({ position, session, }: {
|
|
8
8
|
position?: number | undefined;
|
|
9
9
|
tableCache?: {
|
|
10
10
|
[tableName: string]: string;
|
|
@@ -8,9 +8,9 @@ const where_1 = __importDefault(require("./where"));
|
|
|
8
8
|
class EqWhere extends where_1.default {
|
|
9
9
|
constructor(left, right) {
|
|
10
10
|
super();
|
|
11
|
-
this.toQuery = ({ position,
|
|
12
|
-
const rightPreparedValues = this.right.toQuery({ position,
|
|
13
|
-
const leftPreparedValues = this.left.toQuery({ position,
|
|
11
|
+
this.toQuery = ({ position, session, }) => {
|
|
12
|
+
const rightPreparedValues = this.right.toQuery({ position, session });
|
|
13
|
+
const leftPreparedValues = this.left.toQuery({ position, session });
|
|
14
14
|
return { query: `${leftPreparedValues.query}=${rightPreparedValues.query}`, values: [...leftPreparedValues.values, ...rightPreparedValues.values] };
|
|
15
15
|
};
|
|
16
16
|
this.left = left;
|
|
@@ -7,11 +7,8 @@ export default class Greater extends Expr {
|
|
|
7
7
|
left: Expr;
|
|
8
8
|
right: Expr;
|
|
9
9
|
});
|
|
10
|
-
toQuery: ({ position,
|
|
10
|
+
toQuery: ({ position, session, }: {
|
|
11
11
|
position?: number | undefined;
|
|
12
|
-
tableCache?: {
|
|
13
|
-
[tableName: string]: string;
|
|
14
|
-
} | undefined;
|
|
15
12
|
session: ISession;
|
|
16
13
|
}) => {
|
|
17
14
|
query: string;
|
|
@@ -8,9 +8,9 @@ const where_1 = __importDefault(require("./where"));
|
|
|
8
8
|
class Greater extends where_1.default {
|
|
9
9
|
constructor({ left, right }) {
|
|
10
10
|
super();
|
|
11
|
-
this.toQuery = ({ position,
|
|
12
|
-
const rightPreparedValues = this.right.toQuery({ position,
|
|
13
|
-
const leftPreparedValues = this.left.toQuery({ position,
|
|
11
|
+
this.toQuery = ({ position, session, }) => {
|
|
12
|
+
const rightPreparedValues = this.right.toQuery({ position, session });
|
|
13
|
+
const leftPreparedValues = this.left.toQuery({ position, session });
|
|
14
14
|
return { query: `${leftPreparedValues.query} > ${rightPreparedValues.query}`, values: [...leftPreparedValues.values, ...rightPreparedValues.values] };
|
|
15
15
|
};
|
|
16
16
|
this.left = left;
|
|
@@ -7,11 +7,8 @@ export default class GreaterEq extends Expr {
|
|
|
7
7
|
left: Expr;
|
|
8
8
|
right: Expr;
|
|
9
9
|
});
|
|
10
|
-
toQuery: ({ position,
|
|
10
|
+
toQuery: ({ position, session, }: {
|
|
11
11
|
position?: number | undefined;
|
|
12
|
-
tableCache?: {
|
|
13
|
-
[tableName: string]: string;
|
|
14
|
-
} | undefined;
|
|
15
12
|
session: ISession;
|
|
16
13
|
}) => {
|
|
17
14
|
query: string;
|
|
@@ -8,9 +8,9 @@ const where_1 = __importDefault(require("./where"));
|
|
|
8
8
|
class GreaterEq extends where_1.default {
|
|
9
9
|
constructor({ left, right }) {
|
|
10
10
|
super();
|
|
11
|
-
this.toQuery = ({ position,
|
|
12
|
-
const rightPreparedValues = this.right.toQuery({ position,
|
|
13
|
-
const leftPreparedValues = this.left.toQuery({ position,
|
|
11
|
+
this.toQuery = ({ position, session, }) => {
|
|
12
|
+
const rightPreparedValues = this.right.toQuery({ position, session });
|
|
13
|
+
const leftPreparedValues = this.left.toQuery({ position, session });
|
|
14
14
|
return { query: `${leftPreparedValues.query} >= ${rightPreparedValues.query}`, values: [...leftPreparedValues.values, ...rightPreparedValues.values] };
|
|
15
15
|
};
|
|
16
16
|
this.left = left;
|
|
@@ -4,11 +4,8 @@ export default class In extends Expr {
|
|
|
4
4
|
private left;
|
|
5
5
|
private right;
|
|
6
6
|
constructor(left: Expr, right: Expr);
|
|
7
|
-
toQuery: ({ position,
|
|
7
|
+
toQuery: ({ position, session, }: {
|
|
8
8
|
position?: number | undefined;
|
|
9
|
-
tableCache?: {
|
|
10
|
-
[tableName: string]: string;
|
|
11
|
-
} | undefined;
|
|
12
9
|
session: ISession;
|
|
13
10
|
}) => {
|
|
14
11
|
query: string;
|
|
@@ -8,9 +8,9 @@ const where_1 = __importDefault(require("./where"));
|
|
|
8
8
|
class In extends where_1.default {
|
|
9
9
|
constructor(left, right) {
|
|
10
10
|
super();
|
|
11
|
-
this.toQuery = ({ position,
|
|
12
|
-
const rightPreparedValues = this.right.toQuery({ position,
|
|
13
|
-
const leftPreparedValues = this.left.toQuery({ position,
|
|
11
|
+
this.toQuery = ({ position, session, }) => {
|
|
12
|
+
const rightPreparedValues = this.right.toQuery({ position, session });
|
|
13
|
+
const leftPreparedValues = this.left.toQuery({ position, session });
|
|
14
14
|
return { query: `${leftPreparedValues.query} in (${rightPreparedValues.query})`, values: [...leftPreparedValues.values, ...rightPreparedValues.values] };
|
|
15
15
|
};
|
|
16
16
|
this.left = left;
|
|
@@ -3,11 +3,8 @@ import { ISession } from '../../../db/session';
|
|
|
3
3
|
export default class IsNotNull extends Expr {
|
|
4
4
|
private left;
|
|
5
5
|
constructor(left: Expr);
|
|
6
|
-
toQuery: ({ position,
|
|
6
|
+
toQuery: ({ position, session, }: {
|
|
7
7
|
position?: number | undefined;
|
|
8
|
-
tableCache?: {
|
|
9
|
-
[tableName: string]: string;
|
|
10
|
-
} | undefined;
|
|
11
8
|
session: ISession;
|
|
12
9
|
}) => {
|
|
13
10
|
query: string;
|
|
@@ -8,8 +8,8 @@ const where_1 = __importDefault(require("./where"));
|
|
|
8
8
|
class IsNotNull extends where_1.default {
|
|
9
9
|
constructor(left) {
|
|
10
10
|
super();
|
|
11
|
-
this.toQuery = ({ position,
|
|
12
|
-
const leftPreparedValues = this.left.toQuery({ position,
|
|
11
|
+
this.toQuery = ({ position, session, }) => {
|
|
12
|
+
const leftPreparedValues = this.left.toQuery({ position, session });
|
|
13
13
|
return { query: `${leftPreparedValues.query} is not null`, values: leftPreparedValues.values };
|
|
14
14
|
};
|
|
15
15
|
this.left = left;
|
|
@@ -3,11 +3,8 @@ import { ISession } from '../../../db/session';
|
|
|
3
3
|
export default class IsNull extends Expr {
|
|
4
4
|
private left;
|
|
5
5
|
constructor(left: Expr);
|
|
6
|
-
toQuery: ({ position,
|
|
6
|
+
toQuery: ({ position, session, }: {
|
|
7
7
|
position?: number | undefined;
|
|
8
|
-
tableCache?: {
|
|
9
|
-
[tableName: string]: string;
|
|
10
|
-
} | undefined;
|
|
11
8
|
session: ISession;
|
|
12
9
|
}) => {
|
|
13
10
|
query: string;
|
|
@@ -8,8 +8,8 @@ const where_1 = __importDefault(require("./where"));
|
|
|
8
8
|
class IsNull extends where_1.default {
|
|
9
9
|
constructor(left) {
|
|
10
10
|
super();
|
|
11
|
-
this.toQuery = ({ position,
|
|
12
|
-
const leftPreparedValues = this.left.toQuery({ position,
|
|
11
|
+
this.toQuery = ({ position, session, }) => {
|
|
12
|
+
const leftPreparedValues = this.left.toQuery({ position, session });
|
|
13
13
|
return { query: `${leftPreparedValues.query} is null`, values: leftPreparedValues.values };
|
|
14
14
|
};
|
|
15
15
|
this.left = left;
|
|
@@ -7,11 +7,8 @@ export default class Less extends Expr {
|
|
|
7
7
|
left: Expr;
|
|
8
8
|
right: Expr;
|
|
9
9
|
});
|
|
10
|
-
toQuery: ({ position,
|
|
10
|
+
toQuery: ({ position, session, }: {
|
|
11
11
|
position?: number | undefined;
|
|
12
|
-
tableCache?: {
|
|
13
|
-
[tableName: string]: string;
|
|
14
|
-
} | undefined;
|
|
15
12
|
session: ISession;
|
|
16
13
|
}) => {
|
|
17
14
|
query: string;
|
|
@@ -8,9 +8,9 @@ const where_1 = __importDefault(require("./where"));
|
|
|
8
8
|
class Less extends where_1.default {
|
|
9
9
|
constructor({ left, right }) {
|
|
10
10
|
super();
|
|
11
|
-
this.toQuery = ({ position,
|
|
12
|
-
const rightPreparedValues = this.right.toQuery({ position,
|
|
13
|
-
const leftPreparedValues = this.left.toQuery({ position,
|
|
11
|
+
this.toQuery = ({ position, session, }) => {
|
|
12
|
+
const rightPreparedValues = this.right.toQuery({ position, session });
|
|
13
|
+
const leftPreparedValues = this.left.toQuery({ position, session });
|
|
14
14
|
return { query: `${leftPreparedValues.query} < ${rightPreparedValues.query}`, values: [...leftPreparedValues.values, ...rightPreparedValues.values] };
|
|
15
15
|
};
|
|
16
16
|
this.left = left;
|
|
@@ -7,11 +7,8 @@ export default class LessEq extends Expr {
|
|
|
7
7
|
left: Expr;
|
|
8
8
|
right: Expr;
|
|
9
9
|
});
|
|
10
|
-
toQuery: ({ position,
|
|
10
|
+
toQuery: ({ position, session, }: {
|
|
11
11
|
position?: number | undefined;
|
|
12
|
-
tableCache?: {
|
|
13
|
-
[tableName: string]: string;
|
|
14
|
-
} | undefined;
|
|
15
12
|
session: ISession;
|
|
16
13
|
}) => {
|
|
17
14
|
query: string;
|
|
@@ -8,9 +8,9 @@ const where_1 = __importDefault(require("./where"));
|
|
|
8
8
|
class LessEq extends where_1.default {
|
|
9
9
|
constructor({ left, right }) {
|
|
10
10
|
super();
|
|
11
|
-
this.toQuery = ({ position,
|
|
12
|
-
const rightPreparedValues = this.right.toQuery({ position,
|
|
13
|
-
const leftPreparedValues = this.left.toQuery({ position,
|
|
11
|
+
this.toQuery = ({ position, session, }) => {
|
|
12
|
+
const rightPreparedValues = this.right.toQuery({ position, session });
|
|
13
|
+
const leftPreparedValues = this.left.toQuery({ position, session });
|
|
14
14
|
return { query: `${leftPreparedValues.query} <= ${rightPreparedValues.query}`, values: [...leftPreparedValues.values, ...rightPreparedValues.values] };
|
|
15
15
|
};
|
|
16
16
|
this.left = left;
|
|
@@ -4,11 +4,8 @@ export default class Like extends Expr {
|
|
|
4
4
|
private left;
|
|
5
5
|
private right;
|
|
6
6
|
constructor(left: Expr, right: Expr);
|
|
7
|
-
toQuery: ({ position,
|
|
7
|
+
toQuery: ({ position, session, }: {
|
|
8
8
|
position?: number | undefined;
|
|
9
|
-
tableCache?: {
|
|
10
|
-
[tableName: string]: string;
|
|
11
|
-
} | undefined;
|
|
12
9
|
session: ISession;
|
|
13
10
|
}) => {
|
|
14
11
|
query: string;
|
|
@@ -8,9 +8,9 @@ const where_1 = __importDefault(require("./where"));
|
|
|
8
8
|
class Like extends where_1.default {
|
|
9
9
|
constructor(left, right) {
|
|
10
10
|
super();
|
|
11
|
-
this.toQuery = ({ position,
|
|
12
|
-
const rightPreparedValues = this.right.toQuery({ position,
|
|
13
|
-
const leftPreparedValues = this.left.toQuery({ position,
|
|
11
|
+
this.toQuery = ({ position, session, }) => {
|
|
12
|
+
const rightPreparedValues = this.right.toQuery({ position, session });
|
|
13
|
+
const leftPreparedValues = this.left.toQuery({ position, session });
|
|
14
14
|
return { query: `${leftPreparedValues.query} like ${rightPreparedValues.query}`, values: [...leftPreparedValues.values, ...rightPreparedValues.values] };
|
|
15
15
|
};
|
|
16
16
|
this.left = left;
|
|
@@ -4,11 +4,8 @@ export default class NotEqWhere extends Expr {
|
|
|
4
4
|
private left;
|
|
5
5
|
private right;
|
|
6
6
|
constructor(left: Expr, right: Expr);
|
|
7
|
-
toQuery: ({ position,
|
|
7
|
+
toQuery: ({ position, session, }: {
|
|
8
8
|
position?: number | undefined;
|
|
9
|
-
tableCache?: {
|
|
10
|
-
[tableName: string]: string;
|
|
11
|
-
} | undefined;
|
|
12
9
|
session: ISession;
|
|
13
10
|
}) => {
|
|
14
11
|
query: string;
|
|
@@ -8,9 +8,9 @@ const where_1 = __importDefault(require("./where"));
|
|
|
8
8
|
class NotEqWhere extends where_1.default {
|
|
9
9
|
constructor(left, right) {
|
|
10
10
|
super();
|
|
11
|
-
this.toQuery = ({ position,
|
|
12
|
-
const rightPreparedValues = this.right.toQuery({ position,
|
|
13
|
-
const leftPreparedValues = this.left.toQuery({ position,
|
|
11
|
+
this.toQuery = ({ position, session, }) => {
|
|
12
|
+
const rightPreparedValues = this.right.toQuery({ position, session });
|
|
13
|
+
const leftPreparedValues = this.left.toQuery({ position, session });
|
|
14
14
|
return { query: `${leftPreparedValues.query}!=${rightPreparedValues.query}`, values: [...leftPreparedValues.values, ...rightPreparedValues.values] };
|
|
15
15
|
};
|
|
16
16
|
this.left = left;
|
|
@@ -3,11 +3,8 @@ import { ISession } from '../../../db/session';
|
|
|
3
3
|
export default class Or extends Expr {
|
|
4
4
|
private expressions;
|
|
5
5
|
constructor(expressions: Expr[]);
|
|
6
|
-
toQuery: ({ position,
|
|
6
|
+
toQuery: ({ position, session, }: {
|
|
7
7
|
position?: number | undefined;
|
|
8
|
-
tableCache?: {
|
|
9
|
-
[tableName: string]: string;
|
|
10
|
-
} | undefined;
|
|
11
8
|
session: ISession;
|
|
12
9
|
}) => {
|
|
13
10
|
query: string;
|
|
@@ -8,13 +8,13 @@ const where_1 = __importDefault(require("./where"));
|
|
|
8
8
|
class Or extends where_1.default {
|
|
9
9
|
constructor(expressions) {
|
|
10
10
|
super();
|
|
11
|
-
this.toQuery = ({ position,
|
|
11
|
+
this.toQuery = ({ position, session, }) => {
|
|
12
12
|
let nextPosition = position || 1;
|
|
13
13
|
const result = ['('];
|
|
14
14
|
const valuesResult = [];
|
|
15
15
|
for (let i = 0; i < this.expressions.length; i += 1) {
|
|
16
16
|
const expression = this.expressions[i];
|
|
17
|
-
const expressionResult = expression.toQuery({ position: nextPosition,
|
|
17
|
+
const expressionResult = expression.toQuery({ position: nextPosition, session });
|
|
18
18
|
valuesResult.push(...expressionResult.values);
|
|
19
19
|
result.push(expressionResult.query);
|
|
20
20
|
nextPosition += expressionResult.values.length;
|
|
@@ -3,11 +3,8 @@ import { ISession } from '../../../db/session';
|
|
|
3
3
|
export default class RawWhere extends Expr {
|
|
4
4
|
private custom;
|
|
5
5
|
constructor(custom: string);
|
|
6
|
-
toQuery: ({ position,
|
|
6
|
+
toQuery: ({ position, session, }: {
|
|
7
7
|
position?: number | undefined;
|
|
8
|
-
tableCache?: {
|
|
9
|
-
[tableName: string]: string;
|
|
10
|
-
} | undefined;
|
|
11
8
|
session: ISession;
|
|
12
9
|
}) => {
|
|
13
10
|
query: string;
|
|
@@ -9,7 +9,7 @@ class RawWhere extends where_1.default {
|
|
|
9
9
|
constructor(custom) {
|
|
10
10
|
super();
|
|
11
11
|
this.custom = custom;
|
|
12
|
-
this.toQuery = ({ position,
|
|
12
|
+
this.toQuery = ({ position, session, }) => ({ query: this.custom, values: [] });
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
15
|
exports.default = RawWhere;
|
|
@@ -2,6 +2,7 @@ import { AbstractColumn } from '../../../columns/column';
|
|
|
2
2
|
import ColumnType from '../../../columns/types/columnType';
|
|
3
3
|
import { ExtractCodeType } from '../../../tables/inferTypes';
|
|
4
4
|
import Expr from './where';
|
|
5
|
+
export declare const onEq: <T extends AbstractColumn<ColumnType<any>, boolean, boolean, any>, T1 extends AbstractColumn<ColumnType<any>, boolean, boolean, any>>(left: T, right: T1) => Expr;
|
|
5
6
|
export declare const eq: <T extends AbstractColumn<ColumnType<any>, boolean, boolean, any>>(left: T, value: ExtractCodeType<T>) => Expr;
|
|
6
7
|
export declare const raw: (customQuery: string) => Expr;
|
|
7
8
|
export declare const and: (expressions: Expr[]) => Expr;
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.notEq = exports.isNotNull = exports.isNull = exports.lessEq = exports.greaterEq = exports.less = exports.greater = exports.inArray = exports.like = exports.or = exports.and = exports.raw = exports.eq = void 0;
|
|
6
|
+
exports.notEq = exports.isNotNull = exports.isNull = exports.lessEq = exports.greaterEq = exports.less = exports.greater = exports.inArray = exports.like = exports.or = exports.and = exports.raw = exports.eq = exports.onEq = void 0;
|
|
7
7
|
const and_1 = __importDefault(require("./and"));
|
|
8
8
|
const const_1 = __importDefault(require("./const"));
|
|
9
9
|
const constArray_1 = __importDefault(require("./constArray"));
|
|
@@ -20,6 +20,8 @@ const notEqWhere_1 = __importDefault(require("./notEqWhere"));
|
|
|
20
20
|
const or_1 = __importDefault(require("./or"));
|
|
21
21
|
const rawWhere_1 = __importDefault(require("./rawWhere"));
|
|
22
22
|
const var_1 = __importDefault(require("./var"));
|
|
23
|
+
const onEq = (left, right) => new eqWhere_1.default(new var_1.default(left), new var_1.default(right));
|
|
24
|
+
exports.onEq = onEq;
|
|
23
25
|
// eslint-disable-next-line max-len
|
|
24
26
|
const eq = (left, value) => new eqWhere_1.default(new var_1.default(left), new const_1.default(value));
|
|
25
27
|
exports.eq = eq;
|
|
@@ -5,11 +5,8 @@ import { ISession } from '../../../db/session';
|
|
|
5
5
|
export default class Var<T extends AbstractColumn<ColumnType<any>, boolean, boolean>> extends Expr {
|
|
6
6
|
private column;
|
|
7
7
|
constructor(column: T);
|
|
8
|
-
toQuery: ({ position,
|
|
8
|
+
toQuery: ({ position, session, }: {
|
|
9
9
|
position?: number | undefined;
|
|
10
|
-
tableCache?: {
|
|
11
|
-
[tableName: string]: string;
|
|
12
|
-
} | undefined;
|
|
13
10
|
session: ISession;
|
|
14
11
|
}) => {
|
|
15
12
|
query: string;
|
|
@@ -8,8 +8,8 @@ const where_1 = __importDefault(require("./where"));
|
|
|
8
8
|
class Var extends where_1.default {
|
|
9
9
|
constructor(column) {
|
|
10
10
|
super();
|
|
11
|
-
this.toQuery = ({ position,
|
|
12
|
-
const tableName =
|
|
11
|
+
this.toQuery = ({ position, session, }) => {
|
|
12
|
+
const tableName = this.column.getParentName();
|
|
13
13
|
return { query: `${tableName}.${ecranate_1.ecranate(this.column.getColumnName())}`, values: [] };
|
|
14
14
|
};
|
|
15
15
|
this.column = column;
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
import { ISession } from '../../../db/session';
|
|
2
2
|
export default abstract class Expr {
|
|
3
|
-
abstract toQuery({ position,
|
|
3
|
+
abstract toQuery({ position, session, }: {
|
|
4
4
|
position?: number;
|
|
5
|
-
tableCache?: {
|
|
6
|
-
[tableName: string]: string;
|
|
7
|
-
};
|
|
8
5
|
session: ISession;
|
|
9
6
|
}): {
|
|
10
7
|
query: string;
|
package/db/dbConnector.js
CHANGED
|
@@ -17,10 +17,10 @@ class DbConnector {
|
|
|
17
17
|
this.connect = async () => {
|
|
18
18
|
try {
|
|
19
19
|
const pool = new pg_1.Pool(this.__config);
|
|
20
|
-
await pool.connect();
|
|
20
|
+
const connection = await pool.connect();
|
|
21
21
|
// console.log('Db connected!');
|
|
22
22
|
// check if table structure is the same as in code
|
|
23
|
-
return new db_1.default(new session_1.default(pool));
|
|
23
|
+
return new db_1.default(new session_1.default(pool, connection));
|
|
24
24
|
}
|
|
25
25
|
catch (e) {
|
|
26
26
|
// console.log(`Connection error: ${e.message}`);
|