drizzle-orm 0.9.1 → 0.9.5

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.
Files changed (135) hide show
  1. package/builders/aggregators/abstractAggregator.d.ts +3 -4
  2. package/builders/aggregators/abstractAggregator.js +5 -8
  3. package/builders/aggregators/deleteAggregator.d.ts +2 -1
  4. package/builders/aggregators/deleteAggregator.js +10 -4
  5. package/builders/aggregators/insertAggregator.d.ts +4 -6
  6. package/builders/aggregators/insertAggregator.js +37 -44
  7. package/builders/aggregators/selectAggregator.d.ts +8 -5
  8. package/builders/aggregators/selectAggregator.js +50 -31
  9. package/builders/aggregators/updateAggregator.d.ts +2 -1
  10. package/builders/aggregators/updateAggregator.js +6 -4
  11. package/builders/highLvlBuilders/abstractRequestBuilder.d.ts +4 -3
  12. package/builders/highLvlBuilders/abstractRequestBuilder.js +2 -2
  13. package/builders/highLvlBuilders/deleteRequestBuilder.d.ts +5 -4
  14. package/builders/highLvlBuilders/deleteRequestBuilder.js +8 -9
  15. package/builders/highLvlBuilders/insertRequestBuilder.d.ts +2 -4
  16. package/builders/highLvlBuilders/insertRequestBuilder.js +17 -24
  17. package/builders/highLvlBuilders/selectRequestBuilder.d.ts +5 -4
  18. package/builders/highLvlBuilders/selectRequestBuilder.js +29 -32
  19. package/builders/highLvlBuilders/updateRequestBuilder.d.ts +5 -4
  20. package/builders/highLvlBuilders/updateRequestBuilder.js +9 -9
  21. package/builders/index.d.ts +1 -1
  22. package/builders/index.js +2 -1
  23. package/builders/joinBuilders/builders/abstractJoinBuilder.d.ts +18 -9
  24. package/builders/joinBuilders/builders/abstractJoinBuilder.js +34 -4
  25. package/builders/joinBuilders/builders/selectWithFiveJoins.d.ts +23 -0
  26. package/builders/joinBuilders/builders/selectWithFiveJoins.js +33 -0
  27. package/builders/joinBuilders/builders/selectWithFourJoins.d.ts +23 -6
  28. package/builders/joinBuilders/builders/selectWithFourJoins.js +52 -36
  29. package/builders/joinBuilders/builders/selectWithJoin.d.ts +9 -6
  30. package/builders/joinBuilders/builders/selectWithJoin.js +15 -35
  31. package/builders/joinBuilders/builders/selectWithThreeJoins.d.ts +9 -6
  32. package/builders/joinBuilders/builders/selectWithThreeJoins.js +19 -39
  33. package/builders/joinBuilders/builders/selectWithTwoJoins.d.ts +9 -6
  34. package/builders/joinBuilders/builders/selectWithTwoJoins.js +17 -38
  35. package/builders/joinBuilders/responses/selectResponseFiveJoins.d.ts +19 -0
  36. package/builders/joinBuilders/responses/selectResponseFiveJoins.js +35 -0
  37. package/builders/joinBuilders/responses/selectResponseFourJoins.d.ts +8 -0
  38. package/builders/joinBuilders/responses/selectResponseFourJoins.js +15 -4
  39. package/builders/joinBuilders/responses/selectResponseThreeJoins.d.ts +8 -0
  40. package/builders/joinBuilders/responses/selectResponseThreeJoins.js +15 -0
  41. package/builders/joinBuilders/responses/selectResponseTwoJoins.d.ts +8 -0
  42. package/builders/joinBuilders/responses/selectResponseTwoJoins.js +15 -0
  43. package/builders/joinBuilders/responses/selectResponseWithJoin.d.ts +8 -0
  44. package/builders/joinBuilders/responses/selectResponseWithJoin.js +15 -0
  45. package/builders/lowLvlBuilders/create.js +1 -1
  46. package/builders/lowLvlBuilders/delets/delete.d.ts +2 -1
  47. package/builders/lowLvlBuilders/delets/delete.js +3 -3
  48. package/builders/lowLvlBuilders/inserts/insert.d.ts +2 -3
  49. package/builders/lowLvlBuilders/inserts/insert.js +3 -3
  50. package/builders/lowLvlBuilders/inserts/insertInto.d.ts +2 -4
  51. package/builders/lowLvlBuilders/inserts/insertInto.js +2 -1
  52. package/builders/lowLvlBuilders/inserts/valuesInsert.d.ts +3 -5
  53. package/builders/lowLvlBuilders/inserts/valuesInsert.js +3 -3
  54. package/builders/lowLvlBuilders/selects/select.d.ts +2 -3
  55. package/builders/lowLvlBuilders/selects/select.js +3 -3
  56. package/builders/lowLvlBuilders/selects/selectFrom.d.ts +5 -4
  57. package/builders/lowLvlBuilders/selects/selectFrom.js +6 -0
  58. package/builders/lowLvlBuilders/selects/selectJoined.d.ts +5 -5
  59. package/builders/lowLvlBuilders/selects/whereSelect.d.ts +4 -4
  60. package/builders/lowLvlBuilders/updates/update.d.ts +2 -1
  61. package/builders/lowLvlBuilders/updates/update.js +3 -3
  62. package/builders/lowLvlBuilders/updates/updateIn.d.ts +1 -3
  63. package/builders/lowLvlBuilders/updates/updateIn.js +1 -4
  64. package/builders/requestBuilders/where/const.js +1 -1
  65. package/builders/requestBuilders/where/constArray.js +1 -1
  66. package/builders/requestBuilders/where/isNull.d.ts +6 -0
  67. package/builders/requestBuilders/where/isNull.js +11 -0
  68. package/builders/requestBuilders/where/notEqWhere.d.ts +7 -0
  69. package/builders/requestBuilders/where/notEqWhere.js +12 -0
  70. package/builders/requestBuilders/where/rawWhere.d.ts +6 -0
  71. package/builders/requestBuilders/where/rawWhere.js +11 -0
  72. package/builders/requestBuilders/where/static.d.ts +3 -0
  73. package/builders/requestBuilders/where/static.js +10 -1
  74. package/builders/requestBuilders/where/var.js +1 -1
  75. package/columns/column.d.ts +11 -9
  76. package/columns/column.js +12 -8
  77. package/db/session.js +2 -2
  78. package/{manual.d.ts → docs/cases/simple_delete.d.ts} +0 -0
  79. package/docs/cases/simple_delete.js +30 -0
  80. package/{tests/cases/commentsTable.test.d.ts → docs/cases/simple_insert.d.ts} +0 -0
  81. package/docs/cases/simple_insert.js +51 -0
  82. package/docs/cases/simple_join.d.ts +1 -0
  83. package/docs/cases/simple_join.js +95 -0
  84. package/docs/cases/simple_select.d.ts +1 -0
  85. package/docs/cases/simple_select.js +39 -0
  86. package/docs/cases/simple_update.d.ts +1 -0
  87. package/docs/cases/simple_update.js +33 -0
  88. package/docs/tables/citiesTable.d.ts +14 -0
  89. package/{examples/tables/authOtpTable.js → docs/tables/citiesTable.js} +6 -9
  90. package/docs/tables/citiesToUsers.d.ts +7 -0
  91. package/docs/tables/citiesToUsers.js +18 -0
  92. package/docs/tables/userGroupsTable.d.ts +7 -0
  93. package/docs/tables/userGroupsTable.js +15 -0
  94. package/{examples → docs}/tables/usersTable.d.ts +7 -4
  95. package/{examples → docs}/tables/usersTable.js +11 -6
  96. package/docs/tables/usersToUserGroups.d.ts +7 -0
  97. package/docs/tables/usersToUserGroups.js +18 -0
  98. package/{examples → docs}/types/rolesType.d.ts +0 -0
  99. package/{examples → docs}/types/rolesType.js +1 -1
  100. package/indexes/tableIndex.d.ts +3 -1
  101. package/indexes/tableIndex.js +3 -1
  102. package/package.json +1 -1
  103. package/serializer/serializer.d.ts +40 -0
  104. package/serializer/serializer.js +74 -0
  105. package/tables/abstractTable.d.ts +4 -2
  106. package/tables/abstractTable.js +10 -10
  107. package/test.d.ts +1 -0
  108. package/test.js +38 -25
  109. package/examples/tables/authOtpTable.d.ts +0 -12
  110. package/examples/tables/cityTable.d.ts +0 -8
  111. package/examples/tables/cityTable.js +0 -17
  112. package/examples/testEnum.d.ts +0 -6
  113. package/examples/testEnum.js +0 -10
  114. package/manual.js +0 -27
  115. package/tests/cases/commentsTable.test.js +0 -66
  116. package/tests/cases/messagesTable.test1.d.ts +0 -0
  117. package/tests/cases/messagesTable.test1.js +0 -1
  118. package/tests/cases/postsTable.test1.d.ts +0 -0
  119. package/tests/cases/postsTable.test1.js +0 -1
  120. package/tests/cases/usersTable.test1.d.ts +0 -0
  121. package/tests/cases/usersTable.test1.js +0 -1
  122. package/tests/tables/citiesTable.d.ts +0 -6
  123. package/tests/tables/citiesTable.js +0 -14
  124. package/tests/tables/commentsTable.d.ts +0 -0
  125. package/tests/tables/commentsTable.js +0 -1
  126. package/tests/tables/likesTable.d.ts +0 -0
  127. package/tests/tables/likesTable.js +0 -1
  128. package/tests/tables/messagesTable.d.ts +0 -0
  129. package/tests/tables/messagesTable.js +0 -1
  130. package/tests/tables/postsTable.d.ts +0 -0
  131. package/tests/tables/postsTable.js +0 -1
  132. package/tests/tables/userFollowers.d.ts +0 -0
  133. package/tests/tables/userFollowers.js +0 -1
  134. package/tests/tables/usersTable.d.ts +0 -8
  135. package/tests/tables/usersTable.js +0 -20
