drizzle-orm 0.10.26 → 0.10.29
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/.eslintrc +28 -0
- package/.tslintignore +1 -0
- package/CHANGELOG.md +202 -0
- package/README.md +439 -0
- package/dist/builders/aggregators/abstractAggregator.d.ts +11 -0
- package/dist/builders/aggregators/abstractAggregator.js +35 -0
- package/dist/builders/aggregators/deleteAggregator.d.ts +16 -0
- package/dist/builders/aggregators/deleteAggregator.js +42 -0
- package/dist/builders/aggregators/insertAggregator.d.ts +22 -0
- package/dist/builders/aggregators/insertAggregator.js +106 -0
- package/dist/builders/aggregators/selectAggregator.d.ts +39 -0
- package/dist/builders/aggregators/selectAggregator.js +143 -0
- package/dist/builders/aggregators/updateAggregator.d.ts +19 -0
- package/dist/builders/aggregators/updateAggregator.js +50 -0
- package/dist/builders/highLvlBuilders/abstractRequestBuilder.d.ts +27 -0
- package/dist/builders/highLvlBuilders/abstractRequestBuilder.js +32 -0
- package/dist/builders/highLvlBuilders/deleteRequestBuilder.d.ts +19 -0
- package/dist/builders/highLvlBuilders/deleteRequestBuilder.js +61 -0
- package/dist/builders/highLvlBuilders/insertRequestBuilder.d.ts +20 -0
- package/dist/builders/highLvlBuilders/insertRequestBuilder.js +73 -0
- package/dist/builders/highLvlBuilders/order.d.ts +5 -0
- package/dist/builders/highLvlBuilders/order.js +8 -0
- package/dist/builders/highLvlBuilders/selectRequestBuilder.d.ts +47 -0
- package/dist/builders/highLvlBuilders/selectRequestBuilder.js +128 -0
- package/dist/builders/highLvlBuilders/updateRequestBuilder.d.ts +22 -0
- package/dist/builders/highLvlBuilders/updateRequestBuilder.js +80 -0
- package/dist/builders/index.d.ts +18 -0
- package/dist/builders/index.js +54 -0
- package/dist/builders/joinBuilders/builders/abstractJoinBuilder.d.ts +40 -0
- package/dist/builders/joinBuilders/builders/abstractJoinBuilder.js +78 -0
- package/dist/builders/joinBuilders/builders/selectWithFiveJoins.d.ts +35 -0
- package/dist/builders/joinBuilders/builders/selectWithFiveJoins.js +45 -0
- package/dist/builders/joinBuilders/builders/selectWithFourJoins.d.ts +55 -0
- package/dist/builders/joinBuilders/builders/selectWithFourJoins.js +78 -0
- package/dist/builders/joinBuilders/builders/selectWithJoin.d.ts +49 -0
- package/dist/builders/joinBuilders/builders/selectWithJoin.js +64 -0
- package/dist/builders/joinBuilders/builders/selectWithThreeJoins.d.ts +53 -0
- package/dist/builders/joinBuilders/builders/selectWithThreeJoins.js +73 -0
- package/dist/builders/joinBuilders/builders/selectWithTwoJoins.d.ts +51 -0
- package/dist/builders/joinBuilders/builders/selectWithTwoJoins.js +68 -0
- package/dist/builders/joinBuilders/join.d.ts +23 -0
- package/dist/builders/joinBuilders/join.js +28 -0
- package/dist/builders/joinBuilders/joinWith.d.ts +14 -0
- package/dist/builders/joinBuilders/joinWith.js +14 -0
- package/dist/builders/joinBuilders/responses/selectResponseFiveJoins.d.ts +20 -0
- package/dist/builders/joinBuilders/responses/selectResponseFiveJoins.js +35 -0
- package/dist/builders/joinBuilders/responses/selectResponseFourJoins.d.ts +19 -0
- package/dist/builders/joinBuilders/responses/selectResponseFourJoins.js +34 -0
- package/dist/builders/joinBuilders/responses/selectResponseThreeJoins.d.ts +18 -0
- package/dist/builders/joinBuilders/responses/selectResponseThreeJoins.js +33 -0
- package/dist/builders/joinBuilders/responses/selectResponseTwoJoins.d.ts +17 -0
- package/dist/builders/joinBuilders/responses/selectResponseTwoJoins.js +32 -0
- package/dist/builders/joinBuilders/responses/selectResponseWithJoin.d.ts +16 -0
- package/dist/builders/joinBuilders/responses/selectResponseWithJoin.js +31 -0
- package/dist/builders/joinBuilders/static.d.ts +5 -0
- package/dist/builders/joinBuilders/static.js +9 -0
- package/dist/builders/lowLvlBuilders/alter.d.ts +0 -0
- package/dist/builders/lowLvlBuilders/alter.js +1 -0
- package/dist/builders/lowLvlBuilders/create.d.ts +12 -0
- package/dist/builders/lowLvlBuilders/create.js +100 -0
- package/dist/builders/lowLvlBuilders/delets/delete.d.ts +5 -0
- package/dist/builders/lowLvlBuilders/delets/delete.js +15 -0
- package/dist/builders/lowLvlBuilders/delets/deleteFilter.d.ts +11 -0
- package/dist/builders/lowLvlBuilders/delets/deleteFilter.js +13 -0
- package/dist/builders/lowLvlBuilders/delets/deleteFrom.d.ts +12 -0
- package/dist/builders/lowLvlBuilders/delets/deleteFrom.js +14 -0
- package/dist/builders/lowLvlBuilders/inserts/insert.d.ts +5 -0
- package/dist/builders/lowLvlBuilders/inserts/insert.js +15 -0
- package/dist/builders/lowLvlBuilders/inserts/insertInto.d.ts +13 -0
- package/dist/builders/lowLvlBuilders/inserts/insertInto.js +16 -0
- package/dist/builders/lowLvlBuilders/inserts/onConflictInsert.d.ts +12 -0
- package/dist/builders/lowLvlBuilders/inserts/onConflictInsert.js +13 -0
- package/dist/builders/lowLvlBuilders/inserts/valuesInsert.d.ts +16 -0
- package/dist/builders/lowLvlBuilders/inserts/valuesInsert.js +19 -0
- package/dist/builders/lowLvlBuilders/selects/select.d.ts +9 -0
- package/dist/builders/lowLvlBuilders/selects/select.js +16 -0
- package/dist/builders/lowLvlBuilders/selects/selectFrom.d.ts +28 -0
- package/dist/builders/lowLvlBuilders/selects/selectFrom.js +34 -0
- package/dist/builders/lowLvlBuilders/selects/selectJoined.d.ts +26 -0
- package/dist/builders/lowLvlBuilders/selects/selectJoined.js +30 -0
- package/dist/builders/lowLvlBuilders/selects/whereSelect.d.ts +17 -0
- package/dist/builders/lowLvlBuilders/selects/whereSelect.js +25 -0
- package/dist/builders/lowLvlBuilders/updates/update.d.ts +5 -0
- package/dist/builders/lowLvlBuilders/updates/update.js +15 -0
- package/dist/builders/lowLvlBuilders/updates/updateIn.d.ts +13 -0
- package/dist/builders/lowLvlBuilders/updates/updateIn.js +15 -0
- package/dist/builders/lowLvlBuilders/updates/whereSelect.d.ts +11 -0
- package/dist/builders/lowLvlBuilders/updates/whereSelect.js +13 -0
- package/dist/builders/lowLvlBuilders/updates/whereSet.d.ts +14 -0
- package/dist/builders/lowLvlBuilders/updates/whereSet.js +18 -0
- package/dist/builders/requestBuilders/updates/combine.d.ts +9 -0
- package/dist/builders/requestBuilders/updates/combine.js +26 -0
- package/dist/builders/requestBuilders/updates/increment.d.ts +13 -0
- package/dist/builders/requestBuilders/updates/increment.js +18 -0
- package/dist/builders/requestBuilders/updates/setObjects.d.ts +12 -0
- package/dist/builders/requestBuilders/updates/setObjects.js +19 -0
- package/dist/builders/requestBuilders/updates/static.d.ts +7 -0
- package/dist/builders/requestBuilders/updates/static.js +15 -0
- package/dist/builders/requestBuilders/updates/updates.d.ts +9 -0
- package/dist/builders/requestBuilders/updates/updates.js +10 -0
- package/dist/builders/requestBuilders/where/and.d.ts +11 -0
- package/dist/builders/requestBuilders/where/and.js +31 -0
- package/dist/builders/requestBuilders/where/const.d.ts +9 -0
- package/dist/builders/requestBuilders/where/const.js +25 -0
- package/dist/builders/requestBuilders/where/constArray.d.ts +9 -0
- package/dist/builders/requestBuilders/where/constArray.js +39 -0
- package/dist/builders/requestBuilders/where/eqWhere.d.ts +12 -0
- package/dist/builders/requestBuilders/where/eqWhere.js +20 -0
- package/dist/builders/requestBuilders/where/greater.d.ts +15 -0
- package/dist/builders/requestBuilders/where/greater.js +20 -0
- package/dist/builders/requestBuilders/where/greaterEq.d.ts +15 -0
- package/dist/builders/requestBuilders/where/greaterEq.js +20 -0
- package/dist/builders/requestBuilders/where/in.d.ts +12 -0
- package/dist/builders/requestBuilders/where/in.js +20 -0
- package/dist/builders/requestBuilders/where/isNotNull.d.ts +11 -0
- package/dist/builders/requestBuilders/where/isNotNull.js +18 -0
- package/dist/builders/requestBuilders/where/isNull.d.ts +11 -0
- package/dist/builders/requestBuilders/where/isNull.js +18 -0
- package/dist/builders/requestBuilders/where/less.d.ts +15 -0
- package/dist/builders/requestBuilders/where/less.js +20 -0
- package/dist/builders/requestBuilders/where/lessEq.d.ts +15 -0
- package/dist/builders/requestBuilders/where/lessEq.js +20 -0
- package/dist/builders/requestBuilders/where/like.d.ts +12 -0
- package/dist/builders/requestBuilders/where/like.js +20 -0
- package/dist/builders/requestBuilders/where/notEqWhere.d.ts +12 -0
- package/dist/builders/requestBuilders/where/notEqWhere.js +20 -0
- package/dist/builders/requestBuilders/where/or.d.ts +11 -0
- package/dist/builders/requestBuilders/where/or.js +31 -0
- package/dist/builders/requestBuilders/where/rawWhere.d.ts +9 -0
- package/dist/builders/requestBuilders/where/rawWhere.js +15 -0
- package/dist/builders/requestBuilders/where/static.d.ts +17 -0
- package/dist/builders/requestBuilders/where/static.js +49 -0
- package/dist/builders/requestBuilders/where/var.d.ts +13 -0
- package/dist/builders/requestBuilders/where/var.js +18 -0
- package/dist/builders/requestBuilders/where/where.d.ts +8 -0
- package/dist/builders/requestBuilders/where/where.js +6 -0
- package/dist/builders/transaction/transaction.d.ts +8 -0
- package/dist/builders/transaction/transaction.js +20 -0
- package/dist/columns/column.d.ts +72 -0
- package/dist/columns/column.js +101 -0
- package/dist/columns/index.d.ts +10 -0
- package/dist/columns/index.js +27 -0
- package/dist/columns/types/columnType.d.ts +7 -0
- package/dist/columns/types/columnType.js +6 -0
- package/dist/columns/types/pgBigDecimal.d.ts +10 -0
- package/dist/columns/types/pgBigDecimal.js +31 -0
- package/dist/columns/types/pgBigInt.d.ts +15 -0
- package/dist/columns/types/pgBigInt.js +32 -0
- package/dist/columns/types/pgBigSerial.d.ts +15 -0
- package/dist/columns/types/pgBigSerial.js +32 -0
- package/dist/columns/types/pgBoolean.d.ts +8 -0
- package/dist/columns/types/pgBoolean.js +18 -0
- package/dist/columns/types/pgEnum.d.ts +9 -0
- package/dist/columns/types/pgEnum.js +18 -0
- package/dist/columns/types/pgInteger.d.ts +8 -0
- package/dist/columns/types/pgInteger.js +21 -0
- package/dist/columns/types/pgJsonb.d.ts +9 -0
- package/dist/columns/types/pgJsonb.js +20 -0
- package/dist/columns/types/pgSerial.d.ts +8 -0
- package/dist/columns/types/pgSerial.js +18 -0
- package/dist/columns/types/pgSmallInt.d.ts +8 -0
- package/dist/columns/types/pgSmallInt.js +18 -0
- package/dist/columns/types/pgText.d.ts +8 -0
- package/dist/columns/types/pgText.js +18 -0
- package/dist/columns/types/pgTime.d.ts +8 -0
- package/dist/columns/types/pgTime.js +18 -0
- package/dist/columns/types/pgTimestamp.d.ts +8 -0
- package/dist/columns/types/pgTimestamp.js +18 -0
- package/dist/columns/types/pgTimestamptz.d.ts +8 -0
- package/dist/columns/types/pgTimestamptz.js +18 -0
- package/dist/columns/types/pgVarChar.d.ts +9 -0
- package/dist/columns/types/pgVarChar.js +24 -0
- package/dist/db/db.d.ts +18 -0
- package/dist/db/db.js +25 -0
- package/dist/db/dbConnector.d.ts +9 -0
- package/dist/db/dbConnector.js +32 -0
- package/dist/db/dbStringConnector.d.ts +6 -0
- package/dist/db/dbStringConnector.js +29 -0
- package/dist/db/group_by.d.ts +0 -0
- package/dist/db/group_by.js +68 -0
- package/dist/db/index.d.ts +4 -0
- package/dist/db/index.js +14 -0
- package/dist/db/session.d.ts +9 -0
- package/dist/db/session.js +16 -0
- package/dist/docs/cases/simple_delete.d.ts +1 -0
- package/dist/docs/cases/simple_delete.js +35 -0
- package/dist/docs/cases/simple_insert.d.ts +1 -0
- package/dist/docs/cases/simple_insert.js +57 -0
- package/dist/docs/cases/simple_join.d.ts +1 -0
- package/dist/docs/cases/simple_join.js +115 -0
- package/dist/docs/cases/simple_select.d.ts +1 -0
- package/dist/docs/cases/simple_select.js +50 -0
- package/dist/docs/cases/simple_update.d.ts +1 -0
- package/dist/docs/cases/simple_update.js +39 -0
- package/dist/docs/tables/citiesTable.d.ts +14 -0
- package/dist/docs/tables/citiesTable.js +21 -0
- package/dist/docs/tables/userGroupsTable.d.ts +7 -0
- package/dist/docs/tables/userGroupsTable.js +18 -0
- package/dist/docs/tables/usersTable.d.ts +17 -0
- package/dist/docs/tables/usersTable.js +35 -0
- package/dist/docs/tables/usersToUserGroups.d.ts +7 -0
- package/dist/docs/tables/usersToUserGroups.js +20 -0
- package/dist/docs/types/rolesType.d.ts +1 -0
- package/dist/docs/types/rolesType.js +6 -0
- package/dist/errors/baseError.d.ts +22 -0
- package/dist/errors/baseError.js +35 -0
- package/dist/errors/builderError.d.ts +14 -0
- package/dist/errors/builderError.js +25 -0
- package/dist/errors/dbErrors.d.ts +12 -0
- package/dist/errors/dbErrors.js +28 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +31 -0
- package/dist/indexes/tableIndex.d.ts +11 -0
- package/dist/indexes/tableIndex.js +17 -0
- package/dist/logger/abstractLogger.d.ts +4 -0
- package/dist/logger/abstractLogger.js +5 -0
- package/dist/logger/consoleLogger.d.ts +5 -0
- package/dist/logger/consoleLogger.js +15 -0
- package/dist/mappers/index.d.ts +0 -0
- package/dist/mappers/index.js +1 -0
- package/dist/mappers/responseMapper.d.ts +10 -0
- package/dist/mappers/responseMapper.js +35 -0
- package/dist/migrator/index.d.ts +0 -0
- package/dist/migrator/index.js +1 -0
- package/dist/migrator/migrator.d.ts +11 -0
- package/dist/migrator/migrator.js +105 -0
- package/dist/serializer/serializer.d.ts +47 -0
- package/dist/serializer/serializer.js +258 -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/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 +3 -7
- package/pnpm-lock.yaml +1842 -0
- package/src/builders/aggregators/abstractAggregator.ts +41 -0
- package/src/builders/aggregators/deleteAggregator.ts +44 -0
- package/src/builders/aggregators/insertAggregator.ts +120 -0
- package/src/builders/aggregators/selectAggregator.ts +163 -0
- package/src/builders/aggregators/updateAggregator.ts +56 -0
- package/src/builders/highLvlBuilders/abstractRequestBuilder.ts +51 -0
- package/src/builders/highLvlBuilders/deleteRequestBuilder.ts +59 -0
- package/src/builders/highLvlBuilders/insertRequestBuilder.ts +75 -0
- package/src/builders/highLvlBuilders/order.ts +4 -0
- package/src/builders/highLvlBuilders/selectRequestBuilder.ts +229 -0
- package/src/builders/highLvlBuilders/updateRequestBuilder.ts +80 -0
- package/src/builders/index.ts +21 -0
- package/src/builders/joinBuilders/builders/abstractJoinBuilder.ts +98 -0
- package/src/builders/joinBuilders/builders/selectWithFiveJoins.ts +110 -0
- package/src/builders/joinBuilders/builders/selectWithFourJoins.ts +254 -0
- package/src/builders/joinBuilders/builders/selectWithJoin.ts +189 -0
- package/src/builders/joinBuilders/builders/selectWithThreeJoins.ts +231 -0
- package/src/builders/joinBuilders/builders/selectWithTwoJoins.ts +210 -0
- package/src/builders/joinBuilders/join.ts +40 -0
- package/src/builders/joinBuilders/joinWith.ts +21 -0
- package/src/builders/joinBuilders/responses/selectResponseFiveJoins.ts +82 -0
- package/src/builders/joinBuilders/responses/selectResponseFourJoins.ts +73 -0
- package/src/builders/joinBuilders/responses/selectResponseThreeJoins.ts +64 -0
- package/src/builders/joinBuilders/responses/selectResponseTwoJoins.ts +57 -0
- package/src/builders/joinBuilders/responses/selectResponseWithJoin.ts +49 -0
- package/src/builders/joinBuilders/static.ts +9 -0
- package/src/builders/lowLvlBuilders/alter.ts +0 -0
- package/src/builders/lowLvlBuilders/create.ts +115 -0
- package/src/builders/lowLvlBuilders/delets/delete.ts +13 -0
- package/src/builders/lowLvlBuilders/delets/deleteFilter.ts +17 -0
- package/src/builders/lowLvlBuilders/delets/deleteFrom.ts +15 -0
- package/src/builders/lowLvlBuilders/inserts/insert.ts +11 -0
- package/src/builders/lowLvlBuilders/inserts/insertInto.ts +16 -0
- package/src/builders/lowLvlBuilders/inserts/onConflictInsert.ts +19 -0
- package/src/builders/lowLvlBuilders/inserts/valuesInsert.ts +27 -0
- package/src/builders/lowLvlBuilders/selects/select.ts +14 -0
- package/src/builders/lowLvlBuilders/selects/selectFrom.ts +50 -0
- package/src/builders/lowLvlBuilders/selects/selectJoined.ts +44 -0
- package/src/builders/lowLvlBuilders/selects/whereSelect.ts +36 -0
- package/src/builders/lowLvlBuilders/updates/update.ts +13 -0
- package/src/builders/lowLvlBuilders/updates/updateIn.ts +17 -0
- package/src/builders/lowLvlBuilders/updates/whereSelect.ts +17 -0
- package/src/builders/lowLvlBuilders/updates/whereSet.ts +21 -0
- package/src/builders/requestBuilders/updates/combine.ts +34 -0
- package/src/builders/requestBuilders/updates/increment.ts +24 -0
- package/src/builders/requestBuilders/updates/setObjects.ts +27 -0
- package/src/builders/requestBuilders/updates/static.ts +15 -0
- package/src/builders/requestBuilders/updates/updates.ts +8 -0
- package/src/builders/requestBuilders/where/and.ts +35 -0
- package/src/builders/requestBuilders/where/const.ts +23 -0
- package/src/builders/requestBuilders/where/constArray.ts +37 -0
- package/src/builders/requestBuilders/where/eqWhere.ts +20 -0
- package/src/builders/requestBuilders/where/greater.ts +20 -0
- package/src/builders/requestBuilders/where/greaterEq.ts +20 -0
- package/src/builders/requestBuilders/where/in.ts +20 -0
- package/src/builders/requestBuilders/where/isNotNull.ts +17 -0
- package/src/builders/requestBuilders/where/isNull.ts +17 -0
- package/src/builders/requestBuilders/where/less.ts +20 -0
- package/src/builders/requestBuilders/where/lessEq.ts +20 -0
- package/src/builders/requestBuilders/where/like.ts +20 -0
- package/src/builders/requestBuilders/where/notEqWhere.ts +20 -0
- package/src/builders/requestBuilders/where/or.ts +35 -0
- package/src/builders/requestBuilders/where/rawWhere.ts +10 -0
- package/src/builders/requestBuilders/where/static.ts +60 -0
- package/src/builders/requestBuilders/where/var.ts +19 -0
- package/src/builders/requestBuilders/where/where.ts +5 -0
- package/src/builders/transaction/transaction.ts +21 -0
- package/src/columns/column.ts +195 -0
- package/src/columns/index.ts +10 -0
- package/src/columns/types/columnType.ts +8 -0
- package/src/columns/types/pgBigDecimal.ts +29 -0
- package/src/columns/types/pgBigInt.ts +36 -0
- package/src/columns/types/pgBigSerial.ts +36 -0
- package/src/columns/types/pgBoolean.ts +18 -0
- package/src/columns/types/pgEnum.ts +17 -0
- package/src/columns/types/pgInteger.ts +21 -0
- package/src/columns/types/pgJsonb.ts +21 -0
- package/src/columns/types/pgSerial.ts +18 -0
- package/src/columns/types/pgSmallInt.ts +18 -0
- package/src/columns/types/pgText.ts +18 -0
- package/src/columns/types/pgTime.ts +18 -0
- package/src/columns/types/pgTimestamp.ts +18 -0
- package/src/columns/types/pgTimestamptz.ts +18 -0
- package/src/columns/types/pgVarChar.ts +24 -0
- package/src/db/db.ts +43 -0
- package/src/db/dbConnector.ts +30 -0
- package/src/db/dbStringConnector.ts +29 -0
- package/src/db/group_by.ts +75 -0
- package/src/db/index.ts +4 -0
- package/src/db/session.ts +16 -0
- package/src/docs/cases/simple_delete.ts +35 -0
- package/src/docs/cases/simple_insert.ts +65 -0
- package/src/docs/cases/simple_join.ts +140 -0
- package/src/docs/cases/simple_select.ts +72 -0
- package/src/docs/cases/simple_update.ts +40 -0
- package/src/docs/tables/citiesTable.ts +22 -0
- package/src/docs/tables/userGroupsTable.ts +12 -0
- package/src/docs/tables/usersTable.ts +33 -0
- package/src/docs/tables/usersToUserGroups.ts +14 -0
- package/src/docs/types/rolesType.ts +4 -0
- package/src/errors/baseError.ts +47 -0
- package/src/errors/builderError.ts +31 -0
- package/src/errors/dbErrors.ts +24 -0
- package/src/index.ts +20 -0
- package/src/indexes/tableIndex.ts +25 -0
- package/src/logger/abstractLogger.ts +4 -0
- package/src/logger/consoleLogger.ts +11 -0
- package/src/mappers/index.ts +0 -0
- package/src/mappers/responseMapper.ts +46 -0
- package/src/migrator/index.ts +0 -0
- package/src/migrator/migrator.ts +97 -0
- package/src/serializer/serializer.ts +336 -0
- package/src/tables/abstractTable.ts +188 -0
- package/src/tables/index.ts +4 -0
- package/src/tables/inferTypes.ts +67 -0
- package/src/tables/migrationsTable.ts +11 -0
- package/src/types/type.ts +15 -0
- package/src/utils/ecranate.ts +4 -0
- package/tsconfig.json +14 -0
|
@@ -0,0 +1,29 @@
|
|
|
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
|
+
const pg_1 = require("pg");
|
|
7
|
+
const db_1 = __importDefault(require("./db"));
|
|
8
|
+
const session_1 = __importDefault(require("./session"));
|
|
9
|
+
class DBStringConnector {
|
|
10
|
+
constructor(url) {
|
|
11
|
+
this.connect = async () => {
|
|
12
|
+
const config = {
|
|
13
|
+
connectionString: this._url,
|
|
14
|
+
};
|
|
15
|
+
try {
|
|
16
|
+
const pool = new pg_1.Pool(config);
|
|
17
|
+
await pool.connect();
|
|
18
|
+
// console.log('Db connected!');
|
|
19
|
+
return new db_1.default(new session_1.default(pool));
|
|
20
|
+
}
|
|
21
|
+
catch (e) {
|
|
22
|
+
// console.log(`Connection error: ${e.message}`);
|
|
23
|
+
throw new Error(`Connection error: ${e.message}`);
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
this._url = url;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.default = DBStringConnector;
|
|
File without changes
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// const _groupBy = <T, K extends keyof any>(list: T[], getKey: (item: T) => K) => {
|
|
3
|
+
// list.reduce((previous, currentItem) => {
|
|
4
|
+
// const group = getKey(currentItem);
|
|
5
|
+
// // eslint-disable-next-line no-param-reassign
|
|
6
|
+
// if (!previous[group]) previous[group] = [];
|
|
7
|
+
// previous[group].push(currentItem);
|
|
8
|
+
// return previous;
|
|
9
|
+
// }, {} as Record<K, T[]>);
|
|
10
|
+
// };
|
|
11
|
+
// const groupBy = (xs, key) => xs.reduce((rv, x) => {
|
|
12
|
+
// (rv[x[key]] = rv[x[key]] || []).push(x);
|
|
13
|
+
// return rv;
|
|
14
|
+
// }, {});
|
|
15
|
+
// interface Mapp {
|
|
16
|
+
// [key: string]: any;
|
|
17
|
+
// }
|
|
18
|
+
// const groupBy1 = <K, V>(list: Array<K>, keyGetter: (input: V) => K): Map<K, Array<V>> => {
|
|
19
|
+
// const map = new Map<K, Array<V>>();
|
|
20
|
+
// list.forEach((item) => {
|
|
21
|
+
// const key = keyGetter(item as unknown as V);
|
|
22
|
+
// const collection = map.get(key);
|
|
23
|
+
// console.log(collection);
|
|
24
|
+
// console.log(map.has(key));
|
|
25
|
+
// if (!collection) {
|
|
26
|
+
// map.set(key, [item as unknown as V]);
|
|
27
|
+
// } else {
|
|
28
|
+
// collection.push(item as unknown as V);
|
|
29
|
+
// }
|
|
30
|
+
// });
|
|
31
|
+
// return map;
|
|
32
|
+
// };
|
|
33
|
+
// interface T1 {
|
|
34
|
+
// name: string,
|
|
35
|
+
// key: number
|
|
36
|
+
// }
|
|
37
|
+
// interface T2 {
|
|
38
|
+
// name: string,
|
|
39
|
+
// hello: number
|
|
40
|
+
// }
|
|
41
|
+
// interface Person {
|
|
42
|
+
// t1: T1,
|
|
43
|
+
// t2: T2
|
|
44
|
+
// }
|
|
45
|
+
// const person: Person[] = [
|
|
46
|
+
// {
|
|
47
|
+
// t1: {
|
|
48
|
+
// name: 'name',
|
|
49
|
+
// key: 2,
|
|
50
|
+
// },
|
|
51
|
+
// t2: {
|
|
52
|
+
// name: 'name',
|
|
53
|
+
// hello: 2,
|
|
54
|
+
// },
|
|
55
|
+
// },
|
|
56
|
+
// {
|
|
57
|
+
// t1: {
|
|
58
|
+
// name: 'name',
|
|
59
|
+
// key: 2,
|
|
60
|
+
// },
|
|
61
|
+
// t2: {
|
|
62
|
+
// name: 'name3',
|
|
63
|
+
// hello: 3,
|
|
64
|
+
// },
|
|
65
|
+
// },
|
|
66
|
+
// ];
|
|
67
|
+
// const d = groupBy1(person, (i: Person) => i.t1);
|
|
68
|
+
// console.log(d);
|
package/dist/db/index.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
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.ISession = exports.DBStringConnector = exports.DbConnector = exports.DB = void 0;
|
|
7
|
+
var db_1 = require("./db");
|
|
8
|
+
Object.defineProperty(exports, "DB", { enumerable: true, get: function () { return __importDefault(db_1).default; } });
|
|
9
|
+
var dbConnector_1 = require("./dbConnector");
|
|
10
|
+
Object.defineProperty(exports, "DbConnector", { enumerable: true, get: function () { return __importDefault(dbConnector_1).default; } });
|
|
11
|
+
var dbStringConnector_1 = require("./dbStringConnector");
|
|
12
|
+
Object.defineProperty(exports, "DBStringConnector", { enumerable: true, get: function () { return __importDefault(dbStringConnector_1).default; } });
|
|
13
|
+
var session_1 = require("./session");
|
|
14
|
+
Object.defineProperty(exports, "ISession", { enumerable: true, get: function () { return session_1.ISession; } });
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Pool, QueryResult } from 'pg';
|
|
2
|
+
export declare abstract class ISession {
|
|
3
|
+
abstract execute(query: string, values?: Array<any>): Promise<QueryResult<any>>;
|
|
4
|
+
}
|
|
5
|
+
export default class Session extends ISession {
|
|
6
|
+
private pool;
|
|
7
|
+
constructor(pool: Pool);
|
|
8
|
+
execute(query: string, values?: Array<any>): Promise<QueryResult<any>>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ISession = void 0;
|
|
4
|
+
class ISession {
|
|
5
|
+
}
|
|
6
|
+
exports.ISession = ISession;
|
|
7
|
+
class Session extends ISession {
|
|
8
|
+
constructor(pool) {
|
|
9
|
+
super();
|
|
10
|
+
this.pool = pool;
|
|
11
|
+
}
|
|
12
|
+
async execute(query, values) {
|
|
13
|
+
return this.pool.query(query, values || []);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.default = Session;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,35 @@
|
|
|
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
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
7
|
+
const __1 = require("../..");
|
|
8
|
+
const builders_1 = require("../../builders");
|
|
9
|
+
const consoleLogger_1 = __importDefault(require("../../logger/consoleLogger"));
|
|
10
|
+
const citiesTable_1 = __importDefault(require("../tables/citiesTable"));
|
|
11
|
+
const userGroupsTable_1 = __importDefault(require("../tables/userGroupsTable"));
|
|
12
|
+
const usersTable_1 = __importDefault(require("../tables/usersTable"));
|
|
13
|
+
(async () => {
|
|
14
|
+
try {
|
|
15
|
+
const db = await new __1.DbConnector()
|
|
16
|
+
.connectionString('postgresql://postgres@127.0.0.1/migrator')
|
|
17
|
+
.connect();
|
|
18
|
+
db.useLogger(new consoleLogger_1.default());
|
|
19
|
+
const usersTable = new usersTable_1.default(db);
|
|
20
|
+
const citiesTable = new citiesTable_1.default(db);
|
|
21
|
+
const userGroupsTable = new userGroupsTable_1.default(db);
|
|
22
|
+
await usersTable.delete()
|
|
23
|
+
.where(builders_1.eq(usersTable.id, 6))
|
|
24
|
+
.execute();
|
|
25
|
+
const deletedCities = await citiesTable.delete()
|
|
26
|
+
.where(builders_1.eq(citiesTable.id, 7))
|
|
27
|
+
.all();
|
|
28
|
+
const deletedUserGroup = await userGroupsTable.delete()
|
|
29
|
+
.where(builders_1.eq(userGroupsTable.id, 3))
|
|
30
|
+
.findOne();
|
|
31
|
+
}
|
|
32
|
+
catch (e) {
|
|
33
|
+
console.log(e);
|
|
34
|
+
}
|
|
35
|
+
})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,57 @@
|
|
|
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
|
+
const dbConnector_1 = __importDefault(require("../../db/dbConnector"));
|
|
7
|
+
const consoleLogger_1 = __importDefault(require("../../logger/consoleLogger"));
|
|
8
|
+
const citiesTable_1 = __importDefault(require("../tables/citiesTable"));
|
|
9
|
+
const userGroupsTable_1 = __importDefault(require("../tables/userGroupsTable"));
|
|
10
|
+
const usersTable_1 = __importDefault(require("../tables/usersTable"));
|
|
11
|
+
(async () => {
|
|
12
|
+
try {
|
|
13
|
+
const db = await new dbConnector_1.default()
|
|
14
|
+
.connectionString('postgresql://postgres@127.0.0.1/migrator')
|
|
15
|
+
.connect();
|
|
16
|
+
const usersTable = new usersTable_1.default(db);
|
|
17
|
+
const citiesTable = new citiesTable_1.default(db);
|
|
18
|
+
const userGroupsTable = new userGroupsTable_1.default(db);
|
|
19
|
+
// await db.session().execute(Create.table(usersTable).build());
|
|
20
|
+
// await db.session().execute(Create.table(citiesTable).build());
|
|
21
|
+
// await db.session().execute(Create.table(userGroupsTable).build());
|
|
22
|
+
db.useLogger(new consoleLogger_1.default());
|
|
23
|
+
await usersTable.insert({
|
|
24
|
+
decimalField: 12.4,
|
|
25
|
+
createdAt: new Date(),
|
|
26
|
+
role: 'foo',
|
|
27
|
+
}).execute();
|
|
28
|
+
const insertedCities = await citiesTable.insert({
|
|
29
|
+
foundationDate: new Date(),
|
|
30
|
+
}).all();
|
|
31
|
+
const insertedUserGroup = await userGroupsTable.insert({
|
|
32
|
+
name: 'firstGroup',
|
|
33
|
+
}).findOne();
|
|
34
|
+
const manyInsertedCities = await citiesTable.insertMany([{
|
|
35
|
+
foundationDate: new Date(),
|
|
36
|
+
location: 'USA',
|
|
37
|
+
}, {
|
|
38
|
+
foundationDate: new Date(),
|
|
39
|
+
location: 'USA',
|
|
40
|
+
userId: 2,
|
|
41
|
+
}]).all();
|
|
42
|
+
const conflictInsertedUsers = await usersTable.insertMany([{
|
|
43
|
+
decimalField: 12.4,
|
|
44
|
+
createdAt: new Date(),
|
|
45
|
+
role: 'foo',
|
|
46
|
+
}, {
|
|
47
|
+
decimalField: 32.4,
|
|
48
|
+
createdAt: new Date(),
|
|
49
|
+
role: 'foo',
|
|
50
|
+
phone: '+1808',
|
|
51
|
+
}])
|
|
52
|
+
.onConflict((table) => table.phoneIndex, { isArchived: true }).all();
|
|
53
|
+
}
|
|
54
|
+
catch (e) {
|
|
55
|
+
console.log(e);
|
|
56
|
+
}
|
|
57
|
+
})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,115 @@
|
|
|
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
|
+
/* eslint-disable max-len */
|
|
7
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
8
|
+
const __1 = require("../..");
|
|
9
|
+
const builders_1 = require("../../builders");
|
|
10
|
+
const consoleLogger_1 = __importDefault(require("../../logger/consoleLogger"));
|
|
11
|
+
const citiesTable_1 = __importDefault(require("../tables/citiesTable"));
|
|
12
|
+
const userGroupsTable_1 = __importDefault(require("../tables/userGroupsTable"));
|
|
13
|
+
const usersTable_1 = __importDefault(require("../tables/usersTable"));
|
|
14
|
+
const usersToUserGroups_1 = __importDefault(require("../tables/usersToUserGroups"));
|
|
15
|
+
(async () => {
|
|
16
|
+
var _a, _b, _c, _d, _e, _f;
|
|
17
|
+
try {
|
|
18
|
+
const db = await new __1.DbConnector()
|
|
19
|
+
.connectionString('postgresql://postgres@127.0.0.1/migrator')
|
|
20
|
+
.connect();
|
|
21
|
+
db.useLogger(new consoleLogger_1.default());
|
|
22
|
+
const usersTable = new usersTable_1.default(db);
|
|
23
|
+
const citiesTable = new citiesTable_1.default(db);
|
|
24
|
+
const usersToUserGroupsTable = new usersToUserGroups_1.default(db);
|
|
25
|
+
const userGroupsTable = new userGroupsTable_1.default(db);
|
|
26
|
+
// await db.session().execute(Create.table(usersTable).build());
|
|
27
|
+
// await db.session().execute(Create.table(citiesTable).build());
|
|
28
|
+
// await db.session().execute(Create.table(userGroupsTable).build());
|
|
29
|
+
// await db.session().execute(Create.table(usersToUserGroupsTable).build());
|
|
30
|
+
const userRes = await usersTable.insertMany([{
|
|
31
|
+
decimalField: 4.2,
|
|
32
|
+
createdAt: new Date(),
|
|
33
|
+
role: 'foo',
|
|
34
|
+
}, {
|
|
35
|
+
decimalField: 5.8,
|
|
36
|
+
createdAt: new Date(),
|
|
37
|
+
role: 'foo',
|
|
38
|
+
}]).all();
|
|
39
|
+
const citiesRes = await citiesTable.insertMany([{
|
|
40
|
+
foundationDate: new Date(),
|
|
41
|
+
userId: (_a = userRes[0]) === null || _a === void 0 ? void 0 : _a.id,
|
|
42
|
+
}, {
|
|
43
|
+
foundationDate: new Date(),
|
|
44
|
+
userId: (_b = userRes[1]) === null || _b === void 0 ? void 0 : _b.id,
|
|
45
|
+
}]).all();
|
|
46
|
+
const userGroups = await userGroupsTable.insertMany([{
|
|
47
|
+
name: 'firstGroup',
|
|
48
|
+
}, {
|
|
49
|
+
name: 'secondGroup',
|
|
50
|
+
}]).all();
|
|
51
|
+
await usersToUserGroupsTable.insertMany([{
|
|
52
|
+
userId: (_c = userRes[0]) === null || _c === void 0 ? void 0 : _c.id,
|
|
53
|
+
groupId: (_d = userGroups[0]) === null || _d === void 0 ? void 0 : _d.id,
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
userId: (_e = userRes[1]) === null || _e === void 0 ? void 0 : _e.id,
|
|
57
|
+
groupId: (_f = userGroups[1]) === null || _f === void 0 ? void 0 : _f.id,
|
|
58
|
+
}]).execute();
|
|
59
|
+
// map case
|
|
60
|
+
const userWithCities = await citiesTable.select()
|
|
61
|
+
.where(builders_1.eq(citiesTable.id, 1))
|
|
62
|
+
.leftJoin(usersTable_1.default, (city) => city.userId, (users) => users.id)
|
|
63
|
+
.execute();
|
|
64
|
+
const citiesWithUserObject = userWithCities.map((city, user) => ({ ...city, user }));
|
|
65
|
+
// foreach case
|
|
66
|
+
// const userWithCities1 = await citiesTable.select()
|
|
67
|
+
// .where(eq(citiesTable.id, 1))
|
|
68
|
+
// .leftJoin(UsersTable,
|
|
69
|
+
// (city) => city.userId,
|
|
70
|
+
// (users) => users.id)
|
|
71
|
+
// .execute();
|
|
72
|
+
// let user;
|
|
73
|
+
// const cities = [];
|
|
74
|
+
// userWithCities.foreach((dbCity, dbUser) => {
|
|
75
|
+
// cities.push(dbCity);
|
|
76
|
+
// user = dbUser;
|
|
77
|
+
// });
|
|
78
|
+
// const usersTable = new UsersTable(db);
|
|
79
|
+
// const citiesTable = new CitiesTable(db);
|
|
80
|
+
const sdf = await citiesTable.select({
|
|
81
|
+
id: citiesTable.id,
|
|
82
|
+
userId: citiesTable.userId,
|
|
83
|
+
}).where(builders_1.eq(citiesTable.id, 1))
|
|
84
|
+
.leftJoin(usersTable_1.default, (city) => city.userId, (users) => users.id, {
|
|
85
|
+
id: usersTable.id,
|
|
86
|
+
})
|
|
87
|
+
.execute();
|
|
88
|
+
// group case
|
|
89
|
+
const usersWithUserGroups = await usersToUserGroupsTable.select()
|
|
90
|
+
.where(builders_1.eq(userGroupsTable.id, 1))
|
|
91
|
+
.leftJoin(usersTable_1.default, (userToGroup) => userToGroup.userId, (users) => users.id, {
|
|
92
|
+
id: usersTable.id,
|
|
93
|
+
})
|
|
94
|
+
.leftJoin(usersToUserGroups_1.default, userGroupsTable_1.default, (userToGroup) => userToGroup.groupId, (userGroup) => userGroup.id, {
|
|
95
|
+
id: userGroupsTable.id,
|
|
96
|
+
})
|
|
97
|
+
.execute();
|
|
98
|
+
const userGroupWithUsers = usersWithUserGroups.group({
|
|
99
|
+
one: (_, dbUser, dbUserGroup) => dbUser,
|
|
100
|
+
many: (_, dbUser, dbUserGroup) => dbUserGroup,
|
|
101
|
+
});
|
|
102
|
+
// const userWithGroups: ExtractModel<UsersTable> & { groups: ExtractModel<UserGroupsTable>[] } = {
|
|
103
|
+
// ...userGroupWithUsers.one,
|
|
104
|
+
// groups: userGroupWithUsers.many,
|
|
105
|
+
// };
|
|
106
|
+
// console.log('city', city!);
|
|
107
|
+
// console.log('cityUsers', cityUsers);
|
|
108
|
+
// console.log('cityWithUsers', forEachCities);
|
|
109
|
+
// console.log('cityWithUsers1', forEachUsers);
|
|
110
|
+
// how to handle many-to-many relations
|
|
111
|
+
}
|
|
112
|
+
catch (e) {
|
|
113
|
+
console.log(e);
|
|
114
|
+
}
|
|
115
|
+
})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,50 @@
|
|
|
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
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
7
|
+
const __1 = require("../..");
|
|
8
|
+
const builders_1 = require("../../builders");
|
|
9
|
+
const order_1 = __importDefault(require("../../builders/highLvlBuilders/order"));
|
|
10
|
+
const static_1 = require("../../builders/requestBuilders/where/static");
|
|
11
|
+
const consoleLogger_1 = __importDefault(require("../../logger/consoleLogger"));
|
|
12
|
+
const usersTable_1 = __importDefault(require("../tables/usersTable"));
|
|
13
|
+
(async () => {
|
|
14
|
+
try {
|
|
15
|
+
const db = await new __1.DbConnector()
|
|
16
|
+
.connectionString('postgresql://postgres@127.0.0.1/migrator')
|
|
17
|
+
.connect();
|
|
18
|
+
const usersTable = new usersTable_1.default(db);
|
|
19
|
+
db.useLogger(new consoleLogger_1.default());
|
|
20
|
+
// select all
|
|
21
|
+
const allSelect = await usersTable.select().all();
|
|
22
|
+
// select first
|
|
23
|
+
const firstSelect = await usersTable.select().all();
|
|
24
|
+
// select using filters
|
|
25
|
+
const eqSelect = await usersTable.select().where(builders_1.eq(usersTable.phone, 'hello')).all();
|
|
26
|
+
const andSelect = await usersTable.select().where(builders_1.and([builders_1.eq(usersTable.phone, 'hello')])).all();
|
|
27
|
+
const orSelect = await usersTable.select().where(builders_1.or([builders_1.eq(usersTable.phone, 'hello')])).all();
|
|
28
|
+
// select using limit, offset
|
|
29
|
+
const limitOffsetSelect = await usersTable.select().limit(20).offset(20).all();
|
|
30
|
+
const likeSelect = await usersTable.select().where(builders_1.like(usersTable.phone, 'hello')).all();
|
|
31
|
+
const inArraySelect = await usersTable.select().where(static_1.inArray(usersTable.phone, ['hello'])).all();
|
|
32
|
+
const greaterSelect = await usersTable.select().where(static_1.greater(usersTable.bigIntField, 3)).all();
|
|
33
|
+
const lessSelect = await usersTable.select().where(static_1.less(usersTable.bigIntField, 3)).all();
|
|
34
|
+
const greaterEqSelect = await usersTable.select().where(static_1.greaterEq(usersTable.bigIntField, 3))
|
|
35
|
+
.all();
|
|
36
|
+
const lessEqSelect = await usersTable.select().where(static_1.lessEq(usersTable.bigIntField, 3));
|
|
37
|
+
const isNullSelect = await usersTable.select().where(static_1.isNull(usersTable.phone)).all();
|
|
38
|
+
const notEqSelect = await usersTable.select().where(static_1.notEq(usersTable.phone, 'hello')).all();
|
|
39
|
+
const partialSelect = await usersTable.select({
|
|
40
|
+
mappedId: usersTable.id,
|
|
41
|
+
mappedPhone: usersTable.phone,
|
|
42
|
+
}).all();
|
|
43
|
+
// const { mappedId, mappedPhone } = partialSelect;
|
|
44
|
+
// ordered select
|
|
45
|
+
const ordered = await usersTable.select().orderBy((table) => table.phone, order_1.default.ASC).all();
|
|
46
|
+
}
|
|
47
|
+
catch (e) {
|
|
48
|
+
console.log(e);
|
|
49
|
+
}
|
|
50
|
+
})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,39 @@
|
|
|
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
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
7
|
+
const __1 = require("../..");
|
|
8
|
+
const builders_1 = require("../../builders");
|
|
9
|
+
const consoleLogger_1 = __importDefault(require("../../logger/consoleLogger"));
|
|
10
|
+
const citiesTable_1 = __importDefault(require("../tables/citiesTable"));
|
|
11
|
+
const userGroupsTable_1 = __importDefault(require("../tables/userGroupsTable"));
|
|
12
|
+
const usersTable_1 = __importDefault(require("../tables/usersTable"));
|
|
13
|
+
(async () => {
|
|
14
|
+
try {
|
|
15
|
+
const db = await new __1.DbConnector()
|
|
16
|
+
.connectionString('postgresql://postgres@127.0.0.1/migrator')
|
|
17
|
+
.connect();
|
|
18
|
+
db.useLogger(new consoleLogger_1.default());
|
|
19
|
+
const usersTable = new usersTable_1.default(db);
|
|
20
|
+
const citiesTable = new citiesTable_1.default(db);
|
|
21
|
+
const userGroupsTable = new userGroupsTable_1.default(db);
|
|
22
|
+
await usersTable.update()
|
|
23
|
+
.where(builders_1.eq(usersTable.phone, 'hello'))
|
|
24
|
+
.set({ fullName: 'newName' })
|
|
25
|
+
.execute();
|
|
26
|
+
const updatedCities = await citiesTable.update()
|
|
27
|
+
.where(builders_1.eq(citiesTable.location, 'USA'))
|
|
28
|
+
.set({ metadata: { population: 1, connection: 'first' } })
|
|
29
|
+
.all();
|
|
30
|
+
console.log(updatedCities);
|
|
31
|
+
const updatedUserGroup = await userGroupsTable.update()
|
|
32
|
+
.where(builders_1.eq(userGroupsTable.id, 1))
|
|
33
|
+
.set({ description: 'updated description' })
|
|
34
|
+
.all();
|
|
35
|
+
}
|
|
36
|
+
catch (e) {
|
|
37
|
+
console.log(e);
|
|
38
|
+
}
|
|
39
|
+
})();
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import AbstractTable from '../../tables/abstractTable';
|
|
2
|
+
interface CityMeta {
|
|
3
|
+
population: number;
|
|
4
|
+
connection: string;
|
|
5
|
+
}
|
|
6
|
+
export default class CitiesTable extends AbstractTable<CitiesTable> {
|
|
7
|
+
id: import("../..").Column<import("../../columns/types/pgSerial").default, true, true, this>;
|
|
8
|
+
foundationDate: import("../..").Column<import("../..").PgTimestamp, false, false, this>;
|
|
9
|
+
location: import("../..").Column<import("../..").PgVarChar, true, false, this>;
|
|
10
|
+
userId: import("../..").Column<import("../..").PgInteger, true, false, this>;
|
|
11
|
+
metadata: import("../..").Column<import("../..").PgJsonb<CityMeta>, true, false, this>;
|
|
12
|
+
tableName(): string;
|
|
13
|
+
}
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
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
|
+
const abstractTable_1 = __importDefault(require("../../tables/abstractTable"));
|
|
7
|
+
const usersTable_1 = __importDefault(require("./usersTable"));
|
|
8
|
+
class CitiesTable extends abstractTable_1.default {
|
|
9
|
+
constructor() {
|
|
10
|
+
super(...arguments);
|
|
11
|
+
this.id = this.serial('id').primaryKey();
|
|
12
|
+
this.foundationDate = this.timestamp('name').notNull();
|
|
13
|
+
this.location = this.varchar('page', { size: 256 });
|
|
14
|
+
this.userId = this.int('user_id').foreignKey(usersTable_1.default, (table) => table.id, { onUpdate: 'CASCADE' });
|
|
15
|
+
this.metadata = this.jsonb('metadata');
|
|
16
|
+
}
|
|
17
|
+
tableName() {
|
|
18
|
+
return 'cities';
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.default = CitiesTable;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import AbstractTable from '../../tables/abstractTable';
|
|
2
|
+
export default class UserGroupsTable extends AbstractTable<UserGroupsTable> {
|
|
3
|
+
id: import("../..").Column<import("../../columns/types/pgSerial").default, true, true, this>;
|
|
4
|
+
name: import("../..").Column<import("../..").PgVarChar, true, false, this>;
|
|
5
|
+
description: import("../..").Column<import("../..").PgVarChar, true, false, this>;
|
|
6
|
+
tableName(): string;
|
|
7
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
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
|
+
const abstractTable_1 = __importDefault(require("../../tables/abstractTable"));
|
|
7
|
+
class UserGroupsTable extends abstractTable_1.default {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this.id = this.serial('id').primaryKey();
|
|
11
|
+
this.name = this.varchar('name');
|
|
12
|
+
this.description = this.varchar('description');
|
|
13
|
+
}
|
|
14
|
+
tableName() {
|
|
15
|
+
return 'user_groups';
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.default = UserGroupsTable;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import AbstractTable from '../../tables/abstractTable';
|
|
2
|
+
export declare const rolesEnum: import("../../types/type").default<"foo" | "bar" | "baz">;
|
|
3
|
+
export default class UsersTable extends AbstractTable<UsersTable> {
|
|
4
|
+
id: import("../../columns/column").Column<import("../../columns/types/pgSerial").default, true, true, this>;
|
|
5
|
+
fullName: import("../../columns/column").Column<import("../..").PgText, true, false, this>;
|
|
6
|
+
phone: import("../../columns/column").Column<import("../..").PgVarChar, true, false, this>;
|
|
7
|
+
media: import("../../columns/column").Column<import("../..").PgJsonb<string[]>, true, false, this>;
|
|
8
|
+
decimalField: import("../../columns/column").Column<import("../..").PgBigDecimal, false, false, this>;
|
|
9
|
+
bigIntField: import("../../columns/column").Column<import("../..").PgBigInt, true, false, this>;
|
|
10
|
+
role: import("../../columns/column").Column<import("../../columns/types/pgEnum").default<"foo" | "bar" | "baz">, false, false, this>;
|
|
11
|
+
createdAt: import("../../columns/column").Column<import("../..").PgTimestamp, false, false, this>;
|
|
12
|
+
updatedAt: import("../../columns/column").Column<import("../..").PgTimestamp, true, false, this>;
|
|
13
|
+
isArchived: import("../../columns/column").Column<import("../..").PgBoolean, true, false, this>;
|
|
14
|
+
phoneFullNameIndex: import("../../indexes/tableIndex").default;
|
|
15
|
+
phoneIndex: import("../../indexes/tableIndex").default;
|
|
16
|
+
tableName(): string;
|
|
17
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
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.rolesEnum = void 0;
|
|
7
|
+
/* eslint-disable max-classes-per-file */
|
|
8
|
+
// import { Defaults } from '../../columns/column';
|
|
9
|
+
const column_1 = require("../../columns/column");
|
|
10
|
+
const abstractTable_1 = __importDefault(require("../../tables/abstractTable"));
|
|
11
|
+
const type_1 = require("../../types/type");
|
|
12
|
+
// import { rolesEnum } from '../types/rolesType';
|
|
13
|
+
exports.rolesEnum = type_1.createEnum({ alias: 'test-enum', values: ['foo', 'bar', 'baz'] });
|
|
14
|
+
class UsersTable extends abstractTable_1.default {
|
|
15
|
+
constructor() {
|
|
16
|
+
super(...arguments);
|
|
17
|
+
this.id = this.serial('id').primaryKey();
|
|
18
|
+
this.fullName = this.text('full_name');
|
|
19
|
+
this.phone = this.varchar('phone', { size: 256 });
|
|
20
|
+
this.media = this.jsonb('media');
|
|
21
|
+
this.decimalField = this.decimal('test', { precision: 100, scale: 2 }).notNull();
|
|
22
|
+
this.bigIntField = this.bigint('test1', 'max_bytes_53');
|
|
23
|
+
this.role = this.type(exports.rolesEnum, 'name_in_table').notNull();
|
|
24
|
+
this.createdAt = this.timestamp('created_at').notNull();
|
|
25
|
+
// public createdAtWithTimezone = this.timestamptz('created_at');
|
|
26
|
+
this.updatedAt = this.timestamp('updated_at').defaultValue(column_1.Defaults.CURRENT_TIMESTAMP);
|
|
27
|
+
this.isArchived = this.bool('is_archived').defaultValue(false);
|
|
28
|
+
this.phoneFullNameIndex = this.index([this.phone, this.fullName]);
|
|
29
|
+
this.phoneIndex = this.uniqueIndex(this.phone);
|
|
30
|
+
}
|
|
31
|
+
tableName() {
|
|
32
|
+
return 'users';
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.default = UsersTable;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import AbstractTable from '../../tables/abstractTable';
|
|
2
|
+
export default class UsersToUserGroupsTable extends AbstractTable<UsersToUserGroupsTable> {
|
|
3
|
+
groupId: import("../..").Column<import("../..").PgInteger, true, false, this>;
|
|
4
|
+
userId: import("../..").Column<import("../..").PgInteger, true, false, this>;
|
|
5
|
+
manyToManyIndex: import("../../indexes/tableIndex").default;
|
|
6
|
+
tableName(): string;
|
|
7
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
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
|
+
const abstractTable_1 = __importDefault(require("../../tables/abstractTable"));
|
|
7
|
+
const userGroupsTable_1 = __importDefault(require("./userGroupsTable"));
|
|
8
|
+
const usersTable_1 = __importDefault(require("./usersTable"));
|
|
9
|
+
class UsersToUserGroupsTable extends abstractTable_1.default {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments);
|
|
12
|
+
this.groupId = this.int('city_id').foreignKey(userGroupsTable_1.default, (table) => table.id, { onDelete: 'CASCADE' });
|
|
13
|
+
this.userId = this.int('user_id').foreignKey(usersTable_1.default, (table) => table.id, { onDelete: 'CASCADE' });
|
|
14
|
+
this.manyToManyIndex = this.index([this.groupId, this.userId]);
|
|
15
|
+
}
|
|
16
|
+
tableName() {
|
|
17
|
+
return 'users_to_user_groups';
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.default = UsersToUserGroupsTable;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const rolesEnum: import("../../types/type").default<"foo" | "bar" | "baz">;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.rolesEnum = void 0;
|
|
4
|
+
const type_1 = require("../../types/type");
|
|
5
|
+
// eslint-disable-next-line import/prefer-default-export
|
|
6
|
+
exports.rolesEnum = type_1.createEnum({ alias: 'test-enum', values: ['foo', 'bar', 'baz'] });
|