drizzle-orm 0.10.31 → 0.10.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +4 -1
- package/builders/aggregators/abstractAggregator.d.ts +0 -11
- package/builders/aggregators/abstractAggregator.js +0 -35
- package/builders/aggregators/deleteAggregator.d.ts +0 -16
- package/builders/aggregators/deleteAggregator.js +0 -42
- package/builders/aggregators/insertAggregator.d.ts +0 -22
- package/builders/aggregators/insertAggregator.js +0 -106
- package/builders/aggregators/selectAggregator.d.ts +0 -39
- package/builders/aggregators/selectAggregator.js +0 -143
- package/builders/aggregators/updateAggregator.d.ts +0 -19
- package/builders/aggregators/updateAggregator.js +0 -50
- package/builders/highLvlBuilders/abstractRequestBuilder.d.ts +0 -27
- package/builders/highLvlBuilders/abstractRequestBuilder.js +0 -32
- package/builders/highLvlBuilders/deleteRequestBuilder.d.ts +0 -19
- package/builders/highLvlBuilders/deleteRequestBuilder.js +0 -61
- package/builders/highLvlBuilders/insertRequestBuilder.d.ts +0 -20
- package/builders/highLvlBuilders/insertRequestBuilder.js +0 -73
- package/builders/highLvlBuilders/order.d.ts +0 -5
- package/builders/highLvlBuilders/order.js +0 -8
- package/builders/highLvlBuilders/selectRequestBuilder.d.ts +0 -47
- package/builders/highLvlBuilders/selectRequestBuilder.js +0 -128
- package/builders/highLvlBuilders/updateRequestBuilder.d.ts +0 -22
- package/builders/highLvlBuilders/updateRequestBuilder.js +0 -80
- package/builders/index.d.ts +0 -18
- package/builders/index.js +0 -54
- package/builders/joinBuilders/builders/abstractJoinBuilder.d.ts +0 -40
- package/builders/joinBuilders/builders/abstractJoinBuilder.js +0 -78
- package/builders/joinBuilders/builders/selectWithFiveJoins.d.ts +0 -35
- package/builders/joinBuilders/builders/selectWithFiveJoins.js +0 -45
- package/builders/joinBuilders/builders/selectWithFourJoins.d.ts +0 -55
- package/builders/joinBuilders/builders/selectWithFourJoins.js +0 -78
- package/builders/joinBuilders/builders/selectWithJoin.d.ts +0 -49
- package/builders/joinBuilders/builders/selectWithJoin.js +0 -64
- package/builders/joinBuilders/builders/selectWithThreeJoins.d.ts +0 -53
- package/builders/joinBuilders/builders/selectWithThreeJoins.js +0 -73
- package/builders/joinBuilders/builders/selectWithTwoJoins.d.ts +0 -51
- package/builders/joinBuilders/builders/selectWithTwoJoins.js +0 -68
- package/builders/joinBuilders/join.d.ts +0 -23
- package/builders/joinBuilders/join.js +0 -28
- package/builders/joinBuilders/joinWith.d.ts +0 -14
- package/builders/joinBuilders/joinWith.js +0 -14
- package/builders/joinBuilders/responses/selectResponseFiveJoins.d.ts +0 -20
- package/builders/joinBuilders/responses/selectResponseFiveJoins.js +0 -35
- package/builders/joinBuilders/responses/selectResponseFourJoins.d.ts +0 -19
- package/builders/joinBuilders/responses/selectResponseFourJoins.js +0 -34
- package/builders/joinBuilders/responses/selectResponseThreeJoins.d.ts +0 -18
- package/builders/joinBuilders/responses/selectResponseThreeJoins.js +0 -33
- package/builders/joinBuilders/responses/selectResponseTwoJoins.d.ts +0 -17
- package/builders/joinBuilders/responses/selectResponseTwoJoins.js +0 -32
- package/builders/joinBuilders/responses/selectResponseWithJoin.d.ts +0 -16
- package/builders/joinBuilders/responses/selectResponseWithJoin.js +0 -31
- package/builders/joinBuilders/static.d.ts +0 -5
- package/builders/joinBuilders/static.js +0 -9
- package/builders/lowLvlBuilders/alter.d.ts +0 -0
- package/builders/lowLvlBuilders/alter.js +0 -1
- package/builders/lowLvlBuilders/create.d.ts +0 -12
- package/builders/lowLvlBuilders/create.js +0 -100
- package/builders/lowLvlBuilders/delets/delete.d.ts +0 -5
- package/builders/lowLvlBuilders/delets/delete.js +0 -15
- package/builders/lowLvlBuilders/delets/deleteFilter.d.ts +0 -11
- package/builders/lowLvlBuilders/delets/deleteFilter.js +0 -13
- package/builders/lowLvlBuilders/delets/deleteFrom.d.ts +0 -12
- package/builders/lowLvlBuilders/delets/deleteFrom.js +0 -14
- package/builders/lowLvlBuilders/inserts/insert.d.ts +0 -5
- package/builders/lowLvlBuilders/inserts/insert.js +0 -15
- package/builders/lowLvlBuilders/inserts/insertInto.d.ts +0 -13
- package/builders/lowLvlBuilders/inserts/insertInto.js +0 -16
- package/builders/lowLvlBuilders/inserts/onConflictInsert.d.ts +0 -12
- package/builders/lowLvlBuilders/inserts/onConflictInsert.js +0 -13
- package/builders/lowLvlBuilders/inserts/valuesInsert.d.ts +0 -16
- package/builders/lowLvlBuilders/inserts/valuesInsert.js +0 -19
- package/builders/lowLvlBuilders/selects/select.d.ts +0 -9
- package/builders/lowLvlBuilders/selects/select.js +0 -16
- package/builders/lowLvlBuilders/selects/selectFrom.d.ts +0 -28
- package/builders/lowLvlBuilders/selects/selectFrom.js +0 -34
- package/builders/lowLvlBuilders/selects/selectJoined.d.ts +0 -26
- package/builders/lowLvlBuilders/selects/selectJoined.js +0 -30
- package/builders/lowLvlBuilders/selects/whereSelect.d.ts +0 -17
- package/builders/lowLvlBuilders/selects/whereSelect.js +0 -25
- package/builders/lowLvlBuilders/updates/update.d.ts +0 -5
- package/builders/lowLvlBuilders/updates/update.js +0 -15
- package/builders/lowLvlBuilders/updates/updateIn.d.ts +0 -13
- package/builders/lowLvlBuilders/updates/updateIn.js +0 -15
- package/builders/lowLvlBuilders/updates/whereSelect.d.ts +0 -11
- package/builders/lowLvlBuilders/updates/whereSelect.js +0 -13
- package/builders/lowLvlBuilders/updates/whereSet.d.ts +0 -14
- package/builders/lowLvlBuilders/updates/whereSet.js +0 -18
- package/builders/requestBuilders/updates/combine.d.ts +0 -9
- package/builders/requestBuilders/updates/combine.js +0 -26
- package/builders/requestBuilders/updates/increment.d.ts +0 -13
- package/builders/requestBuilders/updates/increment.js +0 -18
- package/builders/requestBuilders/updates/setObjects.d.ts +0 -12
- package/builders/requestBuilders/updates/setObjects.js +0 -19
- package/builders/requestBuilders/updates/static.d.ts +0 -7
- package/builders/requestBuilders/updates/static.js +0 -15
- package/builders/requestBuilders/updates/updates.d.ts +0 -9
- package/builders/requestBuilders/updates/updates.js +0 -10
- package/builders/requestBuilders/where/and.d.ts +0 -11
- package/builders/requestBuilders/where/and.js +0 -31
- package/builders/requestBuilders/where/const.d.ts +0 -9
- package/builders/requestBuilders/where/const.js +0 -25
- package/builders/requestBuilders/where/constArray.d.ts +0 -9
- package/builders/requestBuilders/where/constArray.js +0 -39
- package/builders/requestBuilders/where/eqWhere.d.ts +0 -12
- package/builders/requestBuilders/where/eqWhere.js +0 -20
- package/builders/requestBuilders/where/greater.d.ts +0 -15
- package/builders/requestBuilders/where/greater.js +0 -20
- package/builders/requestBuilders/where/greaterEq.d.ts +0 -15
- package/builders/requestBuilders/where/greaterEq.js +0 -20
- package/builders/requestBuilders/where/in.d.ts +0 -12
- package/builders/requestBuilders/where/in.js +0 -20
- package/builders/requestBuilders/where/isNotNull.d.ts +0 -11
- package/builders/requestBuilders/where/isNotNull.js +0 -18
- package/builders/requestBuilders/where/isNull.d.ts +0 -11
- package/builders/requestBuilders/where/isNull.js +0 -18
- package/builders/requestBuilders/where/less.d.ts +0 -15
- package/builders/requestBuilders/where/less.js +0 -20
- package/builders/requestBuilders/where/lessEq.d.ts +0 -15
- package/builders/requestBuilders/where/lessEq.js +0 -20
- package/builders/requestBuilders/where/like.d.ts +0 -12
- package/builders/requestBuilders/where/like.js +0 -20
- package/builders/requestBuilders/where/notEqWhere.d.ts +0 -12
- package/builders/requestBuilders/where/notEqWhere.js +0 -20
- package/builders/requestBuilders/where/or.d.ts +0 -11
- package/builders/requestBuilders/where/or.js +0 -31
- package/builders/requestBuilders/where/rawWhere.d.ts +0 -9
- package/builders/requestBuilders/where/rawWhere.js +0 -15
- package/builders/requestBuilders/where/static.d.ts +0 -17
- package/builders/requestBuilders/where/static.js +0 -49
- package/builders/requestBuilders/where/var.d.ts +0 -13
- package/builders/requestBuilders/where/var.js +0 -18
- package/builders/requestBuilders/where/where.d.ts +0 -8
- package/builders/requestBuilders/where/where.js +0 -6
- package/builders/transaction/transaction.d.ts +0 -8
- package/builders/transaction/transaction.js +0 -20
- package/columns/column.d.ts +0 -72
- package/columns/column.js +0 -101
- package/columns/index.d.ts +0 -10
- package/columns/index.js +0 -27
- package/columns/types/columnType.d.ts +0 -7
- package/columns/types/columnType.js +0 -6
- package/columns/types/pgBigDecimal.d.ts +0 -10
- package/columns/types/pgBigDecimal.js +0 -31
- package/columns/types/pgBigInt.d.ts +0 -15
- package/columns/types/pgBigInt.js +0 -32
- package/columns/types/pgBigSerial.d.ts +0 -15
- package/columns/types/pgBigSerial.js +0 -32
- package/columns/types/pgBoolean.d.ts +0 -8
- package/columns/types/pgBoolean.js +0 -18
- package/columns/types/pgEnum.d.ts +0 -9
- package/columns/types/pgEnum.js +0 -18
- package/columns/types/pgInteger.d.ts +0 -8
- package/columns/types/pgInteger.js +0 -21
- package/columns/types/pgJsonb.d.ts +0 -9
- package/columns/types/pgJsonb.js +0 -20
- package/columns/types/pgSerial.d.ts +0 -8
- package/columns/types/pgSerial.js +0 -18
- package/columns/types/pgSmallInt.d.ts +0 -8
- package/columns/types/pgSmallInt.js +0 -18
- package/columns/types/pgText.d.ts +0 -8
- package/columns/types/pgText.js +0 -18
- package/columns/types/pgTime.d.ts +0 -8
- package/columns/types/pgTime.js +0 -18
- package/columns/types/pgTimestamp.d.ts +0 -8
- package/columns/types/pgTimestamp.js +0 -18
- package/columns/types/pgTimestamptz.d.ts +0 -8
- package/columns/types/pgTimestamptz.js +0 -18
- package/columns/types/pgVarChar.d.ts +0 -9
- package/columns/types/pgVarChar.js +0 -24
- package/db/db.d.ts +0 -18
- package/db/db.js +0 -25
- package/db/dbConnector.d.ts +0 -9
- package/db/dbConnector.js +0 -32
- package/db/dbStringConnector.d.ts +0 -6
- package/db/dbStringConnector.js +0 -29
- package/db/group_by.d.ts +0 -0
- package/db/group_by.js +0 -68
- package/db/index.d.ts +0 -4
- package/db/index.js +0 -14
- package/db/session.d.ts +0 -9
- package/db/session.js +0 -16
- package/docs/cases/simple_delete.d.ts +0 -1
- package/docs/cases/simple_delete.js +0 -35
- package/docs/cases/simple_insert.d.ts +0 -1
- package/docs/cases/simple_insert.js +0 -57
- package/docs/cases/simple_join.d.ts +0 -1
- package/docs/cases/simple_join.js +0 -115
- package/docs/cases/simple_select.d.ts +0 -1
- package/docs/cases/simple_select.js +0 -50
- package/docs/cases/simple_update.d.ts +0 -1
- package/docs/cases/simple_update.js +0 -39
- package/docs/tables/citiesTable.d.ts +0 -14
- package/docs/tables/citiesTable.js +0 -21
- package/docs/tables/userGroupsTable.d.ts +0 -7
- package/docs/tables/userGroupsTable.js +0 -18
- package/docs/tables/usersTable.d.ts +0 -17
- package/docs/tables/usersTable.js +0 -35
- package/docs/tables/usersToUserGroups.d.ts +0 -7
- package/docs/tables/usersToUserGroups.js +0 -20
- package/docs/types/rolesType.d.ts +0 -1
- package/docs/types/rolesType.js +0 -6
- package/errors/baseError.d.ts +0 -22
- package/errors/baseError.js +0 -35
- package/errors/builderError.d.ts +0 -14
- package/errors/builderError.js +0 -25
- package/errors/dbErrors.d.ts +0 -12
- package/errors/dbErrors.js +0 -28
- package/index.d.ts +0 -11
- package/indexes/tableIndex.d.ts +0 -11
- package/indexes/tableIndex.js +0 -17
- package/logger/abstractLogger.d.ts +0 -4
- package/logger/abstractLogger.js +0 -5
- package/logger/consoleLogger.d.ts +0 -5
- package/logger/consoleLogger.js +0 -15
- package/mappers/index.d.ts +0 -0
- package/mappers/index.js +0 -1
- package/mappers/responseMapper.d.ts +0 -10
- package/mappers/responseMapper.js +0 -35
- package/migrator/index.d.ts +0 -0
- package/migrator/index.js +0 -1
- package/migrator/migrator.d.ts +0 -11
- package/migrator/migrator.js +0 -105
- package/serializer/serializer.d.ts +0 -47
- package/serializer/serializer.js +0 -258
- package/tables/abstractTable.d.ts +0 -68
- package/tables/abstractTable.js +0 -151
- package/tables/index.d.ts +0 -3
- package/tables/index.js +0 -11
- package/tables/inferTypes.d.ts +0 -39
- package/tables/inferTypes.js +0 -2
- package/tables/migrationsTable.d.ts +0 -7
- package/tables/migrationsTable.js +0 -18
- package/test.d.ts +0 -1
- package/test.js +0 -65
- package/types/type.d.ts +0 -10
- package/types/type.js +0 -14
- package/utils/ecranate.d.ts +0 -2
- package/utils/ecranate.js +0 -8
|
@@ -1,35 +0,0 @@
|
|
|
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;
|
|
@@ -1,7 +0,0 @@
|
|
|
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
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
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;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const rolesEnum: import("../../types/type").default<"foo" | "bar" | "baz">;
|
package/docs/types/rolesType.js
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
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'] });
|
package/errors/baseError.d.ts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
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>;
|
package/errors/baseError.js
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
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;
|
package/errors/builderError.d.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
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
|
-
}
|
package/errors/builderError.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
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().query : 'undefined'}
|
|
21
|
-
Values: ${filter ? filter.toQuery().values : 'undefined'}
|
|
22
|
-
Column names: ${columns.map((column) => column.getColumnName()).join(', ')}\n-----\n`;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
exports.default = BuilderError;
|
package/errors/dbErrors.d.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
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
|
-
}
|
package/errors/dbErrors.js
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
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
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { ClientConfig } from 'pg';
|
|
2
|
-
import { DB } from './db';
|
|
3
|
-
import Migrator from './migrator/migrator';
|
|
4
|
-
export * from './db';
|
|
5
|
-
export * from './builders';
|
|
6
|
-
export * from './columns';
|
|
7
|
-
export * from './tables';
|
|
8
|
-
export declare const drizzle: {
|
|
9
|
-
connect(config: ClientConfig): Promise<DB>;
|
|
10
|
-
migrator(db: DB): Migrator;
|
|
11
|
-
};
|
package/indexes/tableIndex.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
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
|
-
}
|
package/indexes/tableIndex.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
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;
|
package/logger/abstractLogger.js
DELETED
package/logger/consoleLogger.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
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 abstractLogger_1 = __importDefault(require("./abstractLogger"));
|
|
7
|
-
class ConsoleLogger extends abstractLogger_1.default {
|
|
8
|
-
info(msg) {
|
|
9
|
-
console.log(`INFO: ${msg}`);
|
|
10
|
-
}
|
|
11
|
-
error(msg) {
|
|
12
|
-
console.log(`ERROR: ${msg}`);
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
exports.default = ConsoleLogger;
|
package/mappers/index.d.ts
DELETED
|
File without changes
|
package/mappers/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { QueryResult } from 'pg';
|
|
2
|
-
import { AbstractColumn } from '../columns/column';
|
|
3
|
-
import ColumnType from '../columns/types/columnType';
|
|
4
|
-
import { ExtractModel } from '../tables/inferTypes';
|
|
5
|
-
export default class QueryResponseMapper {
|
|
6
|
-
static map: <ITable>(mappedServiceToDb: { [name in keyof ExtractModel<ITable>]: AbstractColumn<ColumnType<{}>, true, false, any>; }, queryResult: QueryResult<any>, joinId?: number | undefined) => ExtractModel<ITable>[];
|
|
7
|
-
static partialMap: <T>(partial: {
|
|
8
|
-
[name: string]: AbstractColumn<ColumnType<{}>, true, false, any>;
|
|
9
|
-
}, queryResult: QueryResult<any>, joinId?: number | undefined) => ExtractModel<T>[];
|
|
10
|
-
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
// eslint-disable-next-line max-len
|
|
4
|
-
// const checkProperties = (obj: any) => Object.values(obj).every((x) => x === null || Number.isNaN(x));
|
|
5
|
-
class QueryResponseMapper {
|
|
6
|
-
}
|
|
7
|
-
exports.default = QueryResponseMapper;
|
|
8
|
-
QueryResponseMapper.map = (mappedServiceToDb, queryResult, joinId) => {
|
|
9
|
-
const response = [];
|
|
10
|
-
queryResult.rows.forEach((row) => {
|
|
11
|
-
const mappedRow = {};
|
|
12
|
-
Object.keys(mappedServiceToDb).forEach((key) => {
|
|
13
|
-
const column = mappedServiceToDb[key];
|
|
14
|
-
const alias = `${column.getAlias()}${joinId ? `_${joinId}` : ''}`;
|
|
15
|
-
const value = column.getColumnType().selectStrategy(row[alias]);
|
|
16
|
-
mappedRow[key] = value === null ? undefined : value;
|
|
17
|
-
});
|
|
18
|
-
response.push(mappedRow);
|
|
19
|
-
});
|
|
20
|
-
return response;
|
|
21
|
-
};
|
|
22
|
-
QueryResponseMapper.partialMap = (partial, queryResult, joinId) => {
|
|
23
|
-
const response = [];
|
|
24
|
-
queryResult.rows.forEach((row) => {
|
|
25
|
-
const mappedRow = {};
|
|
26
|
-
Object.keys(partial).forEach((key) => {
|
|
27
|
-
const column = partial[key];
|
|
28
|
-
const alias = `${column.getAlias()}${joinId ? `_${joinId}` : ''}`;
|
|
29
|
-
const value = column.getColumnType().selectStrategy(row[alias]);
|
|
30
|
-
mappedRow[key] = value === null ? undefined : value;
|
|
31
|
-
});
|
|
32
|
-
response.push(mappedRow);
|
|
33
|
-
});
|
|
34
|
-
return response;
|
|
35
|
-
};
|
package/migrator/index.d.ts
DELETED
|
File without changes
|
package/migrator/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";
|
package/migrator/migrator.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import Db from '../db/db';
|
|
2
|
-
export declare type InCodeConfig = {
|
|
3
|
-
migrationFolder: string;
|
|
4
|
-
};
|
|
5
|
-
export default class Migrator {
|
|
6
|
-
private db;
|
|
7
|
-
constructor(db: Db);
|
|
8
|
-
migrate(configPath: string): Promise<void>;
|
|
9
|
-
migrate(config: InCodeConfig): Promise<void>;
|
|
10
|
-
private generateHash;
|
|
11
|
-
}
|
package/migrator/migrator.js
DELETED
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
-
}) : (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
-
}) : function(o, v) {
|
|
12
|
-
o["default"] = v;
|
|
13
|
-
});
|
|
14
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
-
if (mod && mod.__esModule) return mod;
|
|
16
|
-
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
-
__setModuleDefault(result, mod);
|
|
19
|
-
return result;
|
|
20
|
-
};
|
|
21
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
-
};
|
|
24
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
-
/* eslint-disable no-restricted-syntax */
|
|
26
|
-
/* eslint-disable import/export */
|
|
27
|
-
/* eslint-disable max-classes-per-file */
|
|
28
|
-
const fs = __importStar(require("fs"));
|
|
29
|
-
const path = __importStar(require("path"));
|
|
30
|
-
const crypto = __importStar(require("crypto"));
|
|
31
|
-
const builders_1 = require("../builders");
|
|
32
|
-
const transaction_1 = __importDefault(require("../builders/transaction/transaction"));
|
|
33
|
-
const tables_1 = require("../tables");
|
|
34
|
-
class Migrator {
|
|
35
|
-
constructor(db) {
|
|
36
|
-
this.db = db;
|
|
37
|
-
}
|
|
38
|
-
async migrate(configPath) {
|
|
39
|
-
let migrationFolderTo;
|
|
40
|
-
if (typeof configPath === 'string') {
|
|
41
|
-
const configAsString = fs.readFileSync(path.resolve('.', configPath), 'utf8');
|
|
42
|
-
const splitted = configAsString.trim().split('\n');
|
|
43
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
44
|
-
for (const split of splitted) {
|
|
45
|
-
const entry = split.trim().split(':');
|
|
46
|
-
const key = entry[0];
|
|
47
|
-
const value = entry[1].trim().replace(/['"]+/g, '');
|
|
48
|
-
if (key === 'migrationRootFolder') {
|
|
49
|
-
// proceed value
|
|
50
|
-
migrationFolderTo = value;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
migrationFolderTo = configPath.migrationFolder;
|
|
56
|
-
}
|
|
57
|
-
if (!migrationFolderTo) {
|
|
58
|
-
throw Error('no migration folder defined');
|
|
59
|
-
}
|
|
60
|
-
const migrationTable = new tables_1.MigrationsTable(this.db);
|
|
61
|
-
await this.db.session().execute(builders_1.Create.table(migrationTable).build());
|
|
62
|
-
const dbMigrations = await migrationTable.select().all();
|
|
63
|
-
const lastDbMigration = dbMigrations.length > 0
|
|
64
|
-
? dbMigrations[dbMigrations.length - 1]
|
|
65
|
-
: undefined;
|
|
66
|
-
const files = fs.readdirSync(migrationFolderTo);
|
|
67
|
-
const transaction = new transaction_1.default(this.db.session());
|
|
68
|
-
await transaction.begin();
|
|
69
|
-
try {
|
|
70
|
-
for await (const migrationFolder of files) {
|
|
71
|
-
const migrationFiles = fs.readdirSync(`${migrationFolderTo}/${migrationFolder}`);
|
|
72
|
-
const migrationFile = migrationFiles.filter((file) => file === 'migration.sql')[0];
|
|
73
|
-
const query = fs.readFileSync(`${migrationFolderTo}/${migrationFolder}/${migrationFile}`).toString();
|
|
74
|
-
const year = Number(migrationFolder.slice(0, 4));
|
|
75
|
-
// second param for Date() is month index, that started from 0, so we need
|
|
76
|
-
// to decrement a value for month
|
|
77
|
-
const month = Number(migrationFolder.slice(4, 6)) - 1;
|
|
78
|
-
const day = Number(migrationFolder.slice(6, 8));
|
|
79
|
-
const hour = Number(migrationFolder.slice(8, 10));
|
|
80
|
-
const min = Number(migrationFolder.slice(10, 12));
|
|
81
|
-
const sec = Number(migrationFolder.slice(12, 14));
|
|
82
|
-
const folderAsMillis = new Date(year, month, day, hour, min, sec).getTime();
|
|
83
|
-
if (!lastDbMigration || lastDbMigration.createdAt < folderAsMillis) {
|
|
84
|
-
await this.db.session().execute(query);
|
|
85
|
-
await migrationTable.insert({
|
|
86
|
-
hash: this.generateHash(query),
|
|
87
|
-
createdAt: folderAsMillis,
|
|
88
|
-
}).execute();
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
await transaction.commit();
|
|
92
|
-
}
|
|
93
|
-
catch (e) {
|
|
94
|
-
// if (this.db.logger()) {
|
|
95
|
-
// this.db.logger()!.error(e);
|
|
96
|
-
// }
|
|
97
|
-
transaction.rollback();
|
|
98
|
-
throw e;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
generateHash(value) {
|
|
102
|
-
return crypto.createHash('sha256').update(value).digest('hex');
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
exports.default = Migrator;
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { DB } from '../db';
|
|
2
|
-
import { AbstractTable } from '../tables';
|
|
3
|
-
import Enum from '../types/type';
|
|
4
|
-
interface EnumsAsObject {
|
|
5
|
-
[name: string]: {
|
|
6
|
-
name: string;
|
|
7
|
-
values: string[];
|
|
8
|
-
};
|
|
9
|
-
}
|
|
10
|
-
interface ColumnAsObject {
|
|
11
|
-
[name: string]: {
|
|
12
|
-
name?: string;
|
|
13
|
-
type?: string;
|
|
14
|
-
primaryKey?: boolean;
|
|
15
|
-
unique?: boolean;
|
|
16
|
-
default?: any;
|
|
17
|
-
notNull?: boolean;
|
|
18
|
-
references?: string;
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
interface TableAsObject {
|
|
22
|
-
[name: string]: {
|
|
23
|
-
name: string;
|
|
24
|
-
columns: ColumnAsObject;
|
|
25
|
-
indexes: {
|
|
26
|
-
[name: string]: {
|
|
27
|
-
name?: string;
|
|
28
|
-
type?: string;
|
|
29
|
-
};
|
|
30
|
-
};
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
export default class MigrationSerializer {
|
|
34
|
-
generate: (tables: AbstractTable<any>[], enums: Enum<any>[]) => {
|
|
35
|
-
version: string;
|
|
36
|
-
tables: TableAsObject;
|
|
37
|
-
enums: {
|
|
38
|
-
[key: string]: Enum<any>;
|
|
39
|
-
};
|
|
40
|
-
};
|
|
41
|
-
fromDatabase: (db: DB) => Promise<{
|
|
42
|
-
version: string;
|
|
43
|
-
tables: TableAsObject;
|
|
44
|
-
enums: EnumsAsObject;
|
|
45
|
-
}>;
|
|
46
|
-
}
|
|
47
|
-
export {};
|