@typetron/framework 0.5.39 → 0.5.40

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 (110) hide show
  1. package/Database/Readme.md +13 -4
  2. package/build/Database/Drivers/DatabaseDriver.d.ts +8 -3
  3. package/build/Database/Drivers/DatabaseDriver.d.ts.map +1 -1
  4. package/build/Database/Drivers/DatabaseDriver.js +22 -0
  5. package/build/Database/Drivers/DatabaseDriver.js.map +1 -1
  6. package/build/Database/Drivers/MySQL/Alter/index.d.ts +5 -29
  7. package/build/Database/Drivers/MySQL/Alter/index.d.ts.map +1 -1
  8. package/build/Database/Drivers/MySQL/Alter/index.js +12 -60
  9. package/build/Database/Drivers/MySQL/Alter/index.js.map +1 -1
  10. package/build/Database/Drivers/MySQL/ColumnDefinition.d.ts +3 -5
  11. package/build/Database/Drivers/MySQL/ColumnDefinition.d.ts.map +1 -1
  12. package/build/Database/Drivers/MySQL/ColumnDefinition.js +3 -13
  13. package/build/Database/Drivers/MySQL/ColumnDefinition.js.map +1 -1
  14. package/build/Database/Drivers/MySQL/Create.d.ts +4 -8
  15. package/build/Database/Drivers/MySQL/Create.d.ts.map +1 -1
  16. package/build/Database/Drivers/MySQL/Create.js +4 -38
  17. package/build/Database/Drivers/MySQL/Create.js.map +1 -1
  18. package/build/Database/Drivers/MySQL/MysqlDriver.d.ts +2 -5
  19. package/build/Database/Drivers/MySQL/MysqlDriver.d.ts.map +1 -1
  20. package/build/Database/Drivers/MySQL/MysqlDriver.js +3 -13
  21. package/build/Database/Drivers/MySQL/MysqlDriver.js.map +1 -1
  22. package/build/Database/Drivers/MySQL/Schema.d.ts +9 -12
  23. package/build/Database/Drivers/MySQL/Schema.d.ts.map +1 -1
  24. package/build/Database/Drivers/MySQL/Schema.js +12 -52
  25. package/build/Database/Drivers/MySQL/Schema.js.map +1 -1
  26. package/build/Database/Drivers/Postgres/Helpers.d.ts +6 -0
  27. package/build/Database/Drivers/Postgres/Helpers.d.ts.map +1 -0
  28. package/build/Database/Drivers/Postgres/Helpers.js +33 -0
  29. package/build/Database/Drivers/Postgres/Helpers.js.map +1 -0
  30. package/build/Database/Drivers/Postgres/PostgresDriver.d.ts +37 -0
  31. package/build/Database/Drivers/Postgres/PostgresDriver.d.ts.map +1 -0
  32. package/build/Database/Drivers/Postgres/PostgresDriver.js +107 -0
  33. package/build/Database/Drivers/Postgres/PostgresDriver.js.map +1 -0
  34. package/build/Database/Drivers/Postgres/Schema.d.ts +5 -0
  35. package/build/Database/Drivers/Postgres/Schema.d.ts.map +1 -0
  36. package/build/Database/Drivers/Postgres/Schema.js +10 -0
  37. package/build/Database/Drivers/Postgres/Schema.js.map +1 -0
  38. package/build/Database/Drivers/Postgres/Statements/Delete.d.ts +6 -0
  39. package/build/Database/Drivers/Postgres/Statements/Delete.d.ts.map +1 -0
  40. package/build/Database/Drivers/Postgres/Statements/Delete.js +15 -0
  41. package/build/Database/Drivers/Postgres/Statements/Delete.js.map +1 -0
  42. package/build/Database/Drivers/Postgres/Statements/Select.d.ts +5 -0
  43. package/build/Database/Drivers/Postgres/Statements/Select.d.ts.map +1 -0
  44. package/build/Database/Drivers/Postgres/Statements/Select.js +15 -0
  45. package/build/Database/Drivers/Postgres/Statements/Select.js.map +1 -0
  46. package/build/Database/Drivers/Postgres/Statements/Update.d.ts +6 -0
  47. package/build/Database/Drivers/Postgres/Statements/Update.d.ts.map +1 -0
  48. package/build/Database/Drivers/Postgres/Statements/Update.js +15 -0
  49. package/build/Database/Drivers/Postgres/Statements/Update.js.map +1 -0
  50. package/build/Database/Drivers/Postgres/Statements/index.d.ts +4 -0
  51. package/build/Database/Drivers/Postgres/Statements/index.d.ts.map +1 -0
  52. package/build/Database/Drivers/Postgres/Statements/index.js +20 -0
  53. package/build/Database/Drivers/Postgres/Statements/index.js.map +1 -0
  54. package/build/Database/Drivers/Postgres/Statements/rejectLimit.d.ts +4 -0
  55. package/build/Database/Drivers/Postgres/Statements/rejectLimit.d.ts.map +1 -0
  56. package/build/Database/Drivers/Postgres/Statements/rejectLimit.js +11 -0
  57. package/build/Database/Drivers/Postgres/Statements/rejectLimit.js.map +1 -0
  58. package/build/Database/Drivers/Postgres/index.d.ts +3 -0
  59. package/build/Database/Drivers/Postgres/index.d.ts.map +1 -0
  60. package/build/Database/Drivers/Postgres/index.js +31 -0
  61. package/build/Database/Drivers/Postgres/index.js.map +1 -0
  62. package/build/Database/Drivers/SQL/Alter/index.d.ts +42 -0
  63. package/build/Database/Drivers/SQL/Alter/index.d.ts.map +1 -0
  64. package/build/Database/Drivers/SQL/Alter/index.js +85 -0
  65. package/build/Database/Drivers/SQL/Alter/index.js.map +1 -0
  66. package/build/Database/Drivers/SQL/ColumnDefinition.d.ts +10 -0
  67. package/build/Database/Drivers/SQL/ColumnDefinition.d.ts.map +1 -0
  68. package/build/Database/Drivers/SQL/ColumnDefinition.js +21 -0
  69. package/build/Database/Drivers/SQL/ColumnDefinition.js.map +1 -0
  70. package/build/Database/Drivers/SQL/Create.d.ts +10 -0
  71. package/build/Database/Drivers/SQL/Create.d.ts.map +1 -0
  72. package/build/Database/Drivers/SQL/Create.js +36 -0
  73. package/build/Database/Drivers/SQL/Create.js.map +1 -0
  74. package/build/Database/Drivers/SQL/Schema.d.ts +15 -2
  75. package/build/Database/Drivers/SQL/Schema.d.ts.map +1 -1
  76. package/build/Database/Drivers/SQL/Schema.js +76 -17
  77. package/build/Database/Drivers/SQL/Schema.js.map +1 -1
  78. package/build/Database/Drivers/SQL/Statements/BaseStatement.js +1 -1
  79. package/build/Database/Drivers/SQL/Statements/BaseStatement.js.map +1 -1
  80. package/build/Database/Drivers/SQL/Statements/Update.d.ts.map +1 -1
  81. package/build/Database/Drivers/SQL/Statements/Update.js +2 -1
  82. package/build/Database/Drivers/SQL/Statements/Update.js.map +1 -1
  83. package/build/Database/Drivers/SQLite/Schema.d.ts +4 -10
  84. package/build/Database/Drivers/SQLite/Schema.d.ts.map +1 -1
  85. package/build/Database/Drivers/SQLite/Schema.js +3 -23
  86. package/build/Database/Drivers/SQLite/Schema.js.map +1 -1
  87. package/build/Database/Drivers/SQLite/SqliteDriver.d.ts +1 -1
  88. package/build/Database/Drivers/SQLite/SqliteDriver.d.ts.map +1 -1
  89. package/build/Database/Drivers/SQLite/SqliteDriver.js +3 -1
  90. package/build/Database/Drivers/SQLite/SqliteDriver.js.map +1 -1
  91. package/build/Database/Drivers/index.d.ts +1 -0
  92. package/build/Database/Drivers/index.d.ts.map +1 -1
  93. package/build/Database/Drivers/index.js +1 -0
  94. package/build/Database/Drivers/index.js.map +1 -1
  95. package/build/Database/Entity.d.ts.map +1 -1
  96. package/build/Database/Entity.js +4 -0
  97. package/build/Database/Entity.js.map +1 -1
  98. package/build/Database/Fields.js +4 -4
  99. package/build/Database/Fields.js.map +1 -1
  100. package/build/Database/Helpers.d.ts +4 -0
  101. package/build/Database/Helpers.d.ts.map +1 -1
  102. package/build/Database/Helpers.js +11 -7
  103. package/build/Database/Helpers.js.map +1 -1
  104. package/build/Database/Types.d.ts.map +1 -1
  105. package/build/Database/Types.js +2 -1
  106. package/build/Database/Types.js.map +1 -1
  107. package/build/Framework/Config/DatabaseConfig.d.ts.map +1 -1
  108. package/build/Framework/Config/DatabaseConfig.js +7 -0
  109. package/build/Framework/Config/DatabaseConfig.js.map +1 -1
  110. package/package.json +3 -1
