drizzle-orm 0.9.0 → 0.9.4
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/builders/aggregators/abstractAggregator.d.ts +9 -0
- package/builders/aggregators/abstractAggregator.js +28 -0
- package/builders/aggregators/deleteAggregator.d.ts +12 -0
- package/builders/aggregators/deleteAggregator.js +36 -0
- package/builders/aggregators/insertAggregator.d.ts +18 -0
- package/builders/aggregators/insertAggregator.js +94 -0
- package/builders/aggregators/selectAggregator.d.ts +26 -0
- package/builders/aggregators/selectAggregator.js +106 -0
- package/builders/aggregators/updateAggregator.d.ts +15 -0
- package/builders/aggregators/updateAggregator.js +41 -0
- package/builders/highLvlBuilders/abstractRequestBuilder.d.ts +21 -0
- package/builders/highLvlBuilders/abstractRequestBuilder.js +21 -0
- package/builders/highLvlBuilders/deleteRequestBuilder.d.ts +17 -0
- package/builders/highLvlBuilders/deleteRequestBuilder.js +43 -0
- package/builders/highLvlBuilders/insertRequestBuilder.d.ts +18 -0
- package/builders/highLvlBuilders/insertRequestBuilder.js +54 -0
- package/builders/highLvlBuilders/order.d.ts +5 -0
- package/builders/highLvlBuilders/order.js +8 -0
- package/builders/highLvlBuilders/selectRequestBuilder.d.ts +42 -0
- package/builders/highLvlBuilders/selectRequestBuilder.js +99 -0
- package/builders/highLvlBuilders/updateRequestBuilder.d.ts +20 -0
- package/builders/highLvlBuilders/updateRequestBuilder.js +54 -0
- package/{src/builders/index.ts → builders/index.d.ts} +2 -4
- package/builders/index.js +50 -0
- package/builders/joinBuilders/builders/abstractJoinBuilder.d.ts +27 -0
- package/builders/joinBuilders/builders/abstractJoinBuilder.js +42 -0
- package/builders/joinBuilders/builders/selectWithFiveJoins.d.ts +23 -0
- package/builders/joinBuilders/builders/selectWithFiveJoins.js +33 -0
- package/builders/joinBuilders/builders/selectWithFourJoins.d.ts +36 -0
- package/builders/joinBuilders/builders/selectWithFourJoins.js +65 -0
- package/builders/joinBuilders/builders/selectWithJoin.d.ts +33 -0
- package/builders/joinBuilders/builders/selectWithJoin.js +56 -0
- package/builders/joinBuilders/builders/selectWithThreeJoins.d.ts +35 -0
- package/builders/joinBuilders/builders/selectWithThreeJoins.js +62 -0
- package/builders/joinBuilders/builders/selectWithTwoJoins.d.ts +34 -0
- package/builders/joinBuilders/builders/selectWithTwoJoins.js +59 -0
- package/builders/joinBuilders/join.d.ts +23 -0
- package/builders/joinBuilders/join.js +28 -0
- package/builders/joinBuilders/joinWith.d.ts +14 -0
- package/builders/joinBuilders/joinWith.js +11 -0
- package/builders/joinBuilders/responses/selectResponseFiveJoins.d.ts +19 -0
- package/builders/joinBuilders/responses/selectResponseFiveJoins.js +35 -0
- package/builders/joinBuilders/responses/selectResponseFourJoins.d.ts +18 -0
- package/builders/joinBuilders/responses/selectResponseFourJoins.js +34 -0
- package/builders/joinBuilders/responses/selectResponseThreeJoins.d.ts +17 -0
- package/builders/joinBuilders/responses/selectResponseThreeJoins.js +33 -0
- package/builders/joinBuilders/responses/selectResponseTwoJoins.d.ts +16 -0
- package/builders/joinBuilders/responses/selectResponseTwoJoins.js +32 -0
- package/builders/joinBuilders/responses/selectResponseWithJoin.d.ts +15 -0
- package/builders/joinBuilders/responses/selectResponseWithJoin.js +31 -0
- package/builders/joinBuilders/static.d.ts +5 -0
- package/builders/joinBuilders/static.js +6 -0
- package/{src/builders/lowLvlBuilders/alter.ts → builders/lowLvlBuilders/alter.d.ts} +0 -0
- package/builders/lowLvlBuilders/alter.js +1 -0
- package/builders/lowLvlBuilders/create.d.ts +12 -0
- package/builders/lowLvlBuilders/create.js +97 -0
- package/builders/lowLvlBuilders/delets/delete.d.ts +5 -0
- package/builders/lowLvlBuilders/delets/delete.js +12 -0
- package/builders/lowLvlBuilders/delets/deleteFilter.d.ts +8 -0
- package/builders/lowLvlBuilders/delets/deleteFilter.js +13 -0
- package/builders/lowLvlBuilders/delets/deleteFrom.d.ts +9 -0
- package/builders/lowLvlBuilders/delets/deleteFrom.js +11 -0
- package/builders/lowLvlBuilders/inserts/insert.d.ts +5 -0
- package/builders/lowLvlBuilders/inserts/insert.js +12 -0
- package/builders/lowLvlBuilders/inserts/insertInto.d.ts +10 -0
- package/builders/lowLvlBuilders/inserts/insertInto.js +13 -0
- package/builders/lowLvlBuilders/inserts/onConflictInsert.d.ts +9 -0
- package/builders/lowLvlBuilders/inserts/onConflictInsert.js +13 -0
- package/builders/lowLvlBuilders/inserts/valuesInsert.d.ts +13 -0
- package/builders/lowLvlBuilders/inserts/valuesInsert.js +16 -0
- package/builders/lowLvlBuilders/selects/select.d.ts +5 -0
- package/builders/lowLvlBuilders/selects/select.js +12 -0
- package/builders/lowLvlBuilders/selects/selectFrom.d.ts +19 -0
- package/builders/lowLvlBuilders/selects/selectFrom.js +31 -0
- package/builders/lowLvlBuilders/selects/selectJoined.d.ts +17 -0
- package/builders/lowLvlBuilders/selects/selectJoined.js +27 -0
- package/builders/lowLvlBuilders/selects/whereSelect.d.ts +14 -0
- package/builders/lowLvlBuilders/selects/whereSelect.js +25 -0
- package/builders/lowLvlBuilders/updates/update.d.ts +5 -0
- package/builders/lowLvlBuilders/updates/update.js +12 -0
- package/builders/lowLvlBuilders/updates/updateIn.d.ts +10 -0
- package/builders/lowLvlBuilders/updates/updateIn.js +12 -0
- package/builders/lowLvlBuilders/updates/whereSelect.d.ts +8 -0
- package/builders/lowLvlBuilders/updates/whereSelect.js +13 -0
- package/builders/lowLvlBuilders/updates/whereSet.d.ts +11 -0
- package/builders/lowLvlBuilders/updates/whereSet.js +15 -0
- package/builders/requestBuilders/updates/combine.d.ts +6 -0
- package/builders/requestBuilders/updates/combine.js +21 -0
- package/builders/requestBuilders/updates/setObjects.d.ts +9 -0
- package/builders/requestBuilders/updates/setObjects.js +12 -0
- package/builders/requestBuilders/updates/static.d.ts +6 -0
- package/builders/requestBuilders/updates/static.js +9 -0
- package/{src/builders/requestBuilders/updates/updates.ts → builders/requestBuilders/updates/updates.d.ts} +1 -1
- package/builders/requestBuilders/updates/updates.js +5 -0
- package/builders/requestBuilders/where/and.d.ts +6 -0
- package/builders/requestBuilders/where/and.js +22 -0
- package/builders/requestBuilders/where/const.d.ts +6 -0
- package/builders/requestBuilders/where/const.js +17 -0
- package/builders/requestBuilders/where/constArray.d.ts +6 -0
- package/builders/requestBuilders/where/constArray.js +27 -0
- package/builders/requestBuilders/where/eqWhere.d.ts +7 -0
- package/builders/requestBuilders/where/eqWhere.js +12 -0
- package/builders/requestBuilders/where/greater.d.ts +10 -0
- package/builders/requestBuilders/where/greater.js +12 -0
- package/builders/requestBuilders/where/greaterEq.d.ts +10 -0
- package/builders/requestBuilders/where/greaterEq.js +12 -0
- package/builders/requestBuilders/where/in.d.ts +7 -0
- package/builders/requestBuilders/where/in.js +12 -0
- package/builders/requestBuilders/where/isNull.d.ts +6 -0
- package/builders/requestBuilders/where/isNull.js +11 -0
- package/builders/requestBuilders/where/less.d.ts +10 -0
- package/builders/requestBuilders/where/less.js +12 -0
- package/builders/requestBuilders/where/lessEq.d.ts +10 -0
- package/builders/requestBuilders/where/lessEq.js +12 -0
- package/builders/requestBuilders/where/like.d.ts +7 -0
- package/builders/requestBuilders/where/like.js +12 -0
- package/builders/requestBuilders/where/notEqWhere.d.ts +7 -0
- package/builders/requestBuilders/where/notEqWhere.js +12 -0
- package/builders/requestBuilders/where/or.d.ts +6 -0
- package/builders/requestBuilders/where/or.js +22 -0
- package/builders/requestBuilders/where/rawWhere.d.ts +6 -0
- package/builders/requestBuilders/where/rawWhere.js +11 -0
- package/builders/requestBuilders/where/static.d.ts +16 -0
- package/builders/requestBuilders/where/static.js +43 -0
- package/builders/requestBuilders/where/var.d.ts +8 -0
- package/builders/requestBuilders/where/var.js +12 -0
- package/{src/builders/requestBuilders/where/where.ts → builders/requestBuilders/where/where.d.ts} +1 -1
- package/builders/requestBuilders/where/where.js +5 -0
- package/builders/transaction/transaction.d.ts +8 -0
- package/builders/transaction/transaction.js +20 -0
- package/columns/column.d.ts +61 -0
- package/columns/column.js +98 -0
- package/{src/columns/index.ts → columns/index.d.ts} +0 -0
- package/columns/index.js +23 -0
- package/columns/types/columnType.d.ts +7 -0
- package/columns/types/columnType.js +6 -0
- package/columns/types/pgBigDecimal.d.ts +10 -0
- package/columns/types/pgBigDecimal.js +28 -0
- package/columns/types/pgBigInt.d.ts +8 -0
- package/columns/types/pgBigInt.js +17 -0
- package/columns/types/pgBoolean.d.ts +8 -0
- package/columns/types/pgBoolean.js +15 -0
- package/columns/types/pgEnum.d.ts +9 -0
- package/columns/types/pgEnum.js +15 -0
- package/columns/types/pgInteger.d.ts +8 -0
- package/columns/types/pgInteger.js +15 -0
- package/columns/types/pgJsonb.d.ts +9 -0
- package/columns/types/pgJsonb.js +15 -0
- package/columns/types/pgText.d.ts +8 -0
- package/columns/types/pgText.js +15 -0
- package/columns/types/pgTime.d.ts +8 -0
- package/columns/types/pgTime.js +15 -0
- package/columns/types/pgTimestamp.d.ts +8 -0
- package/columns/types/pgTimestamp.js +15 -0
- package/columns/types/pgVarChar.d.ts +9 -0
- package/columns/types/pgVarChar.js +21 -0
- package/db/db.d.ts +19 -0
- package/db/db.js +26 -0
- package/db/dbConnector.d.ts +9 -0
- package/db/dbConnector.js +28 -0
- package/db/dbStringConnector.d.ts +6 -0
- package/db/dbStringConnector.js +25 -0
- package/{src/mappers/index.ts → db/group_by.d.ts} +0 -0
- package/db/group_by.js +68 -0
- package/{src/db/index.ts → db/index.d.ts} +0 -0
- package/db/index.js +9 -0
- package/db/session.d.ts +7 -0
- package/db/session.js +20 -0
- package/docs/cases/simple_delete.d.ts +1 -0
- package/docs/cases/simple_delete.js +30 -0
- package/docs/cases/simple_insert.d.ts +1 -0
- package/docs/cases/simple_insert.js +51 -0
- package/docs/cases/simple_join.d.ts +1 -0
- package/docs/cases/simple_join.js +95 -0
- package/docs/cases/simple_select.d.ts +1 -0
- package/docs/cases/simple_select.js +39 -0
- package/docs/cases/simple_update.d.ts +1 -0
- package/docs/cases/simple_update.js +33 -0
- package/docs/tables/citiesTable.d.ts +14 -0
- package/docs/tables/citiesTable.js +19 -0
- package/docs/tables/citiesToUsers.d.ts +7 -0
- package/docs/tables/citiesToUsers.js +18 -0
- package/docs/tables/userGroupsTable.d.ts +7 -0
- package/docs/tables/userGroupsTable.js +15 -0
- package/docs/tables/usersTable.d.ts +17 -0
- package/docs/tables/usersTable.js +29 -0
- package/docs/tables/usersToUserGroups.d.ts +7 -0
- package/docs/tables/usersToUserGroups.js +18 -0
- package/docs/types/rolesType.d.ts +1 -0
- package/docs/types/rolesType.js +6 -0
- package/errors/baseError.d.ts +22 -0
- package/errors/baseError.js +35 -0
- package/errors/builderError.d.ts +14 -0
- package/errors/builderError.js +24 -0
- package/errors/dbErrors.d.ts +12 -0
- package/errors/dbErrors.js +28 -0
- package/index.d.ts +13 -0
- package/index.js +32 -0
- package/indexes/tableIndex.d.ts +11 -0
- package/indexes/tableIndex.js +17 -0
- package/logger/abstractLogger.d.ts +4 -0
- package/logger/abstractLogger.js +5 -0
- package/logger/consoleLogger.d.ts +5 -0
- package/logger/consoleLogger.js +12 -0
- package/{src/migrator/index.ts → mappers/index.d.ts} +0 -0
- package/mappers/index.js +1 -0
- package/mappers/responseMapper.d.ts +7 -0
- package/mappers/responseMapper.js +23 -0
- package/migrator/index.d.ts +0 -0
- package/migrator/index.js +1 -0
- package/migrator/migrator.d.ts +16 -0
- package/migrator/migrator.js +101 -0
- package/package.json +2 -2
- package/serializer/serializer.d.ts +40 -0
- package/serializer/serializer.js +74 -0
- package/tables/abstractTable.d.ts +118 -0
- package/tables/abstractTable.js +116 -0
- package/{src/tables/index.ts → tables/index.d.ts} +0 -0
- package/tables/index.js +8 -0
- package/tables/inferTypes.d.ts +19 -0
- package/tables/inferTypes.js +2 -0
- package/tables/migrationsTable.d.ts +8 -0
- package/tables/migrationsTable.js +16 -0
- package/test.d.ts +1 -0
- package/test.js +81 -0
- package/types/type.d.ts +10 -0
- package/types/type.js +14 -0
- package/utils/ecranate.d.ts +2 -0
- package/utils/ecranate.js +8 -0
- package/.eslintrc +0 -26
- package/.tslintignore +0 -1
- package/LICENSE +0 -674
- package/README.md +0 -147
- package/src/builders/aggregators/abstractAggregator.ts +0 -37
- package/src/builders/aggregators/deleteAggregator.ts +0 -34
- package/src/builders/aggregators/insertAggregator.ts +0 -116
- package/src/builders/aggregators/selectAggregator.ts +0 -102
- package/src/builders/aggregators/updateAggregator.ts +0 -45
- package/src/builders/highLvlBuilders/abstractRequestBuilder.ts +0 -37
- package/src/builders/highLvlBuilders/deleteRequestBuilder.ts +0 -59
- package/src/builders/highLvlBuilders/insertRequestBuilder.ts +0 -87
- package/src/builders/highLvlBuilders/order.ts +0 -4
- package/src/builders/highLvlBuilders/selectRequestBuilder.ts +0 -102
- package/src/builders/highLvlBuilders/updateRequestBuilder.ts +0 -63
- package/src/builders/joinBuilders/builders/abstractJoinBuilder.ts +0 -22
- package/src/builders/joinBuilders/builders/selectWithFourJoins.ts +0 -71
- package/src/builders/joinBuilders/builders/selectWithJoin.ts +0 -67
- package/src/builders/joinBuilders/builders/selectWithThreeJoins.ts +0 -78
- package/src/builders/joinBuilders/builders/selectWithTwoJoins.ts +0 -72
- package/src/builders/joinBuilders/join.ts +0 -37
- package/src/builders/joinBuilders/joinWith.ts +0 -19
- package/src/builders/joinBuilders/responses/selectResponseFourJoins.ts +0 -33
- package/src/builders/joinBuilders/responses/selectResponseThreeJoins.ts +0 -29
- package/src/builders/joinBuilders/responses/selectResponseTwoJoins.ts +0 -22
- package/src/builders/joinBuilders/responses/selectResponseWithJoin.ts +0 -28
- package/src/builders/joinBuilders/static.ts +0 -9
- package/src/builders/lowLvlBuilders/create.ts +0 -114
- package/src/builders/lowLvlBuilders/delets/delete.ts +0 -10
- package/src/builders/lowLvlBuilders/delets/deleteFilter.ts +0 -17
- package/src/builders/lowLvlBuilders/delets/deleteFrom.ts +0 -15
- package/src/builders/lowLvlBuilders/inserts/insert.ts +0 -12
- package/src/builders/lowLvlBuilders/inserts/insertInto.ts +0 -18
- package/src/builders/lowLvlBuilders/inserts/onConflictInsert.ts +0 -19
- package/src/builders/lowLvlBuilders/inserts/valuesInsert.ts +0 -30
- package/src/builders/lowLvlBuilders/selects/select.ts +0 -12
- package/src/builders/lowLvlBuilders/selects/selectFrom.ts +0 -38
- package/src/builders/lowLvlBuilders/selects/selectJoined.ts +0 -40
- package/src/builders/lowLvlBuilders/selects/whereSelect.ts +0 -35
- package/src/builders/lowLvlBuilders/updates/update.ts +0 -10
- package/src/builders/lowLvlBuilders/updates/updateIn.ts +0 -22
- package/src/builders/lowLvlBuilders/updates/whereSelect.ts +0 -17
- package/src/builders/lowLvlBuilders/updates/whereSet.ts +0 -21
- package/src/builders/requestBuilders/updates/combine.ts +0 -25
- package/src/builders/requestBuilders/updates/setObjects.ts +0 -18
- package/src/builders/requestBuilders/updates/static.ts +0 -11
- package/src/builders/requestBuilders/where/and.ts +0 -26
- package/src/builders/requestBuilders/where/const.ts +0 -18
- package/src/builders/requestBuilders/where/constArray.ts +0 -27
- package/src/builders/requestBuilders/where/eqWhere.ts +0 -14
- package/src/builders/requestBuilders/where/greater.ts +0 -14
- package/src/builders/requestBuilders/where/greaterEq.ts +0 -14
- package/src/builders/requestBuilders/where/in.ts +0 -14
- package/src/builders/requestBuilders/where/less.ts +0 -14
- package/src/builders/requestBuilders/where/lessEq.ts +0 -14
- package/src/builders/requestBuilders/where/like.ts +0 -14
- package/src/builders/requestBuilders/where/or.ts +0 -26
- package/src/builders/requestBuilders/where/static.ts +0 -42
- package/src/builders/requestBuilders/where/var.ts +0 -15
- package/src/builders/transaction/transaction.ts +0 -21
- package/src/columns/column.ts +0 -86
- package/src/columns/types/columnType.ts +0 -7
- package/src/columns/types/pgBigDecimal.ts +0 -29
- package/src/columns/types/pgBigInt.ts +0 -20
- package/src/columns/types/pgBoolean.ts +0 -18
- package/src/columns/types/pgEnum.ts +0 -22
- package/src/columns/types/pgInteger.ts +0 -18
- package/src/columns/types/pgJsonb.ts +0 -19
- package/src/columns/types/pgText.ts +0 -18
- package/src/columns/types/pgTime.ts +0 -18
- package/src/columns/types/pgTimestamp.ts +0 -18
- package/src/columns/types/pgVarChar.ts +0 -24
- package/src/db/db.ts +0 -29
- package/src/db/dbConnector.ts +0 -30
- package/src/db/dbStringConnector.ts +0 -28
- package/src/db/session.ts +0 -21
- package/src/errors/baseError.ts +0 -47
- package/src/errors/builderError.ts +0 -30
- package/src/errors/dbErrors.ts +0 -24
- package/src/examples/tables/authOtpTable.ts +0 -17
- package/src/examples/tables/cityTable.ts +0 -15
- package/src/examples/tables/usersTable.ts +0 -18
- package/src/examples/testEnum.ts +0 -6
- package/src/index.ts +0 -40
- package/src/indexes/tableIndex.ts +0 -19
- package/src/logger/abstractLogger.ts +0 -4
- package/src/logger/consoleLogger.ts +0 -11
- package/src/mappers/responseMapper.ts +0 -24
- package/src/migrator/migrator.ts +0 -110
- package/src/serializer/Untitled.js +0 -72
- package/src/serializer/out.json +0 -140
- package/src/tables/abstractTable.ts +0 -183
- package/src/tables/inferTypes.ts +0 -34
- package/src/tables/migrationsTable.ts +0 -12
- package/src/utils/ecranate.ts +0 -4
- package/tsconfig.json +0 -29
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
4
|
+
const __1 = require("../..");
|
|
5
|
+
const builders_1 = require("../../builders");
|
|
6
|
+
const order_1 = require("../../builders/highLvlBuilders/order");
|
|
7
|
+
const static_1 = require("../../builders/requestBuilders/where/static");
|
|
8
|
+
const usersTable_1 = require("../tables/usersTable");
|
|
9
|
+
(async () => {
|
|
10
|
+
try {
|
|
11
|
+
const db = await new __1.DbConnector()
|
|
12
|
+
.connectionString('postgresql://postgres@127.0.0.1/drizzle')
|
|
13
|
+
.connect();
|
|
14
|
+
const usersTable = new usersTable_1.default(db);
|
|
15
|
+
// select all
|
|
16
|
+
const allSelect = await usersTable.select().all();
|
|
17
|
+
// select first
|
|
18
|
+
const firstSelect = await usersTable.select().first();
|
|
19
|
+
// select using filters
|
|
20
|
+
const eqSelect = await usersTable.select().where(builders_1.eq(usersTable.phone, 'hello')).all();
|
|
21
|
+
const andSelect = await usersTable.select().where(builders_1.and([builders_1.eq(usersTable.phone, 'hello')])).all();
|
|
22
|
+
const orSelect = await usersTable.select().where(builders_1.or([builders_1.eq(usersTable.phone, 'hello')])).all();
|
|
23
|
+
// select using limit, offset
|
|
24
|
+
const limitOffsetSelect = await usersTable.select({ limit: 10, offset: 10 }).all();
|
|
25
|
+
const likeSelect = await usersTable.select().where(builders_1.like(usersTable.phone, 'hello')).all();
|
|
26
|
+
const inArraySelect = usersTable.select().where(static_1.inArray(usersTable.phone, ['hello'])).all();
|
|
27
|
+
const greaterSelect = usersTable.select().where(static_1.greater(usersTable.bigIntField, 3)).all();
|
|
28
|
+
const lessSelect = usersTable.select().where(static_1.less(usersTable.bigIntField, 3)).all();
|
|
29
|
+
const greaterEqSelect = usersTable.select().where(static_1.greaterEq(usersTable.bigIntField, 3)).all();
|
|
30
|
+
const lessEqSelect = usersTable.select().where(static_1.lessEq(usersTable.bigIntField, 3)).all();
|
|
31
|
+
const isNullSelect = usersTable.select().where(static_1.isNull(usersTable.phone)).all();
|
|
32
|
+
const notEqSelect = usersTable.select().where(static_1.notEq(usersTable.phone, 'hello')).all();
|
|
33
|
+
// ordered select
|
|
34
|
+
const ordered = await usersTable.select().orderBy((table) => table.phone, order_1.default.ASC).all();
|
|
35
|
+
}
|
|
36
|
+
catch (e) {
|
|
37
|
+
console.log(e);
|
|
38
|
+
}
|
|
39
|
+
})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
4
|
+
const __1 = require("../..");
|
|
5
|
+
const builders_1 = require("../../builders");
|
|
6
|
+
const citiesTable_1 = require("../tables/citiesTable");
|
|
7
|
+
const userGroupsTable_1 = require("../tables/userGroupsTable");
|
|
8
|
+
const usersTable_1 = require("../tables/usersTable");
|
|
9
|
+
(async () => {
|
|
10
|
+
try {
|
|
11
|
+
const db = await new __1.DbConnector()
|
|
12
|
+
.connectionString('postgresql://postgres@127.0.0.1/drizzle')
|
|
13
|
+
.connect();
|
|
14
|
+
const usersTable = new usersTable_1.default(db);
|
|
15
|
+
const citiesTable = new citiesTable_1.default(db);
|
|
16
|
+
const userGroupsTable = new userGroupsTable_1.default(db);
|
|
17
|
+
await usersTable.update()
|
|
18
|
+
.where(builders_1.eq(usersTable.phone, 'hello'))
|
|
19
|
+
.set({ fullName: 'newName' })
|
|
20
|
+
.execute();
|
|
21
|
+
const updatedCities = await citiesTable.update()
|
|
22
|
+
.where(builders_1.eq(citiesTable.location, 'USA'))
|
|
23
|
+
.set({ metadata: { population: 1, connection: 'first' } })
|
|
24
|
+
.all();
|
|
25
|
+
const updatedUserGroup = await userGroupsTable.update()
|
|
26
|
+
.where(builders_1.eq(userGroupsTable.id, 1))
|
|
27
|
+
.set({ description: 'updated description' })
|
|
28
|
+
.first();
|
|
29
|
+
}
|
|
30
|
+
catch (e) {
|
|
31
|
+
console.log(e);
|
|
32
|
+
}
|
|
33
|
+
})();
|
|
@@ -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("../../columns/column").IndexedColumn<import("../..").PgInteger, true, true>;
|
|
8
|
+
foundationDate: import("../../columns/column").Column<import("../..").PgTimestamp, false, false>;
|
|
9
|
+
location: import("../../columns/column").Column<import("../..").PgVarChar, true, false>;
|
|
10
|
+
userId: import("../../columns/column").Column<import("../..").PgInteger, true, false>;
|
|
11
|
+
metadata: import("../../columns/column").Column<import("../..").PgJsonb<CityMeta>, true, false>;
|
|
12
|
+
tableName(): string;
|
|
13
|
+
}
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const column_1 = require("../../columns/column");
|
|
4
|
+
const abstractTable_1 = require("../../tables/abstractTable");
|
|
5
|
+
const usersTable_1 = require("./usersTable");
|
|
6
|
+
class CitiesTable extends abstractTable_1.default {
|
|
7
|
+
constructor() {
|
|
8
|
+
super(...arguments);
|
|
9
|
+
this.id = this.int('id').autoIncrement().primaryKey();
|
|
10
|
+
this.foundationDate = this.timestamp('name', { notNull: true });
|
|
11
|
+
this.location = this.varchar('page', { size: 256 });
|
|
12
|
+
this.userId = this.int('user_id').foreignKey(usersTable_1.default, (table) => table.id, column_1.OnDelete.CASCADE);
|
|
13
|
+
this.metadata = this.jsonb('metadata');
|
|
14
|
+
}
|
|
15
|
+
tableName() {
|
|
16
|
+
return 'cities';
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.default = CitiesTable;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import AbstractTable from '../../tables/abstractTable';
|
|
2
|
+
export default class UsersToUserGroupsTable extends AbstractTable<UsersToUserGroupsTable> {
|
|
3
|
+
groupId: import("../../columns/column").Column<import("../..").PgInteger, true, false>;
|
|
4
|
+
userId: import("../../columns/column").Column<import("../..").PgInteger, true, false>;
|
|
5
|
+
manyToManyIndex: import("../../indexes/tableIndex").default;
|
|
6
|
+
tableName(): string;
|
|
7
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const column_1 = require("../../columns/column");
|
|
4
|
+
const abstractTable_1 = require("../../tables/abstractTable");
|
|
5
|
+
const userGroupsTable_1 = require("./userGroupsTable");
|
|
6
|
+
const usersTable_1 = require("./usersTable");
|
|
7
|
+
class UsersToUserGroupsTable extends abstractTable_1.default {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this.groupId = this.int('city_id').foreignKey(userGroupsTable_1.default, (table) => table.id, column_1.OnDelete.CASCADE);
|
|
11
|
+
this.userId = this.int('user_id').foreignKey(usersTable_1.default, (table) => table.id, column_1.OnDelete.CASCADE);
|
|
12
|
+
this.manyToManyIndex = this.index([this.groupId, this.userId]);
|
|
13
|
+
}
|
|
14
|
+
tableName() {
|
|
15
|
+
return 'users_to_user_groups';
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.default = UsersToUserGroupsTable;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import AbstractTable from '../../tables/abstractTable';
|
|
2
|
+
export default class UserGroupsTable extends AbstractTable<UserGroupsTable> {
|
|
3
|
+
id: import("../../columns/column").IndexedColumn<import("../..").PgInteger, true, true>;
|
|
4
|
+
name: import("../..").Column<import("../..").PgVarChar, true, false>;
|
|
5
|
+
description: import("../..").Column<import("../..").PgVarChar, true, false>;
|
|
6
|
+
tableName(): string;
|
|
7
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const abstractTable_1 = require("../../tables/abstractTable");
|
|
4
|
+
class UserGroupsTable extends abstractTable_1.default {
|
|
5
|
+
constructor() {
|
|
6
|
+
super(...arguments);
|
|
7
|
+
this.id = this.int('id').autoIncrement().primaryKey();
|
|
8
|
+
this.name = this.varchar('name');
|
|
9
|
+
this.description = this.varchar('description');
|
|
10
|
+
}
|
|
11
|
+
tableName() {
|
|
12
|
+
return 'user_groups';
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.default = UserGroupsTable;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import AbstractTable from '../../tables/abstractTable';
|
|
2
|
+
export declare const rolesEnum: import("../../types/type").default<"user" | "guest" | "admin">;
|
|
3
|
+
export default class UsersTable extends AbstractTable<UsersTable> {
|
|
4
|
+
id: import("../../columns/column").IndexedColumn<import("../..").PgInteger, true, true>;
|
|
5
|
+
fullName: import("../..").Column<import("../..").PgText, true, false>;
|
|
6
|
+
phone: import("../..").Column<import("../..").PgVarChar, true, false>;
|
|
7
|
+
media: import("../..").Column<import("../..").PgJsonb<string[]>, true, false>;
|
|
8
|
+
decimalField: import("../..").Column<import("../..").PgBigDecimal, false, false>;
|
|
9
|
+
bigIntField: import("../..").Column<import("../..").PgBigInt, true, false>;
|
|
10
|
+
role: import("../..").Column<import("../../columns/types/pgEnum").default<"user" | "guest" | "admin">, false, false>;
|
|
11
|
+
createdAt: import("../..").Column<import("../..").PgTimestamp, false, false>;
|
|
12
|
+
updatedAt: import("../..").Column<import("../..").PgTimestamp, true, false>;
|
|
13
|
+
isArchived: import("../..").Column<import("../..").PgBoolean, true, false>;
|
|
14
|
+
phoneFullNameIndex: import("../../indexes/tableIndex").default;
|
|
15
|
+
phoneIndex: import("../../indexes/tableIndex").default;
|
|
16
|
+
tableName(): string;
|
|
17
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.rolesEnum = void 0;
|
|
4
|
+
/* eslint-disable max-classes-per-file */
|
|
5
|
+
const abstractTable_1 = require("../../tables/abstractTable");
|
|
6
|
+
const type_1 = require("../../types/type");
|
|
7
|
+
// import { rolesEnum } from '../types/rolesType';
|
|
8
|
+
exports.rolesEnum = type_1.createEnum({ alias: 'test-enum', values: ['user', 'guest', 'admin'] });
|
|
9
|
+
class UsersTable extends abstractTable_1.default {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments);
|
|
12
|
+
this.id = this.int('id').autoIncrement().primaryKey();
|
|
13
|
+
this.fullName = this.text('full_name');
|
|
14
|
+
this.phone = this.varchar('phone', { size: 256 });
|
|
15
|
+
this.media = this.jsonb('media');
|
|
16
|
+
this.decimalField = this.decimal('test', { notNull: true, precision: 100, scale: 2 });
|
|
17
|
+
this.bigIntField = this.bigint('test1');
|
|
18
|
+
this.role = this.type(exports.rolesEnum, 'name_in_table', { notNull: true });
|
|
19
|
+
this.createdAt = this.timestamp('created_at', { notNull: true });
|
|
20
|
+
this.updatedAt = this.timestamp('updated_at');
|
|
21
|
+
this.isArchived = this.bool('is_archived').defaultValue(false);
|
|
22
|
+
this.phoneFullNameIndex = this.index([this.phone, this.fullName]);
|
|
23
|
+
this.phoneIndex = this.uniqueIndex(this.phone);
|
|
24
|
+
}
|
|
25
|
+
tableName() {
|
|
26
|
+
return 'users';
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.default = UsersTable;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import AbstractTable from '../../tables/abstractTable';
|
|
2
|
+
export default class UsersToUserGroupsTable extends AbstractTable<UsersToUserGroupsTable> {
|
|
3
|
+
groupId: import("../../columns/column").Column<import("../..").PgInteger, true, false>;
|
|
4
|
+
userId: import("../../columns/column").Column<import("../..").PgInteger, true, false>;
|
|
5
|
+
manyToManyIndex: import("../../indexes/tableIndex").default;
|
|
6
|
+
tableName(): string;
|
|
7
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const column_1 = require("../../columns/column");
|
|
4
|
+
const abstractTable_1 = require("../../tables/abstractTable");
|
|
5
|
+
const userGroupsTable_1 = require("./userGroupsTable");
|
|
6
|
+
const usersTable_1 = require("./usersTable");
|
|
7
|
+
class UsersToUserGroupsTable extends abstractTable_1.default {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this.groupId = this.int('city_id').foreignKey(userGroupsTable_1.default, (table) => table.id, column_1.OnDelete.CASCADE);
|
|
11
|
+
this.userId = this.int('user_id').foreignKey(usersTable_1.default, (table) => table.id, column_1.OnDelete.CASCADE);
|
|
12
|
+
this.manyToManyIndex = this.index([this.groupId, this.userId]);
|
|
13
|
+
}
|
|
14
|
+
tableName() {
|
|
15
|
+
return 'users_to_user_groups';
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
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'] });
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface Failure {
|
|
2
|
+
type: PgSessionError;
|
|
3
|
+
reason: Error;
|
|
4
|
+
}
|
|
5
|
+
export declare enum PgSessionError {
|
|
6
|
+
PgQueryExecutionError = 0
|
|
7
|
+
}
|
|
8
|
+
export declare type Either<L, A> = Left<L, A> | Right<L, A>;
|
|
9
|
+
export declare class Left<L, A> {
|
|
10
|
+
readonly value: L;
|
|
11
|
+
constructor(value: L);
|
|
12
|
+
isLeft(): this is Left<L, A>;
|
|
13
|
+
isRight(): this is Right<L, A>;
|
|
14
|
+
}
|
|
15
|
+
export declare class Right<L, A> {
|
|
16
|
+
readonly value: A;
|
|
17
|
+
constructor(value: A);
|
|
18
|
+
isLeft(): this is Left<L, A>;
|
|
19
|
+
isRight(): this is Right<L, A>;
|
|
20
|
+
}
|
|
21
|
+
export declare const left: <L, A>(l: L) => Either<L, A>;
|
|
22
|
+
export declare const right: <L, A>(a: A) => Either<L, A>;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.right = exports.left = exports.Right = exports.Left = exports.PgSessionError = void 0;
|
|
4
|
+
var PgSessionError;
|
|
5
|
+
(function (PgSessionError) {
|
|
6
|
+
PgSessionError[PgSessionError["PgQueryExecutionError"] = 0] = "PgQueryExecutionError";
|
|
7
|
+
})(PgSessionError = exports.PgSessionError || (exports.PgSessionError = {}));
|
|
8
|
+
class Left {
|
|
9
|
+
constructor(value) {
|
|
10
|
+
this.value = value;
|
|
11
|
+
}
|
|
12
|
+
isLeft() {
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
15
|
+
isRight() {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.Left = Left;
|
|
20
|
+
class Right {
|
|
21
|
+
constructor(value) {
|
|
22
|
+
this.value = value;
|
|
23
|
+
}
|
|
24
|
+
isLeft() {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
isRight() {
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.Right = Right;
|
|
32
|
+
const left = (l) => new Left(l);
|
|
33
|
+
exports.left = left;
|
|
34
|
+
const right = (a) => new Right(a);
|
|
35
|
+
exports.right = right;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import Expr from '../builders/requestBuilders/where/where';
|
|
2
|
+
import { AbstractColumn } from '../columns/column';
|
|
3
|
+
import ColumnType from '../columns/types/columnType';
|
|
4
|
+
export declare enum BuilderType {
|
|
5
|
+
SELECT = 0,
|
|
6
|
+
JOINED_SELECT = 1,
|
|
7
|
+
TWO_JOINED_SELECT = 2,
|
|
8
|
+
DELETE = 3,
|
|
9
|
+
INSERT = 4,
|
|
10
|
+
UPDATE = 5
|
|
11
|
+
}
|
|
12
|
+
export default class BuilderError extends Error {
|
|
13
|
+
constructor(builderType: BuilderType, tableName: string, columns: AbstractColumn<ColumnType>[], reason: Error, filter?: Expr);
|
|
14
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BuilderType = void 0;
|
|
4
|
+
var BuilderType;
|
|
5
|
+
(function (BuilderType) {
|
|
6
|
+
BuilderType[BuilderType["SELECT"] = 0] = "SELECT";
|
|
7
|
+
BuilderType[BuilderType["JOINED_SELECT"] = 1] = "JOINED_SELECT";
|
|
8
|
+
BuilderType[BuilderType["TWO_JOINED_SELECT"] = 2] = "TWO_JOINED_SELECT";
|
|
9
|
+
BuilderType[BuilderType["DELETE"] = 3] = "DELETE";
|
|
10
|
+
BuilderType[BuilderType["INSERT"] = 4] = "INSERT";
|
|
11
|
+
BuilderType[BuilderType["UPDATE"] = 5] = "UPDATE";
|
|
12
|
+
})(BuilderType = exports.BuilderType || (exports.BuilderType = {}));
|
|
13
|
+
class BuilderError extends Error {
|
|
14
|
+
constructor(builderType, tableName, columns, reason, filter) {
|
|
15
|
+
super('');
|
|
16
|
+
this.message = ` Error while building select query from ${tableName}\n-----\nIf you see current error, please create [github issue](https://github.com/lambda-direct/drizzle-orm/issues) and provide following information\n
|
|
17
|
+
Reason: ${reason.message}
|
|
18
|
+
Query builder: ${BuilderType[builderType]}
|
|
19
|
+
Table name: ${tableName}
|
|
20
|
+
Filter query: ${filter ? filter.toQuery() : 'undefined'}
|
|
21
|
+
Column names: ${columns.map((column) => column.getColumnName()).join(', ')}\n-----\n`;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.default = BuilderError;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare class DatabaseSelectError extends Error {
|
|
2
|
+
constructor(tableName: string, reason: Error, query: string);
|
|
3
|
+
}
|
|
4
|
+
export declare class DatabaseDeleteError extends Error {
|
|
5
|
+
constructor(tableName: string, reason: Error, query: string);
|
|
6
|
+
}
|
|
7
|
+
export declare class DatabaseInsertError extends Error {
|
|
8
|
+
constructor(tableName: string, reason: Error, query: string);
|
|
9
|
+
}
|
|
10
|
+
export declare class DatabaseUpdateError extends Error {
|
|
11
|
+
constructor(tableName: string, reason: Error, query: string);
|
|
12
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DatabaseUpdateError = exports.DatabaseInsertError = exports.DatabaseDeleteError = exports.DatabaseSelectError = void 0;
|
|
4
|
+
/* eslint-disable max-classes-per-file */
|
|
5
|
+
class DatabaseSelectError extends Error {
|
|
6
|
+
constructor(tableName, reason, query) {
|
|
7
|
+
super(` Got an error, while selecting from ${tableName}. Reason: ${reason.message}. Query to database looks like:\n${query}\n`);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.DatabaseSelectError = DatabaseSelectError;
|
|
11
|
+
class DatabaseDeleteError extends Error {
|
|
12
|
+
constructor(tableName, reason, query) {
|
|
13
|
+
super(` Got an error, while deleting from ${tableName}. Reason: ${reason.message}. Query to database looks like:\n${query}\n`);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.DatabaseDeleteError = DatabaseDeleteError;
|
|
17
|
+
class DatabaseInsertError extends Error {
|
|
18
|
+
constructor(tableName, reason, query) {
|
|
19
|
+
super(` Got an error, while inserting to ${tableName}. Reason: ${reason.message}. Query to database looks like:\n${query}\n`);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.DatabaseInsertError = DatabaseInsertError;
|
|
23
|
+
class DatabaseUpdateError extends Error {
|
|
24
|
+
constructor(tableName, reason, query) {
|
|
25
|
+
super(` Got an error, while updating ${tableName}. Reason: ${reason.message}. Query to database looks like:\n${query}\n`);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.DatabaseUpdateError = DatabaseUpdateError;
|
package/index.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ClientConfig } from 'pg';
|
|
2
|
+
import { DB } from './db';
|
|
3
|
+
import Migrator from './migrator/migrator';
|
|
4
|
+
import AbstractTable from './tables/abstractTable';
|
|
5
|
+
export * from './db';
|
|
6
|
+
export * from './builders';
|
|
7
|
+
export * from './columns';
|
|
8
|
+
export * from './tables';
|
|
9
|
+
export declare const drizzle: {
|
|
10
|
+
prepareCreateTable<TTable extends AbstractTable<TTable>>(table: AbstractTable<TTable>): string;
|
|
11
|
+
migrator(db: DB): Migrator;
|
|
12
|
+
connect(config: ClientConfig): Promise<DB>;
|
|
13
|
+
};
|
package/index.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.drizzle = void 0;
|
|
14
|
+
const create_1 = require("./builders/lowLvlBuilders/create");
|
|
15
|
+
const db_1 = require("./db");
|
|
16
|
+
const migrator_1 = require("./migrator/migrator");
|
|
17
|
+
__exportStar(require("./db"), exports);
|
|
18
|
+
__exportStar(require("./builders"), exports);
|
|
19
|
+
__exportStar(require("./columns"), exports);
|
|
20
|
+
__exportStar(require("./tables"), exports);
|
|
21
|
+
exports.drizzle = {
|
|
22
|
+
prepareCreateTable(table) {
|
|
23
|
+
return create_1.default.table(table).build();
|
|
24
|
+
},
|
|
25
|
+
migrator(db) {
|
|
26
|
+
return new migrator_1.default(db);
|
|
27
|
+
},
|
|
28
|
+
async connect(config) {
|
|
29
|
+
const dbConnector = new db_1.DbConnector().params(config);
|
|
30
|
+
return dbConnector.connect();
|
|
31
|
+
},
|
|
32
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Column } from '../columns/column';
|
|
2
|
+
import ColumnType from '../columns/types/columnType';
|
|
3
|
+
export default class TableIndex {
|
|
4
|
+
private _columns;
|
|
5
|
+
private _tableName;
|
|
6
|
+
private _isUnique;
|
|
7
|
+
constructor(tableName: string, columns: Column<ColumnType<any>, boolean, boolean>[], isUnique?: boolean);
|
|
8
|
+
getColumns: () => Column<ColumnType<any>, boolean, boolean>[];
|
|
9
|
+
indexName: () => string;
|
|
10
|
+
isUnique: () => boolean;
|
|
11
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
class TableIndex {
|
|
4
|
+
constructor(tableName, columns, isUnique = false) {
|
|
5
|
+
this._columns = [];
|
|
6
|
+
this.getColumns = () => this._columns;
|
|
7
|
+
this.indexName = () => {
|
|
8
|
+
const columnNames = this._columns.map((column) => column.getColumnName());
|
|
9
|
+
return `${this._tableName}_${columnNames.join('_')}_index`;
|
|
10
|
+
};
|
|
11
|
+
this.isUnique = () => this._isUnique;
|
|
12
|
+
this._columns = columns;
|
|
13
|
+
this._tableName = tableName;
|
|
14
|
+
this._isUnique = isUnique;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.default = TableIndex;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const abstractLogger_1 = require("./abstractLogger");
|
|
4
|
+
class ConsoleLogger extends abstractLogger_1.default {
|
|
5
|
+
info(msg) {
|
|
6
|
+
console.log(`INFO: ${msg}`);
|
|
7
|
+
}
|
|
8
|
+
error(msg) {
|
|
9
|
+
console.log(`ERROR: ${msg}`);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.default = ConsoleLogger;
|
|
File without changes
|
package/mappers/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { QueryResult } from 'pg';
|
|
2
|
+
import { AbstractColumn } from '../columns/column';
|
|
3
|
+
import ColumnType from '../columns/types/columnType';
|
|
4
|
+
import { ExtractModel } from '../tables/inferTypes';
|
|
5
|
+
export default class QueryResponseMapper {
|
|
6
|
+
static map: <ITable>(mappedServiceToDb: { [name in keyof ExtractModel<ITable>]: AbstractColumn<ColumnType<{}>, true, false>; }, queryResult: QueryResult<any>) => (ExtractModel<ITable> | undefined)[];
|
|
7
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
// eslint-disable-next-line max-len
|
|
4
|
+
const checkProperties = (obj) => Object.values(obj).every((x) => x === null || Number.isNaN(x));
|
|
5
|
+
class QueryResponseMapper {
|
|
6
|
+
}
|
|
7
|
+
exports.default = QueryResponseMapper;
|
|
8
|
+
QueryResponseMapper.map = (mappedServiceToDb, queryResult) => {
|
|
9
|
+
const response = [];
|
|
10
|
+
queryResult.rows.forEach((row) => {
|
|
11
|
+
const mappedRow = {};
|
|
12
|
+
Object.keys(mappedServiceToDb).forEach((key) => {
|
|
13
|
+
const column = mappedServiceToDb[key];
|
|
14
|
+
const value = column.getColumnType().selectStrategy(row[column.getAlias()]);
|
|
15
|
+
mappedRow[key] = value;
|
|
16
|
+
});
|
|
17
|
+
if (checkProperties(mappedRow)) {
|
|
18
|
+
response.push(undefined);
|
|
19
|
+
}
|
|
20
|
+
response.push(mappedRow);
|
|
21
|
+
});
|
|
22
|
+
return response;
|
|
23
|
+
};
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import Db from '../db/db';
|
|
2
|
+
export declare class MigrationSession {
|
|
3
|
+
private finalQuery;
|
|
4
|
+
execute: (query: string) => void;
|
|
5
|
+
getQuery: () => string;
|
|
6
|
+
}
|
|
7
|
+
export default class Migrator {
|
|
8
|
+
private _db;
|
|
9
|
+
private migrationsPerVersion;
|
|
10
|
+
private session;
|
|
11
|
+
constructor(db: Db);
|
|
12
|
+
chain: (tag: number, migration: (dbSession: MigrationSession) => void) => Migrator;
|
|
13
|
+
getResultScript: () => string[];
|
|
14
|
+
execute: () => Promise<boolean>;
|
|
15
|
+
private generateHash;
|
|
16
|
+
}
|