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,115 +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<TTable extends AbstractTable<TTable>> {
|
|
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<TTable>;
|
|
13
|
-
|
|
14
|
-
private constructor(tableClass: AbstractTable<TTable>) {
|
|
15
|
-
this.tableClass = tableClass;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
public static table = <StaticTTable extends AbstractTable<StaticTTable>>(tableClass:
|
|
19
|
-
AbstractTable<StaticTTable>): Create<StaticTTable> => 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
|
-
const columnType = column.getColumnType();
|
|
33
|
-
if (columnType instanceof PgEnum) {
|
|
34
|
-
// eslint-disable-next-line new-cap
|
|
35
|
-
const enumValues = Object.values(columnType.codeType) as string[];
|
|
36
|
-
|
|
37
|
-
let resValue = '';
|
|
38
|
-
for (let j = 0; j < enumValues.length; j += 1) {
|
|
39
|
-
resValue += `'${enumValues[j]}'`;
|
|
40
|
-
if (j !== enumValues.length - 1) {
|
|
41
|
-
resValue += ',';
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
this.enumBuilder.push(`DO $$ BEGIN
|
|
45
|
-
CREATE TYPE ${columnType.dbName} AS ENUM (${resValue});
|
|
46
|
-
EXCEPTION
|
|
47
|
-
WHEN duplicate_object THEN null;
|
|
48
|
-
END $$;`);
|
|
49
|
-
}
|
|
50
|
-
this.columnsBuilder.push(ecranate(column.getColumnName()));
|
|
51
|
-
this.columnsBuilder.push(' ');
|
|
52
|
-
this.columnsBuilder.push(column.getColumnType().getDbName());
|
|
53
|
-
this.columnsBuilder.push(' ');
|
|
54
|
-
this.columnsBuilder.push(column.getDefaultValue() != null ? `DEFAULT ${column.getColumnType().insertStrategy(column.getDefaultValue())}` : '');
|
|
55
|
-
this.columnsBuilder.push(column.isNullableFlag ? '' : ' NOT NULL');
|
|
56
|
-
|
|
57
|
-
const referenced = column.getReferenced();
|
|
58
|
-
this.columnsBuilder.push(referenced != null ? ` REFERENCES ${referenced.getParentName()} (${referenced.getColumnName()})` : '');
|
|
59
|
-
|
|
60
|
-
if (i !== columns.length - 1) {
|
|
61
|
-
this.columnsBuilder.push(',');
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
const primaryKeys: Column<any>[] = [];
|
|
67
|
-
const uniqueKeys: Column<any>[] = [];
|
|
68
|
-
|
|
69
|
-
Object.values(this.tableClass).forEach((field) => {
|
|
70
|
-
if (field instanceof Column) {
|
|
71
|
-
if (field.primaryKeyName) {
|
|
72
|
-
primaryKeys.push(field);
|
|
73
|
-
}
|
|
74
|
-
if (field.uniqueKeyName) {
|
|
75
|
-
uniqueKeys.push(field);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
});
|
|
79
|
-
|
|
80
|
-
if (primaryKeys.length !== 0) {
|
|
81
|
-
this.primaryKey.push(',');
|
|
82
|
-
this.primaryKey.push(`\nCONSTRAINT ${this.tableClass.tableName()}_${primaryKeys[0].getColumnName()}`);
|
|
83
|
-
this.primaryKey.push(' PRIMARY KEY(');
|
|
84
|
-
|
|
85
|
-
for (let i = 0; i < primaryKeys.length; i += 1) {
|
|
86
|
-
const column: Column<any> = primaryKeys[i];
|
|
87
|
-
this.primaryKey.push(column.getColumnName());
|
|
88
|
-
|
|
89
|
-
if (i !== primaryKeys.length - 1) {
|
|
90
|
-
this.primaryKey.push(',');
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
this.primaryKey.push(')');
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
if (uniqueKeys.length !== 0) {
|
|
97
|
-
const columnName: string = uniqueKeys[0].getColumnName();
|
|
98
|
-
this.uniqueKey.push(',');
|
|
99
|
-
this.uniqueKey.push(`\nCONSTRAINT ${this.tableClass.tableName()}_${columnName}`);
|
|
100
|
-
this.uniqueKey.push(' UNIQUE(');
|
|
101
|
-
|
|
102
|
-
for (let i = 0; i < uniqueKeys.length; i += 1) {
|
|
103
|
-
const column: Column<any> = uniqueKeys[i];
|
|
104
|
-
this.uniqueKey.push(column.getColumnName());
|
|
105
|
-
|
|
106
|
-
if (i !== uniqueKeys.length - 1) {
|
|
107
|
-
this.uniqueKey.push(',');
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
this.uniqueKey.push(')');
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
return `${this.enumBuilder.join('')} ${this.tableBuilder.join('') + this.columnsBuilder.join('') + this.primaryKey.join('') + this.uniqueKey.join('')});`;
|
|
114
|
-
};
|
|
115
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { AbstractTable } from '../../../tables';
|
|
2
|
-
import DeleteAggregator from '../../aggregators/deleteAggregator';
|
|
3
|
-
import DeleteFrom from './deleteFrom';
|
|
4
|
-
|
|
5
|
-
export default class Delete {
|
|
6
|
-
public static from = <TTable extends AbstractTable<TTable>>(
|
|
7
|
-
table: AbstractTable<TTable>,
|
|
8
|
-
): DeleteFrom => {
|
|
9
|
-
const aggregator = new DeleteAggregator(table);
|
|
10
|
-
aggregator.appendFrom(table.tableName());
|
|
11
|
-
return new DeleteFrom(aggregator);
|
|
12
|
-
};
|
|
13
|
-
}
|
|
@@ -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,11 +0,0 @@
|
|
|
1
|
-
import { AbstractTable } from '../../../tables';
|
|
2
|
-
import InsertAggregator from '../../aggregators/insertAggregator';
|
|
3
|
-
import InsertInto from './insertInto';
|
|
4
|
-
|
|
5
|
-
export default class Insert {
|
|
6
|
-
public static into = <TTable extends AbstractTable<TTable>>(table: AbstractTable<TTable>) => {
|
|
7
|
-
const aggregator = new InsertAggregator(table);
|
|
8
|
-
// aggregator.appendFrom(table.tableName());
|
|
9
|
-
return new InsertInto(aggregator);
|
|
10
|
-
};
|
|
11
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import InsertAggregator from '../../aggregators/insertAggregator';
|
|
2
|
-
import ValuesInsert from './valuesInsert';
|
|
3
|
-
|
|
4
|
-
export default class InsertInto {
|
|
5
|
-
private _aggregator: InsertAggregator;
|
|
6
|
-
|
|
7
|
-
public constructor(aggregator: InsertAggregator) {
|
|
8
|
-
this._aggregator = aggregator;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
// @TODO refactor!!
|
|
12
|
-
public values = (values: {[name: string]: any}[]) => new ValuesInsert(this._aggregator)
|
|
13
|
-
.apply(values);
|
|
14
|
-
|
|
15
|
-
public build = () => this._aggregator.buildQuery();
|
|
16
|
-
}
|
|
@@ -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,27 +0,0 @@
|
|
|
1
|
-
import { Indexing } from '../../../tables/inferTypes';
|
|
2
|
-
import InsertAggregator from '../../aggregators/insertAggregator';
|
|
3
|
-
import { UpdateExpr } from '../../requestBuilders/updates/updates';
|
|
4
|
-
import OnConflictInsert from './onConflictInsert';
|
|
5
|
-
|
|
6
|
-
export default class ValuesInsert {
|
|
7
|
-
private _aggregator: InsertAggregator;
|
|
8
|
-
|
|
9
|
-
public constructor(aggregator: InsertAggregator) {
|
|
10
|
-
this._aggregator = aggregator;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
public apply = (values: {[name: string]: any}[])
|
|
14
|
-
: ValuesInsert => {
|
|
15
|
-
this._aggregator.appendColumns();
|
|
16
|
-
this._aggregator.appendValues(values);
|
|
17
|
-
|
|
18
|
-
return this;
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
public onConflict = (updates: UpdateExpr,
|
|
22
|
-
column: Indexing) => new OnConflictInsert(
|
|
23
|
-
this._aggregator,
|
|
24
|
-
).apply(updates, column);
|
|
25
|
-
|
|
26
|
-
public build = () => this._aggregator.buildQuery();
|
|
27
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { AbstractColumn } from '../../../columns/column';
|
|
2
|
-
import ColumnType from '../../../columns/types/columnType';
|
|
3
|
-
import { AbstractTable } from '../../../tables';
|
|
4
|
-
import SelectAggregator from '../../aggregators/selectAggregator';
|
|
5
|
-
import SelectFrom from './selectFrom';
|
|
6
|
-
|
|
7
|
-
export default class Select {
|
|
8
|
-
// eslint-disable-next-line max-len
|
|
9
|
-
public static from = <TTable extends AbstractTable<TTable>, TType extends ColumnType<any>, TColumn extends AbstractColumn<TType, boolean, boolean, TTable>, T extends {[name: string]: TColumn} = {}>(table: AbstractTable<TTable>, partial?: T) => {
|
|
10
|
-
const aggregator = new SelectAggregator(table, partial);
|
|
11
|
-
aggregator.appendFrom(table.tableName());
|
|
12
|
-
return new SelectFrom(aggregator);
|
|
13
|
-
};
|
|
14
|
-
}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
/* eslint-disable max-len */
|
|
2
|
-
import { AbstractColumn } from '../../../columns/column';
|
|
3
|
-
import ColumnType from '../../../columns/types/columnType';
|
|
4
|
-
import SelectAggregator from '../../aggregators/selectAggregator';
|
|
5
|
-
import Order from '../../highLvlBuilders/order';
|
|
6
|
-
import Join from '../../joinBuilders/join';
|
|
7
|
-
import Expr from '../../requestBuilders/where/where';
|
|
8
|
-
import SelectJoined from './selectJoined';
|
|
9
|
-
import WhereSelect from './whereSelect';
|
|
10
|
-
|
|
11
|
-
export default class SelectFrom {
|
|
12
|
-
private _aggregator: SelectAggregator;
|
|
13
|
-
|
|
14
|
-
public constructor(aggregator: SelectAggregator) {
|
|
15
|
-
this._aggregator = aggregator;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
public joined = (joins:
|
|
19
|
-
Array<{
|
|
20
|
-
join: Join<any>, partial?: {[name: string]: AbstractColumn<ColumnType<any>, boolean, boolean, any>},
|
|
21
|
-
id?: number
|
|
22
|
-
}>) => new SelectJoined(this._aggregator).apply(joins);
|
|
23
|
-
|
|
24
|
-
public limit = (limit?: number): SelectFrom => {
|
|
25
|
-
this._aggregator.limit(limit);
|
|
26
|
-
return this;
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
public offset = (offset?: number): SelectFrom => {
|
|
30
|
-
this._aggregator.offset(offset);
|
|
31
|
-
return this;
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
public orderBy = (orderBy?: AbstractColumn<ColumnType, boolean, boolean>,
|
|
35
|
-
order?: Order): SelectFrom => {
|
|
36
|
-
this._aggregator.orderBy(orderBy, order);
|
|
37
|
-
return this;
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
public distinct = (column?: AbstractColumn<ColumnType, boolean, boolean>): SelectFrom => {
|
|
41
|
-
if (column) {
|
|
42
|
-
this._aggregator.distinct(column);
|
|
43
|
-
}
|
|
44
|
-
return this;
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
public filteredBy = (filters: Expr) => new WhereSelect(this._aggregator).apply(filters);
|
|
48
|
-
|
|
49
|
-
public build = () => this._aggregator.buildQuery();
|
|
50
|
-
}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
/* eslint-disable max-len */
|
|
2
|
-
import { AbstractColumn } from '../../../columns/column';
|
|
3
|
-
import ColumnType from '../../../columns/types/columnType';
|
|
4
|
-
import SelectAggregator from '../../aggregators/selectAggregator';
|
|
5
|
-
import Order from '../../highLvlBuilders/order';
|
|
6
|
-
import Join from '../../joinBuilders/join';
|
|
7
|
-
import Expr from '../../requestBuilders/where/where';
|
|
8
|
-
import WhereSelect from './whereSelect';
|
|
9
|
-
|
|
10
|
-
export default class SelectJoined {
|
|
11
|
-
private _aggregator: SelectAggregator;
|
|
12
|
-
|
|
13
|
-
public constructor(aggregator: SelectAggregator) {
|
|
14
|
-
this._aggregator = aggregator;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
public apply = (joins: Array<{
|
|
18
|
-
join: Join<any>, partial?: {[name: string]: AbstractColumn<ColumnType<any>, boolean, boolean, any>},
|
|
19
|
-
id?: number
|
|
20
|
-
}>): SelectJoined => {
|
|
21
|
-
this._aggregator.join(joins);
|
|
22
|
-
return this;
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
public limit = (limit?: number): SelectJoined => {
|
|
26
|
-
this._aggregator.limit(limit);
|
|
27
|
-
return this;
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
public offset = (offset?: number): SelectJoined => {
|
|
31
|
-
this._aggregator.offset(offset);
|
|
32
|
-
return this;
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
public orderBy = (orderBy?: AbstractColumn<ColumnType, boolean, boolean>,
|
|
36
|
-
order?: Order): SelectJoined => {
|
|
37
|
-
this._aggregator.orderBy(orderBy, order);
|
|
38
|
-
return this;
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
public filteredBy = (filters: Expr) => new WhereSelect(this._aggregator).apply(filters);
|
|
42
|
-
|
|
43
|
-
public build = () => this._aggregator.buildQuery();
|
|
44
|
-
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { AbstractColumn } from '../../../columns/column';
|
|
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?: AbstractColumn<ColumnType, boolean, boolean>,
|
|
25
|
-
order?: Order): WhereSelect => {
|
|
26
|
-
this._aggregator.orderBy(orderBy, order);
|
|
27
|
-
return this;
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
public apply = (filters: Expr): WhereSelect => {
|
|
31
|
-
this._aggregator.filters(filters);
|
|
32
|
-
return this;
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
public build = () => this._aggregator.buildQuery();
|
|
36
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { AbstractTable } from '../../../tables';
|
|
2
|
-
import UpdateAggregator from '../../aggregators/updateAggregator';
|
|
3
|
-
import UpdateIn from './updateIn';
|
|
4
|
-
|
|
5
|
-
export default class Update {
|
|
6
|
-
public static in = <TTable extends AbstractTable<TTable>>(
|
|
7
|
-
table: AbstractTable<TTable>,
|
|
8
|
-
) => {
|
|
9
|
-
const aggregator = new UpdateAggregator(table);
|
|
10
|
-
aggregator.appendFrom(table.tableName());
|
|
11
|
-
return new UpdateIn(aggregator);
|
|
12
|
-
};
|
|
13
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import UpdateAggregator from '../../aggregators/updateAggregator';
|
|
2
|
-
import { UpdateExpr } from '../../requestBuilders/updates/updates';
|
|
3
|
-
import WhereSet from './whereSet';
|
|
4
|
-
|
|
5
|
-
export default class UpdateIn {
|
|
6
|
-
private _aggregator: UpdateAggregator;
|
|
7
|
-
|
|
8
|
-
public constructor(aggregator: UpdateAggregator) {
|
|
9
|
-
this._aggregator = aggregator;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
public columns = () => new UpdateIn(this._aggregator);
|
|
13
|
-
|
|
14
|
-
public set = (updates: UpdateExpr) => new WhereSet(this._aggregator).apply(updates);
|
|
15
|
-
|
|
16
|
-
public build = () => this._aggregator.buildQuery();
|
|
17
|
-
}
|
|
@@ -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,34 +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 = (position?: number): { query: string, values: Array<any>} => {
|
|
12
|
-
let nextPosition = position || 1;
|
|
13
|
-
|
|
14
|
-
const response = [];
|
|
15
|
-
const valuesResult: Array<any> = [];
|
|
16
|
-
|
|
17
|
-
for (let index = 0; index < this._setters.length; index += 1) {
|
|
18
|
-
const setter = this._setters[index];
|
|
19
|
-
|
|
20
|
-
const expressionResult = setter.toQuery(nextPosition);
|
|
21
|
-
|
|
22
|
-
valuesResult.push(...expressionResult.values);
|
|
23
|
-
response.push(expressionResult.query);
|
|
24
|
-
|
|
25
|
-
nextPosition += expressionResult.values.length;
|
|
26
|
-
|
|
27
|
-
if (index !== this._setters.length - 1) {
|
|
28
|
-
response.push(', ');
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
return { query: response.join(''), values: valuesResult };
|
|
33
|
-
};
|
|
34
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { AbstractColumn } from '../../../columns/column';
|
|
2
|
-
import ColumnType from '../../../columns/types/columnType';
|
|
3
|
-
import { UpdateCustomExpr } from './updates';
|
|
4
|
-
|
|
5
|
-
export default class Increment<T extends AbstractColumn<ColumnType<any>, boolean, boolean>>
|
|
6
|
-
extends UpdateCustomExpr<T> {
|
|
7
|
-
private _column: T;
|
|
8
|
-
private _value: number;
|
|
9
|
-
|
|
10
|
-
public constructor(value: number) {
|
|
11
|
-
super();
|
|
12
|
-
this._value = value;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
public setColumn = (column: T): UpdateCustomExpr<T> => {
|
|
16
|
-
this._column = column;
|
|
17
|
-
return this;
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
public toQuery = (): { query: string, values: Array<any>} => {
|
|
21
|
-
const query = `${this._column.getColumnName()} = ${this._column.getColumnName()} + ${this._value}`;
|
|
22
|
-
return { query, values: [] };
|
|
23
|
-
};
|
|
24
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { AbstractColumn } from '../../../columns/column';
|
|
2
|
-
import ColumnType from '../../../columns/types/columnType';
|
|
3
|
-
import { UpdateExpr } from './updates';
|
|
4
|
-
|
|
5
|
-
export default class SetObject<T extends AbstractColumn<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 = (position?: number): { query: string, values: Array<any>} => {
|
|
17
|
-
const nextPosition = position || 1;
|
|
18
|
-
|
|
19
|
-
const valueToInsert = this._value === null || this._value === undefined
|
|
20
|
-
? this._value
|
|
21
|
-
: this._column.getColumnType().insertStrategy(this._value);
|
|
22
|
-
|
|
23
|
-
const query = `"${this._column.getColumnName()}"=$${nextPosition}`;
|
|
24
|
-
|
|
25
|
-
return { query, values: [valueToInsert] };
|
|
26
|
-
};
|
|
27
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { AbstractColumn } from '../../../columns/column';
|
|
2
|
-
import ColumnType from '../../../columns/types/columnType';
|
|
3
|
-
import { ExtractCodeType } from '../../../tables/inferTypes';
|
|
4
|
-
import Combine from './combine';
|
|
5
|
-
import Increment from './increment';
|
|
6
|
-
import SetObject from './setObjects';
|
|
7
|
-
import { UpdateCustomExpr, UpdateExpr } from './updates';
|
|
8
|
-
|
|
9
|
-
export const set = <T extends AbstractColumn<ColumnType<any>, boolean, boolean>>(column: T,
|
|
10
|
-
value: ExtractCodeType<T>): UpdateExpr => new SetObject<T>(column, value);
|
|
11
|
-
|
|
12
|
-
export const incrementBy = <T extends AbstractColumn<ColumnType<any>, boolean, boolean>>(
|
|
13
|
-
value: number): UpdateCustomExpr<T> => new Increment<T>(value);
|
|
14
|
-
|
|
15
|
-
export const combine = (updates: Array<UpdateExpr>): UpdateExpr => new Combine(updates);
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/* eslint-disable max-classes-per-file */
|
|
2
|
-
export abstract class UpdateExpr {
|
|
3
|
-
abstract toQuery(position?: number): { query: string, values: Array<any> };
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
export abstract class UpdateCustomExpr<T> extends UpdateExpr {
|
|
7
|
-
abstract setColumn(column: T): UpdateCustomExpr<T>;
|
|
8
|
-
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/* eslint-disable max-len */
|
|
2
|
-
import Expr from './where';
|
|
3
|
-
|
|
4
|
-
export default class And extends Expr {
|
|
5
|
-
private expressions: Expr[];
|
|
6
|
-
|
|
7
|
-
public constructor(expressions: Expr[]) {
|
|
8
|
-
super();
|
|
9
|
-
this.expressions = expressions;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
public toQuery = (position?: number, tableCache?: {[tableName: string]: string}): { query: string, values: Array<any> } => {
|
|
13
|
-
let nextPosition = position || 1;
|
|
14
|
-
|
|
15
|
-
const result: string[] = ['('];
|
|
16
|
-
const valuesResult: Array<any> = [];
|
|
17
|
-
for (let i = 0; i < this.expressions.length; i += 1) {
|
|
18
|
-
const expression = this.expressions[i];
|
|
19
|
-
|
|
20
|
-
const expressionResult = expression.toQuery(nextPosition, tableCache);
|
|
21
|
-
|
|
22
|
-
valuesResult.push(...expressionResult.values);
|
|
23
|
-
result.push(expressionResult.query);
|
|
24
|
-
|
|
25
|
-
nextPosition += expressionResult.values.length;
|
|
26
|
-
|
|
27
|
-
if (i < this.expressions.length - 1) {
|
|
28
|
-
result.push(' and ');
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
result.push(')');
|
|
32
|
-
|
|
33
|
-
return { query: result.join(''), values: valuesResult };
|
|
34
|
-
};
|
|
35
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/* eslint-disable no-return-assign */
|
|
2
|
-
import { shouldEcranate } from '../../../utils/ecranate';
|
|
3
|
-
import Expr from './where';
|
|
4
|
-
|
|
5
|
-
export default class Const extends Expr {
|
|
6
|
-
private value: any;
|
|
7
|
-
|
|
8
|
-
public constructor(value: any) {
|
|
9
|
-
super();
|
|
10
|
-
this.value = value;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
public toQuery = (position?: number): { query: string, values: Array<any>} => {
|
|
14
|
-
const nextPosition = position || 1;
|
|
15
|
-
if (this.value instanceof Date) {
|
|
16
|
-
return { query: `$${nextPosition}`, values: [`${this.value.toISOString()}`] };
|
|
17
|
-
}
|
|
18
|
-
if (shouldEcranate(this.value)) {
|
|
19
|
-
return { query: `$${nextPosition}`, values: [`${this.value.toString()}`] };
|
|
20
|
-
}
|
|
21
|
-
return { query: `$${nextPosition}`, values: [this.value] };
|
|
22
|
-
};
|
|
23
|
-
}
|