@@ -0,0 +1,37 @@
1
+ import { Pool, PoolClient, PoolConfig } from 'pg';
2
+ import { SqlValue } from '../../Types';
3
+ import { Insert } from '../SQL/Statements/Insert';
4
+ import { Alter } from '../SQL/Statements/Alter';
5
+ import { SchemaContract } from '../SchemaContract';
6
+ import { DatabaseDriver } from '../DatabaseDriver';
7
+ import { Create } from '../SQL/Create';
8
+ import { Delete, Select, Update } from './Statements';
9
+ export declare class PostgresDriver extends DatabaseDriver {
10
+ pool: Pool;
11
+ schema: SchemaContract;
12
+ statements: {
13
+ create: typeof Create;
14
+ select: typeof Select;
15
+ insert: typeof Insert;
16
+ delete: typeof Delete;
17
+ update: typeof Update;
18
+ alter: typeof Alter;
19
+ };
20
+ constructor(poolConfig: PoolConfig);
21
+ truncate(table: string): Promise<void>;
22
+ runRaw<T>(query: string, params?: SqlValue[], client?: Pool | PoolClient): Promise<T[]>;
23
+ run(query: string, params?: SqlValue[]): Promise<void>;
24
+ get<T>(query: string, params?: SqlValue[]): Promise<T[]>;
25
+ first<T>(query: string, params?: SqlValue[]): Promise<T>;
26
+ /** Reads the id from the session's last used sequence, so the inserted table needs an identity column */
27
+ insertOne(query: string, params?: SqlValue[]): Promise<number>;
28
+ tableColumns(table: string): Promise<{
29
+ name: string;
30
+ type: string;
31
+ nullable: boolean;
32
+ default: string | undefined;
33
+ autoIncrement: number;
34
+ primaryKey: boolean;
35
+ }[]>;
36
+ }
37
+ //# sourceMappingURL=PostgresDriver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PostgresDriver.d.ts","sourceRoot":"","sources":["../../../../Database/Drivers/Postgres/PostgresDriver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAS,MAAM,IAAI,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAElD,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAEtC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAkBrD,qBAAa,cAAe,SAAQ,cAAc;IAC9C,IAAI,EAAE,IAAI,CAAA;IAEV,MAAM,EAAE,cAAc,CAAmB;IAEzC,UAAU;;;;;;;MAOT;gBAEW,UAAU,EAAE,UAAU;IAY5B,QAAQ,CAAC,KAAK,EAAE,MAAM;IAItB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,QAAQ,EAAO,EAAE,MAAM,GAAE,IAAI,GAAG,UAAsB,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAUtG,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,QAAQ,EAAO;IAI1C,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,QAAQ,EAAO,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAI5D,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,QAAQ,EAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAIlE,yGAAyG;IACnG,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,QAAQ,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAUlE,YAAY,CAAC,KAAK,EAAE,MAAM;;;;;;;;CAoCnC"}
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PostgresDriver = void 0;
4
+ const pg_1 = require("pg");
5
+ const Insert_1 = require("../SQL/Statements/Insert");
6
+ const Alter_1 = require("../SQL/Statements/Alter");
7
+ const DatabaseDriver_1 = require("../DatabaseDriver");
8
+ const Helpers_1 = require("../../Helpers");
9
+ const Create_1 = require("../SQL/Create");
10
+ const Schema_1 = require("./Schema");
11
+ const Statements_1 = require("./Statements");
12
+ const Helpers_2 = require("./Helpers");
13
+ /** Postgres spells some types differently than they are declared */
14
+ const typeAliases = [
15
+ [/^character varying/, 'varchar'],
16
+ [/^timestamp without time zone$/, 'timestamp'],
17
+ ];
18
+ class PostgresDriver extends DatabaseDriver_1.DatabaseDriver {
19
+ pool;
20
+ schema = new Schema_1.Schema(this);
21
+ statements = {
22
+ create: Create_1.Create,
23
+ select: Statements_1.Select,
24
+ insert: Insert_1.Insert,
25
+ delete: Statements_1.Delete,
26
+ update: Statements_1.Update,
27
+ alter: Alter_1.Alter,
28
+ };
29
+ constructor(poolConfig) {
30
+ super();
31
+ this.pool = new pg_1.Pool({
32
+ connectionTimeoutMillis: 30000,
33
+ types: {
34
+ // Counts and other bigint results come back as numbers, like the other drivers
35
+ getTypeParser: (id, format) => id === pg_1.types.builtins.INT8 ? Number : pg_1.types.getTypeParser(id, format),
36
+ },
37
+ ...poolConfig,
38
+ });
39
+ }
40
+ async truncate(table) {
41
+ await this.run(`TRUNCATE TABLE ${(0, Helpers_1.wrap)(table)} RESTART IDENTITY`);
42
+ }
43
+ async runRaw(query, params = [], client = this.pool) {
44
+ const sql = (0, Helpers_2.toPostgresSQL)(query);
45
+ try {
46
+ return (await client.query(sql, params)).rows;
47
+ }
48
+ catch (error) {
49
+ error.message += ` in SQL: "${sql}"`;
50
+ throw error;
51
+ }
52
+ }
53
+ async run(query, params = []) {
54
+ await this.runRaw(query, params);
55
+ }
56
+ async get(query, params = []) {
57
+ return this.runRaw(query, params);
58
+ }
59
+ async first(query, params = []) {
60
+ return (await this.runRaw(query, params))[0];
61
+ }
62
+ /** Reads the id from the session's last used sequence, so the inserted table needs an identity column */
63
+ async insertOne(query, params = []) {
64
+ const client = await this.pool.connect();
65
+ try {
66
+ await this.runRaw(query, params, client);
67
+ return (await this.runRaw('SELECT lastval() AS id', [], client))[0].id;
68
+ }
69
+ finally {
70
+ client.release();
71
+ }
72
+ }
73
+ async tableColumns(table) {
74
+ const columnsInfo = await this.get(`select c.column_name as name,
75
+ format_type(a.atttypid, a.atttypmod) as type,
76
+ c.is_nullable = 'YES' as nullable,
77
+ c.column_default as "default",
78
+ c.is_identity = 'YES' or coalesce(c.column_default, '') like 'nextval(%' as "autoIncrement",
79
+ exists(select 1
80
+ from information_schema.table_constraints tc
81
+ join information_schema.key_column_usage k
82
+ on k.constraint_name = tc.constraint_name
83
+ and k.table_schema = tc.table_schema
84
+ where tc.constraint_type = 'PRIMARY KEY'
85
+ and tc.table_schema = c.table_schema
86
+ and tc.table_name = c.table_name
87
+ and k.column_name = c.column_name) as "primaryKey"
88
+ from information_schema.columns c
89
+ join pg_attribute a
90
+ on a.attrelid = (quote_ident(c.table_schema) || '.' || quote_ident(c.table_name))::regclass
91
+ and a.attname = c.column_name
92
+ where c.table_name = ?
93
+ and c.table_schema = current_schema()
94
+ order by c.ordinal_position
95
+ `, [table]);
96
+ return columnsInfo.map(info => ({
97
+ name: info.name,
98
+ type: typeAliases.reduce((type, [pattern, alias]) => type.replace(pattern, alias), info.type),
99
+ nullable: info.nullable,
100
+ default: info.default,
101
+ autoIncrement: Number(info.autoIncrement),
102
+ primaryKey: info.primaryKey,
103
+ }));
104
+ }
105
+ }
106
+ exports.PostgresDriver = PostgresDriver;
107
+ //# sourceMappingURL=PostgresDriver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PostgresDriver.js","sourceRoot":"","sources":["../../../../Database/Drivers/Postgres/PostgresDriver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { Schema as BaseSchema } from '../SQL/Schema';
2
+ export declare class Schema extends BaseSchema {
3
+ protected typesMatches: Map<any, string>;
4
+ }
5
+ //# sourceMappingURL=Schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../../../Database/Drivers/Postgres/Schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,eAAe,CAAA;AAGpD,qBAAa,MAAO,SAAQ,UAAU;IAClC,SAAS,CAAC,YAAY,mBAAe;CACxC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Schema = void 0;
4
+ const Schema_1 = require("../SQL/Schema");
5
+ const _1 = require(".");
6
+ class Schema extends Schema_1.Schema {
7
+ typesMatches = _1.typesMatches;
8
+ }
9
+ exports.Schema = Schema;
10
+ //# sourceMappingURL=Schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../../../Database/Drivers/Postgres/Schema.ts"],"names":[],"mappings":";;;AAAA,0CAAoD;AACpD,wBAAgC;AAEhC,MAAa,MAAO,SAAQ,eAAU;IACxB,YAAY,GAAG,eAAY,CAAA;CACxC;AAFD,wBAEC"}
@@ -0,0 +1,6 @@
1
+ import { Delete as BaseDelete } from '../../SQL/Statements/Delete';
2
+ export declare class Delete extends BaseDelete {
3
+ get limit(): string;
4
+ get orders(): string;
5
+ }
6
+ //# sourceMappingURL=Delete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Delete.d.ts","sourceRoot":"","sources":["../../../../../Database/Drivers/Postgres/Statements/Delete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAGlE,qBAAa,MAAO,SAAQ,UAAU;IAClC,IAAI,KAAK,WAER;IAED,IAAI,MAAM,WAET;CACJ"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Delete = void 0;
4
+ const Delete_1 = require("../../SQL/Statements/Delete");
5
+ const rejectLimit_1 = require("./rejectLimit");
6
+ class Delete extends Delete_1.Delete {
7
+ get limit() {
8
+ return (0, rejectLimit_1.rejectLimit)(this.components, 'DELETE');
9
+ }
10
+ get orders() {
11
+ return '';
12
+ }
13
+ }
14
+ exports.Delete = Delete;
15
+ //# sourceMappingURL=Delete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Delete.js","sourceRoot":"","sources":["../../../../../Database/Drivers/Postgres/Statements/Delete.ts"],"names":[],"mappings":";;;AAAA,wDAAkE;AAClE,+CAA2C;AAE3C,MAAa,MAAO,SAAQ,eAAU;IAClC,IAAI,KAAK;QACL,OAAO,IAAA,yBAAW,EAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IACjD,CAAC;IAED,IAAI,MAAM;QACN,OAAO,EAAE,CAAA;IACb,CAAC;CACJ;AARD,wBAQC"}
@@ -0,0 +1,5 @@
1
+ import { Select as BaseSelect } from '../../SQL/Statements/Select';
2
+ export declare class Select extends BaseSelect {
3
+ get limit(): string;
4
+ }
5
+ //# sourceMappingURL=Select.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../../../Database/Drivers/Postgres/Statements/Select.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAElE,qBAAa,MAAO,SAAQ,UAAU;IAClC,IAAI,KAAK,WAMR;CACJ"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Select = void 0;
4
+ const Select_1 = require("../../SQL/Statements/Select");
5
+ class Select extends Select_1.Select {
6
+ get limit() {
7
+ const limit = this.components.limit;
8
+ if (!limit) {
9
+ return '';
10
+ }
11
+ return limit.count ? `LIMIT ${limit.count} OFFSET ${limit.from}` : `LIMIT ${limit.from}`;
12
+ }
13
+ }
14
+ exports.Select = Select;
15
+ //# sourceMappingURL=Select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Select.js","sourceRoot":"","sources":["../../../../../Database/Drivers/Postgres/Statements/Select.ts"],"names":[],"mappings":";;;AAAA,wDAAkE;AAElE,MAAa,MAAO,SAAQ,eAAU;IAClC,IAAI,KAAK;QACL,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAA;QACnC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,EAAE,CAAA;QACb,CAAC;QACD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,KAAK,WAAW,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,IAAI,EAAE,CAAA;IAC5F,CAAC;CACJ;AARD,wBAQC"}
@@ -0,0 +1,6 @@
1
+ import { Update as BaseUpdate } from '../../SQL/Statements/Update';
2
+ export declare class Update extends BaseUpdate {
3
+ get limit(): string;
4
+ get orders(): string;
5
+ }
6
+ //# sourceMappingURL=Update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Update.d.ts","sourceRoot":"","sources":["../../../../../Database/Drivers/Postgres/Statements/Update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAGlE,qBAAa,MAAO,SAAQ,UAAU;IAClC,IAAI,KAAK,WAER;IAED,IAAI,MAAM,WAET;CACJ"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Update = void 0;
4
+ const Update_1 = require("../../SQL/Statements/Update");
5
+ const rejectLimit_1 = require("./rejectLimit");
6
+ class Update extends Update_1.Update {
7
+ get limit() {
8
+ return (0, rejectLimit_1.rejectLimit)(this.components, 'UPDATE');
9
+ }
10
+ get orders() {
11
+ return '';
12
+ }
13
+ }
14
+ exports.Update = Update;
15
+ //# sourceMappingURL=Update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Update.js","sourceRoot":"","sources":["../../../../../Database/Drivers/Postgres/Statements/Update.ts"],"names":[],"mappings":";;;AAAA,wDAAkE;AAClE,+CAA2C;AAE3C,MAAa,MAAO,SAAQ,eAAU;IAClC,IAAI,KAAK;QACL,OAAO,IAAA,yBAAW,EAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IACjD,CAAC;IAED,IAAI,MAAM;QACN,OAAO,EAAE,CAAA;IACb,CAAC;CACJ;AARD,wBAQC"}
@@ -0,0 +1,4 @@
1
+ export * from './Select';
2
+ export * from './Update';
3
+ export * from './Delete';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../Database/Drivers/Postgres/Statements/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./Select"), exports);
18
+ __exportStar(require("./Update"), exports);
19
+ __exportStar(require("./Delete"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../Database/Drivers/Postgres/Statements/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwB;AACxB,2CAAwB;AACxB,2CAAwB"}
@@ -0,0 +1,4 @@
1
+ import { Components } from '../../../Types';
2
+ /** Postgres has no LIMIT on UPDATE or DELETE; failing beats silently affecting every matching row */
3
+ export declare function rejectLimit(components: Components, statement: string): string;
4
+ //# sourceMappingURL=rejectLimit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rejectLimit.d.ts","sourceRoot":"","sources":["../../../../../Database/Drivers/Postgres/Statements/rejectLimit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE3C,qGAAqG;AACrG,wBAAgB,WAAW,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAK7E"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.rejectLimit = rejectLimit;
4
+ /** Postgres has no LIMIT on UPDATE or DELETE; failing beats silently affecting every matching row */
5
+ function rejectLimit(components, statement) {
6
+ if (components.limit) {
7
+ throw new Error(`Postgres does not support LIMIT in ${statement} statements`);
8
+ }
9
+ return '';
10
+ }
11
+ //# sourceMappingURL=rejectLimit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rejectLimit.js","sourceRoot":"","sources":["../../../../../Database/Drivers/Postgres/Statements/rejectLimit.ts"],"names":[],"mappings":";;AAGA,kCAKC;AAND,qGAAqG;AACrG,SAAgB,WAAW,CAAC,UAAsB,EAAE,SAAiB;IACjE,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,sCAAsC,SAAS,aAAa,CAAC,CAAA;IACjF,CAAC;IACD,OAAO,EAAE,CAAA;AACb,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './PostgresDriver';
2
+ export declare const typesMatches: Map<any, string>;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../Database/Drivers/Postgres/index.ts"],"names":[],"mappings":"AAGA,cAAc,kBAAkB,CAAA;AAGhC,eAAO,MAAM,YAAY,kBAQvB,CAAA"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.typesMatches = void 0;
18
+ const Entity_1 = require("../../Entity");
19
+ const Fields_1 = require("../../Fields");
20
+ __exportStar(require("./PostgresDriver"), exports);
21
+ // tslint:disable-next-line:no-any
22
+ exports.typesMatches = new Map([
23
+ [Entity_1.Entity, 'integer'],
24
+ [Fields_1.PrimaryField, 'integer'],
25
+ [Number, 'integer'],
26
+ [String, 'varchar(255)'],
27
+ [Date, 'timestamp'],
28
+ [Fields_1.JSONField, 'text'],
29
+ [Boolean, 'boolean'],
30
+ ]);
31
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../Database/Drivers/Postgres/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,yCAAqC;AACrC,yCAAsD;AAEtD,mDAAgC;AAEhC,kCAAkC;AACrB,QAAA,YAAY,GAAG,IAAI,GAAG,CAAc;IAC7C,CAAC,eAAM,EAAE,SAAS,CAAC;IACnB,CAAC,qBAAY,EAAE,SAAS,CAAC;IACzB,CAAC,MAAM,EAAE,SAAS,CAAC;IACnB,CAAC,MAAM,EAAE,cAAc,CAAC;IACxB,CAAC,IAAI,EAAE,WAAW,CAAC;IACnB,CAAC,kBAAS,EAAE,MAAM,CAAC;IACnB,CAAC,OAAO,EAAE,SAAS,CAAC;CACvB,CAAC,CAAA"}
@@ -0,0 +1,42 @@
1
+ import { ColumnDefinitionOptions } from '..';
2
+ import { Expression } from '../../../Expression';
3
+ import { ColumnDefinitionConstructor } from '../ColumnDefinition';
4
+ export declare enum Constraints {
5
+ PrimaryKey = "PRIMARY KEY",
6
+ ForeignKey = "FOREIGN KEY"
7
+ }
8
+ export declare abstract class AlterOption extends Expression {
9
+ column: ColumnDefinitionOptions;
10
+ constructor(column: ColumnDefinitionOptions);
11
+ abstract toSQL(): string;
12
+ }
13
+ export declare class AddColumn extends AlterOption {
14
+ protected columnDefinition: ColumnDefinitionConstructor;
15
+ toSQL(): string;
16
+ }
17
+ export declare class AlterColumnType extends AlterOption {
18
+ toSQL(): string;
19
+ }
20
+ export declare class AddIdentity extends AlterOption {
21
+ toSQL(): string;
22
+ }
23
+ export declare class AddPrimaryKey extends AlterOption {
24
+ toSQL(): string;
25
+ }
26
+ export declare class AddConstraint extends AlterOption {
27
+ type: Constraints;
28
+ constructor(column: ColumnDefinitionOptions, type: Constraints);
29
+ toSQL(): string;
30
+ }
31
+ export declare class DropColumn extends Expression {
32
+ column: string;
33
+ constructor(column: string);
34
+ toSQL(): string;
35
+ }
36
+ export declare class Alter extends Expression {
37
+ table: string;
38
+ alterOptions: Expression[];
39
+ constructor(table: string, alterOptions: Expression[]);
40
+ toSQL(): string;
41
+ }
42
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../Database/Drivers/SQL/Alter/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,IAAI,CAAA;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAoB,2BAA2B,EAAE,MAAM,qBAAqB,CAAA;AAEnF,oBAAY,WAAW;IACnB,UAAU,gBAAgB;IAC1B,UAAU,gBAAgB;CAC7B;AAED,8BAAsB,WAAY,SAAQ,UAAU;IAC7B,MAAM,EAAE,uBAAuB;gBAA/B,MAAM,EAAE,uBAAuB;IAElD,QAAQ,CAAC,KAAK,IAAI,MAAM;CAC3B;AAED,qBAAa,SAAU,SAAQ,WAAW;IACtC,SAAS,CAAC,gBAAgB,EAAE,2BAA2B,CAAmB;IAE1E,KAAK,IAAI,MAAM;CAGlB;AAED,qBAAa,eAAgB,SAAQ,WAAW;IAC5C,KAAK,IAAI,MAAM;CAIlB;AAED,qBAAa,WAAY,SAAQ,WAAW;IACxC,KAAK,IAAI,MAAM;CAIlB;AAED,qBAAa,aAAc,SAAQ,WAAW;IAC1C,KAAK,IAAI,MAAM;CAGlB;AAED,qBAAa,aAAc,SAAQ,WAAW;IAEU,IAAI,EAAE,WAAW;gBAAzD,MAAM,EAAE,uBAAuB,EAAS,IAAI,EAAE,WAAW;IAErE,KAAK,IAAI,MAAM;CAGlB;AAED,qBAAa,UAAW,SAAQ,UAAU;IACnB,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM;IAEjC,KAAK,IAAI,MAAM;CAGlB;AAED,qBAAa,KAAM,SAAQ,UAAU;IACd,KAAK,EAAE,MAAM;IAAS,YAAY,EAAE,UAAU,EAAE;gBAAhD,KAAK,EAAE,MAAM,EAAS,YAAY,EAAE,UAAU,EAAE;IAEnE,KAAK;CAMR"}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Alter = exports.DropColumn = exports.AddConstraint = exports.AddPrimaryKey = exports.AddIdentity = exports.AlterColumnType = exports.AddColumn = exports.AlterOption = exports.Constraints = void 0;
4
+ const Helpers_1 = require("../../../Helpers");
5
+ const Expression_1 = require("../../../Expression");
6
+ const ColumnDefinition_1 = require("../ColumnDefinition");
7
+ var Constraints;
8
+ (function (Constraints) {
9
+ Constraints["PrimaryKey"] = "PRIMARY KEY";
10
+ Constraints["ForeignKey"] = "FOREIGN KEY";
11
+ })(Constraints || (exports.Constraints = Constraints = {}));
12
+ class AlterOption extends Expression_1.Expression {
13
+ column;
14
+ constructor(column) {
15
+ super();
16
+ this.column = column;
17
+ }
18
+ }
19
+ exports.AlterOption = AlterOption;
20
+ class AddColumn extends AlterOption {
21
+ columnDefinition = ColumnDefinition_1.ColumnDefinition;
22
+ toSQL() {
23
+ return `ADD ${new this.columnDefinition(this.column).toSQL()}`;
24
+ }
25
+ }
26
+ exports.AddColumn = AddColumn;
27
+ class AlterColumnType extends AlterOption {
28
+ toSQL() {
29
+ const column = (0, Helpers_1.wrap)(this.column.name);
30
+ return `ALTER COLUMN ${column} TYPE ${this.column.type} USING ${column}::${this.column.type}`;
31
+ }
32
+ }
33
+ exports.AlterColumnType = AlterColumnType;
34
+ class AddIdentity extends AlterOption {
35
+ toSQL() {
36
+ const column = (0, Helpers_1.wrap)(this.column.name);
37
+ return `ALTER COLUMN ${column} SET NOT NULL, ALTER COLUMN ${column} ADD GENERATED BY DEFAULT AS IDENTITY`;
38
+ }
39
+ }
40
+ exports.AddIdentity = AddIdentity;
41
+ class AddPrimaryKey extends AlterOption {
42
+ toSQL() {
43
+ return `ADD PRIMARY KEY (${(0, Helpers_1.wrap)(this.column.name)})`;
44
+ }
45
+ }
46
+ exports.AddPrimaryKey = AddPrimaryKey;
47
+ class AddConstraint extends AlterOption {
48
+ type;
49
+ constructor(column, type) {
50
+ super(column);
51
+ this.type = type;
52
+ }
53
+ toSQL() {
54
+ return `ADD CONSTRAINT ${this.type} (${(0, Helpers_1.wrap)(this.column.name)})`;
55
+ }
56
+ }
57
+ exports.AddConstraint = AddConstraint;
58
+ class DropColumn extends Expression_1.Expression {
59
+ column;
60
+ constructor(column) {
61
+ super();
62
+ this.column = column;
63
+ }
64
+ toSQL() {
65
+ return `DROP COLUMN ${(0, Helpers_1.wrap)(this.column)}`;
66
+ }
67
+ }
68
+ exports.DropColumn = DropColumn;
69
+ class Alter extends Expression_1.Expression {
70
+ table;
71
+ alterOptions;
72
+ constructor(table, alterOptions) {
73
+ super();
74
+ this.table = table;
75
+ this.alterOptions = alterOptions;
76
+ }
77
+ toSQL() {
78
+ return `
79
+ ALTER TABLE ${(0, Helpers_1.wrap)(this.table)}
80
+ ${this.alterOptions.map(option => option.toSQL()).join(', \n')}
81
+ `;
82
+ }
83
+ }
84
+ exports.Alter = Alter;
85
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../Database/Drivers/SQL/Alter/index.ts"],"names":[],"mappings":";;;AACA,8CAAuC;AACvC,oDAAgD;AAChD,0DAAmF;AAEnF,IAAY,WAGX;AAHD,WAAY,WAAW;IACnB,yCAA0B,CAAA;IAC1B,yCAA0B,CAAA;AAC9B,CAAC,EAHW,WAAW,2BAAX,WAAW,QAGtB;AAED,MAAsB,WAAY,SAAQ,uBAAU;IAC7B;IAAnB,YAAmB,MAA+B;QAAG,KAAK,EAAE,CAAA;QAAzC,WAAM,GAAN,MAAM,CAAyB;IAAU,CAAC;CAGhE;AAJD,kCAIC;AAED,MAAa,SAAU,SAAQ,WAAW;IAC5B,gBAAgB,GAAgC,mCAAgB,CAAA;IAE1E,KAAK;QACD,OAAO,OAAO,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAA;IAClE,CAAC;CACJ;AAND,8BAMC;AAED,MAAa,eAAgB,SAAQ,WAAW;IAC5C,KAAK;QACD,MAAM,MAAM,GAAG,IAAA,cAAI,EAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACrC,OAAO,gBAAgB,MAAM,SAAS,IAAI,CAAC,MAAM,CAAC,IAAI,UAAU,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IACjG,CAAC;CACJ;AALD,0CAKC;AAED,MAAa,WAAY,SAAQ,WAAW;IACxC,KAAK;QACD,MAAM,MAAM,GAAG,IAAA,cAAI,EAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACrC,OAAO,gBAAgB,MAAM,+BAA+B,MAAM,uCAAuC,CAAA;IAC7G,CAAC;CACJ;AALD,kCAKC;AAED,MAAa,aAAc,SAAQ,WAAW;IAC1C,KAAK;QACD,OAAO,oBAAoB,IAAA,cAAI,EAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAA;IACxD,CAAC;CACJ;AAJD,sCAIC;AAED,MAAa,aAAc,SAAQ,WAAW;IAEU;IAApD,YAAY,MAA+B,EAAS,IAAiB;QAAG,KAAK,CAAC,MAAM,CAAC,CAAA;QAAjC,SAAI,GAAJ,IAAI,CAAa;IAAgB,CAAC;IAEtF,KAAK;QACD,OAAO,kBAAkB,IAAI,CAAC,IAAI,KAAK,IAAA,cAAI,EAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAA;IACpE,CAAC;CACJ;AAPD,sCAOC;AAED,MAAa,UAAW,SAAQ,uBAAU;IACnB;IAAnB,YAAmB,MAAc;QAAG,KAAK,EAAE,CAAA;QAAxB,WAAM,GAAN,MAAM,CAAQ;IAAU,CAAC;IAE5C,KAAK;QACD,OAAO,eAAe,IAAA,cAAI,EAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAA;IAC7C,CAAC;CACJ;AAND,gCAMC;AAED,MAAa,KAAM,SAAQ,uBAAU;IACd;IAAsB;IAAzC,YAAmB,KAAa,EAAS,YAA0B;QAAG,KAAK,EAAE,CAAA;QAA1D,UAAK,GAAL,KAAK,CAAQ;QAAS,iBAAY,GAAZ,YAAY,CAAc;IAAU,CAAC;IAE9E,KAAK;QACD,OAAO;0BACW,IAAA,cAAI,EAAC,IAAI,CAAC,KAAK,CAAC;kBACxB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;SACrE,CAAA;IACL,CAAC;CACJ;AATD,sBASC"}
@@ -0,0 +1,10 @@
1
+ import { ColumnDefinitionOptions } from '.';
2
+ export declare class ColumnDefinition {
3
+ options: ColumnDefinitionOptions;
4
+ /** SQL standard identity column; dialects with their own syntax override it */
5
+ autoIncrement: string;
6
+ constructor(options: ColumnDefinitionOptions);
7
+ toSQL(): string;
8
+ }
9
+ export type ColumnDefinitionConstructor = new (options: ColumnDefinitionOptions) => ColumnDefinition;
10
+ //# sourceMappingURL=ColumnDefinition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColumnDefinition.d.ts","sourceRoot":"","sources":["../../../../Database/Drivers/SQL/ColumnDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,GAAG,CAAA;AAG3C,qBAAa,gBAAgB;IAIN,OAAO,EAAE,uBAAuB;IAHnD,+EAA+E;IAC/E,aAAa,SAAqC;gBAE/B,OAAO,EAAE,uBAAuB;IAEnD,KAAK;CASR;AAED,MAAM,MAAM,2BAA2B,GAAG,KAAK,OAAO,EAAE,uBAAuB,KAAK,gBAAgB,CAAA"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ColumnDefinition = void 0;
4
+ const Helpers_1 = require("../../Helpers");
5
+ class ColumnDefinition {
6
+ options;
7
+ /** SQL standard identity column; dialects with their own syntax override it */
8
+ autoIncrement = 'GENERATED BY DEFAULT AS IDENTITY';
9
+ constructor(options) {
10
+ this.options = options;
11
+ }
12
+ toSQL() {
13
+ const sqlParts = [(0, Helpers_1.wrap)(this.options.name), this.options.type];
14
+ if (this.options.autoIncrement) {
15
+ sqlParts.push(this.autoIncrement);
16
+ }
17
+ return sqlParts.join(' ');
18
+ }
19
+ }
20
+ exports.ColumnDefinition = ColumnDefinition;
21
+ //# sourceMappingURL=ColumnDefinition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColumnDefinition.js","sourceRoot":"","sources":["../../../../Database/Drivers/SQL/ColumnDefinition.ts"],"names":[],"mappings":";;;AACA,2CAAoC;AAEpC,MAAa,gBAAgB;IAIN;IAHnB,+EAA+E;IAC/E,aAAa,GAAG,kCAAkC,CAAA;IAElD,YAAmB,OAAgC;QAAhC,YAAO,GAAP,OAAO,CAAyB;IAAG,CAAC;IAEvD,KAAK;QACD,MAAM,QAAQ,GAAG,CAAC,IAAA,cAAI,EAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAE7D,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YAC7B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QACrC,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC7B,CAAC;CACJ;AAfD,4CAeC"}
@@ -0,0 +1,10 @@
1
+ import { BaseStatement } from './Statements/BaseStatement';
2
+ import { ColumnDefinitionOptions } from '.';
3
+ import { ColumnDefinitionConstructor } from './ColumnDefinition';
4
+ export declare class Create extends BaseStatement {
5
+ columns: ColumnDefinitionOptions[];
6
+ protected columnDefinition: ColumnDefinitionConstructor;
7
+ constructor(table: string, columns?: ColumnDefinitionOptions[]);
8
+ toSQL(): string;
9
+ }
10
+ //# sourceMappingURL=Create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Create.d.ts","sourceRoot":"","sources":["../../../../Database/Drivers/SQL/Create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,GAAG,CAAA;AAC3C,OAAO,EAAoB,2BAA2B,EAAE,MAAM,oBAAoB,CAAA;AAGlF,qBAAa,MAAO,SAAQ,aAAa;IAIH,OAAO,EAAE,uBAAuB,EAAE;IAFpE,SAAS,CAAC,gBAAgB,EAAE,2BAA2B,CAAmB;gBAE9D,KAAK,EAAE,MAAM,EAAS,OAAO,GAAE,uBAAuB,EAAO;IAYzE,KAAK;CAcR"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Create = void 0;
4
+ const BaseStatement_1 = require("./Statements/BaseStatement");
5
+ const ColumnDefinition_1 = require("./ColumnDefinition");
6
+ const Helpers_1 = require("../../Helpers");
7
+ class Create extends BaseStatement_1.BaseStatement {
8
+ columns;
9
+ columnDefinition = ColumnDefinition_1.ColumnDefinition;
10
+ constructor(table, columns = []) {
11
+ super({
12
+ table,
13
+ columns: [],
14
+ joins: [],
15
+ wheres: [],
16
+ groups: [],
17
+ orders: [],
18
+ having: []
19
+ });
20
+ this.columns = columns;
21
+ }
22
+ toSQL() {
23
+ const definitions = this.columns.map(column => new this.columnDefinition(column).toSQL());
24
+ this.columns.where('primaryKey').whenNotEmpty(primaryColumns => {
25
+ definitions.push(`PRIMARY KEY (${(0, Helpers_1.wrap)(primaryColumns.pluck('name'))})`);
26
+ });
27
+ return `
28
+ CREATE TABLE ${this.table}
29
+ (
30
+ ${definitions.join(', \n')}
31
+ )
32
+ `;
33
+ }
34
+ }
35
+ exports.Create = Create;
36
+ //# sourceMappingURL=Create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Create.js","sourceRoot":"","sources":["../../../../Database/Drivers/SQL/Create.ts"],"names":[],"mappings":";;;AAAA,8DAA0D;AAE1D,yDAAkF;AAClF,2CAAoC;AAEpC,MAAa,MAAO,SAAQ,6BAAa;IAIH;IAFxB,gBAAgB,GAAgC,mCAAgB,CAAA;IAE1E,YAAY,KAAa,EAAS,UAAqC,EAAE;QACrE,KAAK,CAAC;YACF,KAAK;YACL,OAAO,EAAE,EAAE;YACX,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;SACb,CAAC,CAAA;QAT4B,YAAO,GAAP,OAAO,CAAgC;IAUzE,CAAC;IAED,KAAK;QACD,MAAM,WAAW,GAAa,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;QAEnG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE;YAC3D,WAAW,CAAC,IAAI,CAAC,gBAAgB,IAAA,cAAI,EAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;QAC3E,CAAC,CAAC,CAAA;QAEF,OAAO;2BACY,IAAI,CAAC,KAAK;;kBAEnB,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;;SAEjC,CAAA;IACL,CAAC;CACJ;AA9BD,wBA8BC"}