drizzle-orm 0.10.29 → 0.10.32
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/{dist/index.js → index.js} +0 -0
- package/package.json +7 -5
- package/.eslintrc +0 -28
- package/.tslintignore +0 -1
- package/CHANGELOG.md +0 -202
- package/README.md +0 -439
- package/dist/builders/aggregators/abstractAggregator.d.ts +0 -11
- package/dist/builders/aggregators/abstractAggregator.js +0 -35
- package/dist/builders/aggregators/deleteAggregator.d.ts +0 -16
- package/dist/builders/aggregators/deleteAggregator.js +0 -42
- package/dist/builders/aggregators/insertAggregator.d.ts +0 -22
- package/dist/builders/aggregators/insertAggregator.js +0 -106
- package/dist/builders/aggregators/selectAggregator.d.ts +0 -39
- package/dist/builders/aggregators/selectAggregator.js +0 -143
- package/dist/builders/aggregators/updateAggregator.d.ts +0 -19
- package/dist/builders/aggregators/updateAggregator.js +0 -50
- package/dist/builders/highLvlBuilders/abstractRequestBuilder.d.ts +0 -27
- package/dist/builders/highLvlBuilders/abstractRequestBuilder.js +0 -32
- package/dist/builders/highLvlBuilders/deleteRequestBuilder.d.ts +0 -19
- package/dist/builders/highLvlBuilders/deleteRequestBuilder.js +0 -61
- package/dist/builders/highLvlBuilders/insertRequestBuilder.d.ts +0 -20
- package/dist/builders/highLvlBuilders/insertRequestBuilder.js +0 -73
- package/dist/builders/highLvlBuilders/order.d.ts +0 -5
- package/dist/builders/highLvlBuilders/order.js +0 -8
- package/dist/builders/highLvlBuilders/selectRequestBuilder.d.ts +0 -47
- package/dist/builders/highLvlBuilders/selectRequestBuilder.js +0 -128
- package/dist/builders/highLvlBuilders/updateRequestBuilder.d.ts +0 -22
- package/dist/builders/highLvlBuilders/updateRequestBuilder.js +0 -80
- package/dist/builders/index.d.ts +0 -18
- package/dist/builders/index.js +0 -54
- package/dist/builders/joinBuilders/builders/abstractJoinBuilder.d.ts +0 -40
- package/dist/builders/joinBuilders/builders/abstractJoinBuilder.js +0 -78
- package/dist/builders/joinBuilders/builders/selectWithFiveJoins.d.ts +0 -35
- package/dist/builders/joinBuilders/builders/selectWithFiveJoins.js +0 -45
- package/dist/builders/joinBuilders/builders/selectWithFourJoins.d.ts +0 -55
- package/dist/builders/joinBuilders/builders/selectWithFourJoins.js +0 -78
- package/dist/builders/joinBuilders/builders/selectWithJoin.d.ts +0 -49
- package/dist/builders/joinBuilders/builders/selectWithJoin.js +0 -64
- package/dist/builders/joinBuilders/builders/selectWithThreeJoins.d.ts +0 -53
- package/dist/builders/joinBuilders/builders/selectWithThreeJoins.js +0 -73
- package/dist/builders/joinBuilders/builders/selectWithTwoJoins.d.ts +0 -51
- package/dist/builders/joinBuilders/builders/selectWithTwoJoins.js +0 -68
- package/dist/builders/joinBuilders/join.d.ts +0 -23
- package/dist/builders/joinBuilders/join.js +0 -28
- package/dist/builders/joinBuilders/joinWith.d.ts +0 -14
- package/dist/builders/joinBuilders/joinWith.js +0 -14
- package/dist/builders/joinBuilders/responses/selectResponseFiveJoins.d.ts +0 -20
- package/dist/builders/joinBuilders/responses/selectResponseFiveJoins.js +0 -35
- package/dist/builders/joinBuilders/responses/selectResponseFourJoins.d.ts +0 -19
- package/dist/builders/joinBuilders/responses/selectResponseFourJoins.js +0 -34
- package/dist/builders/joinBuilders/responses/selectResponseThreeJoins.d.ts +0 -18
- package/dist/builders/joinBuilders/responses/selectResponseThreeJoins.js +0 -33
- package/dist/builders/joinBuilders/responses/selectResponseTwoJoins.d.ts +0 -17
- package/dist/builders/joinBuilders/responses/selectResponseTwoJoins.js +0 -32
- package/dist/builders/joinBuilders/responses/selectResponseWithJoin.d.ts +0 -16
- package/dist/builders/joinBuilders/responses/selectResponseWithJoin.js +0 -31
- package/dist/builders/joinBuilders/static.d.ts +0 -5
- package/dist/builders/joinBuilders/static.js +0 -9
- package/dist/builders/lowLvlBuilders/alter.d.ts +0 -0
- package/dist/builders/lowLvlBuilders/alter.js +0 -1
- package/dist/builders/lowLvlBuilders/create.d.ts +0 -12
- package/dist/builders/lowLvlBuilders/create.js +0 -100
- package/dist/builders/lowLvlBuilders/delets/delete.d.ts +0 -5
- package/dist/builders/lowLvlBuilders/delets/delete.js +0 -15
- package/dist/builders/lowLvlBuilders/delets/deleteFilter.d.ts +0 -11
- package/dist/builders/lowLvlBuilders/delets/deleteFilter.js +0 -13
- package/dist/builders/lowLvlBuilders/delets/deleteFrom.d.ts +0 -12
- package/dist/builders/lowLvlBuilders/delets/deleteFrom.js +0 -14
- package/dist/builders/lowLvlBuilders/inserts/insert.d.ts +0 -5
- package/dist/builders/lowLvlBuilders/inserts/insert.js +0 -15
- package/dist/builders/lowLvlBuilders/inserts/insertInto.d.ts +0 -13
- package/dist/builders/lowLvlBuilders/inserts/insertInto.js +0 -16
- package/dist/builders/lowLvlBuilders/inserts/onConflictInsert.d.ts +0 -12
- package/dist/builders/lowLvlBuilders/inserts/onConflictInsert.js +0 -13
- package/dist/builders/lowLvlBuilders/inserts/valuesInsert.d.ts +0 -16
- package/dist/builders/lowLvlBuilders/inserts/valuesInsert.js +0 -19
- package/dist/builders/lowLvlBuilders/selects/select.d.ts +0 -9
- package/dist/builders/lowLvlBuilders/selects/select.js +0 -16
- package/dist/builders/lowLvlBuilders/selects/selectFrom.d.ts +0 -28
- package/dist/builders/lowLvlBuilders/selects/selectFrom.js +0 -34
- package/dist/builders/lowLvlBuilders/selects/selectJoined.d.ts +0 -26
- package/dist/builders/lowLvlBuilders/selects/selectJoined.js +0 -30
- package/dist/builders/lowLvlBuilders/selects/whereSelect.d.ts +0 -17
- package/dist/builders/lowLvlBuilders/selects/whereSelect.js +0 -25
- package/dist/builders/lowLvlBuilders/updates/update.d.ts +0 -5
- package/dist/builders/lowLvlBuilders/updates/update.js +0 -15
- package/dist/builders/lowLvlBuilders/updates/updateIn.d.ts +0 -13
- package/dist/builders/lowLvlBuilders/updates/updateIn.js +0 -15
- package/dist/builders/lowLvlBuilders/updates/whereSelect.d.ts +0 -11
- package/dist/builders/lowLvlBuilders/updates/whereSelect.js +0 -13
- package/dist/builders/lowLvlBuilders/updates/whereSet.d.ts +0 -14
- package/dist/builders/lowLvlBuilders/updates/whereSet.js +0 -18
- package/dist/builders/requestBuilders/updates/combine.d.ts +0 -9
- package/dist/builders/requestBuilders/updates/combine.js +0 -26
- package/dist/builders/requestBuilders/updates/increment.d.ts +0 -13
- package/dist/builders/requestBuilders/updates/increment.js +0 -18
- package/dist/builders/requestBuilders/updates/setObjects.d.ts +0 -12
- package/dist/builders/requestBuilders/updates/setObjects.js +0 -19
- package/dist/builders/requestBuilders/updates/static.d.ts +0 -7
- package/dist/builders/requestBuilders/updates/static.js +0 -15
- package/dist/builders/requestBuilders/updates/updates.d.ts +0 -9
- package/dist/builders/requestBuilders/updates/updates.js +0 -10
- package/dist/builders/requestBuilders/where/and.d.ts +0 -11
- package/dist/builders/requestBuilders/where/and.js +0 -31
- package/dist/builders/requestBuilders/where/const.d.ts +0 -9
- package/dist/builders/requestBuilders/where/const.js +0 -25
- package/dist/builders/requestBuilders/where/constArray.d.ts +0 -9
- package/dist/builders/requestBuilders/where/constArray.js +0 -39
- package/dist/builders/requestBuilders/where/eqWhere.d.ts +0 -12
- package/dist/builders/requestBuilders/where/eqWhere.js +0 -20
- package/dist/builders/requestBuilders/where/greater.d.ts +0 -15
- package/dist/builders/requestBuilders/where/greater.js +0 -20
- package/dist/builders/requestBuilders/where/greaterEq.d.ts +0 -15
- package/dist/builders/requestBuilders/where/greaterEq.js +0 -20
- package/dist/builders/requestBuilders/where/in.d.ts +0 -12
- package/dist/builders/requestBuilders/where/in.js +0 -20
- package/dist/builders/requestBuilders/where/isNotNull.d.ts +0 -11
- package/dist/builders/requestBuilders/where/isNotNull.js +0 -18
- package/dist/builders/requestBuilders/where/isNull.d.ts +0 -11
- package/dist/builders/requestBuilders/where/isNull.js +0 -18
- package/dist/builders/requestBuilders/where/less.d.ts +0 -15
- package/dist/builders/requestBuilders/where/less.js +0 -20
- package/dist/builders/requestBuilders/where/lessEq.d.ts +0 -15
- package/dist/builders/requestBuilders/where/lessEq.js +0 -20
- package/dist/builders/requestBuilders/where/like.d.ts +0 -12
- package/dist/builders/requestBuilders/where/like.js +0 -20
- package/dist/builders/requestBuilders/where/notEqWhere.d.ts +0 -12
- package/dist/builders/requestBuilders/where/notEqWhere.js +0 -20
- package/dist/builders/requestBuilders/where/or.d.ts +0 -11
- package/dist/builders/requestBuilders/where/or.js +0 -31
- package/dist/builders/requestBuilders/where/rawWhere.d.ts +0 -9
- package/dist/builders/requestBuilders/where/rawWhere.js +0 -15
- package/dist/builders/requestBuilders/where/static.d.ts +0 -17
- package/dist/builders/requestBuilders/where/static.js +0 -49
- package/dist/builders/requestBuilders/where/var.d.ts +0 -13
- package/dist/builders/requestBuilders/where/var.js +0 -18
- package/dist/builders/requestBuilders/where/where.d.ts +0 -8
- package/dist/builders/requestBuilders/where/where.js +0 -6
- package/dist/builders/transaction/transaction.d.ts +0 -8
- package/dist/builders/transaction/transaction.js +0 -20
- package/dist/columns/column.d.ts +0 -72
- package/dist/columns/column.js +0 -101
- package/dist/columns/index.d.ts +0 -10
- package/dist/columns/index.js +0 -27
- package/dist/columns/types/columnType.d.ts +0 -7
- package/dist/columns/types/columnType.js +0 -6
- package/dist/columns/types/pgBigDecimal.d.ts +0 -10
- package/dist/columns/types/pgBigDecimal.js +0 -31
- package/dist/columns/types/pgBigInt.d.ts +0 -15
- package/dist/columns/types/pgBigInt.js +0 -32
- package/dist/columns/types/pgBigSerial.d.ts +0 -15
- package/dist/columns/types/pgBigSerial.js +0 -32
- package/dist/columns/types/pgBoolean.d.ts +0 -8
- package/dist/columns/types/pgBoolean.js +0 -18
- package/dist/columns/types/pgEnum.d.ts +0 -9
- package/dist/columns/types/pgEnum.js +0 -18
- package/dist/columns/types/pgInteger.d.ts +0 -8
- package/dist/columns/types/pgInteger.js +0 -21
- package/dist/columns/types/pgJsonb.d.ts +0 -9
- package/dist/columns/types/pgJsonb.js +0 -20
- package/dist/columns/types/pgSerial.d.ts +0 -8
- package/dist/columns/types/pgSerial.js +0 -18
- package/dist/columns/types/pgSmallInt.d.ts +0 -8
- package/dist/columns/types/pgSmallInt.js +0 -18
- package/dist/columns/types/pgText.d.ts +0 -8
- package/dist/columns/types/pgText.js +0 -18
- package/dist/columns/types/pgTime.d.ts +0 -8
- package/dist/columns/types/pgTime.js +0 -18
- package/dist/columns/types/pgTimestamp.d.ts +0 -8
- package/dist/columns/types/pgTimestamp.js +0 -18
- package/dist/columns/types/pgTimestamptz.d.ts +0 -8
- package/dist/columns/types/pgTimestamptz.js +0 -18
- package/dist/columns/types/pgVarChar.d.ts +0 -9
- package/dist/columns/types/pgVarChar.js +0 -24
- package/dist/db/db.d.ts +0 -18
- package/dist/db/db.js +0 -25
- package/dist/db/dbConnector.d.ts +0 -9
- package/dist/db/dbConnector.js +0 -32
- package/dist/db/dbStringConnector.d.ts +0 -6
- package/dist/db/dbStringConnector.js +0 -29
- package/dist/db/group_by.d.ts +0 -0
- package/dist/db/group_by.js +0 -68
- package/dist/db/index.d.ts +0 -4
- package/dist/db/index.js +0 -14
- package/dist/db/session.d.ts +0 -9
- package/dist/db/session.js +0 -16
- package/dist/docs/cases/simple_delete.d.ts +0 -1
- package/dist/docs/cases/simple_delete.js +0 -35
- package/dist/docs/cases/simple_insert.d.ts +0 -1
- package/dist/docs/cases/simple_insert.js +0 -57
- package/dist/docs/cases/simple_join.d.ts +0 -1
- package/dist/docs/cases/simple_join.js +0 -115
- package/dist/docs/cases/simple_select.d.ts +0 -1
- package/dist/docs/cases/simple_select.js +0 -50
- package/dist/docs/cases/simple_update.d.ts +0 -1
- package/dist/docs/cases/simple_update.js +0 -39
- package/dist/docs/tables/citiesTable.d.ts +0 -14
- package/dist/docs/tables/citiesTable.js +0 -21
- package/dist/docs/tables/userGroupsTable.d.ts +0 -7
- package/dist/docs/tables/userGroupsTable.js +0 -18
- package/dist/docs/tables/usersTable.d.ts +0 -17
- package/dist/docs/tables/usersTable.js +0 -35
- package/dist/docs/tables/usersToUserGroups.d.ts +0 -7
- package/dist/docs/tables/usersToUserGroups.js +0 -20
- package/dist/docs/types/rolesType.d.ts +0 -1
- package/dist/docs/types/rolesType.js +0 -6
- package/dist/errors/baseError.d.ts +0 -22
- package/dist/errors/baseError.js +0 -35
- package/dist/errors/builderError.d.ts +0 -14
- package/dist/errors/builderError.js +0 -25
- package/dist/errors/dbErrors.d.ts +0 -12
- package/dist/errors/dbErrors.js +0 -28
- package/dist/index.d.ts +0 -11
- package/dist/indexes/tableIndex.d.ts +0 -11
- package/dist/indexes/tableIndex.js +0 -17
- package/dist/logger/abstractLogger.d.ts +0 -4
- package/dist/logger/abstractLogger.js +0 -5
- package/dist/logger/consoleLogger.d.ts +0 -5
- package/dist/logger/consoleLogger.js +0 -15
- package/dist/mappers/index.d.ts +0 -0
- package/dist/mappers/index.js +0 -1
- package/dist/mappers/responseMapper.d.ts +0 -10
- package/dist/mappers/responseMapper.js +0 -35
- package/dist/migrator/index.d.ts +0 -0
- package/dist/migrator/index.js +0 -1
- package/dist/migrator/migrator.d.ts +0 -11
- package/dist/migrator/migrator.js +0 -105
- package/dist/serializer/serializer.d.ts +0 -47
- package/dist/serializer/serializer.js +0 -258
- package/dist/tables/abstractTable.d.ts +0 -68
- package/dist/tables/abstractTable.js +0 -151
- package/dist/tables/index.d.ts +0 -3
- package/dist/tables/index.js +0 -11
- package/dist/tables/inferTypes.d.ts +0 -39
- package/dist/tables/inferTypes.js +0 -2
- package/dist/tables/migrationsTable.d.ts +0 -7
- package/dist/tables/migrationsTable.js +0 -18
- package/dist/test.d.ts +0 -1
- package/dist/test.js +0 -65
- package/dist/types/type.d.ts +0 -10
- package/dist/types/type.js +0 -14
- package/dist/utils/ecranate.d.ts +0 -2
- package/dist/utils/ecranate.js +0 -8
- package/pnpm-lock.yaml +0 -1842
- package/src/builders/aggregators/abstractAggregator.ts +0 -41
- package/src/builders/aggregators/deleteAggregator.ts +0 -44
- package/src/builders/aggregators/insertAggregator.ts +0 -120
- package/src/builders/aggregators/selectAggregator.ts +0 -163
- package/src/builders/aggregators/updateAggregator.ts +0 -56
- package/src/builders/highLvlBuilders/abstractRequestBuilder.ts +0 -51
- package/src/builders/highLvlBuilders/deleteRequestBuilder.ts +0 -59
- package/src/builders/highLvlBuilders/insertRequestBuilder.ts +0 -75
- package/src/builders/highLvlBuilders/order.ts +0 -4
- package/src/builders/highLvlBuilders/selectRequestBuilder.ts +0 -229
- package/src/builders/highLvlBuilders/updateRequestBuilder.ts +0 -80
- package/src/builders/index.ts +0 -21
- package/src/builders/joinBuilders/builders/abstractJoinBuilder.ts +0 -98
- package/src/builders/joinBuilders/builders/selectWithFiveJoins.ts +0 -110
- package/src/builders/joinBuilders/builders/selectWithFourJoins.ts +0 -254
- package/src/builders/joinBuilders/builders/selectWithJoin.ts +0 -189
- package/src/builders/joinBuilders/builders/selectWithThreeJoins.ts +0 -231
- package/src/builders/joinBuilders/builders/selectWithTwoJoins.ts +0 -210
- package/src/builders/joinBuilders/join.ts +0 -40
- package/src/builders/joinBuilders/joinWith.ts +0 -21
- package/src/builders/joinBuilders/responses/selectResponseFiveJoins.ts +0 -82
- package/src/builders/joinBuilders/responses/selectResponseFourJoins.ts +0 -73
- package/src/builders/joinBuilders/responses/selectResponseThreeJoins.ts +0 -64
- package/src/builders/joinBuilders/responses/selectResponseTwoJoins.ts +0 -57
- package/src/builders/joinBuilders/responses/selectResponseWithJoin.ts +0 -49
- package/src/builders/joinBuilders/static.ts +0 -9
- package/src/builders/lowLvlBuilders/alter.ts +0 -0
- package/src/builders/lowLvlBuilders/create.ts +0 -115
- package/src/builders/lowLvlBuilders/delets/delete.ts +0 -13
- 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 -11
- package/src/builders/lowLvlBuilders/inserts/insertInto.ts +0 -16
- package/src/builders/lowLvlBuilders/inserts/onConflictInsert.ts +0 -19
- package/src/builders/lowLvlBuilders/inserts/valuesInsert.ts +0 -27
- package/src/builders/lowLvlBuilders/selects/select.ts +0 -14
- package/src/builders/lowLvlBuilders/selects/selectFrom.ts +0 -50
- package/src/builders/lowLvlBuilders/selects/selectJoined.ts +0 -44
- package/src/builders/lowLvlBuilders/selects/whereSelect.ts +0 -36
- package/src/builders/lowLvlBuilders/updates/update.ts +0 -13
- package/src/builders/lowLvlBuilders/updates/updateIn.ts +0 -17
- 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 -34
- package/src/builders/requestBuilders/updates/increment.ts +0 -24
- package/src/builders/requestBuilders/updates/setObjects.ts +0 -27
- package/src/builders/requestBuilders/updates/static.ts +0 -15
- package/src/builders/requestBuilders/updates/updates.ts +0 -8
- package/src/builders/requestBuilders/where/and.ts +0 -35
- package/src/builders/requestBuilders/where/const.ts +0 -23
- package/src/builders/requestBuilders/where/constArray.ts +0 -37
- package/src/builders/requestBuilders/where/eqWhere.ts +0 -20
- package/src/builders/requestBuilders/where/greater.ts +0 -20
- package/src/builders/requestBuilders/where/greaterEq.ts +0 -20
- package/src/builders/requestBuilders/where/in.ts +0 -20
- package/src/builders/requestBuilders/where/isNotNull.ts +0 -17
- package/src/builders/requestBuilders/where/isNull.ts +0 -17
- package/src/builders/requestBuilders/where/less.ts +0 -20
- package/src/builders/requestBuilders/where/lessEq.ts +0 -20
- package/src/builders/requestBuilders/where/like.ts +0 -20
- package/src/builders/requestBuilders/where/notEqWhere.ts +0 -20
- package/src/builders/requestBuilders/where/or.ts +0 -35
- package/src/builders/requestBuilders/where/rawWhere.ts +0 -10
- package/src/builders/requestBuilders/where/static.ts +0 -60
- package/src/builders/requestBuilders/where/var.ts +0 -19
- package/src/builders/requestBuilders/where/where.ts +0 -5
- package/src/builders/transaction/transaction.ts +0 -21
- package/src/columns/column.ts +0 -195
- package/src/columns/index.ts +0 -10
- package/src/columns/types/columnType.ts +0 -8
- package/src/columns/types/pgBigDecimal.ts +0 -29
- package/src/columns/types/pgBigInt.ts +0 -36
- package/src/columns/types/pgBigSerial.ts +0 -36
- package/src/columns/types/pgBoolean.ts +0 -18
- package/src/columns/types/pgEnum.ts +0 -17
- package/src/columns/types/pgInteger.ts +0 -21
- package/src/columns/types/pgJsonb.ts +0 -21
- package/src/columns/types/pgSerial.ts +0 -18
- package/src/columns/types/pgSmallInt.ts +0 -18
- 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/pgTimestamptz.ts +0 -18
- package/src/columns/types/pgVarChar.ts +0 -24
- package/src/db/db.ts +0 -43
- package/src/db/dbConnector.ts +0 -30
- package/src/db/dbStringConnector.ts +0 -29
- package/src/db/group_by.ts +0 -75
- package/src/db/index.ts +0 -4
- package/src/db/session.ts +0 -16
- package/src/docs/cases/simple_delete.ts +0 -35
- package/src/docs/cases/simple_insert.ts +0 -65
- package/src/docs/cases/simple_join.ts +0 -140
- package/src/docs/cases/simple_select.ts +0 -72
- package/src/docs/cases/simple_update.ts +0 -40
- package/src/docs/tables/citiesTable.ts +0 -22
- package/src/docs/tables/userGroupsTable.ts +0 -12
- package/src/docs/tables/usersTable.ts +0 -33
- package/src/docs/tables/usersToUserGroups.ts +0 -14
- package/src/docs/types/rolesType.ts +0 -4
- package/src/errors/baseError.ts +0 -47
- package/src/errors/builderError.ts +0 -31
- package/src/errors/dbErrors.ts +0 -24
- package/src/index.ts +0 -20
- package/src/indexes/tableIndex.ts +0 -25
- package/src/logger/abstractLogger.ts +0 -4
- package/src/logger/consoleLogger.ts +0 -11
- package/src/mappers/index.ts +0 -0
- package/src/mappers/responseMapper.ts +0 -46
- package/src/migrator/index.ts +0 -0
- package/src/migrator/migrator.ts +0 -97
- package/src/serializer/serializer.ts +0 -336
- package/src/tables/abstractTable.ts +0 -188
- package/src/tables/index.ts +0 -4
- package/src/tables/inferTypes.ts +0 -67
- package/src/tables/migrationsTable.ts +0 -11
- package/src/types/type.ts +0 -15
- package/src/utils/ecranate.ts +0 -4
- package/tsconfig.json +0 -14
|
@@ -1,229 +0,0 @@
|
|
|
1
|
-
/* eslint-disable max-len */
|
|
2
|
-
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
3
|
-
/* eslint-disable @typescript-eslint/member-ordering */
|
|
4
|
-
/* eslint-disable import/no-cycle */
|
|
5
|
-
import { QueryResult } from 'pg';
|
|
6
|
-
import { JoinWith, Select } from '..';
|
|
7
|
-
import { AbstractColumn } from '../../columns/column';
|
|
8
|
-
import ColumnType from '../../columns/types/columnType';
|
|
9
|
-
import DB from '../../db/db';
|
|
10
|
-
import { ISession } from '../../db/session';
|
|
11
|
-
import BuilderError, { BuilderType } from '../../errors/builderError';
|
|
12
|
-
import BaseLogger from '../../logger/abstractLogger';
|
|
13
|
-
import QueryResponseMapper from '../../mappers/responseMapper';
|
|
14
|
-
import { AbstractTable } from '../../tables';
|
|
15
|
-
import { ExtractModel, ExtractPartialObjectFromColumns, PartialFor } from '../../tables/inferTypes';
|
|
16
|
-
import SelectTRBWithJoin from '../joinBuilders/builders/selectWithJoin';
|
|
17
|
-
import { JoinStrategy } from '../joinBuilders/join';
|
|
18
|
-
import Expr from '../requestBuilders/where/where';
|
|
19
|
-
import TableRequestBuilder from './abstractRequestBuilder';
|
|
20
|
-
import Order from './order';
|
|
21
|
-
|
|
22
|
-
export default class SelectTRB<TTable extends AbstractTable<TTable>, TPartial extends {[name: string]: AbstractColumn<ColumnType<any>, boolean, boolean, TTable>} = {}>
|
|
23
|
-
extends TableRequestBuilder<TTable, TPartial> {
|
|
24
|
-
protected _filter: Expr;
|
|
25
|
-
private props: { limit?: number, offset?: number};
|
|
26
|
-
private __orderBy?: AbstractColumn<ColumnType, boolean, boolean>;
|
|
27
|
-
private __groupBy?: AbstractColumn<ColumnType, boolean, boolean>;
|
|
28
|
-
private __order?: Order;
|
|
29
|
-
private __distinct: AbstractColumn<ColumnType, boolean, boolean>;
|
|
30
|
-
private __partial?: TPartial;
|
|
31
|
-
|
|
32
|
-
public constructor(
|
|
33
|
-
session: ISession,
|
|
34
|
-
mappedServiceToDb: { [name in keyof ExtractModel<TTable>]: AbstractColumn<ColumnType>; },
|
|
35
|
-
props: {limit?:number, offset?:number},
|
|
36
|
-
table: AbstractTable<TTable>,
|
|
37
|
-
logger?: BaseLogger,
|
|
38
|
-
partial?: TPartial,
|
|
39
|
-
) {
|
|
40
|
-
super(table, session, mappedServiceToDb, logger);
|
|
41
|
-
this.props = props;
|
|
42
|
-
this.__partial = partial;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
public where = (expr: Expr): SelectTRB<TTable, TPartial> => {
|
|
46
|
-
this._filter = expr;
|
|
47
|
-
return this;
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
public orderBy<TColumnType extends ColumnType>(
|
|
51
|
-
callback: (table: TTable) => AbstractColumn<TColumnType, boolean, boolean>,
|
|
52
|
-
order: Order,
|
|
53
|
-
)
|
|
54
|
-
: SelectTRB<TTable, TPartial> {
|
|
55
|
-
this.__orderBy = callback(this._table);
|
|
56
|
-
this.__order = order;
|
|
57
|
-
return this;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
public distinct = (column: AbstractColumn<ColumnType<any>, boolean, boolean>)
|
|
61
|
-
: SelectTRB<TTable, TPartial> => {
|
|
62
|
-
this.__distinct = column;
|
|
63
|
-
return this;
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
public limit = (limit: number): SelectTRB<TTable, TPartial> => {
|
|
67
|
-
this.props.limit = limit;
|
|
68
|
-
return this;
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
public offset = (offset: number): SelectTRB<TTable, TPartial> => {
|
|
72
|
-
this.props.offset = offset;
|
|
73
|
-
return this;
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
// public groupBy(callback: (table: TTable) => Column<ColumnType, boolean, boolean>)
|
|
77
|
-
// : SelectTRB<TTable> {
|
|
78
|
-
// this.__groupBy = callback(this.__table);
|
|
79
|
-
// return this;
|
|
80
|
-
// }
|
|
81
|
-
|
|
82
|
-
public innerJoin<TColumn extends ColumnType, TToColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(
|
|
83
|
-
table: { new(db: DB): IToTable ;},
|
|
84
|
-
from: (table: TTable) => AbstractColumn<TColumn, boolean, boolean>,
|
|
85
|
-
to: (table: IToTable) => AbstractColumn<TToColumn, boolean, boolean>,
|
|
86
|
-
partial?: IToPartial,
|
|
87
|
-
): SelectTRBWithJoin<TTable, IToTable, TPartial, IToPartial> {
|
|
88
|
-
const toTable = this._table.db.create(table);
|
|
89
|
-
|
|
90
|
-
const fromColumn = from(this._table);
|
|
91
|
-
const toColumn = to(toTable);
|
|
92
|
-
|
|
93
|
-
const join = new JoinWith(toTable.tableName(), toTable.mapServiceToDb())
|
|
94
|
-
.columns(fromColumn, toColumn).joinStrategy(JoinStrategy.INNER_JOIN);
|
|
95
|
-
|
|
96
|
-
return new SelectTRBWithJoin(
|
|
97
|
-
this._table,
|
|
98
|
-
this._session,
|
|
99
|
-
this._filter,
|
|
100
|
-
join,
|
|
101
|
-
this.props,
|
|
102
|
-
this.__orderBy,
|
|
103
|
-
this.__order,
|
|
104
|
-
this.__distinct,
|
|
105
|
-
this.__partial,
|
|
106
|
-
partial,
|
|
107
|
-
);
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
public leftJoin<TColumn extends ColumnType<any>, IToColumn extends ColumnType<any>, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(
|
|
111
|
-
table: { new(db: DB): IToTable ;},
|
|
112
|
-
from: (table: TTable) => AbstractColumn<TColumn, boolean, boolean, TTable>,
|
|
113
|
-
to: (table: IToTable) => AbstractColumn<IToColumn, boolean, boolean, IToTable>,
|
|
114
|
-
partial?: IToPartial,
|
|
115
|
-
): SelectTRBWithJoin<TTable, IToTable, TPartial, IToPartial> {
|
|
116
|
-
const toTable = this._table.db.create(table);
|
|
117
|
-
|
|
118
|
-
const fromColumn = from(this._table);
|
|
119
|
-
const toColumn = to(toTable);
|
|
120
|
-
|
|
121
|
-
const join = new JoinWith(toTable.tableName(), toTable.mapServiceToDb())
|
|
122
|
-
.columns(fromColumn, toColumn).joinStrategy(JoinStrategy.LEFT_JOIN);
|
|
123
|
-
|
|
124
|
-
return new SelectTRBWithJoin(
|
|
125
|
-
this._table,
|
|
126
|
-
this._session,
|
|
127
|
-
this._filter,
|
|
128
|
-
join,
|
|
129
|
-
this.props,
|
|
130
|
-
this.__orderBy,
|
|
131
|
-
this.__order,
|
|
132
|
-
this.__distinct,
|
|
133
|
-
this.__partial,
|
|
134
|
-
partial,
|
|
135
|
-
);
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
public rightJoin<TColumn extends ColumnType, TToColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(
|
|
139
|
-
table: { new(db: DB): IToTable ;},
|
|
140
|
-
from: (table: TTable) => AbstractColumn<TColumn, boolean, boolean>,
|
|
141
|
-
to: (table: IToTable) => AbstractColumn<TToColumn, boolean, boolean>,
|
|
142
|
-
partial?: IToPartial,
|
|
143
|
-
): SelectTRBWithJoin<TTable, IToTable, TPartial, IToPartial> {
|
|
144
|
-
const toTable = this._table.db.create(table);
|
|
145
|
-
|
|
146
|
-
const fromColumn = from(this._table);
|
|
147
|
-
const toColumn = to(toTable);
|
|
148
|
-
|
|
149
|
-
const join = new JoinWith(toTable.tableName(), toTable.mapServiceToDb())
|
|
150
|
-
.columns(fromColumn, toColumn).joinStrategy(JoinStrategy.RIGHT_JOIN);
|
|
151
|
-
|
|
152
|
-
return new SelectTRBWithJoin(
|
|
153
|
-
this._table,
|
|
154
|
-
this._session,
|
|
155
|
-
this._filter,
|
|
156
|
-
join,
|
|
157
|
-
this.props,
|
|
158
|
-
this.__orderBy,
|
|
159
|
-
this.__order,
|
|
160
|
-
this.__distinct,
|
|
161
|
-
this.__partial,
|
|
162
|
-
partial,
|
|
163
|
-
);
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
public fullJoin<TColumn extends ColumnType, TToColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(
|
|
167
|
-
table: { new(db: DB): IToTable ;},
|
|
168
|
-
from: (table: TTable) => AbstractColumn<TColumn, boolean, boolean>,
|
|
169
|
-
to: (table: IToTable) => AbstractColumn<TToColumn, boolean, boolean>,
|
|
170
|
-
partial?: IToPartial,
|
|
171
|
-
): SelectTRBWithJoin<TTable, IToTable, TPartial, IToPartial> {
|
|
172
|
-
const toTable = this._table.db.create(table);
|
|
173
|
-
|
|
174
|
-
const fromColumn = from(this._table);
|
|
175
|
-
const toColumn = to(toTable);
|
|
176
|
-
|
|
177
|
-
const join = new JoinWith(toTable.tableName(), toTable.mapServiceToDb())
|
|
178
|
-
.columns(fromColumn, toColumn).joinStrategy(JoinStrategy.FULL_JOIN);
|
|
179
|
-
|
|
180
|
-
return new SelectTRBWithJoin(
|
|
181
|
-
this._table,
|
|
182
|
-
this._session,
|
|
183
|
-
this._filter,
|
|
184
|
-
join,
|
|
185
|
-
this.props,
|
|
186
|
-
this.__orderBy,
|
|
187
|
-
this.__order,
|
|
188
|
-
this.__distinct,
|
|
189
|
-
this.__partial,
|
|
190
|
-
partial,
|
|
191
|
-
);
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
public execute = async () => {
|
|
195
|
-
const res = await this._execute();
|
|
196
|
-
return res;
|
|
197
|
-
};
|
|
198
|
-
|
|
199
|
-
protected _execute = async (): Promise<Array<[keyof TPartial] extends [never] ? ExtractModel<TTable>: ExtractModel<TPartial>>> => {
|
|
200
|
-
// Select.from().filteredBy().limit().offset().orderBy().groupBy().build()
|
|
201
|
-
const queryBuilder = Select
|
|
202
|
-
.from(this._table, this.__partial)
|
|
203
|
-
.distinct(this.__distinct)
|
|
204
|
-
.filteredBy(this._filter)
|
|
205
|
-
.limit(this.props.limit)
|
|
206
|
-
.offset(this.props.offset)
|
|
207
|
-
.orderBy(this.__orderBy, this.__order!);
|
|
208
|
-
|
|
209
|
-
let query = '';
|
|
210
|
-
let values = [];
|
|
211
|
-
try {
|
|
212
|
-
const builderResult = queryBuilder.build();
|
|
213
|
-
query = builderResult.query;
|
|
214
|
-
values = builderResult.values;
|
|
215
|
-
} catch (e: any) {
|
|
216
|
-
throw new BuilderError(BuilderType.SELECT, this._table.tableName(),
|
|
217
|
-
this._columns, e, this._filter);
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
if (this._logger) {
|
|
221
|
-
this._logger.info(`Selecting from ${this._table.tableName()} using query:\n ${query}`);
|
|
222
|
-
}
|
|
223
|
-
const result = await this._session.execute(query, values);
|
|
224
|
-
if (this.__partial) {
|
|
225
|
-
return QueryResponseMapper.partialMap(this.__partial, result) as Array<[keyof TPartial] extends [never] ? ExtractModel<TTable>: ExtractModel<TPartial>>;
|
|
226
|
-
}
|
|
227
|
-
return QueryResponseMapper.map(this._mappedServiceToDb, result) as Array<[keyof TPartial] extends [never] ? ExtractModel<TTable>: ExtractModel<TPartial>>;
|
|
228
|
-
};
|
|
229
|
-
}
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
/* eslint-disable max-len */
|
|
2
|
-
import { AbstractColumn } from '../../columns/column';
|
|
3
|
-
import ColumnType from '../../columns/types/columnType';
|
|
4
|
-
import { ISession } from '../../db/session';
|
|
5
|
-
import BuilderError, { BuilderType } from '../../errors/builderError';
|
|
6
|
-
import BaseLogger from '../../logger/abstractLogger';
|
|
7
|
-
import QueryResponseMapper from '../../mappers/responseMapper';
|
|
8
|
-
import { AbstractTable } from '../../tables';
|
|
9
|
-
import { ExtractModel, ExtractUpdateModel } from '../../tables/inferTypes';
|
|
10
|
-
import Update from '../lowLvlBuilders/updates/update';
|
|
11
|
-
import { combine, set } from '../requestBuilders/updates/static';
|
|
12
|
-
import { UpdateCustomExpr, UpdateExpr } from '../requestBuilders/updates/updates';
|
|
13
|
-
import Expr from '../requestBuilders/where/where';
|
|
14
|
-
import TableRequestBuilder from './abstractRequestBuilder';
|
|
15
|
-
|
|
16
|
-
export default class UpdateTRB<TTable extends AbstractTable<TTable>, TPartial extends {[name: string]: AbstractColumn<ColumnType<any>, boolean, boolean, TTable>} = {}>
|
|
17
|
-
extends TableRequestBuilder<TTable, TPartial> {
|
|
18
|
-
private _filter: Expr;
|
|
19
|
-
private _update: UpdateExpr;
|
|
20
|
-
private _objToUpdate: Partial<ExtractModel<TTable>>;
|
|
21
|
-
|
|
22
|
-
public constructor(
|
|
23
|
-
table: AbstractTable<TTable>,
|
|
24
|
-
session: ISession,
|
|
25
|
-
mappedServiceToDb: { [name in keyof ExtractModel<TTable>]: AbstractColumn<ColumnType>; },
|
|
26
|
-
logger?: BaseLogger,
|
|
27
|
-
) {
|
|
28
|
-
super(table, session, mappedServiceToDb, logger);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
public where = (expr: Expr): UpdateTRB<TTable> => {
|
|
32
|
-
this._filter = expr;
|
|
33
|
-
return this;
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
public set = (expr: Partial<ExtractUpdateModel<TTable>>): UpdateTRB<TTable> => {
|
|
37
|
-
const updates: Array<UpdateExpr> = [];
|
|
38
|
-
Object.entries(expr).forEach(([key, value]) => {
|
|
39
|
-
const column = this._mappedServiceToDb[key as keyof ExtractModel<TTable>];
|
|
40
|
-
if (value instanceof UpdateCustomExpr) {
|
|
41
|
-
value.setColumn(column);
|
|
42
|
-
updates.push(value);
|
|
43
|
-
} else {
|
|
44
|
-
updates.push(set(column, value as any));
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
this._update = combine(updates);
|
|
48
|
-
|
|
49
|
-
return this;
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
public execute = async () => {
|
|
53
|
-
await this._execute();
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
protected _execute = async (): Promise<Array<[keyof TPartial] extends [never] ? ExtractModel<TTable>: ExtractModel<TPartial>>> => {
|
|
57
|
-
let query = '';
|
|
58
|
-
let values = [];
|
|
59
|
-
|
|
60
|
-
try {
|
|
61
|
-
const builderResult = Update.in(this._table)
|
|
62
|
-
.columns()
|
|
63
|
-
.set(this._update)
|
|
64
|
-
.filteredBy(this._filter)
|
|
65
|
-
.build();
|
|
66
|
-
query = builderResult.query;
|
|
67
|
-
values = builderResult.values;
|
|
68
|
-
} catch (e: any) {
|
|
69
|
-
throw new BuilderError(BuilderType.UPDATE, this._table.tableName(),
|
|
70
|
-
this._columns, e, this._filter);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
if (this._logger) {
|
|
74
|
-
this._logger.info(`Updating ${this._table.tableName()} using query:\n ${query}`);
|
|
75
|
-
console.log(values);
|
|
76
|
-
}
|
|
77
|
-
const result = await this._session.execute(query, values);
|
|
78
|
-
return QueryResponseMapper.map(this._mappedServiceToDb, result) as Array<[keyof TPartial] extends [never] ? ExtractModel<TTable>: ExtractModel<TPartial>>;
|
|
79
|
-
};
|
|
80
|
-
}
|
package/src/builders/index.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/* eslint-disable import/no-cycle */
|
|
2
|
-
export { default as DeleteTRB } from './highLvlBuilders/deleteRequestBuilder';
|
|
3
|
-
export { default as InsertTRB } from './highLvlBuilders/insertRequestBuilder';
|
|
4
|
-
export { default as SelectTRB } from './highLvlBuilders/selectRequestBuilder';
|
|
5
|
-
export { default as UpdateTRB } from './highLvlBuilders/updateRequestBuilder';
|
|
6
|
-
export { default as to } from './joinBuilders/static';
|
|
7
|
-
export { default as JoinWith } from './joinBuilders/joinWith';
|
|
8
|
-
export { default as Join } from './joinBuilders/join';
|
|
9
|
-
export { default as SelectTRBWithJoin } from './joinBuilders/builders/selectWithJoin';
|
|
10
|
-
export { default as SelectTRBWithTwoJoins } from './joinBuilders/builders/selectWithTwoJoins';
|
|
11
|
-
export { default as SelectResponseTwoJoins } from './joinBuilders/responses/selectResponseTwoJoins';
|
|
12
|
-
export { default as SelectResponseJoin } from './joinBuilders/responses/selectResponseWithJoin';
|
|
13
|
-
export { default as Create } from './lowLvlBuilders/create';
|
|
14
|
-
export { default as Delete } from './lowLvlBuilders/delets/delete';
|
|
15
|
-
export { default as Insert } from './lowLvlBuilders/inserts/insert';
|
|
16
|
-
export { default as Select } from './lowLvlBuilders/selects/select';
|
|
17
|
-
export { default as Update } from './lowLvlBuilders/updates/update';
|
|
18
|
-
export { set, combine } from './requestBuilders/updates/static';
|
|
19
|
-
export {
|
|
20
|
-
eq, inArray as in, and, or, like, greater, greaterEq, less, lessEq, raw, isNotNull,
|
|
21
|
-
} from './requestBuilders/where/static';
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
/* eslint-disable max-len */
|
|
2
|
-
import { QueryResult } from 'pg';
|
|
3
|
-
import { AbstractColumn } from '../../../columns/column';
|
|
4
|
-
import ColumnType from '../../../columns/types/columnType';
|
|
5
|
-
import { ISession } from '../../../db/session';
|
|
6
|
-
import BuilderError, { BuilderType } from '../../../errors/builderError';
|
|
7
|
-
import QueryResponseMapper from '../../../mappers/responseMapper';
|
|
8
|
-
import { AbstractTable } from '../../../tables';
|
|
9
|
-
import { ExtractModel, FullOrPartial, PartialFor } from '../../../tables/inferTypes';
|
|
10
|
-
import Order from '../../highLvlBuilders/order';
|
|
11
|
-
import Select from '../../lowLvlBuilders/selects/select';
|
|
12
|
-
import Expr from '../../requestBuilders/where/where';
|
|
13
|
-
import Join from '../join';
|
|
14
|
-
|
|
15
|
-
export default abstract class AbstractJoined<TTable extends AbstractTable<TTable>, TRes, TPartial extends PartialFor<TTable> = {}> {
|
|
16
|
-
protected _table: TTable;
|
|
17
|
-
protected _session: ISession;
|
|
18
|
-
protected _filter: Expr;
|
|
19
|
-
protected _distinct?: AbstractColumn<ColumnType, boolean, boolean>;
|
|
20
|
-
protected _props: {limit?:number, offset?:number};
|
|
21
|
-
protected _orderBy?: AbstractColumn<ColumnType, boolean, boolean>;
|
|
22
|
-
protected _order?: Order;
|
|
23
|
-
protected _partial?: TPartial;
|
|
24
|
-
|
|
25
|
-
public constructor(
|
|
26
|
-
table: TTable,
|
|
27
|
-
filter: Expr,
|
|
28
|
-
session: ISession,
|
|
29
|
-
props: { limit?: number, offset?: number },
|
|
30
|
-
orderBy?: AbstractColumn<ColumnType, boolean, boolean>,
|
|
31
|
-
order?: Order,
|
|
32
|
-
distinct?: AbstractColumn<ColumnType, boolean, boolean>,
|
|
33
|
-
tablePartial?: TPartial,
|
|
34
|
-
) {
|
|
35
|
-
this._table = table;
|
|
36
|
-
this._session = session;
|
|
37
|
-
this._filter = filter;
|
|
38
|
-
this._props = props;
|
|
39
|
-
this._order = order;
|
|
40
|
-
this._orderBy = orderBy;
|
|
41
|
-
this._distinct = distinct;
|
|
42
|
-
this._partial = tablePartial;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
public limit = (limit: number) => {
|
|
46
|
-
this._props.limit = limit;
|
|
47
|
-
return this;
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
public offset = (offset: number) => {
|
|
51
|
-
this._props.offset = offset;
|
|
52
|
-
return this;
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
public execute = async (): Promise<TRes> => {
|
|
56
|
-
const queryBuilder = Select
|
|
57
|
-
.from(this._table, this._partial)
|
|
58
|
-
.distinct(this._distinct)
|
|
59
|
-
.joined(this.joins())
|
|
60
|
-
.limit(this._props.limit)
|
|
61
|
-
.offset(this._props.offset)
|
|
62
|
-
.filteredBy(this._filter)
|
|
63
|
-
.orderBy(this._orderBy, this._order);
|
|
64
|
-
|
|
65
|
-
let query = '';
|
|
66
|
-
let values = [];
|
|
67
|
-
try {
|
|
68
|
-
const builderResult = queryBuilder.build();
|
|
69
|
-
query = builderResult.query;
|
|
70
|
-
values = builderResult.values;
|
|
71
|
-
} catch (e: any) {
|
|
72
|
-
throw new BuilderError(BuilderType.JOINED_SELECT,
|
|
73
|
-
this._table.tableName(), Object.values(this._table.mapServiceToDb()), e, this._filter);
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
console.log(query);
|
|
77
|
-
console.log(values);
|
|
78
|
-
|
|
79
|
-
const result = await this._session.execute(query, values);
|
|
80
|
-
return this.mapResponse(result);
|
|
81
|
-
};
|
|
82
|
-
|
|
83
|
-
protected fullOrPartial<Table extends AbstractTable<Table>, Partial extends PartialFor<Table>>(mappedServiceToDb: {
|
|
84
|
-
[name in keyof ExtractModel<Table>]: AbstractColumn<ColumnType>;
|
|
85
|
-
}, result: QueryResult<any>, partial?: Partial, joinId?: number): Array<FullOrPartial<Table, Partial>> {
|
|
86
|
-
if (partial) {
|
|
87
|
-
return QueryResponseMapper.partialMap(partial, result, joinId) as Array<FullOrPartial<Table, Partial>>;
|
|
88
|
-
}
|
|
89
|
-
return QueryResponseMapper.map(mappedServiceToDb, result, joinId) as Array<FullOrPartial<Table, Partial>>;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
protected abstract mapResponse(result: QueryResult<any>): TRes;
|
|
93
|
-
|
|
94
|
-
protected abstract joins(): Array<{
|
|
95
|
-
join: Join<any>, partial?: {[name: string]: AbstractColumn<ColumnType<any>, boolean, boolean, any>},
|
|
96
|
-
id?: number
|
|
97
|
-
}>;
|
|
98
|
-
}
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
/* eslint-disable max-len */
|
|
2
|
-
import { QueryResult } from 'pg';
|
|
3
|
-
import { AbstractColumn } from '../../../columns/column';
|
|
4
|
-
import ColumnType from '../../../columns/types/columnType';
|
|
5
|
-
import { ISession } from '../../../db/session';
|
|
6
|
-
import { AbstractTable } from '../../../tables';
|
|
7
|
-
import { ExtractModel, PartialFor } from '../../../tables/inferTypes';
|
|
8
|
-
import Order from '../../highLvlBuilders/order';
|
|
9
|
-
import Expr from '../../requestBuilders/where/where';
|
|
10
|
-
import Join from '../join';
|
|
11
|
-
import SelectResponseFiveJoins from '../responses/selectResponseFiveJoins';
|
|
12
|
-
import AbstractJoined from './abstractJoinBuilder';
|
|
13
|
-
|
|
14
|
-
export default class SelectTRBWithFiveJoins<TTable extends AbstractTable<TTable>,
|
|
15
|
-
TTable1 extends AbstractTable<TTable1>, TTable2 extends AbstractTable<TTable2>, TTable3 extends AbstractTable<TTable3>, TTable4 extends AbstractTable<TTable4>, TTable5 extends AbstractTable<TTable5>,
|
|
16
|
-
TPartial extends PartialFor<TTable> = {},
|
|
17
|
-
TPartial1 extends PartialFor<TTable1> = {},
|
|
18
|
-
TPartial2 extends PartialFor<TTable2> = {},
|
|
19
|
-
TPartial3 extends PartialFor<TTable3> = {},
|
|
20
|
-
TPartial4 extends PartialFor<TTable4> = {},
|
|
21
|
-
TPartial5 extends PartialFor<TTable5> = {}>
|
|
22
|
-
extends AbstractJoined<TTable,
|
|
23
|
-
SelectResponseFiveJoins<TTable, TTable1, TTable2, TTable3, TTable4, TTable5, TPartial, TPartial1, TPartial2, TPartial3, TPartial4, TPartial5>, TPartial> {
|
|
24
|
-
private _join1: Join<TTable1>;
|
|
25
|
-
private _join2: Join<TTable2>;
|
|
26
|
-
private _join3: Join<TTable3>;
|
|
27
|
-
private _join4: Join<TTable4>;
|
|
28
|
-
private _join5: Join<TTable5>;
|
|
29
|
-
|
|
30
|
-
private _joinedPartial?: TPartial1;
|
|
31
|
-
private _joinedPartial1?: TPartial2;
|
|
32
|
-
private _joinedPartial2?: TPartial3;
|
|
33
|
-
private _joinedPartial3?: TPartial4;
|
|
34
|
-
private _joinedPartial4?: TPartial5;
|
|
35
|
-
|
|
36
|
-
public constructor(
|
|
37
|
-
table: TTable,
|
|
38
|
-
session: ISession,
|
|
39
|
-
filter: Expr,
|
|
40
|
-
join1: Join<TTable1>,
|
|
41
|
-
join2: Join<TTable2>,
|
|
42
|
-
join3: Join<TTable3>,
|
|
43
|
-
join4: Join<TTable4>,
|
|
44
|
-
join5: Join<TTable5>,
|
|
45
|
-
props: {limit?:number, offset?:number},
|
|
46
|
-
orderBy?: AbstractColumn<ColumnType, boolean, boolean>,
|
|
47
|
-
order?: Order,
|
|
48
|
-
distinct?: AbstractColumn<ColumnType, boolean, boolean>,
|
|
49
|
-
tablePartial?: TPartial,
|
|
50
|
-
joinedPartial?: TPartial1,
|
|
51
|
-
joinedPartial1?: TPartial2,
|
|
52
|
-
joinedPartial2?: TPartial3,
|
|
53
|
-
joinedPartial3?: TPartial4,
|
|
54
|
-
joinedPartial4?: TPartial5,
|
|
55
|
-
) {
|
|
56
|
-
super(table, filter, session, props, orderBy, order, distinct, tablePartial);
|
|
57
|
-
this._join1 = join1;
|
|
58
|
-
this._join2 = join2;
|
|
59
|
-
this._join3 = join3;
|
|
60
|
-
this._join4 = join4;
|
|
61
|
-
this._join5 = join5;
|
|
62
|
-
|
|
63
|
-
this._joinedPartial = joinedPartial;
|
|
64
|
-
this._joinedPartial1 = joinedPartial1;
|
|
65
|
-
this._joinedPartial2 = joinedPartial2;
|
|
66
|
-
this._joinedPartial3 = joinedPartial3;
|
|
67
|
-
this._joinedPartial4 = joinedPartial4;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
protected joins(): Array<{
|
|
71
|
-
join: Join<any>, partial?: {[name: string]: AbstractColumn<ColumnType<any>, boolean, boolean, any>},
|
|
72
|
-
id?: number
|
|
73
|
-
}> {
|
|
74
|
-
return [{ join: this._join1, partial: this._joinedPartial, id: 1 },
|
|
75
|
-
{ join: this._join2, partial: this._joinedPartial1, id: 2 },
|
|
76
|
-
{ join: this._join3, partial: this._joinedPartial2, id: 3 },
|
|
77
|
-
{ join: this._join4, partial: this._joinedPartial3, id: 4 },
|
|
78
|
-
{ join: this._join5, partial: this._joinedPartial4, id: 5 }];
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
protected mapResponse(result: QueryResult<any>)
|
|
82
|
-
: SelectResponseFiveJoins<TTable, TTable1, TTable2, TTable3, TTable4, TTable5, TPartial, TPartial1, TPartial2, TPartial3, TPartial4, TPartial5> {
|
|
83
|
-
const parent:{
|
|
84
|
-
[name in keyof ExtractModel<TTable1>]: AbstractColumn<ColumnType>;
|
|
85
|
-
} = this._join1.mappedServiceToDb;
|
|
86
|
-
const parentTwo: {
|
|
87
|
-
[name in keyof ExtractModel<TTable2>]: AbstractColumn<ColumnType>;
|
|
88
|
-
} = this._join2.mappedServiceToDb;
|
|
89
|
-
const parentThree: {
|
|
90
|
-
[name in keyof ExtractModel<TTable3>]: AbstractColumn<ColumnType>;
|
|
91
|
-
} = this._join3.mappedServiceToDb;
|
|
92
|
-
const parentFour:
|
|
93
|
-
{ [name in keyof ExtractModel<TTable4>]: AbstractColumn<ColumnType>;
|
|
94
|
-
} = this._join4.mappedServiceToDb;
|
|
95
|
-
const parentFive:
|
|
96
|
-
{ [name in keyof ExtractModel<TTable5>]: AbstractColumn<ColumnType>;
|
|
97
|
-
} = this._join5.mappedServiceToDb;
|
|
98
|
-
|
|
99
|
-
// TODO map ids for join properly
|
|
100
|
-
const response = this.fullOrPartial(this._table.mapServiceToDb(), result, this._partial);
|
|
101
|
-
const objects = this.fullOrPartial(parent, result, this._joinedPartial, 1);
|
|
102
|
-
const objectsTwo = this.fullOrPartial(parentTwo, result, this._joinedPartial1, 2);
|
|
103
|
-
const objectsThree = this.fullOrPartial(parentThree, result, this._joinedPartial2, 3);
|
|
104
|
-
const objectsFour = this.fullOrPartial(parentFour, result, this._joinedPartial3, 4);
|
|
105
|
-
const objectsFive = this.fullOrPartial(parentFive, result, this._joinedPartial4, 5);
|
|
106
|
-
|
|
107
|
-
return new SelectResponseFiveJoins(response, objects, objectsTwo,
|
|
108
|
-
objectsThree, objectsFour, objectsFive);
|
|
109
|
-
}
|
|
110
|
-
}
|