drizzle-orm 0.10.21 → 0.10.24
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/LICENSE +674 -0
- package/{builders → dist/builders}/aggregators/abstractAggregator.d.ts +0 -0
- package/{builders → dist/builders}/aggregators/abstractAggregator.js +0 -0
- package/{builders → dist/builders}/aggregators/deleteAggregator.d.ts +0 -0
- package/{builders → dist/builders}/aggregators/deleteAggregator.js +4 -1
- package/{builders → dist/builders}/aggregators/insertAggregator.d.ts +0 -0
- package/{builders → dist/builders}/aggregators/insertAggregator.js +4 -1
- package/{builders → dist/builders}/aggregators/selectAggregator.d.ts +0 -0
- package/{builders → dist/builders}/aggregators/selectAggregator.js +24 -9
- package/{builders → dist/builders}/aggregators/updateAggregator.d.ts +0 -0
- package/{builders → dist/builders}/aggregators/updateAggregator.js +4 -1
- package/{builders → dist/builders}/highLvlBuilders/abstractRequestBuilder.d.ts +0 -0
- package/{builders → dist/builders}/highLvlBuilders/abstractRequestBuilder.js +0 -0
- package/{builders → dist/builders}/highLvlBuilders/deleteRequestBuilder.d.ts +0 -0
- package/{builders → dist/builders}/highLvlBuilders/deleteRequestBuilder.js +26 -4
- package/{builders → dist/builders}/highLvlBuilders/insertRequestBuilder.d.ts +0 -0
- package/{builders → dist/builders}/highLvlBuilders/insertRequestBuilder.js +26 -4
- package/{builders → dist/builders}/highLvlBuilders/order.d.ts +0 -0
- package/{builders → dist/builders}/highLvlBuilders/order.js +0 -0
- package/{builders → dist/builders}/highLvlBuilders/selectRequestBuilder.d.ts +0 -0
- package/{builders → dist/builders}/highLvlBuilders/selectRequestBuilder.js +26 -4
- package/{builders → dist/builders}/highLvlBuilders/updateRequestBuilder.d.ts +0 -0
- package/{builders → dist/builders}/highLvlBuilders/updateRequestBuilder.js +26 -4
- package/{builders → dist/builders}/index.d.ts +0 -0
- package/{builders → dist/builders}/index.js +19 -16
- package/{builders → dist/builders}/joinBuilders/builders/abstractJoinBuilder.d.ts +0 -0
- package/{builders → dist/builders}/joinBuilders/builders/abstractJoinBuilder.js +25 -3
- package/{builders → dist/builders}/joinBuilders/builders/selectWithFiveJoins.d.ts +0 -0
- package/{builders → dist/builders}/joinBuilders/builders/selectWithFiveJoins.js +5 -2
- package/{builders → dist/builders}/joinBuilders/builders/selectWithFourJoins.d.ts +0 -0
- package/{builders → dist/builders}/joinBuilders/builders/selectWithFourJoins.js +7 -4
- package/{builders → dist/builders}/joinBuilders/builders/selectWithJoin.d.ts +0 -0
- package/{builders → dist/builders}/joinBuilders/builders/selectWithJoin.js +7 -4
- package/{builders → dist/builders}/joinBuilders/builders/selectWithThreeJoins.d.ts +0 -0
- package/{builders → dist/builders}/joinBuilders/builders/selectWithThreeJoins.js +7 -4
- package/{builders → dist/builders}/joinBuilders/builders/selectWithTwoJoins.d.ts +0 -0
- package/{builders → dist/builders}/joinBuilders/builders/selectWithTwoJoins.js +7 -4
- package/{builders → dist/builders}/joinBuilders/join.d.ts +0 -0
- package/{builders → dist/builders}/joinBuilders/join.js +0 -0
- package/{builders → dist/builders}/joinBuilders/joinWith.d.ts +0 -0
- package/{builders → dist/builders}/joinBuilders/joinWith.js +4 -1
- package/{builders → dist/builders}/joinBuilders/responses/selectResponseFiveJoins.d.ts +0 -0
- package/{builders → dist/builders}/joinBuilders/responses/selectResponseFiveJoins.js +0 -0
- package/{builders → dist/builders}/joinBuilders/responses/selectResponseFourJoins.d.ts +0 -0
- package/{builders → dist/builders}/joinBuilders/responses/selectResponseFourJoins.js +0 -0
- package/{builders → dist/builders}/joinBuilders/responses/selectResponseThreeJoins.d.ts +0 -0
- package/{builders → dist/builders}/joinBuilders/responses/selectResponseThreeJoins.js +0 -0
- package/{builders → dist/builders}/joinBuilders/responses/selectResponseTwoJoins.d.ts +0 -0
- package/{builders → dist/builders}/joinBuilders/responses/selectResponseTwoJoins.js +0 -0
- package/{builders → dist/builders}/joinBuilders/responses/selectResponseWithJoin.d.ts +0 -0
- package/{builders → dist/builders}/joinBuilders/responses/selectResponseWithJoin.js +0 -0
- package/{builders → dist/builders}/joinBuilders/static.d.ts +0 -0
- package/{builders → dist/builders}/joinBuilders/static.js +4 -1
- package/{builders → dist/builders}/lowLvlBuilders/alter.d.ts +0 -0
- package/{builders → dist/builders}/lowLvlBuilders/alter.js +0 -0
- package/{builders → dist/builders}/lowLvlBuilders/create.d.ts +0 -0
- package/{builders → dist/builders}/lowLvlBuilders/create.js +4 -1
- package/{builders → dist/builders}/lowLvlBuilders/delets/delete.d.ts +0 -0
- package/{builders → dist/builders}/lowLvlBuilders/delets/delete.js +5 -2
- package/{builders → dist/builders}/lowLvlBuilders/delets/deleteFilter.d.ts +0 -0
- package/{builders → dist/builders}/lowLvlBuilders/delets/deleteFilter.js +0 -0
- package/{builders → dist/builders}/lowLvlBuilders/delets/deleteFrom.d.ts +0 -0
- package/{builders → dist/builders}/lowLvlBuilders/delets/deleteFrom.js +4 -1
- package/{builders → dist/builders}/lowLvlBuilders/inserts/insert.d.ts +0 -0
- package/{builders → dist/builders}/lowLvlBuilders/inserts/insert.js +5 -2
- package/{builders → dist/builders}/lowLvlBuilders/inserts/insertInto.d.ts +0 -0
- package/{builders → dist/builders}/lowLvlBuilders/inserts/insertInto.js +4 -1
- package/{builders → dist/builders}/lowLvlBuilders/inserts/onConflictInsert.d.ts +0 -0
- package/{builders → dist/builders}/lowLvlBuilders/inserts/onConflictInsert.js +0 -0
- package/{builders → dist/builders}/lowLvlBuilders/inserts/valuesInsert.d.ts +0 -0
- package/{builders → dist/builders}/lowLvlBuilders/inserts/valuesInsert.js +4 -1
- package/{builders → dist/builders}/lowLvlBuilders/selects/select.d.ts +0 -0
- package/{builders → dist/builders}/lowLvlBuilders/selects/select.js +5 -2
- package/{builders → dist/builders}/lowLvlBuilders/selects/selectFrom.d.ts +0 -0
- package/{builders → dist/builders}/lowLvlBuilders/selects/selectFrom.js +5 -2
- package/{builders → dist/builders}/lowLvlBuilders/selects/selectJoined.d.ts +0 -0
- package/{builders → dist/builders}/lowLvlBuilders/selects/selectJoined.js +4 -1
- package/{builders → dist/builders}/lowLvlBuilders/selects/whereSelect.d.ts +0 -0
- package/{builders → dist/builders}/lowLvlBuilders/selects/whereSelect.js +0 -0
- package/{builders → dist/builders}/lowLvlBuilders/updates/update.d.ts +0 -0
- package/{builders → dist/builders}/lowLvlBuilders/updates/update.js +5 -2
- package/{builders → dist/builders}/lowLvlBuilders/updates/updateIn.d.ts +0 -0
- package/{builders → dist/builders}/lowLvlBuilders/updates/updateIn.js +4 -1
- package/{builders → dist/builders}/lowLvlBuilders/updates/whereSelect.d.ts +0 -0
- package/{builders → dist/builders}/lowLvlBuilders/updates/whereSelect.js +0 -0
- package/{builders → dist/builders}/lowLvlBuilders/updates/whereSet.d.ts +0 -0
- package/{builders → dist/builders}/lowLvlBuilders/updates/whereSet.js +4 -1
- package/{builders → dist/builders}/requestBuilders/updates/combine.d.ts +0 -0
- package/{builders → dist/builders}/requestBuilders/updates/combine.js +0 -0
- package/{builders → dist/builders}/requestBuilders/updates/increment.d.ts +0 -0
- package/{builders → dist/builders}/requestBuilders/updates/increment.js +0 -0
- package/{builders → dist/builders}/requestBuilders/updates/setObjects.d.ts +0 -0
- package/{builders → dist/builders}/requestBuilders/updates/setObjects.js +5 -2
- package/{builders → dist/builders}/requestBuilders/updates/static.d.ts +0 -0
- package/{builders → dist/builders}/requestBuilders/updates/static.js +6 -3
- package/{builders → dist/builders}/requestBuilders/updates/updates.d.ts +0 -0
- package/{builders → dist/builders}/requestBuilders/updates/updates.js +0 -0
- package/{builders → dist/builders}/requestBuilders/where/and.d.ts +0 -0
- package/{builders → dist/builders}/requestBuilders/where/and.js +4 -1
- package/{builders → dist/builders}/requestBuilders/where/const.d.ts +0 -0
- package/{builders → dist/builders}/requestBuilders/where/const.js +4 -1
- package/{builders → dist/builders}/requestBuilders/where/constArray.d.ts +0 -0
- package/{builders → dist/builders}/requestBuilders/where/constArray.js +4 -1
- package/{builders → dist/builders}/requestBuilders/where/eqWhere.d.ts +0 -0
- package/{builders → dist/builders}/requestBuilders/where/eqWhere.js +4 -1
- package/{builders → dist/builders}/requestBuilders/where/greater.d.ts +0 -0
- package/{builders → dist/builders}/requestBuilders/where/greater.js +4 -1
- package/{builders → dist/builders}/requestBuilders/where/greaterEq.d.ts +0 -0
- package/{builders → dist/builders}/requestBuilders/where/greaterEq.js +4 -1
- package/{builders → dist/builders}/requestBuilders/where/in.d.ts +0 -0
- package/{builders → dist/builders}/requestBuilders/where/in.js +4 -1
- package/{builders → dist/builders}/requestBuilders/where/isNotNull.d.ts +0 -0
- package/{builders → dist/builders}/requestBuilders/where/isNotNull.js +4 -1
- package/{builders → dist/builders}/requestBuilders/where/isNull.d.ts +0 -0
- package/{builders → dist/builders}/requestBuilders/where/isNull.js +4 -1
- package/{builders → dist/builders}/requestBuilders/where/less.d.ts +0 -0
- package/{builders → dist/builders}/requestBuilders/where/less.js +4 -1
- package/{builders → dist/builders}/requestBuilders/where/lessEq.d.ts +0 -0
- package/{builders → dist/builders}/requestBuilders/where/lessEq.js +4 -1
- package/{builders → dist/builders}/requestBuilders/where/like.d.ts +0 -0
- package/{builders → dist/builders}/requestBuilders/where/like.js +4 -1
- package/{builders → dist/builders}/requestBuilders/where/notEqWhere.d.ts +0 -0
- package/{builders → dist/builders}/requestBuilders/where/notEqWhere.js +4 -1
- package/{builders → dist/builders}/requestBuilders/where/or.d.ts +0 -0
- package/{builders → dist/builders}/requestBuilders/where/or.js +4 -1
- package/{builders → dist/builders}/requestBuilders/where/rawWhere.d.ts +0 -0
- package/{builders → dist/builders}/requestBuilders/where/rawWhere.js +4 -1
- package/{builders → dist/builders}/requestBuilders/where/static.d.ts +0 -0
- package/{builders → dist/builders}/requestBuilders/where/static.js +19 -16
- package/{builders → dist/builders}/requestBuilders/where/var.d.ts +0 -0
- package/{builders → dist/builders}/requestBuilders/where/var.js +4 -1
- package/{builders → dist/builders}/requestBuilders/where/where.d.ts +0 -0
- package/{builders → dist/builders}/requestBuilders/where/where.js +0 -0
- package/{builders → dist/builders}/transaction/transaction.d.ts +0 -0
- package/{builders → dist/builders}/transaction/transaction.js +0 -0
- package/{columns → dist/columns}/column.d.ts +0 -0
- package/{columns → dist/columns}/column.js +0 -0
- package/{columns → dist/columns}/index.d.ts +0 -0
- package/{columns → dist/columns}/index.js +12 -9
- package/{columns → dist/columns}/types/columnType.d.ts +0 -0
- package/{columns → dist/columns}/types/columnType.js +0 -0
- package/{columns → dist/columns}/types/pgBigDecimal.d.ts +0 -0
- package/{columns → dist/columns}/types/pgBigDecimal.js +4 -1
- package/{columns → dist/columns}/types/pgBigInt.d.ts +0 -0
- package/{columns → dist/columns}/types/pgBigInt.js +4 -1
- package/{columns → dist/columns}/types/pgBigSerial.d.ts +0 -0
- package/{columns → dist/columns}/types/pgBigSerial.js +4 -1
- package/{columns → dist/columns}/types/pgBoolean.d.ts +0 -0
- package/{columns → dist/columns}/types/pgBoolean.js +4 -1
- package/{columns → dist/columns}/types/pgEnum.d.ts +0 -0
- package/{columns → dist/columns}/types/pgEnum.js +4 -1
- package/{columns → dist/columns}/types/pgInteger.d.ts +0 -0
- package/{columns → dist/columns}/types/pgInteger.js +4 -1
- package/{columns → dist/columns}/types/pgJsonb.d.ts +0 -0
- package/{columns → dist/columns}/types/pgJsonb.js +4 -1
- package/{columns → dist/columns}/types/pgSerial.d.ts +0 -0
- package/{columns → dist/columns}/types/pgSerial.js +4 -1
- package/{columns → dist/columns}/types/pgSmallInt.d.ts +0 -0
- package/{columns → dist/columns}/types/pgSmallInt.js +4 -1
- package/{columns → dist/columns}/types/pgText.d.ts +0 -0
- package/{columns → dist/columns}/types/pgText.js +4 -1
- package/{columns → dist/columns}/types/pgTime.d.ts +0 -0
- package/{columns → dist/columns}/types/pgTime.js +4 -1
- package/{columns → dist/columns}/types/pgTimestamp.d.ts +0 -0
- package/{columns → dist/columns}/types/pgTimestamp.js +4 -1
- package/{columns → dist/columns}/types/pgTimestamptz.d.ts +0 -0
- package/{columns → dist/columns}/types/pgTimestamptz.js +4 -1
- package/{columns → dist/columns}/types/pgVarChar.d.ts +0 -0
- package/{columns → dist/columns}/types/pgVarChar.js +4 -1
- package/{db → dist/db}/db.d.ts +0 -0
- package/{db → dist/db}/db.js +0 -0
- package/{db → dist/db}/dbConnector.d.ts +0 -0
- package/{db → dist/db}/dbConnector.js +6 -3
- package/{db → dist/db}/dbStringConnector.d.ts +0 -0
- package/{db → dist/db}/dbStringConnector.js +5 -2
- package/{db → dist/db}/group_by.d.ts +0 -0
- package/{db → dist/db}/group_by.js +0 -0
- package/{db → dist/db}/index.d.ts +0 -0
- package/{db → dist/db}/index.js +6 -3
- package/{db → dist/db}/session.d.ts +0 -0
- package/{db → dist/db}/session.js +0 -0
- package/{docs → dist/docs}/cases/simple_delete.d.ts +0 -0
- package/{docs → dist/docs}/cases/simple_delete.js +7 -4
- package/{docs → dist/docs}/cases/simple_insert.d.ts +0 -0
- package/{docs → dist/docs}/cases/simple_insert.js +8 -5
- package/{docs → dist/docs}/cases/simple_join.d.ts +0 -0
- package/{docs → dist/docs}/cases/simple_join.js +8 -5
- package/{docs → dist/docs}/cases/simple_select.d.ts +0 -0
- package/{docs → dist/docs}/cases/simple_select.js +6 -3
- package/{docs → dist/docs}/cases/simple_update.d.ts +0 -0
- package/{docs → dist/docs}/cases/simple_update.js +7 -4
- package/{docs → dist/docs}/tables/citiesTable.d.ts +0 -0
- package/{docs → dist/docs}/tables/citiesTable.js +6 -2
- package/{docs → dist/docs}/tables/userGroupsTable.d.ts +0 -0
- package/{docs → dist/docs}/tables/userGroupsTable.js +4 -1
- package/{docs → dist/docs}/tables/usersTable.d.ts +0 -0
- package/{docs → dist/docs}/tables/usersTable.js +4 -1
- package/{docs → dist/docs}/tables/usersToUserGroups.d.ts +0 -0
- package/{docs → dist/docs}/tables/usersToUserGroups.js +6 -3
- package/{docs → dist/docs}/types/rolesType.d.ts +0 -0
- package/{docs → dist/docs}/types/rolesType.js +0 -0
- package/{errors → dist/errors}/baseError.d.ts +0 -0
- package/{errors → dist/errors}/baseError.js +0 -0
- package/{errors → dist/errors}/builderError.d.ts +0 -0
- package/{errors → dist/errors}/builderError.js +2 -1
- package/{errors → dist/errors}/dbErrors.d.ts +0 -0
- package/{errors → dist/errors}/dbErrors.js +0 -0
- package/{index.d.ts → dist/index.d.ts} +0 -0
- package/{index.js → dist/index.js} +4 -1
- package/{indexes → dist/indexes}/tableIndex.d.ts +0 -0
- package/{indexes → dist/indexes}/tableIndex.js +0 -0
- package/{logger → dist/logger}/abstractLogger.d.ts +0 -0
- package/{logger → dist/logger}/abstractLogger.js +0 -0
- package/{logger → dist/logger}/consoleLogger.d.ts +0 -0
- package/{logger → dist/logger}/consoleLogger.js +4 -1
- package/{mappers → dist/mappers}/index.d.ts +0 -0
- package/{mappers → dist/mappers}/index.js +0 -0
- package/{mappers → dist/mappers}/responseMapper.d.ts +0 -0
- package/{mappers → dist/mappers}/responseMapper.js +0 -0
- package/{migrator → dist/migrator}/index.d.ts +0 -0
- package/{migrator → dist/migrator}/index.js +0 -0
- package/{migrator → dist/migrator}/migrator.d.ts +0 -0
- package/{migrator → dist/migrator}/migrator.js +26 -4
- package/dist/serializer/serializer.d.ts +47 -0
- package/dist/serializer/serializer.js +258 -0
- package/dist/src/builders/aggregators/abstractAggregator.d.ts +11 -0
- package/dist/src/builders/aggregators/abstractAggregator.js +35 -0
- package/dist/src/builders/aggregators/deleteAggregator.d.ts +16 -0
- package/dist/src/builders/aggregators/deleteAggregator.js +42 -0
- package/dist/src/builders/aggregators/insertAggregator.d.ts +22 -0
- package/dist/src/builders/aggregators/insertAggregator.js +106 -0
- package/dist/src/builders/aggregators/selectAggregator.d.ts +39 -0
- package/dist/src/builders/aggregators/selectAggregator.js +143 -0
- package/dist/src/builders/aggregators/updateAggregator.d.ts +19 -0
- package/dist/src/builders/aggregators/updateAggregator.js +50 -0
- package/dist/src/builders/highLvlBuilders/abstractRequestBuilder.d.ts +27 -0
- package/dist/src/builders/highLvlBuilders/abstractRequestBuilder.js +32 -0
- package/dist/src/builders/highLvlBuilders/deleteRequestBuilder.d.ts +19 -0
- package/dist/src/builders/highLvlBuilders/deleteRequestBuilder.js +61 -0
- package/dist/src/builders/highLvlBuilders/insertRequestBuilder.d.ts +20 -0
- package/dist/src/builders/highLvlBuilders/insertRequestBuilder.js +73 -0
- package/dist/src/builders/highLvlBuilders/order.d.ts +5 -0
- package/dist/src/builders/highLvlBuilders/order.js +8 -0
- package/dist/src/builders/highLvlBuilders/selectRequestBuilder.d.ts +47 -0
- package/dist/src/builders/highLvlBuilders/selectRequestBuilder.js +128 -0
- package/dist/src/builders/highLvlBuilders/updateRequestBuilder.d.ts +22 -0
- package/dist/src/builders/highLvlBuilders/updateRequestBuilder.js +80 -0
- package/dist/src/builders/index.d.ts +18 -0
- package/dist/src/builders/index.js +54 -0
- package/dist/src/builders/joinBuilders/builders/abstractJoinBuilder.d.ts +40 -0
- package/dist/src/builders/joinBuilders/builders/abstractJoinBuilder.js +78 -0
- package/dist/src/builders/joinBuilders/builders/selectWithFiveJoins.d.ts +35 -0
- package/dist/src/builders/joinBuilders/builders/selectWithFiveJoins.js +45 -0
- package/dist/src/builders/joinBuilders/builders/selectWithFourJoins.d.ts +55 -0
- package/dist/src/builders/joinBuilders/builders/selectWithFourJoins.js +78 -0
- package/dist/src/builders/joinBuilders/builders/selectWithJoin.d.ts +49 -0
- package/dist/src/builders/joinBuilders/builders/selectWithJoin.js +64 -0
- package/dist/src/builders/joinBuilders/builders/selectWithThreeJoins.d.ts +53 -0
- package/dist/src/builders/joinBuilders/builders/selectWithThreeJoins.js +73 -0
- package/dist/src/builders/joinBuilders/builders/selectWithTwoJoins.d.ts +51 -0
- package/dist/src/builders/joinBuilders/builders/selectWithTwoJoins.js +68 -0
- package/dist/src/builders/joinBuilders/join.d.ts +23 -0
- package/dist/src/builders/joinBuilders/join.js +28 -0
- package/dist/src/builders/joinBuilders/joinWith.d.ts +14 -0
- package/dist/src/builders/joinBuilders/joinWith.js +14 -0
- package/dist/src/builders/joinBuilders/responses/selectResponseFiveJoins.d.ts +20 -0
- package/dist/src/builders/joinBuilders/responses/selectResponseFiveJoins.js +35 -0
- package/dist/src/builders/joinBuilders/responses/selectResponseFourJoins.d.ts +19 -0
- package/dist/src/builders/joinBuilders/responses/selectResponseFourJoins.js +34 -0
- package/dist/src/builders/joinBuilders/responses/selectResponseThreeJoins.d.ts +18 -0
- package/dist/src/builders/joinBuilders/responses/selectResponseThreeJoins.js +33 -0
- package/dist/src/builders/joinBuilders/responses/selectResponseTwoJoins.d.ts +17 -0
- package/dist/src/builders/joinBuilders/responses/selectResponseTwoJoins.js +32 -0
- package/dist/src/builders/joinBuilders/responses/selectResponseWithJoin.d.ts +16 -0
- package/dist/src/builders/joinBuilders/responses/selectResponseWithJoin.js +31 -0
- package/dist/src/builders/joinBuilders/static.d.ts +5 -0
- package/dist/src/builders/joinBuilders/static.js +9 -0
- package/dist/src/builders/lowLvlBuilders/alter.d.ts +0 -0
- package/dist/src/builders/lowLvlBuilders/alter.js +1 -0
- package/dist/src/builders/lowLvlBuilders/create.d.ts +12 -0
- package/dist/src/builders/lowLvlBuilders/create.js +100 -0
- package/dist/src/builders/lowLvlBuilders/delets/delete.d.ts +5 -0
- package/dist/src/builders/lowLvlBuilders/delets/delete.js +15 -0
- package/dist/src/builders/lowLvlBuilders/delets/deleteFilter.d.ts +11 -0
- package/dist/src/builders/lowLvlBuilders/delets/deleteFilter.js +13 -0
- package/dist/src/builders/lowLvlBuilders/delets/deleteFrom.d.ts +12 -0
- package/dist/src/builders/lowLvlBuilders/delets/deleteFrom.js +14 -0
- package/dist/src/builders/lowLvlBuilders/inserts/insert.d.ts +5 -0
- package/dist/src/builders/lowLvlBuilders/inserts/insert.js +15 -0
- package/dist/src/builders/lowLvlBuilders/inserts/insertInto.d.ts +13 -0
- package/dist/src/builders/lowLvlBuilders/inserts/insertInto.js +16 -0
- package/dist/src/builders/lowLvlBuilders/inserts/onConflictInsert.d.ts +12 -0
- package/dist/src/builders/lowLvlBuilders/inserts/onConflictInsert.js +13 -0
- package/dist/src/builders/lowLvlBuilders/inserts/valuesInsert.d.ts +16 -0
- package/dist/src/builders/lowLvlBuilders/inserts/valuesInsert.js +19 -0
- package/dist/src/builders/lowLvlBuilders/selects/select.d.ts +9 -0
- package/dist/src/builders/lowLvlBuilders/selects/select.js +16 -0
- package/dist/src/builders/lowLvlBuilders/selects/selectFrom.d.ts +28 -0
- package/dist/src/builders/lowLvlBuilders/selects/selectFrom.js +34 -0
- package/dist/src/builders/lowLvlBuilders/selects/selectJoined.d.ts +26 -0
- package/dist/src/builders/lowLvlBuilders/selects/selectJoined.js +30 -0
- package/dist/src/builders/lowLvlBuilders/selects/whereSelect.d.ts +17 -0
- package/dist/src/builders/lowLvlBuilders/selects/whereSelect.js +25 -0
- package/dist/src/builders/lowLvlBuilders/updates/update.d.ts +5 -0
- package/dist/src/builders/lowLvlBuilders/updates/update.js +15 -0
- package/dist/src/builders/lowLvlBuilders/updates/updateIn.d.ts +13 -0
- package/dist/src/builders/lowLvlBuilders/updates/updateIn.js +15 -0
- package/dist/src/builders/lowLvlBuilders/updates/whereSelect.d.ts +11 -0
- package/dist/src/builders/lowLvlBuilders/updates/whereSelect.js +13 -0
- package/dist/src/builders/lowLvlBuilders/updates/whereSet.d.ts +14 -0
- package/dist/src/builders/lowLvlBuilders/updates/whereSet.js +18 -0
- package/dist/src/builders/requestBuilders/updates/combine.d.ts +9 -0
- package/dist/src/builders/requestBuilders/updates/combine.js +26 -0
- package/dist/src/builders/requestBuilders/updates/increment.d.ts +13 -0
- package/dist/src/builders/requestBuilders/updates/increment.js +18 -0
- package/dist/src/builders/requestBuilders/updates/setObjects.d.ts +12 -0
- package/dist/src/builders/requestBuilders/updates/setObjects.js +19 -0
- package/dist/src/builders/requestBuilders/updates/static.d.ts +7 -0
- package/dist/src/builders/requestBuilders/updates/static.js +15 -0
- package/dist/src/builders/requestBuilders/updates/updates.d.ts +9 -0
- package/dist/src/builders/requestBuilders/updates/updates.js +10 -0
- package/dist/src/builders/requestBuilders/where/and.d.ts +11 -0
- package/dist/src/builders/requestBuilders/where/and.js +31 -0
- package/dist/src/builders/requestBuilders/where/const.d.ts +9 -0
- package/dist/src/builders/requestBuilders/where/const.js +25 -0
- package/dist/src/builders/requestBuilders/where/constArray.d.ts +9 -0
- package/dist/src/builders/requestBuilders/where/constArray.js +39 -0
- package/dist/src/builders/requestBuilders/where/eqWhere.d.ts +12 -0
- package/dist/src/builders/requestBuilders/where/eqWhere.js +20 -0
- package/dist/src/builders/requestBuilders/where/greater.d.ts +15 -0
- package/dist/src/builders/requestBuilders/where/greater.js +20 -0
- package/dist/src/builders/requestBuilders/where/greaterEq.d.ts +15 -0
- package/dist/src/builders/requestBuilders/where/greaterEq.js +20 -0
- package/dist/src/builders/requestBuilders/where/in.d.ts +12 -0
- package/dist/src/builders/requestBuilders/where/in.js +20 -0
- package/dist/src/builders/requestBuilders/where/isNotNull.d.ts +11 -0
- package/dist/src/builders/requestBuilders/where/isNotNull.js +18 -0
- package/dist/src/builders/requestBuilders/where/isNull.d.ts +11 -0
- package/dist/src/builders/requestBuilders/where/isNull.js +18 -0
- package/dist/src/builders/requestBuilders/where/less.d.ts +15 -0
- package/dist/src/builders/requestBuilders/where/less.js +20 -0
- package/dist/src/builders/requestBuilders/where/lessEq.d.ts +15 -0
- package/dist/src/builders/requestBuilders/where/lessEq.js +20 -0
- package/dist/src/builders/requestBuilders/where/like.d.ts +12 -0
- package/dist/src/builders/requestBuilders/where/like.js +20 -0
- package/dist/src/builders/requestBuilders/where/notEqWhere.d.ts +12 -0
- package/dist/src/builders/requestBuilders/where/notEqWhere.js +20 -0
- package/dist/src/builders/requestBuilders/where/or.d.ts +11 -0
- package/dist/src/builders/requestBuilders/where/or.js +31 -0
- package/dist/src/builders/requestBuilders/where/rawWhere.d.ts +9 -0
- package/dist/src/builders/requestBuilders/where/rawWhere.js +15 -0
- package/dist/src/builders/requestBuilders/where/static.d.ts +17 -0
- package/dist/src/builders/requestBuilders/where/static.js +49 -0
- package/dist/src/builders/requestBuilders/where/var.d.ts +13 -0
- package/dist/src/builders/requestBuilders/where/var.js +18 -0
- package/dist/src/builders/requestBuilders/where/where.d.ts +8 -0
- package/dist/src/builders/requestBuilders/where/where.js +6 -0
- package/dist/src/builders/transaction/transaction.d.ts +8 -0
- package/dist/src/builders/transaction/transaction.js +20 -0
- package/dist/src/columns/column.d.ts +72 -0
- package/dist/src/columns/column.js +101 -0
- package/dist/src/columns/index.d.ts +10 -0
- package/dist/src/columns/index.js +27 -0
- package/dist/src/columns/types/columnType.d.ts +7 -0
- package/dist/src/columns/types/columnType.js +6 -0
- package/dist/src/columns/types/pgBigDecimal.d.ts +10 -0
- package/dist/src/columns/types/pgBigDecimal.js +31 -0
- package/dist/src/columns/types/pgBigInt.d.ts +15 -0
- package/dist/src/columns/types/pgBigInt.js +32 -0
- package/dist/src/columns/types/pgBigSerial.d.ts +15 -0
- package/dist/src/columns/types/pgBigSerial.js +32 -0
- package/dist/src/columns/types/pgBoolean.d.ts +8 -0
- package/dist/src/columns/types/pgBoolean.js +18 -0
- package/dist/src/columns/types/pgEnum.d.ts +9 -0
- package/dist/src/columns/types/pgEnum.js +18 -0
- package/dist/src/columns/types/pgInteger.d.ts +8 -0
- package/dist/src/columns/types/pgInteger.js +21 -0
- package/dist/src/columns/types/pgJsonb.d.ts +9 -0
- package/dist/src/columns/types/pgJsonb.js +20 -0
- package/dist/src/columns/types/pgSerial.d.ts +8 -0
- package/dist/src/columns/types/pgSerial.js +18 -0
- package/dist/src/columns/types/pgSmallInt.d.ts +8 -0
- package/dist/src/columns/types/pgSmallInt.js +18 -0
- package/dist/src/columns/types/pgText.d.ts +8 -0
- package/dist/src/columns/types/pgText.js +18 -0
- package/dist/src/columns/types/pgTime.d.ts +8 -0
- package/dist/src/columns/types/pgTime.js +18 -0
- package/dist/src/columns/types/pgTimestamp.d.ts +8 -0
- package/dist/src/columns/types/pgTimestamp.js +18 -0
- package/dist/src/columns/types/pgTimestamptz.d.ts +8 -0
- package/dist/src/columns/types/pgTimestamptz.js +18 -0
- package/dist/src/columns/types/pgVarChar.d.ts +9 -0
- package/dist/src/columns/types/pgVarChar.js +24 -0
- package/dist/src/db/db.d.ts +18 -0
- package/dist/src/db/db.js +25 -0
- package/dist/src/db/dbConnector.d.ts +9 -0
- package/dist/src/db/dbConnector.js +32 -0
- package/dist/src/db/dbStringConnector.d.ts +6 -0
- package/dist/src/db/dbStringConnector.js +29 -0
- package/dist/src/db/group_by.d.ts +0 -0
- package/dist/src/db/group_by.js +68 -0
- package/dist/src/db/index.d.ts +4 -0
- package/dist/src/db/index.js +14 -0
- package/dist/src/db/session.d.ts +9 -0
- package/dist/src/db/session.js +16 -0
- package/{test.d.ts → dist/src/docs/cases/simple_delete.d.ts} +0 -0
- package/dist/src/docs/cases/simple_delete.js +35 -0
- package/dist/src/docs/cases/simple_insert.d.ts +1 -0
- package/dist/src/docs/cases/simple_insert.js +57 -0
- package/dist/src/docs/cases/simple_join.d.ts +1 -0
- package/dist/src/docs/cases/simple_join.js +115 -0
- package/dist/src/docs/cases/simple_select.d.ts +1 -0
- package/dist/src/docs/cases/simple_select.js +50 -0
- package/dist/src/docs/cases/simple_update.d.ts +1 -0
- package/dist/src/docs/cases/simple_update.js +39 -0
- package/dist/src/docs/tables/citiesTable.d.ts +14 -0
- package/dist/src/docs/tables/citiesTable.js +21 -0
- package/dist/src/docs/tables/userGroupsTable.d.ts +7 -0
- package/dist/src/docs/tables/userGroupsTable.js +18 -0
- package/dist/src/docs/tables/usersTable.d.ts +17 -0
- package/dist/src/docs/tables/usersTable.js +35 -0
- package/dist/src/docs/tables/usersToUserGroups.d.ts +7 -0
- package/dist/src/docs/tables/usersToUserGroups.js +20 -0
- package/dist/src/docs/types/rolesType.d.ts +1 -0
- package/dist/src/docs/types/rolesType.js +6 -0
- package/dist/src/errors/baseError.d.ts +22 -0
- package/dist/src/errors/baseError.js +35 -0
- package/dist/src/errors/builderError.d.ts +14 -0
- package/dist/src/errors/builderError.js +25 -0
- package/dist/src/errors/dbErrors.d.ts +12 -0
- package/dist/src/errors/dbErrors.js +28 -0
- package/dist/src/index.d.ts +11 -0
- package/dist/src/index.js +31 -0
- package/dist/src/indexes/tableIndex.d.ts +11 -0
- package/dist/src/indexes/tableIndex.js +17 -0
- package/dist/src/logger/abstractLogger.d.ts +4 -0
- package/dist/src/logger/abstractLogger.js +5 -0
- package/dist/src/logger/consoleLogger.d.ts +5 -0
- package/dist/src/logger/consoleLogger.js +15 -0
- package/dist/src/mappers/index.d.ts +0 -0
- package/dist/src/mappers/index.js +1 -0
- package/dist/src/mappers/responseMapper.d.ts +10 -0
- package/dist/src/mappers/responseMapper.js +35 -0
- package/dist/src/migrator/index.d.ts +0 -0
- package/dist/src/migrator/index.js +1 -0
- package/dist/src/migrator/migrator.d.ts +11 -0
- package/dist/src/migrator/migrator.js +105 -0
- package/{serializer → dist/src/serializer}/serializer.d.ts +0 -0
- package/{serializer → dist/src/serializer}/serializer.js +4 -1
- package/{tables → dist/src/tables}/abstractTable.d.ts +0 -0
- package/{tables → dist/src/tables}/abstractTable.js +41 -19
- package/{tables → dist/src/tables}/index.d.ts +0 -0
- package/{tables → dist/src/tables}/index.js +5 -2
- package/{tables → dist/src/tables}/inferTypes.d.ts +0 -0
- package/{tables → dist/src/tables}/inferTypes.js +0 -0
- package/{tables → dist/src/tables}/migrationsTable.d.ts +0 -0
- package/{tables → dist/src/tables}/migrationsTable.js +4 -1
- package/dist/src/test.d.ts +1 -0
- package/{test.js → dist/src/test.js} +23 -8
- package/{types → dist/src/types}/type.d.ts +0 -0
- package/{types → dist/src/types}/type.js +0 -0
- package/{utils → dist/src/utils}/ecranate.d.ts +0 -0
- package/{utils → dist/src/utils}/ecranate.js +0 -0
- package/dist/tables/abstractTable.d.ts +68 -0
- package/dist/tables/abstractTable.js +151 -0
- package/dist/tables/index.d.ts +3 -0
- package/dist/tables/index.js +11 -0
- package/dist/tables/inferTypes.d.ts +39 -0
- package/dist/tables/inferTypes.js +2 -0
- package/dist/tables/migrationsTable.d.ts +7 -0
- package/dist/tables/migrationsTable.js +18 -0
- package/dist/test.d.ts +1 -0
- package/dist/test.js +65 -0
- package/dist/tsconfig.tsbuildinfo +5054 -0
- package/dist/types/type.d.ts +10 -0
- package/dist/types/type.js +14 -0
- package/dist/utils/ecranate.d.ts +2 -0
- package/dist/utils/ecranate.js +8 -0
- package/package.json +18 -13
- package/tables/aggregators.d.ts +0 -27
- package/tables/aggregators.js +0 -56
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { QueryResult } from 'pg';
|
|
2
|
+
import { AbstractColumn } from '../columns/column';
|
|
3
|
+
import ColumnType from '../columns/types/columnType';
|
|
4
|
+
import { ExtractModel } from '../tables/inferTypes';
|
|
5
|
+
export default class QueryResponseMapper {
|
|
6
|
+
static map: <ITable>(mappedServiceToDb: { [name in keyof ExtractModel<ITable>]: AbstractColumn<ColumnType<{}>, true, false, any>; }, queryResult: QueryResult<any>, joinId?: number | undefined) => ExtractModel<ITable>[];
|
|
7
|
+
static partialMap: <T>(partial: {
|
|
8
|
+
[name: string]: AbstractColumn<ColumnType<{}>, true, false, any>;
|
|
9
|
+
}, queryResult: QueryResult<any>, joinId?: number | undefined) => ExtractModel<T>[];
|
|
10
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
// eslint-disable-next-line max-len
|
|
4
|
+
// const checkProperties = (obj: any) => Object.values(obj).every((x) => x === null || Number.isNaN(x));
|
|
5
|
+
class QueryResponseMapper {
|
|
6
|
+
}
|
|
7
|
+
exports.default = QueryResponseMapper;
|
|
8
|
+
QueryResponseMapper.map = (mappedServiceToDb, queryResult, joinId) => {
|
|
9
|
+
const response = [];
|
|
10
|
+
queryResult.rows.forEach((row) => {
|
|
11
|
+
const mappedRow = {};
|
|
12
|
+
Object.keys(mappedServiceToDb).forEach((key) => {
|
|
13
|
+
const column = mappedServiceToDb[key];
|
|
14
|
+
const alias = `${column.getAlias()}${joinId ? `_${joinId}` : ''}`;
|
|
15
|
+
const value = column.getColumnType().selectStrategy(row[alias]);
|
|
16
|
+
mappedRow[key] = value === null ? undefined : value;
|
|
17
|
+
});
|
|
18
|
+
response.push(mappedRow);
|
|
19
|
+
});
|
|
20
|
+
return response;
|
|
21
|
+
};
|
|
22
|
+
QueryResponseMapper.partialMap = (partial, queryResult, joinId) => {
|
|
23
|
+
const response = [];
|
|
24
|
+
queryResult.rows.forEach((row) => {
|
|
25
|
+
const mappedRow = {};
|
|
26
|
+
Object.keys(partial).forEach((key) => {
|
|
27
|
+
const column = partial[key];
|
|
28
|
+
const alias = `${column.getAlias()}${joinId ? `_${joinId}` : ''}`;
|
|
29
|
+
const value = column.getColumnType().selectStrategy(row[alias]);
|
|
30
|
+
mappedRow[key] = value === null ? undefined : value;
|
|
31
|
+
});
|
|
32
|
+
response.push(mappedRow);
|
|
33
|
+
});
|
|
34
|
+
return response;
|
|
35
|
+
};
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import Db from '../db/db';
|
|
2
|
+
export declare type InCodeConfig = {
|
|
3
|
+
migrationFolder: string;
|
|
4
|
+
};
|
|
5
|
+
export default class Migrator {
|
|
6
|
+
private db;
|
|
7
|
+
constructor(db: Db);
|
|
8
|
+
migrate(configPath: string): Promise<void>;
|
|
9
|
+
migrate(config: InCodeConfig): Promise<void>;
|
|
10
|
+
private generateHash;
|
|
11
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
+
};
|
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
/* eslint-disable no-restricted-syntax */
|
|
26
|
+
/* eslint-disable import/export */
|
|
27
|
+
/* eslint-disable max-classes-per-file */
|
|
28
|
+
const fs = __importStar(require("fs"));
|
|
29
|
+
const path = __importStar(require("path"));
|
|
30
|
+
const crypto = __importStar(require("crypto"));
|
|
31
|
+
const builders_1 = require("../builders");
|
|
32
|
+
const transaction_1 = __importDefault(require("../builders/transaction/transaction"));
|
|
33
|
+
const tables_1 = require("../tables");
|
|
34
|
+
class Migrator {
|
|
35
|
+
constructor(db) {
|
|
36
|
+
this.db = db;
|
|
37
|
+
}
|
|
38
|
+
async migrate(configPath) {
|
|
39
|
+
let migrationFolderTo;
|
|
40
|
+
if (typeof configPath === 'string') {
|
|
41
|
+
const configAsString = fs.readFileSync(path.resolve('.', configPath), 'utf8');
|
|
42
|
+
const splitted = configAsString.trim().split('\n');
|
|
43
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
44
|
+
for (const split of splitted) {
|
|
45
|
+
const entry = split.trim().split(':');
|
|
46
|
+
const key = entry[0];
|
|
47
|
+
const value = entry[1].trim().replace(/['"]+/g, '');
|
|
48
|
+
if (key === 'migrationRootFolder') {
|
|
49
|
+
// proceed value
|
|
50
|
+
migrationFolderTo = value;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
migrationFolderTo = configPath.migrationFolder;
|
|
56
|
+
}
|
|
57
|
+
if (!migrationFolderTo) {
|
|
58
|
+
throw Error('no migration folder defined');
|
|
59
|
+
}
|
|
60
|
+
const migrationTable = new tables_1.MigrationsTable(this.db);
|
|
61
|
+
await this.db.session().execute(builders_1.Create.table(migrationTable).build());
|
|
62
|
+
const dbMigrations = await migrationTable.select().all();
|
|
63
|
+
const lastDbMigration = dbMigrations.length > 0
|
|
64
|
+
? dbMigrations[dbMigrations.length - 1]
|
|
65
|
+
: undefined;
|
|
66
|
+
const files = fs.readdirSync(migrationFolderTo);
|
|
67
|
+
const transaction = new transaction_1.default(this.db.session());
|
|
68
|
+
await transaction.begin();
|
|
69
|
+
try {
|
|
70
|
+
for await (const migrationFolder of files) {
|
|
71
|
+
const migrationFiles = fs.readdirSync(`${migrationFolderTo}/${migrationFolder}`);
|
|
72
|
+
const migrationFile = migrationFiles.filter((file) => file === 'migration.sql')[0];
|
|
73
|
+
const query = fs.readFileSync(`${migrationFolderTo}/${migrationFolder}/${migrationFile}`).toString();
|
|
74
|
+
const year = Number(migrationFolder.slice(0, 4));
|
|
75
|
+
// second param for Date() is month index, that started from 0, so we need
|
|
76
|
+
// to decrement a value for month
|
|
77
|
+
const month = Number(migrationFolder.slice(4, 6)) - 1;
|
|
78
|
+
const day = Number(migrationFolder.slice(6, 8));
|
|
79
|
+
const hour = Number(migrationFolder.slice(8, 10));
|
|
80
|
+
const min = Number(migrationFolder.slice(10, 12));
|
|
81
|
+
const sec = Number(migrationFolder.slice(12, 14));
|
|
82
|
+
const folderAsMillis = new Date(year, month, day, hour, min, sec).getTime();
|
|
83
|
+
if (!lastDbMigration || lastDbMigration.createdAt < folderAsMillis) {
|
|
84
|
+
await this.db.session().execute(query);
|
|
85
|
+
await migrationTable.insert({
|
|
86
|
+
hash: this.generateHash(query),
|
|
87
|
+
createdAt: folderAsMillis,
|
|
88
|
+
}).execute();
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
await transaction.commit();
|
|
92
|
+
}
|
|
93
|
+
catch (e) {
|
|
94
|
+
// if (this.db.logger()) {
|
|
95
|
+
// this.db.logger()!.error(e);
|
|
96
|
+
// }
|
|
97
|
+
transaction.rollback();
|
|
98
|
+
throw e;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
generateHash(value) {
|
|
102
|
+
return crypto.createHash('sha256').update(value).digest('hex');
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
exports.default = Migrator;
|
|
File without changes
|
|
@@ -4,9 +4,12 @@
|
|
|
4
4
|
/* eslint-disable import/no-named-as-default */
|
|
5
5
|
/* eslint-disable no-param-reassign */
|
|
6
6
|
/* eslint-disable no-restricted-syntax */
|
|
7
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
8
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
9
|
+
};
|
|
7
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
11
|
const columns_1 = require("../columns");
|
|
9
|
-
const tableIndex_1 = require("../indexes/tableIndex");
|
|
12
|
+
const tableIndex_1 = __importDefault(require("../indexes/tableIndex"));
|
|
10
13
|
class MigrationSerializer {
|
|
11
14
|
constructor() {
|
|
12
15
|
this.generate = (tables, enums) => {
|
|
File without changes
|
|
@@ -1,25 +1,47 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
+
};
|
|
2
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const pgVarChar_1 = require("../columns/types/pgVarChar");
|
|
4
|
-
const pgTimestamp_1 = require("../columns/types/pgTimestamp");
|
|
5
|
-
const pgInteger_1 = require("../columns/types/pgInteger");
|
|
6
|
-
const pgBigDecimal_1 = require("../columns/types/pgBigDecimal");
|
|
7
|
-
const pgTime_1 = require("../columns/types/pgTime");
|
|
8
|
-
const pgBoolean_1 = require("../columns/types/pgBoolean");
|
|
9
|
-
const pgText_1 = require("../columns/types/pgText");
|
|
10
|
-
const pgJsonb_1 = require("../columns/types/pgJsonb");
|
|
11
|
-
const insertRequestBuilder_1 = require("../builders/highLvlBuilders/insertRequestBuilder");
|
|
12
|
-
const deleteRequestBuilder_1 = require("../builders/highLvlBuilders/deleteRequestBuilder");
|
|
13
|
-
const updateRequestBuilder_1 = require("../builders/highLvlBuilders/updateRequestBuilder");
|
|
14
|
-
const selectRequestBuilder_1 = require("../builders/highLvlBuilders/selectRequestBuilder");
|
|
15
|
-
const pgBigInt_1 = require("../columns/types/pgBigInt");
|
|
16
|
-
const pgEnum_1 = require("../columns/types/pgEnum");
|
|
25
|
+
const pgVarChar_1 = __importDefault(require("../columns/types/pgVarChar"));
|
|
26
|
+
const pgTimestamp_1 = __importDefault(require("../columns/types/pgTimestamp"));
|
|
27
|
+
const pgInteger_1 = __importDefault(require("../columns/types/pgInteger"));
|
|
28
|
+
const pgBigDecimal_1 = __importDefault(require("../columns/types/pgBigDecimal"));
|
|
29
|
+
const pgTime_1 = __importDefault(require("../columns/types/pgTime"));
|
|
30
|
+
const pgBoolean_1 = __importDefault(require("../columns/types/pgBoolean"));
|
|
31
|
+
const pgText_1 = __importDefault(require("../columns/types/pgText"));
|
|
32
|
+
const pgJsonb_1 = __importDefault(require("../columns/types/pgJsonb"));
|
|
33
|
+
const insertRequestBuilder_1 = __importDefault(require("../builders/highLvlBuilders/insertRequestBuilder"));
|
|
34
|
+
const deleteRequestBuilder_1 = __importDefault(require("../builders/highLvlBuilders/deleteRequestBuilder"));
|
|
35
|
+
const updateRequestBuilder_1 = __importDefault(require("../builders/highLvlBuilders/updateRequestBuilder"));
|
|
36
|
+
const selectRequestBuilder_1 = __importDefault(require("../builders/highLvlBuilders/selectRequestBuilder"));
|
|
37
|
+
const pgBigInt_1 = __importStar(require("../columns/types/pgBigInt"));
|
|
38
|
+
const pgEnum_1 = __importDefault(require("../columns/types/pgEnum"));
|
|
17
39
|
const column_1 = require("../columns/column");
|
|
18
|
-
const tableIndex_1 = require("../indexes/tableIndex");
|
|
19
|
-
const pgSmallInt_1 = require("../columns/types/pgSmallInt");
|
|
20
|
-
const pgSerial_1 = require("../columns/types/pgSerial");
|
|
21
|
-
const pgTimestamptz_1 = require("../columns/types/pgTimestamptz");
|
|
22
|
-
const pgBigSerial_1 = require("../columns/types/pgBigSerial");
|
|
40
|
+
const tableIndex_1 = __importDefault(require("../indexes/tableIndex"));
|
|
41
|
+
const pgSmallInt_1 = __importDefault(require("../columns/types/pgSmallInt"));
|
|
42
|
+
const pgSerial_1 = __importDefault(require("../columns/types/pgSerial"));
|
|
43
|
+
const pgTimestamptz_1 = __importDefault(require("../columns/types/pgTimestamptz"));
|
|
44
|
+
const pgBigSerial_1 = __importStar(require("../columns/types/pgBigSerial"));
|
|
23
45
|
class AbstractTable {
|
|
24
46
|
constructor(db) {
|
|
25
47
|
this.withLogger = (logger) => {
|
|
File without changes
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.AbstractTable = exports.MigrationsTable = void 0;
|
|
4
7
|
/* eslint-disable import/no-cycle */
|
|
5
8
|
var migrationsTable_1 = require("./migrationsTable");
|
|
6
|
-
Object.defineProperty(exports, "MigrationsTable", { enumerable: true, get: function () { return migrationsTable_1.default; } });
|
|
9
|
+
Object.defineProperty(exports, "MigrationsTable", { enumerable: true, get: function () { return __importDefault(migrationsTable_1).default; } });
|
|
7
10
|
var abstractTable_1 = require("./abstractTable");
|
|
8
|
-
Object.defineProperty(exports, "AbstractTable", { enumerable: true, get: function () { return abstractTable_1.default; } });
|
|
11
|
+
Object.defineProperty(exports, "AbstractTable", { enumerable: true, get: function () { return __importDefault(abstractTable_1).default; } });
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const abstractTable_1 = require("./abstractTable");
|
|
6
|
+
const abstractTable_1 = __importDefault(require("./abstractTable"));
|
|
4
7
|
class MigrationsTable extends abstractTable_1.default {
|
|
5
8
|
constructor() {
|
|
6
9
|
super(...arguments);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,19 +1,34 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
6
|
+
const static_1 = require("./builders/requestBuilders/where/static");
|
|
7
|
+
const dbConnector_1 = __importDefault(require("./db/dbConnector"));
|
|
8
|
+
const citiesTable_1 = __importDefault(require("./docs/tables/citiesTable"));
|
|
9
|
+
const usersTable_1 = __importDefault(require("./docs/tables/usersTable"));
|
|
10
|
+
const consoleLogger_1 = __importDefault(require("./logger/consoleLogger"));
|
|
7
11
|
(async () => {
|
|
8
12
|
try {
|
|
9
13
|
const db = await new dbConnector_1.default()
|
|
10
14
|
.connectionString('postgresql://postgres@127.0.0.1/migrator')
|
|
11
15
|
.connect();
|
|
12
|
-
const usersTable = new
|
|
16
|
+
const usersTable = new usersTable_1.default(db);
|
|
17
|
+
const citiesTable = new citiesTable_1.default(db);
|
|
13
18
|
db.useLogger(new consoleLogger_1.default());
|
|
14
|
-
const
|
|
15
|
-
const res =
|
|
16
|
-
|
|
19
|
+
const phone = undefined;
|
|
20
|
+
const res = await usersTable.update()
|
|
21
|
+
// .groupBy((table, join1, join2, join3) => [table.id, join1.id, join1.phone])
|
|
22
|
+
.where(static_1.eq(usersTable.id, 16))
|
|
23
|
+
.set({
|
|
24
|
+
phone,
|
|
25
|
+
})
|
|
26
|
+
// .leftJoin(CitiesTable, UsersTable, (table) => table.userId, (table) => table.id)
|
|
27
|
+
// .leftJoin(UsersTable, UsersTable, (table) => table.id, (table) => table.id)
|
|
28
|
+
.execute();
|
|
29
|
+
// const ser = new MigrationSerializer();
|
|
30
|
+
// const res = ser.generate([usersTable as AbstractTable<UsersTable>], []);
|
|
31
|
+
// console.log(JSON.stringify(res, null, 2));
|
|
17
32
|
// const f = {
|
|
18
33
|
// id: count(usersTable.id),
|
|
19
34
|
// };
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import PgVarChar from '../columns/types/pgVarChar';
|
|
2
|
+
import PgTimestamp from '../columns/types/pgTimestamp';
|
|
3
|
+
import PgInteger from '../columns/types/pgInteger';
|
|
4
|
+
import PgBigDecimal from '../columns/types/pgBigDecimal';
|
|
5
|
+
import PgTime from '../columns/types/pgTime';
|
|
6
|
+
import PgBoolean from '../columns/types/pgBoolean';
|
|
7
|
+
import PgText from '../columns/types/pgText';
|
|
8
|
+
import PgJsonb from '../columns/types/pgJsonb';
|
|
9
|
+
import ColumnType from '../columns/types/columnType';
|
|
10
|
+
import InsertTRB from '../builders/highLvlBuilders/insertRequestBuilder';
|
|
11
|
+
import DeleteTRB from '../builders/highLvlBuilders/deleteRequestBuilder';
|
|
12
|
+
import UpdateTRB from '../builders/highLvlBuilders/updateRequestBuilder';
|
|
13
|
+
import SelectTRB from '../builders/highLvlBuilders/selectRequestBuilder';
|
|
14
|
+
import PgBigInt53, { PgBigInt64 } from '../columns/types/pgBigInt';
|
|
15
|
+
import BaseLogger from '../logger/abstractLogger';
|
|
16
|
+
import PgEnum from '../columns/types/pgEnum';
|
|
17
|
+
import DB from '../db/db';
|
|
18
|
+
import { AbstractColumn, Column } from '../columns/column';
|
|
19
|
+
import TableIndex from '../indexes/tableIndex';
|
|
20
|
+
import { ExtractModel } from './inferTypes';
|
|
21
|
+
import Enum, { ExtractEnumValues } from '../types/type';
|
|
22
|
+
import PgSmallInt from '../columns/types/pgSmallInt';
|
|
23
|
+
import PgSerial from '../columns/types/pgSerial';
|
|
24
|
+
import PgTimestamptz from '../columns/types/pgTimestamptz';
|
|
25
|
+
import PgBigSerial53, { PgBigSerial64 } from '../columns/types/pgBigSerial';
|
|
26
|
+
export default abstract class AbstractTable<TTable extends AbstractTable<TTable>> {
|
|
27
|
+
db: DB;
|
|
28
|
+
private _session;
|
|
29
|
+
private _logger;
|
|
30
|
+
constructor(db: DB);
|
|
31
|
+
abstract tableName(): string;
|
|
32
|
+
withLogger: (logger: BaseLogger) => void;
|
|
33
|
+
select<TType extends ColumnType<any>, TColumn extends AbstractColumn<TType, boolean, boolean, TTable>, T extends {
|
|
34
|
+
[name: string]: TColumn;
|
|
35
|
+
} = {}>(partial?: T): SelectTRB<TTable, T>;
|
|
36
|
+
update: () => UpdateTRB<TTable>;
|
|
37
|
+
insert: (value: ExtractModel<TTable>) => InsertTRB<TTable>;
|
|
38
|
+
insertMany: (values: ExtractModel<TTable>[]) => InsertTRB<TTable>;
|
|
39
|
+
delete: () => DeleteTRB<TTable>;
|
|
40
|
+
mapServiceToDb(): {
|
|
41
|
+
[name in keyof ExtractModel<TTable>]: AbstractColumn<ColumnType>;
|
|
42
|
+
};
|
|
43
|
+
protected index(columns: Array<Column<ColumnType, boolean, boolean>>): TableIndex;
|
|
44
|
+
protected index(columns: Column<ColumnType, boolean, boolean>): TableIndex;
|
|
45
|
+
protected uniqueIndex(columns: Array<Column<ColumnType, boolean, boolean>>): TableIndex;
|
|
46
|
+
protected uniqueIndex(columns: Column<ColumnType, boolean, boolean>): TableIndex;
|
|
47
|
+
protected varchar(name: string, params?: {
|
|
48
|
+
size?: number;
|
|
49
|
+
}): Column<PgVarChar, true, false, this>;
|
|
50
|
+
protected int(name: string): Column<PgInteger, true, false, this>;
|
|
51
|
+
protected smallInt(name: string): Column<PgSmallInt, true, false, this>;
|
|
52
|
+
protected serial(name: string): Column<PgSerial, true, true, this>;
|
|
53
|
+
protected bigSerial(name: string, maxBytes: 'max_bytes_53'): Column<PgBigSerial53, true, true, this>;
|
|
54
|
+
protected bigSerial(name: string, maxBytes: 'max_bytes_64'): Column<PgBigSerial64, true, true, this>;
|
|
55
|
+
protected timestamp(name: string): Column<PgTimestamp, true, false, this>;
|
|
56
|
+
protected timestamptz(name: string): Column<PgTimestamptz, true, false, this>;
|
|
57
|
+
protected bigint(name: string, maxBytes: 'max_bytes_53'): Column<PgBigInt53, true, false, this>;
|
|
58
|
+
protected bigint(name: string, maxBytes: 'max_bytes_64'): Column<PgBigInt64, true, false, this>;
|
|
59
|
+
protected type<ETtype extends string>(typeEnum: Enum<ETtype>, name: string): Column<PgEnum<ExtractEnumValues<Enum<ETtype>>>, true, false, this>;
|
|
60
|
+
protected decimal(name: string, params?: {
|
|
61
|
+
precision?: number;
|
|
62
|
+
scale?: number;
|
|
63
|
+
}): Column<PgBigDecimal, true, false, this>;
|
|
64
|
+
protected time(name: string): Column<PgTime, true, false, this>;
|
|
65
|
+
protected bool(name: string): Column<PgBoolean, true, false, this>;
|
|
66
|
+
protected text(name: string): Column<PgText, true, false, this>;
|
|
67
|
+
protected jsonb<TSubType>(name: string): Column<PgJsonb<TSubType>, true, false, this>;
|
|
68
|
+
}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
+
};
|
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
const pgVarChar_1 = __importDefault(require("../columns/types/pgVarChar"));
|
|
26
|
+
const pgTimestamp_1 = __importDefault(require("../columns/types/pgTimestamp"));
|
|
27
|
+
const pgInteger_1 = __importDefault(require("../columns/types/pgInteger"));
|
|
28
|
+
const pgBigDecimal_1 = __importDefault(require("../columns/types/pgBigDecimal"));
|
|
29
|
+
const pgTime_1 = __importDefault(require("../columns/types/pgTime"));
|
|
30
|
+
const pgBoolean_1 = __importDefault(require("../columns/types/pgBoolean"));
|
|
31
|
+
const pgText_1 = __importDefault(require("../columns/types/pgText"));
|
|
32
|
+
const pgJsonb_1 = __importDefault(require("../columns/types/pgJsonb"));
|
|
33
|
+
const insertRequestBuilder_1 = __importDefault(require("../builders/highLvlBuilders/insertRequestBuilder"));
|
|
34
|
+
const deleteRequestBuilder_1 = __importDefault(require("../builders/highLvlBuilders/deleteRequestBuilder"));
|
|
35
|
+
const updateRequestBuilder_1 = __importDefault(require("../builders/highLvlBuilders/updateRequestBuilder"));
|
|
36
|
+
const selectRequestBuilder_1 = __importDefault(require("../builders/highLvlBuilders/selectRequestBuilder"));
|
|
37
|
+
const pgBigInt_1 = __importStar(require("../columns/types/pgBigInt"));
|
|
38
|
+
const pgEnum_1 = __importDefault(require("../columns/types/pgEnum"));
|
|
39
|
+
const column_1 = require("../columns/column");
|
|
40
|
+
const tableIndex_1 = __importDefault(require("../indexes/tableIndex"));
|
|
41
|
+
const pgSmallInt_1 = __importDefault(require("../columns/types/pgSmallInt"));
|
|
42
|
+
const pgSerial_1 = __importDefault(require("../columns/types/pgSerial"));
|
|
43
|
+
const pgTimestamptz_1 = __importDefault(require("../columns/types/pgTimestamptz"));
|
|
44
|
+
const pgBigSerial_1 = __importStar(require("../columns/types/pgBigSerial"));
|
|
45
|
+
class AbstractTable {
|
|
46
|
+
constructor(db) {
|
|
47
|
+
this.withLogger = (logger) => {
|
|
48
|
+
this._logger = logger;
|
|
49
|
+
};
|
|
50
|
+
this.update = () => {
|
|
51
|
+
if (!this._session) {
|
|
52
|
+
throw new Error(`Db was not provided in constructor, while ${this.constructor.name} class was creating. Please make sure, that you provided Db object to ${this.constructor.name} class. Should be -> new ${this.constructor.name}(db)`);
|
|
53
|
+
}
|
|
54
|
+
return new updateRequestBuilder_1.default(this, this._session, this.mapServiceToDb(), this._logger);
|
|
55
|
+
};
|
|
56
|
+
this.insert = (value) => {
|
|
57
|
+
if (!this._session) {
|
|
58
|
+
throw new Error(`Db was not provided in constructor, while ${this.constructor.name} class was creating. Please make sure, that you provided Db object to ${this.constructor.name} class. Should be -> new ${this.constructor.name}(db)`);
|
|
59
|
+
}
|
|
60
|
+
return new insertRequestBuilder_1.default([value], this._session, this.mapServiceToDb(), this, this._logger);
|
|
61
|
+
};
|
|
62
|
+
this.insertMany = (values) => {
|
|
63
|
+
if (!this._session) {
|
|
64
|
+
throw new Error(`Db was not provided in constructor, while ${this.constructor.name} class was creating. Please make sure, that you provided Db object to ${this.constructor.name} class. Should be -> new ${this.constructor.name}(db)`);
|
|
65
|
+
}
|
|
66
|
+
return new insertRequestBuilder_1.default(values, this._session, this.mapServiceToDb(), this, this._logger);
|
|
67
|
+
};
|
|
68
|
+
this.delete = () => {
|
|
69
|
+
if (!this._session) {
|
|
70
|
+
throw new Error(`Db was not provided in constructor, while ${this.constructor.name} class was creating. Please make sure, that you provided Db object to ${this.constructor.name} class. Should be -> new ${this.constructor.name}(db)`);
|
|
71
|
+
}
|
|
72
|
+
return new deleteRequestBuilder_1.default(this, this._session, this.mapServiceToDb(), this._logger);
|
|
73
|
+
};
|
|
74
|
+
this._session = db.session();
|
|
75
|
+
this._logger = db.logger();
|
|
76
|
+
this.db = db;
|
|
77
|
+
}
|
|
78
|
+
// eslint-disable-next-line max-len
|
|
79
|
+
select(partial) {
|
|
80
|
+
if (!this._session) {
|
|
81
|
+
throw new Error(`Db was not provided in constructor, while ${this.constructor.name} class was creating. Please make sure, that you provided Db object to ${this.constructor.name} class. Should be -> new ${this.constructor.name}(db)`);
|
|
82
|
+
}
|
|
83
|
+
return new selectRequestBuilder_1.default(this._session, this.mapServiceToDb(), {}, this, this._logger, partial);
|
|
84
|
+
}
|
|
85
|
+
mapServiceToDb() {
|
|
86
|
+
return Object.getOwnPropertyNames(this)
|
|
87
|
+
.reduce((res, fieldName) => {
|
|
88
|
+
const field = this[fieldName];
|
|
89
|
+
if (field instanceof column_1.AbstractColumn) {
|
|
90
|
+
res[fieldName] = field;
|
|
91
|
+
}
|
|
92
|
+
return res;
|
|
93
|
+
}, {});
|
|
94
|
+
}
|
|
95
|
+
index(columns) {
|
|
96
|
+
return new tableIndex_1.default(this.tableName(), columns instanceof Array ? columns : [columns]);
|
|
97
|
+
}
|
|
98
|
+
uniqueIndex(columns) {
|
|
99
|
+
return new tableIndex_1.default(this.tableName(), columns instanceof Array ? columns : [columns], true);
|
|
100
|
+
}
|
|
101
|
+
varchar(name, params = {}) {
|
|
102
|
+
return new column_1.Column(this, name, new pgVarChar_1.default(params.size));
|
|
103
|
+
}
|
|
104
|
+
int(name) {
|
|
105
|
+
return new column_1.Column(this, name, new pgInteger_1.default());
|
|
106
|
+
}
|
|
107
|
+
smallInt(name) {
|
|
108
|
+
return new column_1.Column(this, name, new pgSmallInt_1.default());
|
|
109
|
+
}
|
|
110
|
+
serial(name) {
|
|
111
|
+
return new column_1.Column(this, name, new pgSerial_1.default());
|
|
112
|
+
}
|
|
113
|
+
bigSerial(name, maxBytes) {
|
|
114
|
+
if (maxBytes === 'max_bytes_53') {
|
|
115
|
+
return new column_1.Column(this, name, new pgBigSerial_1.default());
|
|
116
|
+
}
|
|
117
|
+
return new column_1.Column(this, name, new pgBigSerial_1.PgBigSerial64());
|
|
118
|
+
}
|
|
119
|
+
timestamp(name) {
|
|
120
|
+
return new column_1.Column(this, name, new pgTimestamp_1.default());
|
|
121
|
+
}
|
|
122
|
+
timestamptz(name) {
|
|
123
|
+
return new column_1.Column(this, name, new pgTimestamptz_1.default());
|
|
124
|
+
}
|
|
125
|
+
bigint(name, maxBytes) {
|
|
126
|
+
if (maxBytes === 'max_bytes_53') {
|
|
127
|
+
return new column_1.Column(this, name, new pgBigInt_1.default());
|
|
128
|
+
}
|
|
129
|
+
return new column_1.Column(this, name, new pgBigInt_1.PgBigInt64());
|
|
130
|
+
}
|
|
131
|
+
type(typeEnum, name) {
|
|
132
|
+
const pgEnum = new pgEnum_1.default(typeEnum.name);
|
|
133
|
+
return new column_1.Column(this, name, pgEnum);
|
|
134
|
+
}
|
|
135
|
+
decimal(name, params = {}) {
|
|
136
|
+
return new column_1.Column(this, name, new pgBigDecimal_1.default(params.precision, params.scale));
|
|
137
|
+
}
|
|
138
|
+
time(name) {
|
|
139
|
+
return new column_1.Column(this, name, new pgTime_1.default());
|
|
140
|
+
}
|
|
141
|
+
bool(name) {
|
|
142
|
+
return new column_1.Column(this, name, new pgBoolean_1.default());
|
|
143
|
+
}
|
|
144
|
+
text(name) {
|
|
145
|
+
return new column_1.Column(this, name, new pgText_1.default());
|
|
146
|
+
}
|
|
147
|
+
jsonb(name) {
|
|
148
|
+
return new column_1.Column(this, name, new pgJsonb_1.default());
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
exports.default = AbstractTable;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.AbstractTable = exports.MigrationsTable = void 0;
|
|
7
|
+
/* eslint-disable import/no-cycle */
|
|
8
|
+
var migrationsTable_1 = require("./migrationsTable");
|
|
9
|
+
Object.defineProperty(exports, "MigrationsTable", { enumerable: true, get: function () { return __importDefault(migrationsTable_1).default; } });
|
|
10
|
+
var abstractTable_1 = require("./abstractTable");
|
|
11
|
+
Object.defineProperty(exports, "AbstractTable", { enumerable: true, get: function () { return __importDefault(abstractTable_1).default; } });
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { UpdateCustomExpr } from '../builders/requestBuilders/updates/updates';
|
|
2
|
+
import { AbstractColumn, Column, IndexedColumn } from '../columns/column';
|
|
3
|
+
import ColumnType from '../columns/types/columnType';
|
|
4
|
+
import TableIndex from '../indexes/tableIndex';
|
|
5
|
+
import Type from '../types/type';
|
|
6
|
+
import AbstractTable from './abstractTable';
|
|
7
|
+
export declare type ExtractFieldNames<TTable> = {
|
|
8
|
+
[Key in keyof TTable]: TTable[Key] extends Function ? never : TTable[Key] extends Column<ColumnType, infer TNullable, infer TAutoIncrement> ? true extends TNullable ? never : Key : TTable[Key] extends IndexedColumn<ColumnType, infer TNullable, infer TAutoIncrement> ? true extends TNullable ? never : Key : never;
|
|
9
|
+
}[keyof TTable];
|
|
10
|
+
export declare type ExtractOptionalFieldNames<TTable> = {
|
|
11
|
+
[Key in keyof TTable]: TTable[Key] extends Function ? never : TTable[Key] extends Column<ColumnType, infer TNullable, infer TAutoIncrement> ? true extends TNullable ? Key : never : TTable[Key] extends IndexedColumn<ColumnType, infer TNullable, infer TAutoIncrement> ? true extends TNullable ? Key : never : never;
|
|
12
|
+
}[keyof TTable];
|
|
13
|
+
export declare type ExtractPartialObjectFromColumns<TTable> = {
|
|
14
|
+
[Key in ExtractFieldNames<TTable>]: TTable[Key];
|
|
15
|
+
} & {
|
|
16
|
+
[Key in ExtractOptionalFieldNames<TTable>]?: TTable[Key];
|
|
17
|
+
};
|
|
18
|
+
export declare type ExtractModel<TTable> = {
|
|
19
|
+
[Key in ExtractFieldNames<TTable>]: ExtractCodeType<TTable[Key]>;
|
|
20
|
+
} & {
|
|
21
|
+
[Key in ExtractOptionalFieldNames<TTable>]?: ExtractCodeType<TTable[Key]>;
|
|
22
|
+
};
|
|
23
|
+
export declare type ExtractUpdateModel<TTable> = {
|
|
24
|
+
[Key in ExtractFieldNames<TTable>]: ExtractCodeType<TTable[Key]> | UpdateCustomExpr<TTable[Key]>;
|
|
25
|
+
} & {
|
|
26
|
+
[Key in ExtractOptionalFieldNames<TTable>]?: ExtractCodeType<TTable[Key]> | UpdateCustomExpr<TTable[Key]>;
|
|
27
|
+
};
|
|
28
|
+
export declare type ExtractCodeType<T extends AbstractColumn<ColumnType<any>, boolean, boolean>> = T extends AbstractColumn<ColumnType<infer TCodeType>, infer TNullable, infer TAutoIncrement, any> ? TCodeType : never;
|
|
29
|
+
export declare type ExtractTypeEnum<T extends Type<any>> = T extends Type<infer TEnum> ? TEnum : never;
|
|
30
|
+
export declare type Indexing = IndexedColumn<ColumnType, boolean, boolean> | TableIndex;
|
|
31
|
+
export declare type AnyColumn = Column<ColumnType, boolean, boolean> | IndexedColumn<ColumnType, boolean, boolean>;
|
|
32
|
+
export declare type PartialFor<TTable extends AbstractTable<TTable>> = {
|
|
33
|
+
[name: string]: AbstractColumn<ColumnType<any>, boolean, boolean, TTable>;
|
|
34
|
+
};
|
|
35
|
+
export declare type FullOrPartial<TTable extends AbstractTable<TTable>, TPartial extends PartialFor<TTable>> = [keyof TPartial] extends [never] ? ExtractModel<TTable> : ExtractModel<TPartial>;
|
|
36
|
+
export declare type CheckTwoTypes<TInput, TTable extends AbstractTable<TTable>, TTable1 extends AbstractTable<TTable1>> = TInput extends AbstractTable<TTable> ? TTable : TInput extends AbstractTable<TTable1> ? TTable1 : never;
|
|
37
|
+
export declare type CheckThreeTypes<TInput, TTable extends AbstractTable<TTable>, TTable1 extends AbstractTable<TTable1>, TTable2 extends AbstractTable<TTable2>> = TInput extends AbstractTable<TTable> ? TTable : TInput extends AbstractTable<TTable1> ? TTable1 : TInput extends AbstractTable<TTable2> ? TTable2 : never;
|
|
38
|
+
export declare type CheckFourTypes<TInput, TTable extends AbstractTable<TTable>, TTable1 extends AbstractTable<TTable1>, TTable2 extends AbstractTable<TTable2>, TTable3 extends AbstractTable<TTable3>> = TInput extends AbstractTable<TTable> ? TTable : TInput extends AbstractTable<TTable1> ? TTable1 : TInput extends AbstractTable<TTable2> ? TTable2 : TInput extends AbstractTable<TTable3> ? TTable3 : never;
|
|
39
|
+
export declare type CheckFiveTypes<TInput, TTable extends AbstractTable<TTable>, TTable1 extends AbstractTable<TTable1>, TTable2 extends AbstractTable<TTable2>, TTable3 extends AbstractTable<TTable3>, TTable4 extends AbstractTable<TTable4>> = TInput extends AbstractTable<TTable> ? TTable : TInput extends AbstractTable<TTable1> ? TTable1 : TInput extends AbstractTable<TTable2> ? TTable2 : TInput extends AbstractTable<TTable3> ? TTable3 : TInput extends AbstractTable<TTable4> ? TTable4 : never;
|