package/test.js CHANGED
@@ -1,41 +1,40 @@
1
1
  "use strict";
2
- /* eslint-disable global-require */
3
- /* eslint-disable new-cap */
4
- /* eslint-disable import/no-dynamic-require */
5
- // import { DbConnector } from '.';
6
- // import UsersTable from './examples/tables/usersTable';
7
- // import { ERoles } from './examples/testEnum';
8
- // import { eq } from './builders';
9
- // import DbConnector from './db/dbConnector';
10
- // import UsersTable from './examples/tables/usersTable';
11
- // import { ERoles } from './examples/types/rolesType';
12
- // import * as fs from 'fs';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const _1 = require(".");
4
+ const usersTable_1 = require("./docs/tables/usersTable");
5
+ const serializer_1 = require("./serializer/serializer");
13
6
  // import { Pool } from 'pg';
14
7
  // import { DB } from '.';
15
8
  // import { DB, DbConnector } from '.';
16
9
  // import Enum from './types/type';
17
- // const fromTypeFile = (filepath: string): Array<Enum<any>> => {
18
- // // const db = new DB(new Pool());
19
- // const importedEnum = require(filepath);
20
- // const res: Array<Enum<any>> = [];
21
- // // eslint-disable-next-line no-restricted-syntax
22
- // for (const type of Object.keys(importedEnum)) {
23
- // res.push(importedEnum[type] as Enum<any>);
24
- // }
25
- // return res;
26
- // };
10
+ const fromTypeFile = (filepath) => {
11
+ // const db = new DB(new Pool());
12
+ const importedEnum = require(filepath);
13
+ const res = [];
14
+ // eslint-disable-next-line no-restricted-syntax
15
+ for (const type of Object.keys(importedEnum)) {
16
+ res.push(importedEnum[type]);
17
+ }
18
+ return res;
19
+ };
27
20
  (async () => {
28
21
  try {
29
- // const typesFileNames =
30
- // fs.readdirSync('/Users/andrewsherman/IdeaProjects/datalayer-orm/src/examples/types');
22
+ const db = await new _1.DbConnector()
23
+ .connectionString('postgresql://postgres@127.0.0.1/drizzle')
24
+ .connect();
25
+ const ser = new serializer_1.default();
26
+ const d = db.create(usersTable_1.default);
27
+ const f = ser.generate([d], []);
28
+ console.log(JSON.stringify(f, null, 2));
29
+ // const typesFileNames = fs.readdirSync('/Users/andrewsherman/IdeaProjects/datalayer-orm/src/examples/types');
31
30
  // typesFileNames.forEach((filename) => {
32
31
  // const types = fromTypeFile(`./examples/types/${filename.split('.')[0]}`);
33
32
  // const typeValues = types[0].values;
34
33
  // console.log(typeValues);
35
34
  // // console.log(Object.values(typeValues));
36
35
  // });
37
- // const usersTest = new UsersTest();
38
- // await usersTest.execute();
36
+ // // const usersTest = new UsersTest();
37
+ // // await usersTest.execute();
39
38
  // const db = await new DbConnector()
40
39
  // .connectionString('postgresql://postgres@127.0.0.1/drizzle')
41
40
  // .connect();
@@ -48,6 +47,20 @@
48
47
  // console.log(res.value);
49
48
  // }
50
49
  // const userTable = new UsersTable(db);
50
+ // const citiesTable = new CitiesTable(db);
51
+ // const uni = new UniJoin(userTable).innerJoin(
52
+ // UsersTable,
53
+ // (table) => table.id,
54
+ // (t) => t.id,
55
+ // );
56
+ // Inner.join1(
57
+ // { table: CitiesTable, column: ((table) => table.id), on: ((table) => table.userId1) },
58
+ // );
59
+ // const res = await userTable.select().leftJoin(
60
+ // UsersTable,
61
+ // (table) => table.id,
62
+ // (t) => t.id,
63
+ // ).execute();
51
64
  // const d = await userTable
52
65
  // .insert({ phone: 'phone1', createdAt: new Date(), role: 'foo' }).all();
53
66
  // const all = await userTable.select().all();
@@ -1,12 +0,0 @@
1
- import AbstractTable from '../../tables/abstractTable';
2
- export default class AuthOtpTable extends AbstractTable<AuthOtpTable> {
3
- id: import("../../columns/column").IndexedColumn<import("../..").PgInteger, true, true>;
4
- phone: import("../../columns/column").Column<import("../..").PgVarChar, true, false>;
5
- otp: import("../../columns/column").Column<import("../..").PgVarChar, true, false>;
6
- issuedAt: import("../../columns/column").Column<import("../..").PgTimestamp, false, false>;
7
- createdAt: import("../../columns/column").Column<import("../..").PgTimestamp, false, false>;
8
- updatedAt: import("../../columns/column").Column<import("../..").PgTimestamp, false, false>;
9
- userId: import("../../columns/column").Column<import("../..").PgInteger, true, false>;
10
- test: import("../../columns/column").Column<import("../..").PgJsonb<string[]>, true, false>;
11
- tableName(): string;
12
- }
@@ -1,8 +0,0 @@
1
- import AbstractTable from '../../tables/abstractTable';
2
- export default class CitiesTable extends AbstractTable<CitiesTable> {
3
- name: import("../..").Column<import("../..").PgTimestamp, false, false>;
4
- page: import("../..").Column<import("../..").PgVarChar, true, false>;
5
- userId1: import("../..").Column<import("../..").PgInteger, true, false>;
6
- data: import("../..").Column<import("../..").PgJsonb<string[]>, true, false>;
7
- tableName(): string;
8
- }
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const abstractTable_1 = require("../../tables/abstractTable");
4
- const usersTable_1 = require("./usersTable");
5
- class CitiesTable extends abstractTable_1.default {
6
- constructor() {
7
- super(...arguments);
8
- this.name = this.timestamp('name', { notNull: true }).defaultValue(new Date());
9
- this.page = this.varchar('page', { size: 256 });
10
- this.userId1 = this.int('user_id').foreignKey(usersTable_1.default, (table) => table.id);
11
- this.data = this.jsonb('data');
12
- }
13
- tableName() {
14
- return 'citiess';
15
- }
16
- }
17
- exports.default = CitiesTable;
@@ -1,6 +0,0 @@
1
- export declare enum ERoles {
2
- ADMIN = "admin",
3
- USER = "user",
4
- GUEST = "guest"
5
- }
6
- export default ERoles;
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ERoles = void 0;
4
- var ERoles;
5
- (function (ERoles) {
6
- ERoles["ADMIN"] = "admin";
7
- ERoles["USER"] = "user";
8
- ERoles["GUEST"] = "guest";
9
- })(ERoles = exports.ERoles || (exports.ERoles = {}));
10
- exports.default = ERoles;
package/manual.js DELETED
@@ -1,27 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const builders_1 = require("./builders");
4
- const dbConnector_1 = require("./db/dbConnector");
5
- const usersTable_1 = require("./examples/tables/usersTable");
6
- (async () => {
7
- try {
8
- // const usersTest = new UsersTest();
9
- // await usersTest.execute();
10
- const db = await new dbConnector_1.default()
11
- .connectionString('postgresql://postgres@127.0.0.1/drizzle')
12
- .connect();
13
- const res = await db.session().execute(builders_1.Create.table(db.create(usersTable_1.default)).build());
14
- if (res.isLeft()) {
15
- console.log(res.value.reason);
16
- }
17
- else {
18
- console.log(res.value);
19
- }
20
- const userTable = new usersTable_1.default(db);
21
- const users = await userTable.select().all();
22
- console.log(users);
23
- }
24
- catch (e) {
25
- console.log(e);
26
- }
27
- })();
@@ -1,66 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- /* eslint-disable max-classes-per-file */
4
- const builders_1 = require("../../builders");
5
- // import { DB } from '../../db';
6
- const dbConnector_1 = require("../../db/dbConnector");
7
- const usersTable_1 = require("../tables/usersTable");
8
- // abstract class AbstractTest {
9
- // public db: DB;
10
- // public async connect() {
11
- // // eslint-disable-next-line no-async-promise-executor
12
- // try {
13
- // const db = await new DbConnector()
14
- // .connectionString('postgresql://postgres@127.0.0.1/drizzle')
15
- // .connect();
16
- // const res = await db.session().execute(
17
- // Create.table(db.create(UsersTable)).build(),
18
- // );
19
- // if (res.isLeft()) {
20
- // console.log(res.value.reason);
21
- // } else {
22
- // console.log(res.value);
23
- // }
24
- // } catch (e) {
25
- // console.log(e);
26
- // }
27
- // }
28
- // public abstract execute(): void;
29
- // }
30
- // class UsersTest extends AbstractTest {
31
- // private userTable: UsersTable;
32
- // public async execute() {
33
- // console.log('conecting...');
34
- // await this.connect();
35
- // console.log('conected');
36
- // this.userTable = new UsersTable(this.db);
37
- // console.log('tests');
38
- // test('matching cities to foods', this.setUser.bind(this));
39
- // }
40
- // public async setUser() {
41
- // const users = await this.userTable.select().all();
42
- // console.log(users);
43
- // }
44
- // }
45
- (async () => {
46
- try {
47
- // const usersTest = new UsersTest();
48
- // await usersTest.execute();
49
- const db = await new dbConnector_1.default()
50
- .connectionString('postgresql://postgres@127.0.0.1/drizzle')
51
- .connect();
52
- const res = await db.session().execute(builders_1.Create.table(db.create(usersTable_1.default)).build());
53
- if (res.isLeft()) {
54
- console.log(res.value.reason);
55
- }
56
- else {
57
- console.log(res.value);
58
- }
59
- const userTable = new usersTable_1.default(db);
60
- const users = await userTable.select().all();
61
- console.log(users);
62
- }
63
- catch (e) {
64
- console.log(e);
65
- }
66
- })();
File without changes
@@ -1 +0,0 @@
1
- "use strict";
File without changes
@@ -1 +0,0 @@
1
- "use strict";
File without changes
@@ -1 +0,0 @@
1
- "use strict";
@@ -1,6 +0,0 @@
1
- import AbstractTable from '../../tables/abstractTable';
2
- export default class CitiesTable extends AbstractTable<CitiesTable> {
3
- id: import("../../columns/column").IndexedColumn<import("../..").PgInteger, true, true>;
4
- name: import("../..").Column<import("../..").PgVarChar, false, false>;
5
- tableName(): string;
6
- }
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const abstractTable_1 = require("../../tables/abstractTable");
4
- class CitiesTable extends abstractTable_1.default {
5
- constructor() {
6
- super(...arguments);
7
- this.id = this.int('id').primaryKey().autoIncrement();
8
- this.name = this.varchar('name', { notNull: true });
9
- }
10
- tableName() {
11
- return 'cities';
12
- }
13
- }
14
- exports.default = CitiesTable;
File without changes
@@ -1 +0,0 @@
1
- "use strict";
File without changes
@@ -1 +0,0 @@
1
- "use strict";
File without changes
@@ -1 +0,0 @@
1
- "use strict";
File without changes
@@ -1 +0,0 @@
1
- "use strict";
File without changes
@@ -1 +0,0 @@
1
- "use strict";
@@ -1,8 +0,0 @@
1
- import { AbstractTable } from '../../tables';
2
- export default class UsersTable extends AbstractTable<UsersTable> {
3
- id: import("../../columns/column").IndexedColumn<import("../..").PgInteger, true, true>;
4
- firstName: import("../..").Column<import("../..").PgVarChar, false, false>;
5
- lastName: import("../..").Column<import("../..").PgVarChar, false, false>;
6
- createdAt: import("../..").Column<import("../..").PgTimestamp, true, false>;
7
- tableName(): string;
8
- }
@@ -1,20 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- // import TestEnum from '../../examples/testEnum';
4
- const tables_1 = require("../../tables");
5
- // import CitiesTable from './citiesTable';
6
- class UsersTable extends tables_1.AbstractTable {
7
- constructor() {
8
- super(...arguments);
9
- this.id = this.int('id').primaryKey().autoIncrement();
10
- this.firstName = this.varchar('first_name', { size: 256, notNull: true });
11
- this.lastName = this.varchar('last_name', { size: 128, notNull: true });
12
- this.createdAt = this.timestamp('created_at').defaultValue(new Date());
13
- }
14
- // public enum1 = this.enum<TestEnum>(TestEnum, 'test_enum', 'TestEnum');
15
- // public cityId = this.int('city_id').foreignKey(CitiesTable, (table) => table.id);
16
- tableName() {
17
- return 'users';
18
- }
19
- }
20
- exports.default = UsersTable;