drizzle-orm 0.10.25 → 0.10.28
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 +13 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { Column, ExtractColumnType, Defaults } from './column';
|
|
2
|
+
export { default as PgBigDecimal } from './types/pgBigDecimal';
|
|
3
|
+
export { default as PgBigInt } from './types/pgBigInt';
|
|
4
|
+
export { default as PgBoolean } from './types/pgBoolean';
|
|
5
|
+
export { default as PgInteger } from './types/pgInteger';
|
|
6
|
+
export { default as PgJsonb } from './types/pgJsonb';
|
|
7
|
+
export { default as PgText } from './types/pgText';
|
|
8
|
+
export { default as PgTime } from './types/pgTime';
|
|
9
|
+
export { default as PgTimestamp } from './types/pgTimestamp';
|
|
10
|
+
export { default as PgVarChar } from './types/pgVarChar';
|
|
@@ -0,0 +1,27 @@
|
|
|
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.PgVarChar = exports.PgTimestamp = exports.PgTime = exports.PgText = exports.PgJsonb = exports.PgInteger = exports.PgBoolean = exports.PgBigInt = exports.PgBigDecimal = exports.Defaults = exports.Column = void 0;
|
|
7
|
+
var column_1 = require("./column");
|
|
8
|
+
Object.defineProperty(exports, "Column", { enumerable: true, get: function () { return column_1.Column; } });
|
|
9
|
+
Object.defineProperty(exports, "Defaults", { enumerable: true, get: function () { return column_1.Defaults; } });
|
|
10
|
+
var pgBigDecimal_1 = require("./types/pgBigDecimal");
|
|
11
|
+
Object.defineProperty(exports, "PgBigDecimal", { enumerable: true, get: function () { return __importDefault(pgBigDecimal_1).default; } });
|
|
12
|
+
var pgBigInt_1 = require("./types/pgBigInt");
|
|
13
|
+
Object.defineProperty(exports, "PgBigInt", { enumerable: true, get: function () { return __importDefault(pgBigInt_1).default; } });
|
|
14
|
+
var pgBoolean_1 = require("./types/pgBoolean");
|
|
15
|
+
Object.defineProperty(exports, "PgBoolean", { enumerable: true, get: function () { return __importDefault(pgBoolean_1).default; } });
|
|
16
|
+
var pgInteger_1 = require("./types/pgInteger");
|
|
17
|
+
Object.defineProperty(exports, "PgInteger", { enumerable: true, get: function () { return __importDefault(pgInteger_1).default; } });
|
|
18
|
+
var pgJsonb_1 = require("./types/pgJsonb");
|
|
19
|
+
Object.defineProperty(exports, "PgJsonb", { enumerable: true, get: function () { return __importDefault(pgJsonb_1).default; } });
|
|
20
|
+
var pgText_1 = require("./types/pgText");
|
|
21
|
+
Object.defineProperty(exports, "PgText", { enumerable: true, get: function () { return __importDefault(pgText_1).default; } });
|
|
22
|
+
var pgTime_1 = require("./types/pgTime");
|
|
23
|
+
Object.defineProperty(exports, "PgTime", { enumerable: true, get: function () { return __importDefault(pgTime_1).default; } });
|
|
24
|
+
var pgTimestamp_1 = require("./types/pgTimestamp");
|
|
25
|
+
Object.defineProperty(exports, "PgTimestamp", { enumerable: true, get: function () { return __importDefault(pgTimestamp_1).default; } });
|
|
26
|
+
var pgVarChar_1 = require("./types/pgVarChar");
|
|
27
|
+
Object.defineProperty(exports, "PgVarChar", { enumerable: true, get: function () { return __importDefault(pgVarChar_1).default; } });
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export default abstract class ColumnType<TCodeType = {}> {
|
|
2
|
+
codeType: TCodeType;
|
|
3
|
+
protected abstract dbName: string;
|
|
4
|
+
abstract getDbName(): string;
|
|
5
|
+
abstract insertStrategy(value: TCodeType): string;
|
|
6
|
+
abstract selectStrategy(value: any): TCodeType | undefined;
|
|
7
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import ColumnType from './columnType';
|
|
2
|
+
export default class PgBigDecimal extends ColumnType<number> {
|
|
3
|
+
precision?: number;
|
|
4
|
+
scale?: number;
|
|
5
|
+
dbName: string;
|
|
6
|
+
constructor(precision?: number, scale?: number);
|
|
7
|
+
getDbName: () => string;
|
|
8
|
+
insertStrategy: (value: number) => string;
|
|
9
|
+
selectStrategy(value: string): number | undefined;
|
|
10
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
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 columnType_1 = __importDefault(require("./columnType"));
|
|
7
|
+
class PgBigDecimal extends columnType_1.default {
|
|
8
|
+
constructor(precision, scale) {
|
|
9
|
+
super();
|
|
10
|
+
this.getDbName = () => this.dbName;
|
|
11
|
+
this.insertStrategy = (value) => `${value}`;
|
|
12
|
+
this.precision = precision;
|
|
13
|
+
this.scale = scale;
|
|
14
|
+
if (this.scale && !this.precision) {
|
|
15
|
+
throw new Error('In numeric scale should be set up together with precision');
|
|
16
|
+
}
|
|
17
|
+
if (this.precision && !this.scale) {
|
|
18
|
+
this.dbName = `numeric(${this.precision})`;
|
|
19
|
+
}
|
|
20
|
+
else if (this.precision && this.scale) {
|
|
21
|
+
this.dbName = `numeric(${this.precision},${this.scale})`;
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
this.dbName = 'numeric';
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
selectStrategy(value) {
|
|
28
|
+
return value ? parseFloat(value) : undefined;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.default = PgBigDecimal;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import ColumnType from './columnType';
|
|
2
|
+
export default class PgBigInt53 extends ColumnType<number> {
|
|
3
|
+
dbName: string;
|
|
4
|
+
constructor();
|
|
5
|
+
getDbName: () => string;
|
|
6
|
+
insertStrategy: (value: number) => string;
|
|
7
|
+
selectStrategy(value: string): number | undefined;
|
|
8
|
+
}
|
|
9
|
+
export declare class PgBigInt64 extends ColumnType<bigint> {
|
|
10
|
+
dbName: string;
|
|
11
|
+
constructor();
|
|
12
|
+
getDbName: () => string;
|
|
13
|
+
insertStrategy: (value: bigint) => string;
|
|
14
|
+
selectStrategy(value: string): bigint | undefined;
|
|
15
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
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.PgBigInt64 = void 0;
|
|
7
|
+
// eslint-disable-next-line max-classes-per-file
|
|
8
|
+
const columnType_1 = __importDefault(require("./columnType"));
|
|
9
|
+
class PgBigInt53 extends columnType_1.default {
|
|
10
|
+
constructor() {
|
|
11
|
+
super();
|
|
12
|
+
this.getDbName = () => this.dbName;
|
|
13
|
+
this.insertStrategy = (value) => `${value}`;
|
|
14
|
+
this.dbName = 'BIGINT';
|
|
15
|
+
}
|
|
16
|
+
selectStrategy(value) {
|
|
17
|
+
return value ? parseInt(value, 10) : undefined;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.default = PgBigInt53;
|
|
21
|
+
class PgBigInt64 extends columnType_1.default {
|
|
22
|
+
constructor() {
|
|
23
|
+
super();
|
|
24
|
+
this.getDbName = () => this.dbName;
|
|
25
|
+
this.insertStrategy = (value) => `${value}`;
|
|
26
|
+
this.dbName = 'BIGINT';
|
|
27
|
+
}
|
|
28
|
+
selectStrategy(value) {
|
|
29
|
+
return value ? BigInt(value) : undefined;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.PgBigInt64 = PgBigInt64;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import ColumnType from './columnType';
|
|
2
|
+
export default class PgBigSerial53 extends ColumnType<number> {
|
|
3
|
+
dbName: string;
|
|
4
|
+
constructor();
|
|
5
|
+
getDbName: () => string;
|
|
6
|
+
insertStrategy: (value: number) => string;
|
|
7
|
+
selectStrategy(value: string): number | undefined;
|
|
8
|
+
}
|
|
9
|
+
export declare class PgBigSerial64 extends ColumnType<bigint> {
|
|
10
|
+
dbName: string;
|
|
11
|
+
constructor();
|
|
12
|
+
getDbName: () => string;
|
|
13
|
+
insertStrategy: (value: bigint) => string;
|
|
14
|
+
selectStrategy(value: string): bigint | undefined;
|
|
15
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
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.PgBigSerial64 = void 0;
|
|
7
|
+
/* eslint-disable max-classes-per-file */
|
|
8
|
+
const columnType_1 = __importDefault(require("./columnType"));
|
|
9
|
+
class PgBigSerial53 extends columnType_1.default {
|
|
10
|
+
constructor() {
|
|
11
|
+
super();
|
|
12
|
+
this.getDbName = () => this.dbName;
|
|
13
|
+
this.insertStrategy = (value) => `${value}`;
|
|
14
|
+
this.dbName = 'BIGSERIAL';
|
|
15
|
+
}
|
|
16
|
+
selectStrategy(value) {
|
|
17
|
+
return value ? parseInt(value, 10) : undefined;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.default = PgBigSerial53;
|
|
21
|
+
class PgBigSerial64 extends columnType_1.default {
|
|
22
|
+
constructor() {
|
|
23
|
+
super();
|
|
24
|
+
this.getDbName = () => this.dbName;
|
|
25
|
+
this.insertStrategy = (value) => `${value}`;
|
|
26
|
+
this.dbName = 'BIGSERIAL';
|
|
27
|
+
}
|
|
28
|
+
selectStrategy(value) {
|
|
29
|
+
return value ? BigInt(value) : undefined;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.PgBigSerial64 = PgBigSerial64;
|
|
@@ -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 columnType_1 = __importDefault(require("./columnType"));
|
|
7
|
+
class PgBoolean extends columnType_1.default {
|
|
8
|
+
constructor() {
|
|
9
|
+
super();
|
|
10
|
+
this.getDbName = () => this.dbName;
|
|
11
|
+
this.insertStrategy = (value) => `${value}`;
|
|
12
|
+
this.dbName = 'boolean';
|
|
13
|
+
}
|
|
14
|
+
selectStrategy(value) {
|
|
15
|
+
return value;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.default = PgBoolean;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import ColumnType from './columnType';
|
|
2
|
+
export default class PgEnum<TCodeType> extends ColumnType {
|
|
3
|
+
codeType: TCodeType;
|
|
4
|
+
dbName: string;
|
|
5
|
+
constructor(dbName: string);
|
|
6
|
+
getDbName: () => string;
|
|
7
|
+
insertStrategy: (value: TCodeType) => string;
|
|
8
|
+
selectStrategy(value: any): TCodeType;
|
|
9
|
+
}
|
|
@@ -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 columnType_1 = __importDefault(require("./columnType"));
|
|
7
|
+
class PgEnum extends columnType_1.default {
|
|
8
|
+
constructor(dbName) {
|
|
9
|
+
super();
|
|
10
|
+
this.getDbName = () => this.dbName;
|
|
11
|
+
this.insertStrategy = (value) => `${value}`;
|
|
12
|
+
this.dbName = dbName;
|
|
13
|
+
}
|
|
14
|
+
selectStrategy(value) {
|
|
15
|
+
return value;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.default = PgEnum;
|
|
@@ -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 columnType_1 = __importDefault(require("./columnType"));
|
|
7
|
+
class PgInteger extends columnType_1.default {
|
|
8
|
+
constructor() {
|
|
9
|
+
super();
|
|
10
|
+
this.getDbName = () => this.dbName;
|
|
11
|
+
this.insertStrategy = (value) => `${value}`;
|
|
12
|
+
this.dbName = 'INT';
|
|
13
|
+
}
|
|
14
|
+
selectStrategy(value) {
|
|
15
|
+
if (typeof value === 'string') {
|
|
16
|
+
return value ? parseInt(value, 10) : undefined;
|
|
17
|
+
}
|
|
18
|
+
return value;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.default = PgInteger;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import ColumnType from './columnType';
|
|
2
|
+
export default class PgJsonb<TCodeType> extends ColumnType<TCodeType> {
|
|
3
|
+
codeType: TCodeType;
|
|
4
|
+
dbName: string;
|
|
5
|
+
constructor();
|
|
6
|
+
getDbName: () => string;
|
|
7
|
+
insertStrategy: (value: TCodeType) => string;
|
|
8
|
+
selectStrategy(value: any): TCodeType;
|
|
9
|
+
}
|
|
@@ -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
|
+
/* eslint-disable max-len */
|
|
7
|
+
const columnType_1 = __importDefault(require("./columnType"));
|
|
8
|
+
class PgJsonb extends columnType_1.default {
|
|
9
|
+
constructor() {
|
|
10
|
+
super();
|
|
11
|
+
this.getDbName = () => this.dbName;
|
|
12
|
+
// public insertStrategy = (value: TCodeType): string => `'${JSON.stringify(value).replace(/'/g, "''")}'::jsonb`;
|
|
13
|
+
this.insertStrategy = (value) => `${JSON.stringify(value).replace(/'/g, "''")}`;
|
|
14
|
+
this.dbName = 'JSONB';
|
|
15
|
+
}
|
|
16
|
+
selectStrategy(value) {
|
|
17
|
+
return value;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.default = PgJsonb;
|
|
@@ -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 columnType_1 = __importDefault(require("./columnType"));
|
|
7
|
+
class PgSerial extends columnType_1.default {
|
|
8
|
+
constructor() {
|
|
9
|
+
super();
|
|
10
|
+
this.getDbName = () => this.dbName;
|
|
11
|
+
this.insertStrategy = (value) => `${value}`;
|
|
12
|
+
this.dbName = 'SERIAL';
|
|
13
|
+
}
|
|
14
|
+
selectStrategy(value) {
|
|
15
|
+
return value;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.default = PgSerial;
|
|
@@ -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 columnType_1 = __importDefault(require("./columnType"));
|
|
7
|
+
class PgSmallInt extends columnType_1.default {
|
|
8
|
+
constructor() {
|
|
9
|
+
super();
|
|
10
|
+
this.getDbName = () => this.dbName;
|
|
11
|
+
this.insertStrategy = (value) => `${value}`;
|
|
12
|
+
this.dbName = 'SMALLINT';
|
|
13
|
+
}
|
|
14
|
+
selectStrategy(value) {
|
|
15
|
+
return value;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.default = PgSmallInt;
|
|
@@ -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 columnType_1 = __importDefault(require("./columnType"));
|
|
7
|
+
class PgText extends columnType_1.default {
|
|
8
|
+
constructor() {
|
|
9
|
+
super();
|
|
10
|
+
this.getDbName = () => this.dbName;
|
|
11
|
+
this.insertStrategy = (value) => `${value.replace(/'/g, "''")}`;
|
|
12
|
+
this.dbName = 'TEXT';
|
|
13
|
+
}
|
|
14
|
+
selectStrategy(value) {
|
|
15
|
+
return value;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.default = PgText;
|
|
@@ -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 columnType_1 = __importDefault(require("./columnType"));
|
|
7
|
+
class PgTime extends columnType_1.default {
|
|
8
|
+
constructor() {
|
|
9
|
+
super();
|
|
10
|
+
this.getDbName = () => this.dbName;
|
|
11
|
+
this.insertStrategy = (value) => value.toISOString();
|
|
12
|
+
this.dbName = 'time without time zone';
|
|
13
|
+
}
|
|
14
|
+
selectStrategy(value) {
|
|
15
|
+
return value;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.default = PgTime;
|
|
@@ -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 columnType_1 = __importDefault(require("./columnType"));
|
|
7
|
+
class PgTimestamp extends columnType_1.default {
|
|
8
|
+
constructor() {
|
|
9
|
+
super();
|
|
10
|
+
this.getDbName = () => this.dbName;
|
|
11
|
+
this.insertStrategy = (value) => `${value.toISOString()}`;
|
|
12
|
+
this.dbName = 'timestamp without time zone';
|
|
13
|
+
}
|
|
14
|
+
selectStrategy(value) {
|
|
15
|
+
return value;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.default = PgTimestamp;
|
|
@@ -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 columnType_1 = __importDefault(require("./columnType"));
|
|
7
|
+
class PgTimestamptz extends columnType_1.default {
|
|
8
|
+
constructor() {
|
|
9
|
+
super();
|
|
10
|
+
this.getDbName = () => this.dbName;
|
|
11
|
+
this.insertStrategy = (value) => `${value.toISOString()}`;
|
|
12
|
+
this.dbName = 'timestamp with time zone';
|
|
13
|
+
}
|
|
14
|
+
selectStrategy(value) {
|
|
15
|
+
return value;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.default = PgTimestamptz;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import ColumnType from './columnType';
|
|
2
|
+
export default class PgVarChar extends ColumnType<string> {
|
|
3
|
+
size?: number;
|
|
4
|
+
protected dbName: string;
|
|
5
|
+
constructor(size?: number);
|
|
6
|
+
getDbName: () => string;
|
|
7
|
+
insertStrategy: (value: string) => string;
|
|
8
|
+
selectStrategy(value: string): string;
|
|
9
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
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 columnType_1 = __importDefault(require("./columnType"));
|
|
7
|
+
class PgVarChar extends columnType_1.default {
|
|
8
|
+
constructor(size) {
|
|
9
|
+
super();
|
|
10
|
+
this.getDbName = () => this.dbName;
|
|
11
|
+
this.insertStrategy = (value) => `${value.replace(/'/g, "''")}`;
|
|
12
|
+
this.size = size;
|
|
13
|
+
if (size) {
|
|
14
|
+
this.dbName = `character varying(${size})`;
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
this.dbName = 'character varying';
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
selectStrategy(value) {
|
|
21
|
+
return value;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.default = PgVarChar;
|
package/dist/db/db.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import BaseLogger from '../logger/abstractLogger';
|
|
2
|
+
import { AbstractTable } from '../tables';
|
|
3
|
+
import { ISession } from './session';
|
|
4
|
+
export declare type TableConstructor = {
|
|
5
|
+
new (db: DB): AbstractTable<any>;
|
|
6
|
+
};
|
|
7
|
+
export default class DB {
|
|
8
|
+
protected _session: ISession;
|
|
9
|
+
protected _logger?: BaseLogger;
|
|
10
|
+
protected _cache: Map<TableConstructor, AbstractTable<any>>;
|
|
11
|
+
constructor(session: ISession);
|
|
12
|
+
create<TTable extends AbstractTable<TTable>>(t: new (db: DB) => TTable): TTable;
|
|
13
|
+
useLogger: (logger: BaseLogger) => void;
|
|
14
|
+
cache: () => Map<TableConstructor, AbstractTable<any>>;
|
|
15
|
+
logger: () => BaseLogger | undefined;
|
|
16
|
+
session: () => ISession;
|
|
17
|
+
protected instanceFor<TTable extends AbstractTable<TTable>>(t: new (db: DB) => TTable): AbstractTable<any> | undefined;
|
|
18
|
+
}
|
package/dist/db/db.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
class DB {
|
|
4
|
+
constructor(session) {
|
|
5
|
+
this._cache = new Map();
|
|
6
|
+
this.useLogger = (logger) => {
|
|
7
|
+
this._logger = logger;
|
|
8
|
+
};
|
|
9
|
+
this.cache = () => this._cache;
|
|
10
|
+
this.logger = () => this._logger;
|
|
11
|
+
this.session = () => this._session;
|
|
12
|
+
this._session = session;
|
|
13
|
+
}
|
|
14
|
+
create(t) {
|
|
15
|
+
if (!this._cache.has(t)) {
|
|
16
|
+
// eslint-disable-next-line new-cap
|
|
17
|
+
this._cache.set(t, new t(this));
|
|
18
|
+
}
|
|
19
|
+
return this._cache.get(t);
|
|
20
|
+
}
|
|
21
|
+
instanceFor(t) {
|
|
22
|
+
return this._cache.get(t);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.default = DB;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ClientConfig } from 'pg';
|
|
2
|
+
import DB from './db';
|
|
3
|
+
import DBStringConnector from './dbStringConnector';
|
|
4
|
+
export default class DbConnector {
|
|
5
|
+
private __config;
|
|
6
|
+
connectionString: (url: string) => DBStringConnector;
|
|
7
|
+
params: (config: ClientConfig) => DbConnector;
|
|
8
|
+
connect: () => Promise<DB>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
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 dbStringConnector_1 = __importDefault(require("./dbStringConnector"));
|
|
9
|
+
const session_1 = __importDefault(require("./session"));
|
|
10
|
+
class DbConnector {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.connectionString = (url) => new dbStringConnector_1.default(url);
|
|
13
|
+
this.params = (config) => {
|
|
14
|
+
this.__config = config;
|
|
15
|
+
return this;
|
|
16
|
+
};
|
|
17
|
+
this.connect = async () => {
|
|
18
|
+
try {
|
|
19
|
+
const pool = new pg_1.Pool(this.__config);
|
|
20
|
+
await pool.connect();
|
|
21
|
+
// console.log('Db connected!');
|
|
22
|
+
// check if table structure is the same as in code
|
|
23
|
+
return new db_1.default(new session_1.default(pool));
|
|
24
|
+
}
|
|
25
|
+
catch (e) {
|
|
26
|
+
// console.log(`Connection error: ${e.message}`);
|
|
27
|
+
throw new Error(`Connection error: ${e.message}`);
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.default = DbConnector;
|