drizzle-orm 0.9.0 → 0.9.4
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/builders/aggregators/abstractAggregator.d.ts +9 -0
- package/builders/aggregators/abstractAggregator.js +28 -0
- package/builders/aggregators/deleteAggregator.d.ts +12 -0
- package/builders/aggregators/deleteAggregator.js +36 -0
- package/builders/aggregators/insertAggregator.d.ts +18 -0
- package/builders/aggregators/insertAggregator.js +94 -0
- package/builders/aggregators/selectAggregator.d.ts +26 -0
- package/builders/aggregators/selectAggregator.js +106 -0
- package/builders/aggregators/updateAggregator.d.ts +15 -0
- package/builders/aggregators/updateAggregator.js +41 -0
- package/builders/highLvlBuilders/abstractRequestBuilder.d.ts +21 -0
- package/builders/highLvlBuilders/abstractRequestBuilder.js +21 -0
- package/builders/highLvlBuilders/deleteRequestBuilder.d.ts +17 -0
- package/builders/highLvlBuilders/deleteRequestBuilder.js +43 -0
- package/builders/highLvlBuilders/insertRequestBuilder.d.ts +18 -0
- package/builders/highLvlBuilders/insertRequestBuilder.js +54 -0
- package/builders/highLvlBuilders/order.d.ts +5 -0
- package/builders/highLvlBuilders/order.js +8 -0
- package/builders/highLvlBuilders/selectRequestBuilder.d.ts +42 -0
- package/builders/highLvlBuilders/selectRequestBuilder.js +99 -0
- package/builders/highLvlBuilders/updateRequestBuilder.d.ts +20 -0
- package/builders/highLvlBuilders/updateRequestBuilder.js +54 -0
- package/{src/builders/index.ts → builders/index.d.ts} +2 -4
- package/builders/index.js +50 -0
- package/builders/joinBuilders/builders/abstractJoinBuilder.d.ts +27 -0
- package/builders/joinBuilders/builders/abstractJoinBuilder.js +42 -0
- package/builders/joinBuilders/builders/selectWithFiveJoins.d.ts +23 -0
- package/builders/joinBuilders/builders/selectWithFiveJoins.js +33 -0
- package/builders/joinBuilders/builders/selectWithFourJoins.d.ts +36 -0
- package/builders/joinBuilders/builders/selectWithFourJoins.js +65 -0
- package/builders/joinBuilders/builders/selectWithJoin.d.ts +33 -0
- package/builders/joinBuilders/builders/selectWithJoin.js +56 -0
- package/builders/joinBuilders/builders/selectWithThreeJoins.d.ts +35 -0
- package/builders/joinBuilders/builders/selectWithThreeJoins.js +62 -0
- package/builders/joinBuilders/builders/selectWithTwoJoins.d.ts +34 -0
- package/builders/joinBuilders/builders/selectWithTwoJoins.js +59 -0
- package/builders/joinBuilders/join.d.ts +23 -0
- package/builders/joinBuilders/join.js +28 -0
- package/builders/joinBuilders/joinWith.d.ts +14 -0
- package/builders/joinBuilders/joinWith.js +11 -0
- package/builders/joinBuilders/responses/selectResponseFiveJoins.d.ts +19 -0
- package/builders/joinBuilders/responses/selectResponseFiveJoins.js +35 -0
- package/builders/joinBuilders/responses/selectResponseFourJoins.d.ts +18 -0
- package/builders/joinBuilders/responses/selectResponseFourJoins.js +34 -0
- package/builders/joinBuilders/responses/selectResponseThreeJoins.d.ts +17 -0
- package/builders/joinBuilders/responses/selectResponseThreeJoins.js +33 -0
- package/builders/joinBuilders/responses/selectResponseTwoJoins.d.ts +16 -0
- package/builders/joinBuilders/responses/selectResponseTwoJoins.js +32 -0
- package/builders/joinBuilders/responses/selectResponseWithJoin.d.ts +15 -0
- package/builders/joinBuilders/responses/selectResponseWithJoin.js +31 -0
- package/builders/joinBuilders/static.d.ts +5 -0
- package/builders/joinBuilders/static.js +6 -0
- package/{src/builders/lowLvlBuilders/alter.ts → builders/lowLvlBuilders/alter.d.ts} +0 -0
- package/builders/lowLvlBuilders/alter.js +1 -0
- package/builders/lowLvlBuilders/create.d.ts +12 -0
- package/builders/lowLvlBuilders/create.js +97 -0
- package/builders/lowLvlBuilders/delets/delete.d.ts +5 -0
- package/builders/lowLvlBuilders/delets/delete.js +12 -0
- package/builders/lowLvlBuilders/delets/deleteFilter.d.ts +8 -0
- package/builders/lowLvlBuilders/delets/deleteFilter.js +13 -0
- package/builders/lowLvlBuilders/delets/deleteFrom.d.ts +9 -0
- package/builders/lowLvlBuilders/delets/deleteFrom.js +11 -0
- package/builders/lowLvlBuilders/inserts/insert.d.ts +5 -0
- package/builders/lowLvlBuilders/inserts/insert.js +12 -0
- package/builders/lowLvlBuilders/inserts/insertInto.d.ts +10 -0
- package/builders/lowLvlBuilders/inserts/insertInto.js +13 -0
- package/builders/lowLvlBuilders/inserts/onConflictInsert.d.ts +9 -0
- package/builders/lowLvlBuilders/inserts/onConflictInsert.js +13 -0
- package/builders/lowLvlBuilders/inserts/valuesInsert.d.ts +13 -0
- package/builders/lowLvlBuilders/inserts/valuesInsert.js +16 -0
- package/builders/lowLvlBuilders/selects/select.d.ts +5 -0
- package/builders/lowLvlBuilders/selects/select.js +12 -0
- package/builders/lowLvlBuilders/selects/selectFrom.d.ts +19 -0
- package/builders/lowLvlBuilders/selects/selectFrom.js +31 -0
- package/builders/lowLvlBuilders/selects/selectJoined.d.ts +17 -0
- package/builders/lowLvlBuilders/selects/selectJoined.js +27 -0
- package/builders/lowLvlBuilders/selects/whereSelect.d.ts +14 -0
- package/builders/lowLvlBuilders/selects/whereSelect.js +25 -0
- package/builders/lowLvlBuilders/updates/update.d.ts +5 -0
- package/builders/lowLvlBuilders/updates/update.js +12 -0
- package/builders/lowLvlBuilders/updates/updateIn.d.ts +10 -0
- package/builders/lowLvlBuilders/updates/updateIn.js +12 -0
- package/builders/lowLvlBuilders/updates/whereSelect.d.ts +8 -0
- package/builders/lowLvlBuilders/updates/whereSelect.js +13 -0
- package/builders/lowLvlBuilders/updates/whereSet.d.ts +11 -0
- package/builders/lowLvlBuilders/updates/whereSet.js +15 -0
- package/builders/requestBuilders/updates/combine.d.ts +6 -0
- package/builders/requestBuilders/updates/combine.js +21 -0
- package/builders/requestBuilders/updates/setObjects.d.ts +9 -0
- package/builders/requestBuilders/updates/setObjects.js +12 -0
- package/builders/requestBuilders/updates/static.d.ts +6 -0
- package/builders/requestBuilders/updates/static.js +9 -0
- package/{src/builders/requestBuilders/updates/updates.ts → builders/requestBuilders/updates/updates.d.ts} +1 -1
- package/builders/requestBuilders/updates/updates.js +5 -0
- package/builders/requestBuilders/where/and.d.ts +6 -0
- package/builders/requestBuilders/where/and.js +22 -0
- package/builders/requestBuilders/where/const.d.ts +6 -0
- package/builders/requestBuilders/where/const.js +17 -0
- package/builders/requestBuilders/where/constArray.d.ts +6 -0
- package/builders/requestBuilders/where/constArray.js +27 -0
- package/builders/requestBuilders/where/eqWhere.d.ts +7 -0
- package/builders/requestBuilders/where/eqWhere.js +12 -0
- package/builders/requestBuilders/where/greater.d.ts +10 -0
- package/builders/requestBuilders/where/greater.js +12 -0
- package/builders/requestBuilders/where/greaterEq.d.ts +10 -0
- package/builders/requestBuilders/where/greaterEq.js +12 -0
- package/builders/requestBuilders/where/in.d.ts +7 -0
- package/builders/requestBuilders/where/in.js +12 -0
- package/builders/requestBuilders/where/isNull.d.ts +6 -0
- package/builders/requestBuilders/where/isNull.js +11 -0
- package/builders/requestBuilders/where/less.d.ts +10 -0
- package/builders/requestBuilders/where/less.js +12 -0
- package/builders/requestBuilders/where/lessEq.d.ts +10 -0
- package/builders/requestBuilders/where/lessEq.js +12 -0
- package/builders/requestBuilders/where/like.d.ts +7 -0
- package/builders/requestBuilders/where/like.js +12 -0
- package/builders/requestBuilders/where/notEqWhere.d.ts +7 -0
- package/builders/requestBuilders/where/notEqWhere.js +12 -0
- package/builders/requestBuilders/where/or.d.ts +6 -0
- package/builders/requestBuilders/where/or.js +22 -0
- package/builders/requestBuilders/where/rawWhere.d.ts +6 -0
- package/builders/requestBuilders/where/rawWhere.js +11 -0
- package/builders/requestBuilders/where/static.d.ts +16 -0
- package/builders/requestBuilders/where/static.js +43 -0
- package/builders/requestBuilders/where/var.d.ts +8 -0
- package/builders/requestBuilders/where/var.js +12 -0
- package/{src/builders/requestBuilders/where/where.ts → builders/requestBuilders/where/where.d.ts} +1 -1
- package/builders/requestBuilders/where/where.js +5 -0
- package/builders/transaction/transaction.d.ts +8 -0
- package/builders/transaction/transaction.js +20 -0
- package/columns/column.d.ts +61 -0
- package/columns/column.js +98 -0
- package/{src/columns/index.ts → columns/index.d.ts} +0 -0
- package/columns/index.js +23 -0
- package/columns/types/columnType.d.ts +7 -0
- package/columns/types/columnType.js +6 -0
- package/columns/types/pgBigDecimal.d.ts +10 -0
- package/columns/types/pgBigDecimal.js +28 -0
- package/columns/types/pgBigInt.d.ts +8 -0
- package/columns/types/pgBigInt.js +17 -0
- package/columns/types/pgBoolean.d.ts +8 -0
- package/columns/types/pgBoolean.js +15 -0
- package/columns/types/pgEnum.d.ts +9 -0
- package/columns/types/pgEnum.js +15 -0
- package/columns/types/pgInteger.d.ts +8 -0
- package/columns/types/pgInteger.js +15 -0
- package/columns/types/pgJsonb.d.ts +9 -0
- package/columns/types/pgJsonb.js +15 -0
- package/columns/types/pgText.d.ts +8 -0
- package/columns/types/pgText.js +15 -0
- package/columns/types/pgTime.d.ts +8 -0
- package/columns/types/pgTime.js +15 -0
- package/columns/types/pgTimestamp.d.ts +8 -0
- package/columns/types/pgTimestamp.js +15 -0
- package/columns/types/pgVarChar.d.ts +9 -0
- package/columns/types/pgVarChar.js +21 -0
- package/db/db.d.ts +19 -0
- package/db/db.js +26 -0
- package/db/dbConnector.d.ts +9 -0
- package/db/dbConnector.js +28 -0
- package/db/dbStringConnector.d.ts +6 -0
- package/db/dbStringConnector.js +25 -0
- package/{src/mappers/index.ts → db/group_by.d.ts} +0 -0
- package/db/group_by.js +68 -0
- package/{src/db/index.ts → db/index.d.ts} +0 -0
- package/db/index.js +9 -0
- package/db/session.d.ts +7 -0
- package/db/session.js +20 -0
- package/docs/cases/simple_delete.d.ts +1 -0
- package/docs/cases/simple_delete.js +30 -0
- package/docs/cases/simple_insert.d.ts +1 -0
- package/docs/cases/simple_insert.js +51 -0
- package/docs/cases/simple_join.d.ts +1 -0
- package/docs/cases/simple_join.js +95 -0
- package/docs/cases/simple_select.d.ts +1 -0
- package/docs/cases/simple_select.js +39 -0
- package/docs/cases/simple_update.d.ts +1 -0
- package/docs/cases/simple_update.js +33 -0
- package/docs/tables/citiesTable.d.ts +14 -0
- package/docs/tables/citiesTable.js +19 -0
- package/docs/tables/citiesToUsers.d.ts +7 -0
- package/docs/tables/citiesToUsers.js +18 -0
- package/docs/tables/userGroupsTable.d.ts +7 -0
- package/docs/tables/userGroupsTable.js +15 -0
- package/docs/tables/usersTable.d.ts +17 -0
- package/docs/tables/usersTable.js +29 -0
- package/docs/tables/usersToUserGroups.d.ts +7 -0
- package/docs/tables/usersToUserGroups.js +18 -0
- package/docs/types/rolesType.d.ts +1 -0
- package/docs/types/rolesType.js +6 -0
- package/errors/baseError.d.ts +22 -0
- package/errors/baseError.js +35 -0
- package/errors/builderError.d.ts +14 -0
- package/errors/builderError.js +24 -0
- package/errors/dbErrors.d.ts +12 -0
- package/errors/dbErrors.js +28 -0
- package/index.d.ts +13 -0
- package/index.js +32 -0
- package/indexes/tableIndex.d.ts +11 -0
- package/indexes/tableIndex.js +17 -0
- package/logger/abstractLogger.d.ts +4 -0
- package/logger/abstractLogger.js +5 -0
- package/logger/consoleLogger.d.ts +5 -0
- package/logger/consoleLogger.js +12 -0
- package/{src/migrator/index.ts → mappers/index.d.ts} +0 -0
- package/mappers/index.js +1 -0
- package/mappers/responseMapper.d.ts +7 -0
- package/mappers/responseMapper.js +23 -0
- package/migrator/index.d.ts +0 -0
- package/migrator/index.js +1 -0
- package/migrator/migrator.d.ts +16 -0
- package/migrator/migrator.js +101 -0
- package/package.json +2 -2
- package/serializer/serializer.d.ts +40 -0
- package/serializer/serializer.js +74 -0
- package/tables/abstractTable.d.ts +118 -0
- package/tables/abstractTable.js +116 -0
- package/{src/tables/index.ts → tables/index.d.ts} +0 -0
- package/tables/index.js +8 -0
- package/tables/inferTypes.d.ts +19 -0
- package/tables/inferTypes.js +2 -0
- package/tables/migrationsTable.d.ts +8 -0
- package/tables/migrationsTable.js +16 -0
- package/test.d.ts +1 -0
- package/test.js +81 -0
- package/types/type.d.ts +10 -0
- package/types/type.js +14 -0
- package/utils/ecranate.d.ts +2 -0
- package/utils/ecranate.js +8 -0
- package/.eslintrc +0 -26
- package/.tslintignore +0 -1
- package/LICENSE +0 -674
- package/README.md +0 -147
- package/src/builders/aggregators/abstractAggregator.ts +0 -37
- package/src/builders/aggregators/deleteAggregator.ts +0 -34
- package/src/builders/aggregators/insertAggregator.ts +0 -116
- package/src/builders/aggregators/selectAggregator.ts +0 -102
- package/src/builders/aggregators/updateAggregator.ts +0 -45
- package/src/builders/highLvlBuilders/abstractRequestBuilder.ts +0 -37
- package/src/builders/highLvlBuilders/deleteRequestBuilder.ts +0 -59
- package/src/builders/highLvlBuilders/insertRequestBuilder.ts +0 -87
- package/src/builders/highLvlBuilders/order.ts +0 -4
- package/src/builders/highLvlBuilders/selectRequestBuilder.ts +0 -102
- package/src/builders/highLvlBuilders/updateRequestBuilder.ts +0 -63
- package/src/builders/joinBuilders/builders/abstractJoinBuilder.ts +0 -22
- package/src/builders/joinBuilders/builders/selectWithFourJoins.ts +0 -71
- package/src/builders/joinBuilders/builders/selectWithJoin.ts +0 -67
- package/src/builders/joinBuilders/builders/selectWithThreeJoins.ts +0 -78
- package/src/builders/joinBuilders/builders/selectWithTwoJoins.ts +0 -72
- package/src/builders/joinBuilders/join.ts +0 -37
- package/src/builders/joinBuilders/joinWith.ts +0 -19
- package/src/builders/joinBuilders/responses/selectResponseFourJoins.ts +0 -33
- package/src/builders/joinBuilders/responses/selectResponseThreeJoins.ts +0 -29
- package/src/builders/joinBuilders/responses/selectResponseTwoJoins.ts +0 -22
- package/src/builders/joinBuilders/responses/selectResponseWithJoin.ts +0 -28
- package/src/builders/joinBuilders/static.ts +0 -9
- package/src/builders/lowLvlBuilders/create.ts +0 -114
- package/src/builders/lowLvlBuilders/delets/delete.ts +0 -10
- package/src/builders/lowLvlBuilders/delets/deleteFilter.ts +0 -17
- package/src/builders/lowLvlBuilders/delets/deleteFrom.ts +0 -15
- package/src/builders/lowLvlBuilders/inserts/insert.ts +0 -12
- package/src/builders/lowLvlBuilders/inserts/insertInto.ts +0 -18
- package/src/builders/lowLvlBuilders/inserts/onConflictInsert.ts +0 -19
- package/src/builders/lowLvlBuilders/inserts/valuesInsert.ts +0 -30
- package/src/builders/lowLvlBuilders/selects/select.ts +0 -12
- package/src/builders/lowLvlBuilders/selects/selectFrom.ts +0 -38
- package/src/builders/lowLvlBuilders/selects/selectJoined.ts +0 -40
- package/src/builders/lowLvlBuilders/selects/whereSelect.ts +0 -35
- package/src/builders/lowLvlBuilders/updates/update.ts +0 -10
- package/src/builders/lowLvlBuilders/updates/updateIn.ts +0 -22
- package/src/builders/lowLvlBuilders/updates/whereSelect.ts +0 -17
- package/src/builders/lowLvlBuilders/updates/whereSet.ts +0 -21
- package/src/builders/requestBuilders/updates/combine.ts +0 -25
- package/src/builders/requestBuilders/updates/setObjects.ts +0 -18
- package/src/builders/requestBuilders/updates/static.ts +0 -11
- package/src/builders/requestBuilders/where/and.ts +0 -26
- package/src/builders/requestBuilders/where/const.ts +0 -18
- package/src/builders/requestBuilders/where/constArray.ts +0 -27
- package/src/builders/requestBuilders/where/eqWhere.ts +0 -14
- package/src/builders/requestBuilders/where/greater.ts +0 -14
- package/src/builders/requestBuilders/where/greaterEq.ts +0 -14
- package/src/builders/requestBuilders/where/in.ts +0 -14
- package/src/builders/requestBuilders/where/less.ts +0 -14
- package/src/builders/requestBuilders/where/lessEq.ts +0 -14
- package/src/builders/requestBuilders/where/like.ts +0 -14
- package/src/builders/requestBuilders/where/or.ts +0 -26
- package/src/builders/requestBuilders/where/static.ts +0 -42
- package/src/builders/requestBuilders/where/var.ts +0 -15
- package/src/builders/transaction/transaction.ts +0 -21
- package/src/columns/column.ts +0 -86
- package/src/columns/types/columnType.ts +0 -7
- package/src/columns/types/pgBigDecimal.ts +0 -29
- package/src/columns/types/pgBigInt.ts +0 -20
- package/src/columns/types/pgBoolean.ts +0 -18
- package/src/columns/types/pgEnum.ts +0 -22
- package/src/columns/types/pgInteger.ts +0 -18
- package/src/columns/types/pgJsonb.ts +0 -19
- package/src/columns/types/pgText.ts +0 -18
- package/src/columns/types/pgTime.ts +0 -18
- package/src/columns/types/pgTimestamp.ts +0 -18
- package/src/columns/types/pgVarChar.ts +0 -24
- package/src/db/db.ts +0 -29
- package/src/db/dbConnector.ts +0 -30
- package/src/db/dbStringConnector.ts +0 -28
- package/src/db/session.ts +0 -21
- package/src/errors/baseError.ts +0 -47
- package/src/errors/builderError.ts +0 -30
- package/src/errors/dbErrors.ts +0 -24
- package/src/examples/tables/authOtpTable.ts +0 -17
- package/src/examples/tables/cityTable.ts +0 -15
- package/src/examples/tables/usersTable.ts +0 -18
- package/src/examples/testEnum.ts +0 -6
- package/src/index.ts +0 -40
- package/src/indexes/tableIndex.ts +0 -19
- package/src/logger/abstractLogger.ts +0 -4
- package/src/logger/consoleLogger.ts +0 -11
- package/src/mappers/responseMapper.ts +0 -24
- package/src/migrator/migrator.ts +0 -110
- package/src/serializer/Untitled.js +0 -72
- package/src/serializer/out.json +0 -140
- package/src/tables/abstractTable.ts +0 -183
- package/src/tables/inferTypes.ts +0 -34
- package/src/tables/migrationsTable.ts +0 -12
- package/src/utils/ecranate.ts +0 -4
- package/tsconfig.json +0 -29
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import { Column } from '../../columns/column';
|
|
2
|
-
import PgEnum from '../../columns/types/pgEnum';
|
|
3
|
-
import AbstractTable from '../../tables/abstractTable';
|
|
4
|
-
import { ecranate } from '../../utils/ecranate';
|
|
5
|
-
|
|
6
|
-
export default class Create<SERVICE> {
|
|
7
|
-
private tableBuilder: Array<string> = [];
|
|
8
|
-
private enumBuilder: Array<string> = [];
|
|
9
|
-
private columnsBuilder: Array<string> = [];
|
|
10
|
-
private primaryKey: Array<string> = [];
|
|
11
|
-
private uniqueKey: Array<string> = [];
|
|
12
|
-
private tableClass: AbstractTable<SERVICE>;
|
|
13
|
-
|
|
14
|
-
private constructor(tableClass: AbstractTable<SERVICE>) {
|
|
15
|
-
this.tableClass = tableClass;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
public static table = <SSERVICE>(tableClass:
|
|
19
|
-
AbstractTable<SSERVICE>): Create<SSERVICE> => new Create(tableClass);
|
|
20
|
-
|
|
21
|
-
public build = (): string => {
|
|
22
|
-
this.tableBuilder.push('CREATE TABLE IF NOT EXISTS ');
|
|
23
|
-
this.tableBuilder.push(this.tableClass.tableName());
|
|
24
|
-
this.tableBuilder.push(' (');
|
|
25
|
-
|
|
26
|
-
const tableValues = Object.values(this.tableClass);
|
|
27
|
-
const columns = tableValues.filter((value) => value instanceof Column);
|
|
28
|
-
for (let i = 0; i < columns.length; i += 1) {
|
|
29
|
-
const column = columns[i];
|
|
30
|
-
|
|
31
|
-
if (column instanceof Column) {
|
|
32
|
-
if (column.columnType instanceof PgEnum) {
|
|
33
|
-
// eslint-disable-next-line new-cap
|
|
34
|
-
const enumValues = Object.values(column.columnType.codeType) as string[];
|
|
35
|
-
|
|
36
|
-
let resValue = '';
|
|
37
|
-
for (let j = 0; j < enumValues.length; j += 1) {
|
|
38
|
-
resValue += `'${enumValues[j]}'`;
|
|
39
|
-
if (j !== enumValues.length - 1) {
|
|
40
|
-
resValue += ',';
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
this.enumBuilder.push(`DO $$ BEGIN
|
|
44
|
-
CREATE TYPE ${column.columnType.dbName} AS ENUM (${resValue});
|
|
45
|
-
EXCEPTION
|
|
46
|
-
WHEN duplicate_object THEN null;
|
|
47
|
-
END $$;`);
|
|
48
|
-
}
|
|
49
|
-
this.columnsBuilder.push(ecranate(column.getColumnName()));
|
|
50
|
-
this.columnsBuilder.push(' ');
|
|
51
|
-
this.columnsBuilder.push(column.isAutoIncrement() ? 'SERIAL' : column.getColumnType().getDbName());
|
|
52
|
-
this.columnsBuilder.push(' ');
|
|
53
|
-
this.columnsBuilder.push(column.getDefaultValue() != null ? `DEFAULT ${column.getColumnType().insertStrategy(column.getDefaultValue())}` : '');
|
|
54
|
-
this.columnsBuilder.push(column.isNullableFlag ? '' : ' NOT NULL');
|
|
55
|
-
|
|
56
|
-
const referenced = column.getReferenced();
|
|
57
|
-
this.columnsBuilder.push(referenced != null ? ` REFERENCES ${referenced.getParent()} (${referenced.getColumnName()})` : '');
|
|
58
|
-
|
|
59
|
-
if (i !== columns.length - 1) {
|
|
60
|
-
this.columnsBuilder.push(',');
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
const primaryKeys: Column<any>[] = [];
|
|
66
|
-
const uniqueKeys: Column<any>[] = [];
|
|
67
|
-
|
|
68
|
-
Object.values(this.tableClass).forEach((field) => {
|
|
69
|
-
if (field instanceof Column) {
|
|
70
|
-
if (field.primaryKeyName) {
|
|
71
|
-
primaryKeys.push(field);
|
|
72
|
-
}
|
|
73
|
-
if (field.uniqueKeyName) {
|
|
74
|
-
uniqueKeys.push(field);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
|
|
79
|
-
if (primaryKeys.length !== 0) {
|
|
80
|
-
this.primaryKey.push(',');
|
|
81
|
-
this.primaryKey.push(`\nCONSTRAINT ${this.tableClass.tableName()}_${primaryKeys[0].getColumnName()}`);
|
|
82
|
-
this.primaryKey.push(' PRIMARY KEY(');
|
|
83
|
-
|
|
84
|
-
for (let i = 0; i < primaryKeys.length; i += 1) {
|
|
85
|
-
const column: Column<any> = primaryKeys[i];
|
|
86
|
-
this.primaryKey.push(column.getColumnName());
|
|
87
|
-
|
|
88
|
-
if (i !== primaryKeys.length - 1) {
|
|
89
|
-
this.primaryKey.push(',');
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
this.primaryKey.push(')');
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
if (uniqueKeys.length !== 0) {
|
|
96
|
-
const columnName: string = uniqueKeys[0].getColumnName();
|
|
97
|
-
this.uniqueKey.push(',');
|
|
98
|
-
this.uniqueKey.push(`\nCONSTRAINT ${this.tableClass.tableName()}_${columnName}`);
|
|
99
|
-
this.uniqueKey.push(' UNIQUE(');
|
|
100
|
-
|
|
101
|
-
for (let i = 0; i < uniqueKeys.length; i += 1) {
|
|
102
|
-
const column: Column<any> = uniqueKeys[i];
|
|
103
|
-
this.uniqueKey.push(column.getColumnName());
|
|
104
|
-
|
|
105
|
-
if (i !== uniqueKeys.length - 1) {
|
|
106
|
-
this.uniqueKey.push(',');
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
this.uniqueKey.push(')');
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
return `${this.enumBuilder.join('')} ${this.tableBuilder.join('') + this.columnsBuilder.join('') + this.primaryKey.join('') + this.uniqueKey.join('')});`;
|
|
113
|
-
};
|
|
114
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import DeleteAggregator from '../../aggregators/deleteAggregator';
|
|
2
|
-
import DeleteFrom from './deleteFrom';
|
|
3
|
-
|
|
4
|
-
export default class Delete {
|
|
5
|
-
public static from = (tableName: string): DeleteFrom => {
|
|
6
|
-
const aggregator = new DeleteAggregator(tableName);
|
|
7
|
-
aggregator.appendFrom(tableName);
|
|
8
|
-
return new DeleteFrom(aggregator);
|
|
9
|
-
};
|
|
10
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import DeleteAggregator from '../../aggregators/deleteAggregator';
|
|
2
|
-
import Expr from '../../requestBuilders/where/where';
|
|
3
|
-
|
|
4
|
-
export default class DeleteFilter<SERVICE, DB> {
|
|
5
|
-
private _aggregator: DeleteAggregator;
|
|
6
|
-
|
|
7
|
-
public constructor(aggregator: DeleteAggregator) {
|
|
8
|
-
this._aggregator = aggregator;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
public apply = (filters: Expr): DeleteFilter<SERVICE, DB> => {
|
|
12
|
-
this._aggregator.filters(filters);
|
|
13
|
-
return this;
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
public build = () => this._aggregator.buildQuery();
|
|
17
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import DeleteAggregator from '../../aggregators/deleteAggregator';
|
|
2
|
-
import Expr from '../../requestBuilders/where/where';
|
|
3
|
-
import DeleteFilter from './deleteFilter';
|
|
4
|
-
|
|
5
|
-
export default class DeleteFrom {
|
|
6
|
-
private _aggregator: DeleteAggregator;
|
|
7
|
-
|
|
8
|
-
public constructor(aggregator: DeleteAggregator) {
|
|
9
|
-
this._aggregator = aggregator;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
public build = () => this._aggregator.buildQuery();
|
|
13
|
-
|
|
14
|
-
public filteredBy = (filters: Expr) => new DeleteFilter(this._aggregator).apply(filters);
|
|
15
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { Column } from '../../../columns/column';
|
|
2
|
-
import ColumnType from '../../../columns/types/columnType';
|
|
3
|
-
import InsertAggregator from '../../aggregators/insertAggregator';
|
|
4
|
-
import InsertInto from './insertInto';
|
|
5
|
-
|
|
6
|
-
export default class Insert {
|
|
7
|
-
public static into = (tableName: string, columns: Column<ColumnType>[]) => {
|
|
8
|
-
const aggregator = new InsertAggregator(tableName);
|
|
9
|
-
aggregator.appendFrom(tableName).appendFields(columns);
|
|
10
|
-
return new InsertInto(aggregator);
|
|
11
|
-
};
|
|
12
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { Column } from '../../../columns/column';
|
|
2
|
-
import ColumnType from '../../../columns/types/columnType';
|
|
3
|
-
import InsertAggregator from '../../aggregators/insertAggregator';
|
|
4
|
-
import ValuesInsert from './valuesInsert';
|
|
5
|
-
|
|
6
|
-
export default class InsertInto {
|
|
7
|
-
private _aggregator: InsertAggregator;
|
|
8
|
-
|
|
9
|
-
public constructor(aggregator: InsertAggregator) {
|
|
10
|
-
this._aggregator = aggregator;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
// @TODO refactor!!
|
|
14
|
-
public values = <T>(values: {[name: string]: any}[], columns: {[name in keyof T]:
|
|
15
|
-
Column<ColumnType>}) => new ValuesInsert(this._aggregator).apply(values, columns);
|
|
16
|
-
|
|
17
|
-
public build = () => this._aggregator.buildQuery();
|
|
18
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { Indexing } from '../../../tables/inferTypes';
|
|
2
|
-
import InsertAggregator from '../../aggregators/insertAggregator';
|
|
3
|
-
import UpdateExpr from '../../requestBuilders/updates/updates';
|
|
4
|
-
|
|
5
|
-
export default class OnConflictInsert {
|
|
6
|
-
private _aggregator: InsertAggregator;
|
|
7
|
-
|
|
8
|
-
public constructor(aggregator: InsertAggregator) {
|
|
9
|
-
this._aggregator = aggregator;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
public apply = (updates: UpdateExpr,
|
|
13
|
-
column: Indexing): OnConflictInsert => {
|
|
14
|
-
this._aggregator.appendOnConflict(column, updates);
|
|
15
|
-
return this;
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
public build = () => this._aggregator.buildQuery();
|
|
19
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { Column } from '../../../columns/column';
|
|
2
|
-
import ColumnType from '../../../columns/types/columnType';
|
|
3
|
-
import { ExtractModel, Indexing } from '../../../tables/inferTypes';
|
|
4
|
-
import InsertAggregator from '../../aggregators/insertAggregator';
|
|
5
|
-
import UpdateExpr from '../../requestBuilders/updates/updates';
|
|
6
|
-
import OnConflictInsert from './onConflictInsert';
|
|
7
|
-
|
|
8
|
-
export default class ValuesInsert {
|
|
9
|
-
private _aggregator: InsertAggregator;
|
|
10
|
-
|
|
11
|
-
public constructor(aggregator: InsertAggregator) {
|
|
12
|
-
this._aggregator = aggregator;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
public apply = <T>(values: {[name: string]: any}[], columns: {[name in keyof ExtractModel<T>]
|
|
16
|
-
: Column<ColumnType>})
|
|
17
|
-
: ValuesInsert => {
|
|
18
|
-
this._aggregator.appendColumns(values);
|
|
19
|
-
this._aggregator.appendValues(columns, values);
|
|
20
|
-
|
|
21
|
-
return this;
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
public onConflict = (updates: UpdateExpr,
|
|
25
|
-
column: Indexing) => new OnConflictInsert(
|
|
26
|
-
this._aggregator,
|
|
27
|
-
).apply(updates, column);
|
|
28
|
-
|
|
29
|
-
public build = () => this._aggregator.buildQuery();
|
|
30
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { Column } from '../../../columns/column';
|
|
2
|
-
import ColumnType from '../../../columns/types/columnType';
|
|
3
|
-
import SelectAggregator from '../../aggregators/selectAggregator';
|
|
4
|
-
import SelectFrom from './selectFrom';
|
|
5
|
-
|
|
6
|
-
export default class Select {
|
|
7
|
-
public static from = (tableName: string, columns: Column<ColumnType>[]) => {
|
|
8
|
-
const aggregator = new SelectAggregator(tableName);
|
|
9
|
-
aggregator.appendFrom(tableName).appendFields(columns);
|
|
10
|
-
return new SelectFrom(aggregator);
|
|
11
|
-
};
|
|
12
|
-
}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { Column } from '../../../columns';
|
|
2
|
-
import ColumnType from '../../../columns/types/columnType';
|
|
3
|
-
import SelectAggregator from '../../aggregators/selectAggregator';
|
|
4
|
-
import Order from '../../highLvlBuilders/order';
|
|
5
|
-
import Join from '../../joinBuilders/join';
|
|
6
|
-
import Expr from '../../requestBuilders/where/where';
|
|
7
|
-
import SelectJoined from './selectJoined';
|
|
8
|
-
import WhereSelect from './whereSelect';
|
|
9
|
-
|
|
10
|
-
export default class SelectFrom {
|
|
11
|
-
private _aggregator: SelectAggregator;
|
|
12
|
-
|
|
13
|
-
public constructor(aggregator: SelectAggregator) {
|
|
14
|
-
this._aggregator = aggregator;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
public joined = <COLUMN extends ColumnType>(joins:
|
|
18
|
-
Array<Join<COLUMN, any>>) => new SelectJoined(this._aggregator).apply(joins);
|
|
19
|
-
|
|
20
|
-
public limit = (limit: number): SelectFrom => {
|
|
21
|
-
this._aggregator.limit(limit);
|
|
22
|
-
return this;
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
public offset = (offset: number): SelectFrom => {
|
|
26
|
-
this._aggregator.offset(offset);
|
|
27
|
-
return this;
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
public orderBy = (orderBy: Column<ColumnType, boolean, boolean>, order: Order): SelectFrom => {
|
|
31
|
-
this._aggregator.orderBy(orderBy, order);
|
|
32
|
-
return this;
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
public filteredBy = (filters: Expr) => new WhereSelect(this._aggregator).apply(filters);
|
|
36
|
-
|
|
37
|
-
public build = () => this._aggregator.buildQuery();
|
|
38
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { Column } from '../../../columns';
|
|
2
|
-
import ColumnType from '../../../columns/types/columnType';
|
|
3
|
-
import SelectAggregator from '../../aggregators/selectAggregator';
|
|
4
|
-
import Order from '../../highLvlBuilders/order';
|
|
5
|
-
import Join from '../../joinBuilders/join';
|
|
6
|
-
import Expr from '../../requestBuilders/where/where';
|
|
7
|
-
import WhereSelect from './whereSelect';
|
|
8
|
-
|
|
9
|
-
export default class SelectJoined {
|
|
10
|
-
private _aggregator: SelectAggregator;
|
|
11
|
-
|
|
12
|
-
public constructor(aggregator: SelectAggregator) {
|
|
13
|
-
this._aggregator = aggregator;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
public apply = <COLUMN extends ColumnType>(joins: Array<Join<COLUMN,
|
|
17
|
-
{}>>): SelectJoined => {
|
|
18
|
-
this._aggregator.join(joins);
|
|
19
|
-
return this;
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
public limit = (limit: number): SelectJoined => {
|
|
23
|
-
this._aggregator.limit(limit);
|
|
24
|
-
return this;
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
public offset = (offset: number): SelectJoined => {
|
|
28
|
-
this._aggregator.offset(offset);
|
|
29
|
-
return this;
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
public orderBy = (orderBy: Column<ColumnType, boolean, boolean>, order: Order): SelectJoined => {
|
|
33
|
-
this._aggregator.orderBy(orderBy, order);
|
|
34
|
-
return this;
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
public filteredBy = (filters: Expr) => new WhereSelect(this._aggregator).apply(filters);
|
|
38
|
-
|
|
39
|
-
public build = () => this._aggregator.buildQuery();
|
|
40
|
-
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { Column } from '../../../columns';
|
|
2
|
-
import ColumnType from '../../../columns/types/columnType';
|
|
3
|
-
import SelectAggregator from '../../aggregators/selectAggregator';
|
|
4
|
-
import Order from '../../highLvlBuilders/order';
|
|
5
|
-
import Expr from '../../requestBuilders/where/where';
|
|
6
|
-
|
|
7
|
-
export default class WhereSelect {
|
|
8
|
-
private _aggregator: SelectAggregator;
|
|
9
|
-
|
|
10
|
-
public constructor(aggregator: SelectAggregator) {
|
|
11
|
-
this._aggregator = aggregator;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
public limit = (limit: number): WhereSelect => {
|
|
15
|
-
this._aggregator.limit(limit);
|
|
16
|
-
return this;
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
public offset = (offset: number): WhereSelect => {
|
|
20
|
-
this._aggregator.offset(offset);
|
|
21
|
-
return this;
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
public orderBy = (orderBy: Column<ColumnType, boolean, boolean>, order: Order): WhereSelect => {
|
|
25
|
-
this._aggregator.orderBy(orderBy, order);
|
|
26
|
-
return this;
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
public apply = (filters: Expr): WhereSelect => {
|
|
30
|
-
this._aggregator.filters(filters);
|
|
31
|
-
return this;
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
public build = () => this._aggregator.buildQuery();
|
|
35
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import UpdateAggregator from '../../aggregators/updateAggregator';
|
|
2
|
-
import UpdateIn from './updateIn';
|
|
3
|
-
|
|
4
|
-
export default class Update {
|
|
5
|
-
public static in = (tableName: string) => {
|
|
6
|
-
const aggregator = new UpdateAggregator(tableName);
|
|
7
|
-
aggregator.appendFrom(tableName);
|
|
8
|
-
return new UpdateIn(aggregator);
|
|
9
|
-
};
|
|
10
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { Column } from '../../../columns/column';
|
|
2
|
-
import ColumnType from '../../../columns/types/columnType';
|
|
3
|
-
import UpdateAggregator from '../../aggregators/updateAggregator';
|
|
4
|
-
import UpdateExpr from '../../requestBuilders/updates/updates';
|
|
5
|
-
import WhereSet from './whereSet';
|
|
6
|
-
|
|
7
|
-
export default class UpdateIn {
|
|
8
|
-
private _aggregator: UpdateAggregator;
|
|
9
|
-
|
|
10
|
-
public constructor(aggregator: UpdateAggregator) {
|
|
11
|
-
this._aggregator = aggregator;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
public columns = (columns: Column<ColumnType>[]) => {
|
|
15
|
-
this._aggregator.appendFields(columns);
|
|
16
|
-
return new UpdateIn(this._aggregator);
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
public set = (updates: UpdateExpr) => new WhereSet(this._aggregator).apply(updates);
|
|
20
|
-
|
|
21
|
-
public build = () => this._aggregator.buildQuery();
|
|
22
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import UpdateAggregator from '../../aggregators/updateAggregator';
|
|
2
|
-
import Expr from '../../requestBuilders/where/where';
|
|
3
|
-
|
|
4
|
-
export default class WhereSelect<SERVICE, DB> {
|
|
5
|
-
private _aggregator: UpdateAggregator;
|
|
6
|
-
|
|
7
|
-
public constructor(aggregator: UpdateAggregator) {
|
|
8
|
-
this._aggregator = aggregator;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
public apply = (filters: Expr): WhereSelect<SERVICE, DB> => {
|
|
12
|
-
this._aggregator.where(filters);
|
|
13
|
-
return this;
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
public build = () => this._aggregator.buildQuery();
|
|
17
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import UpdateAggregator from '../../aggregators/updateAggregator';
|
|
2
|
-
import UpdateExpr from '../../requestBuilders/updates/updates';
|
|
3
|
-
import Expr from '../../requestBuilders/where/where';
|
|
4
|
-
import WhereSelect from './whereSelect';
|
|
5
|
-
|
|
6
|
-
export default class WhereSet<SERVICE, DB> {
|
|
7
|
-
private _aggregator: UpdateAggregator;
|
|
8
|
-
|
|
9
|
-
public constructor(aggregator: UpdateAggregator) {
|
|
10
|
-
this._aggregator = aggregator;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
public apply = (updates: UpdateExpr): WhereSet<SERVICE, DB> => {
|
|
14
|
-
this._aggregator.set(updates);
|
|
15
|
-
return this;
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
public filteredBy = (filters: Expr) => new WhereSelect(this._aggregator).apply(filters);
|
|
19
|
-
|
|
20
|
-
public build = () => this._aggregator.buildQuery();
|
|
21
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import UpdateExpr from './updates';
|
|
2
|
-
|
|
3
|
-
export default class Combine extends UpdateExpr {
|
|
4
|
-
private _setters: Array<UpdateExpr>;
|
|
5
|
-
|
|
6
|
-
public constructor(setters: Array<UpdateExpr>) {
|
|
7
|
-
super();
|
|
8
|
-
this._setters = setters;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
public toQuery = (): string => {
|
|
12
|
-
const response = [];
|
|
13
|
-
|
|
14
|
-
for (let index = 0; index < this._setters.length; index += 1) {
|
|
15
|
-
const setter = this._setters[index];
|
|
16
|
-
response.push(setter.toQuery());
|
|
17
|
-
|
|
18
|
-
if (index !== this._setters.length - 1) {
|
|
19
|
-
response.push(', ');
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
return response.join('');
|
|
24
|
-
};
|
|
25
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { Column } from '../../../columns/column';
|
|
2
|
-
import ColumnType from '../../../columns/types/columnType';
|
|
3
|
-
import UpdateExpr from './updates';
|
|
4
|
-
|
|
5
|
-
export default class SetObject<T extends Column<ColumnType<any>, boolean, boolean>>
|
|
6
|
-
extends UpdateExpr {
|
|
7
|
-
private _column: T;
|
|
8
|
-
private _value: any;
|
|
9
|
-
|
|
10
|
-
public constructor(column: T, value: any) {
|
|
11
|
-
super();
|
|
12
|
-
this._column = column;
|
|
13
|
-
this._value = value;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
public toQuery = (): string => `"${this._column.columnName}"=${this._column.columnType.insertStrategy(this._value)}`
|
|
17
|
-
;
|
|
18
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { Column } from '../../../columns/column';
|
|
2
|
-
import ColumnType from '../../../columns/types/columnType';
|
|
3
|
-
import { ExtractCodeType } from '../../../tables/inferTypes';
|
|
4
|
-
import Combine from './combine';
|
|
5
|
-
import SetObject from './setObjects';
|
|
6
|
-
import UpdateExpr from './updates';
|
|
7
|
-
|
|
8
|
-
export const set = <T extends Column<ColumnType<any>, boolean, boolean>>(column: T,
|
|
9
|
-
value: ExtractCodeType<T>): UpdateExpr => new SetObject<T>(column, value);
|
|
10
|
-
|
|
11
|
-
export const combine = (updates: Array<UpdateExpr>): UpdateExpr => new Combine(updates);
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import Expr from './where';
|
|
2
|
-
|
|
3
|
-
export default class And extends Expr {
|
|
4
|
-
private expressions: Expr[];
|
|
5
|
-
|
|
6
|
-
public constructor(expressions: Expr[]) {
|
|
7
|
-
super();
|
|
8
|
-
this.expressions = expressions;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
public toQuery = (): string => {
|
|
12
|
-
const result: string[] = ['('];
|
|
13
|
-
for (let i = 0; i < this.expressions.length; i += 1) {
|
|
14
|
-
const expression = this.expressions[i];
|
|
15
|
-
|
|
16
|
-
result.push(expression.toQuery());
|
|
17
|
-
|
|
18
|
-
if (i < this.expressions.length - 1) {
|
|
19
|
-
result.push(' and ');
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
result.push(')');
|
|
23
|
-
|
|
24
|
-
return result.join('');
|
|
25
|
-
};
|
|
26
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { shouldEcranate } from '../../../utils/ecranate';
|
|
2
|
-
import Expr from './where';
|
|
3
|
-
|
|
4
|
-
export default class Const extends Expr {
|
|
5
|
-
private value: any;
|
|
6
|
-
|
|
7
|
-
public constructor(value: any) {
|
|
8
|
-
super();
|
|
9
|
-
this.value = value;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
public toQuery = (): string => {
|
|
13
|
-
if (shouldEcranate(this.value)) {
|
|
14
|
-
return `'${this.value.toString()}'`;
|
|
15
|
-
}
|
|
16
|
-
return this.value.toString();
|
|
17
|
-
};
|
|
18
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { shouldEcranate } from '../../../utils/ecranate';
|
|
2
|
-
import Expr from './where';
|
|
3
|
-
|
|
4
|
-
export default class ConstArray extends Expr {
|
|
5
|
-
private values: Array<any>;
|
|
6
|
-
|
|
7
|
-
public constructor(values: Array<any>) {
|
|
8
|
-
super();
|
|
9
|
-
this.values = values;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
public toQuery = (): string => {
|
|
13
|
-
const finalArray: string[] = [];
|
|
14
|
-
for (let i = 0; i < this.values.length; i += 1) {
|
|
15
|
-
const value = this.values[i];
|
|
16
|
-
if (shouldEcranate(value)) {
|
|
17
|
-
finalArray.push(`'${value.toString()}'`);
|
|
18
|
-
} else {
|
|
19
|
-
finalArray.push(value.toString());
|
|
20
|
-
}
|
|
21
|
-
if (i < this.values.length - 1) {
|
|
22
|
-
finalArray.push(',');
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
return finalArray.join('');
|
|
26
|
-
};
|
|
27
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import Expr from './where';
|
|
2
|
-
|
|
3
|
-
export default class EqWhere extends Expr {
|
|
4
|
-
private left: Expr;
|
|
5
|
-
private right: Expr;
|
|
6
|
-
|
|
7
|
-
public constructor(left: Expr, right: Expr) {
|
|
8
|
-
super();
|
|
9
|
-
this.left = left;
|
|
10
|
-
this.right = right;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
public toQuery = (): string => `${this.left.toQuery()}=${this.right.toQuery()}`;
|
|
14
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import Expr from './where';
|
|
2
|
-
|
|
3
|
-
export default class Greater extends Expr {
|
|
4
|
-
private left: Expr;
|
|
5
|
-
private right: Expr;
|
|
6
|
-
|
|
7
|
-
public constructor({ left, right }: { left: Expr; right: Expr; }) {
|
|
8
|
-
super();
|
|
9
|
-
this.left = left;
|
|
10
|
-
this.right = right;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
public toQuery = (): string => `${this.left.toQuery()} > ${this.right.toQuery()}`;
|
|
14
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import Expr from './where';
|
|
2
|
-
|
|
3
|
-
export default class GreaterEq extends Expr {
|
|
4
|
-
private left: Expr;
|
|
5
|
-
private right: Expr;
|
|
6
|
-
|
|
7
|
-
public constructor({ left, right }: { left: Expr; right: Expr; }) {
|
|
8
|
-
super();
|
|
9
|
-
this.left = left;
|
|
10
|
-
this.right = right;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
public toQuery = (): string => `${this.left.toQuery()} >= ${this.right.toQuery()}`;
|
|
14
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import Expr from './where';
|
|
2
|
-
|
|
3
|
-
export default class In extends Expr {
|
|
4
|
-
private left: Expr;
|
|
5
|
-
private right: Expr;
|
|
6
|
-
|
|
7
|
-
public constructor(left: Expr, right: Expr) {
|
|
8
|
-
super();
|
|
9
|
-
this.left = left;
|
|
10
|
-
this.right = right;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
public toQuery = (): string => `${this.left.toQuery()} in (${this.right.toQuery()})`;
|
|
14
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import Expr from './where';
|
|
2
|
-
|
|
3
|
-
export default class Less extends Expr {
|
|
4
|
-
private left: Expr;
|
|
5
|
-
private right: Expr;
|
|
6
|
-
|
|
7
|
-
public constructor({ left, right }: { left: Expr; right: Expr; }) {
|
|
8
|
-
super();
|
|
9
|
-
this.left = left;
|
|
10
|
-
this.right = right;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
public toQuery = (): string => `${this.left.toQuery()} < ${this.right.toQuery()}`;
|
|
14
|
-
}
|