@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
@@ -8,8 +8,8 @@
8
8
 
9
9
  ## Introduction
10
10
 
11
- The Database module contains Typetron's connection layer, SQL query builder, schema drivers, and entity ORM. SQLite and MySQL use the same
12
- `Query` and `Entity` APIs.
11
+ The Database module contains Typetron's connection layer, SQL query builder, schema drivers, and entity ORM. SQLite, MySQL, and Postgres use
12
+ the same `Query` and `Entity` APIs.
13
13
 
14
14
  ## Configuration
15
15
 
@@ -29,8 +29,17 @@ export const config = new DatabaseConfig({
29
29
  Query.connection = new Connection(new SqliteDriver(':memory:'))
30
30
  ```
31
31
 
32
- The built-in SQLite driver reads `process.env.database` and otherwise uses `database.sqlite`. The MySQL driver reads the database host,
33
- user, password, and database environment values. All queries and entities use the static `Query.connection`.
32
+ The built-in SQLite driver reads `process.env.database` and otherwise uses `database.sqlite`. The MySQL and Postgres drivers read the
33
+ `databaseHost`, `databaseUser`, `databasePassword`, and `database` environment values; Postgres also reads `databasePort`. Select a driver
34
+ with `driver: 'mysql'` or `driver: 'postgres'`, or the `databaseDriver` environment value. All queries and entities use the static
35
+ `Query.connection`.
36
+
37
+ Postgres notes:
38
+
39
+ - Query placeholders are written as `?` and translated to `$1`, `$2`, ...; avoid the Postgres `?` JSON operators in raw SQL.
40
+ - `insertOne` reads the id from `lastval()`, so the table needs an identity column. `@PrimaryColumn` creates one when the schema is
41
+ synchronized.
42
+ - `limit` is not supported on `update` and `delete` queries and throws an error.
34
43
 
35
44
  ## Queries and Entities
36
45
 
@@ -17,12 +17,17 @@ export declare abstract class DatabaseDriver {
17
17
  abstract run(query: string, params?: SqlValue[]): Promise<void>;
18
18
  abstract truncate(table: string): Promise<void>;
19
19
  abstract insertOne(query: string, params: SqlValue[]): Promise<number>;
20
- abstract get<T>(query: string, params: SqlValue[]): Promise<T | T[]>;
20
+ abstract get<T>(query: string, params?: SqlValue[]): Promise<T[]>;
21
21
  abstract first<T>(query: string, params: SqlValue[]): Promise<T | undefined>;
22
- abstract tables(): Promise<{
22
+ tables(): Promise<{
23
23
  name: string;
24
24
  }[]>;
25
- abstract tableExists(table: string): Promise<boolean>;
25
+ tableExists(table: string): Promise<boolean>;
26
+ /**
27
+ * SQL condition matching `table_schema` to the connection's schema, with its bindings.
28
+ * Defaults to the SQL standard `current_schema()`.
29
+ */
30
+ protected currentSchema(): [string, SqlValue[]];
26
31
  abstract tableColumns(table: string): Promise<ColumnDefinitionOptions[]>;
27
32
  }
28
33
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"DatabaseDriver.d.ts","sourceRoot":"","sources":["../../../Database/Drivers/DatabaseDriver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AAExE,UAAU,cAAc;IACpB,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC/B,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;CACjC;AAED,8BAAsB,cAAc;IAEhC,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAA;IAEnC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAE/B,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/D,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/C,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAEtE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IAEpE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAE5E,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,EAAE,CAAC;IAE5C,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAErD,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;CAC3E"}
1
+ {"version":3,"file":"DatabaseDriver.d.ts","sourceRoot":"","sources":["../../../Database/Drivers/DatabaseDriver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AAExE,UAAU,cAAc;IACpB,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC/B,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;CACjC;AAED,8BAAsB,cAAc;IAEhC,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAA;IAEnC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAE/B,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/D,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/C,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAEtE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAEjE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAE5E,MAAM,IAAI,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,EAAE,CAAC;IAW7B,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAYlD;;;OAGG;IACH,SAAS,CAAC,aAAa,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;IAI/C,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;CAC3E"}
@@ -2,6 +2,28 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DatabaseDriver = void 0;
4
4
  class DatabaseDriver {
5
+ tables() {
6
+ const [schemaCondition, params] = this.currentSchema();
7
+ return this.get(`select table_name as name
8
+ from information_schema.tables
9
+ where table_schema = ${schemaCondition}
10
+ `, params);
11
+ }
12
+ async tableExists(table) {
13
+ const [schemaCondition, params] = this.currentSchema();
14
+ return Boolean(await this.first(`select *
15
+ from information_schema.tables
16
+ where table_name = ?
17
+ and table_schema = ${schemaCondition}
18
+ `, [table, ...params]));
19
+ }
20
+ /**
21
+ * SQL condition matching `table_schema` to the connection's schema, with its bindings.
22
+ * Defaults to the SQL standard `current_schema()`.
23
+ */
24
+ currentSchema() {
25
+ return ['current_schema()', []];
26
+ }
5
27
  }
6
28
  exports.DatabaseDriver = DatabaseDriver;
7
29
  //# sourceMappingURL=DatabaseDriver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DatabaseDriver.js","sourceRoot":"","sources":["../../../Database/Drivers/DatabaseDriver.ts"],"names":[],"mappings":";;;AAeA,MAAsB,cAAc;CAqBnC;AArBD,wCAqBC"}
1
+ {"version":3,"file":"DatabaseDriver.js","sourceRoot":"","sources":["../../../Database/Drivers/DatabaseDriver.ts"],"names":[],"mappings":";;;AAeA,MAAsB,cAAc;IAgBhC,MAAM;QACF,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QACtD,OAAO,IAAI,CAAC,GAAG,CACX;;oCAEwB,eAAe;aACtC,EACD,MAAM,CACT,CAAA;IACL,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAa;QAC3B,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QACtD,OAAO,OAAO,CAAC,MAAM,IAAI,CAAC,KAAK,CAC3B;;;oCAGwB,eAAe;aACtC,EACD,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,CACrB,CAAC,CAAA;IACN,CAAC;IAED;;;OAGG;IACO,aAAa;QACnB,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAA;IACnC,CAAC;CAGJ;AAhDD,wCAgDC"}
@@ -1,34 +1,10 @@
1
- import { ColumnDefinitionOptions } from '../../../Drivers/SQL';
2
- import { Expression } from '@Typetron/Database';
3
- export declare enum Constraints {
4
- PrimaryKey = "PRIMARY KEY",
5
- ForeignKey = "FOREIGN KEY"
6
- }
7
- export declare abstract class AlterOption extends Expression {
8
- column: ColumnDefinitionOptions;
9
- constructor(column: ColumnDefinitionOptions);
10
- abstract toSQL(): string;
11
- }
12
- export declare class AddColumn extends AlterOption {
13
- toSQL(): string;
14
- }
15
- export declare class AddConstraint extends AlterOption {
16
- type: Constraints;
17
- constructor(column: ColumnDefinitionOptions, type: Constraints);
18
- toSQL(): string;
1
+ import { AddColumn as BaseAddColumn, AlterOption } from '../../SQL/Alter';
2
+ import { ColumnDefinition } from '../ColumnDefinition';
3
+ export { AddConstraint, Alter, AlterOption, Constraints, DropColumn } from '../../SQL/Alter';
4
+ export declare class AddColumn extends BaseAddColumn {
5
+ protected columnDefinition: typeof ColumnDefinition;
19
6
  }
20
7
  export declare class ModifyColumn extends AlterOption {
21
8
  toSQL(): string;
22
9
  }
23
- export declare class DropColumn extends Expression {
24
- column: string;
25
- constructor(column: string);
26
- toSQL(): string;
27
- }
28
- export declare class Alter extends Expression {
29
- table: string;
30
- alterOptions: Expression[];
31
- constructor(table: string, alterOptions: Expression[]);
32
- toSQL(): string;
33
- }
34
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../Database/Drivers/MySQL/Alter/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAG9D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAE/C,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,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,YAAa,SAAQ,WAAW;IACzC,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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../Database/Drivers/MySQL/Alter/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAEtD,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5F,qBAAa,SAAU,SAAQ,aAAa;IACxC,SAAS,CAAC,gBAAgB,0BAAmB;CAChD;AAED,qBAAa,YAAa,SAAQ,WAAW;IACzC,KAAK,IAAI,MAAM;CAGlB"}
@@ -1,70 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Alter = exports.DropColumn = exports.ModifyColumn = exports.AddConstraint = exports.AddColumn = exports.AlterOption = exports.Constraints = void 0;
4
- const Helpers_1 = require("../../../Helpers");
5
- const ColumnDefinition_1 = require("@Typetron/Database/Drivers/MySQL/ColumnDefinition");
6
- const Database_1 = require("@Typetron/Database");
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 Database_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
- toSQL() {
22
- return `ADD ${new ColumnDefinition_1.ColumnDefinition(this.column).toSQL()}`;
23
- }
3
+ exports.ModifyColumn = exports.AddColumn = exports.DropColumn = exports.Constraints = exports.AlterOption = exports.Alter = exports.AddConstraint = void 0;
4
+ const Alter_1 = require("../../SQL/Alter");
5
+ const ColumnDefinition_1 = require("../ColumnDefinition");
6
+ var Alter_2 = require("../../SQL/Alter");
7
+ Object.defineProperty(exports, "AddConstraint", { enumerable: true, get: function () { return Alter_2.AddConstraint; } });
8
+ Object.defineProperty(exports, "Alter", { enumerable: true, get: function () { return Alter_2.Alter; } });
9
+ Object.defineProperty(exports, "AlterOption", { enumerable: true, get: function () { return Alter_2.AlterOption; } });
10
+ Object.defineProperty(exports, "Constraints", { enumerable: true, get: function () { return Alter_2.Constraints; } });
11
+ Object.defineProperty(exports, "DropColumn", { enumerable: true, get: function () { return Alter_2.DropColumn; } });
12
+ class AddColumn extends Alter_1.AddColumn {
13
+ columnDefinition = ColumnDefinition_1.ColumnDefinition;
24
14
  }
25
15
  exports.AddColumn = AddColumn;
26
- class AddConstraint extends AlterOption {
27
- type;
28
- constructor(column, type) {
29
- super(column);
30
- this.type = type;
31
- }
32
- toSQL() {
33
- return `ADD CONSTRAINT ${this.type} (${this.column.name})`;
34
- }
35
- }
36
- exports.AddConstraint = AddConstraint;
37
- class ModifyColumn extends AlterOption {
16
+ class ModifyColumn extends Alter_1.AlterOption {
38
17
  toSQL() {
39
18
  return `MODIFY ${new ColumnDefinition_1.ColumnDefinition(this.column).toSQL()}`;
40
19
  }
41
20
  }
42
21
  exports.ModifyColumn = ModifyColumn;
43
- class DropColumn extends Database_1.Expression {
44
- column;
45
- constructor(column) {
46
- super();
47
- this.column = column;
48
- }
49
- toSQL() {
50
- return `DROP COLUMN ${(0, Helpers_1.wrap)(this.column)}`;
51
- }
52
- }
53
- exports.DropColumn = DropColumn;
54
- class Alter extends Database_1.Expression {
55
- table;
56
- alterOptions;
57
- constructor(table, alterOptions) {
58
- super();
59
- this.table = table;
60
- this.alterOptions = alterOptions;
61
- }
62
- toSQL() {
63
- return `
64
- ALTER TABLE ${(0, Helpers_1.wrap)(this.table)}
65
- ${this.alterOptions.map(option => option.toSQL()).join(', \n')}
66
- `;
67
- }
68
- }
69
- exports.Alter = Alter;
70
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../Database/Drivers/MySQL/Alter/index.ts"],"names":[],"mappings":";;;AACA,8CAAuC;AACvC,wFAAoF;AACpF,iDAA+C;AAE/C,IAAY,WAGX;AAHD,WAAY,WAAW;IACnB,yCAA0B,CAAA;IAC1B,yCAA0B,CAAA;AAC9B,CAAC,EAHW,WAAW,2BAAX,WAAW,QAGtB;AAED,MAAsB,WAAY,SAAQ,qBAAU;IAC7B;IAAnB,YAAmB,MAA+B;QAAG,KAAK,EAAE,CAAA;QAAzC,WAAM,GAAN,MAAM,CAAyB;IAAU,CAAC;CAGhE;AAJD,kCAIC;AAED,MAAa,SAAU,SAAQ,WAAW;IACtC,KAAK;QACD,OAAO,OAAO,IAAI,mCAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAA;IAC7D,CAAC;CACJ;AAJD,8BAIC;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,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAA;IAC9D,CAAC;CACJ;AAPD,sCAOC;AAED,MAAa,YAAa,SAAQ,WAAW;IACzC,KAAK;QACD,OAAO,UAAU,IAAI,mCAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAA;IAChE,CAAC;CACJ;AAJD,oCAIC;AAED,MAAa,UAAW,SAAQ,qBAAU;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,qBAAU;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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../Database/Drivers/MySQL/Alter/index.ts"],"names":[],"mappings":";;;AAAA,2CAAyE;AACzE,0DAAsD;AAEtD,yCAA4F;AAAnF,sGAAA,aAAa,OAAA;AAAE,8FAAA,KAAK,OAAA;AAAE,oGAAA,WAAW,OAAA;AAAE,oGAAA,WAAW,OAAA;AAAE,mGAAA,UAAU,OAAA;AAEnE,MAAa,SAAU,SAAQ,iBAAa;IAC9B,gBAAgB,GAAG,mCAAgB,CAAA;CAChD;AAFD,8BAEC;AAED,MAAa,YAAa,SAAQ,mBAAW;IACzC,KAAK;QACD,OAAO,UAAU,IAAI,mCAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAA;IAChE,CAAC;CACJ;AAJD,oCAIC"}
@@ -1,7 +1,5 @@
1
- import { ColumnDefinitionOptions } from '../../Drivers/SQL';
2
- export declare class ColumnDefinition {
3
- options: ColumnDefinitionOptions;
4
- constructor(options: ColumnDefinitionOptions);
5
- toSQL(): string;
1
+ import { ColumnDefinition as BaseColumnDefinition } from '../SQL/ColumnDefinition';
2
+ export declare class ColumnDefinition extends BaseColumnDefinition {
3
+ autoIncrement: string;
6
4
  }
7
5
  //# sourceMappingURL=ColumnDefinition.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnDefinition.d.ts","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/ColumnDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAG3D,qBAAa,gBAAgB;IACN,OAAO,EAAE,uBAAuB;gBAAhC,OAAO,EAAE,uBAAuB;IAEnD,KAAK;CASR"}
1
+ {"version":3,"file":"ColumnDefinition.d.ts","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/ColumnDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAElF,qBAAa,gBAAiB,SAAQ,oBAAoB;IACtD,aAAa,SAAmB;CACnC"}
@@ -1,19 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ColumnDefinition = void 0;
4
- const Helpers_1 = require("../../Helpers");
5
- class ColumnDefinition {
6
- options;
7
- constructor(options) {
8
- this.options = options;
9
- }
10
- toSQL() {
11
- const sqlParts = [(0, Helpers_1.wrap)(this.options.name), this.options.type];
12
- if (this.options.autoIncrement) {
13
- sqlParts.push('AUTO_INCREMENT');
14
- }
15
- return sqlParts.join(' ');
16
- }
4
+ const ColumnDefinition_1 = require("../SQL/ColumnDefinition");
5
+ class ColumnDefinition extends ColumnDefinition_1.ColumnDefinition {
6
+ autoIncrement = 'AUTO_INCREMENT';
17
7
  }
18
8
  exports.ColumnDefinition = ColumnDefinition;
19
9
  //# sourceMappingURL=ColumnDefinition.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnDefinition.js","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/ColumnDefinition.ts"],"names":[],"mappings":";;;AACA,2CAAoC;AAEpC,MAAa,gBAAgB;IACN;IAAnB,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,gBAAgB,CAAC,CAAA;QACnC,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC7B,CAAC;CACJ;AAZD,4CAYC"}
1
+ {"version":3,"file":"ColumnDefinition.js","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/ColumnDefinition.ts"],"names":[],"mappings":";;;AAAA,8DAAkF;AAElF,MAAa,gBAAiB,SAAQ,mCAAoB;IACtD,aAAa,GAAG,gBAAgB,CAAA;CACnC;AAFD,4CAEC"}
@@ -1,10 +1,6 @@
1
- import { BaseStatement } from '../SQL/Statements/BaseStatement';
2
- import { ColumnDefinitionOptions } from '../SQL';
3
- export declare class Create extends BaseStatement {
4
- columns: ColumnDefinitionOptions[];
5
- constructor(table: string, columns?: ColumnDefinitionOptions[]);
6
- toSQL(): string;
7
- private getColumnsSQL;
8
- private getColumnSQL;
1
+ import { Create as BaseCreate } from '../SQL/Create';
2
+ import { ColumnDefinition } from './ColumnDefinition';
3
+ export declare class Create extends BaseCreate {
4
+ protected columnDefinition: typeof ColumnDefinition;
9
5
  }
10
6
  //# sourceMappingURL=Create.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Create.d.ts","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/Create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAA;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,QAAQ,CAAA;AAGhD,qBAAa,MAAO,SAAQ,aAAa;IAEH,OAAO,EAAE,uBAAuB,EAAE;gBAAxD,KAAK,EAAE,MAAM,EAAS,OAAO,GAAE,uBAAuB,EAAO;IAYzE,KAAK;IAeL,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,YAAY;CASvB"}
1
+ {"version":3,"file":"Create.d.ts","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/Create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD,qBAAa,MAAO,SAAQ,UAAU;IAClC,SAAS,CAAC,gBAAgB,0BAAmB;CAChD"}
@@ -1,44 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Create = void 0;
4
- const BaseStatement_1 = require("../SQL/Statements/BaseStatement");
5
- const Helpers_1 = require("../../Helpers");
6
- class Create extends BaseStatement_1.BaseStatement {
7
- columns;
8
- constructor(table, columns = []) {
9
- super({
10
- table,
11
- columns: [],
12
- joins: [],
13
- wheres: [],
14
- groups: [],
15
- orders: [],
16
- having: []
17
- });
18
- this.columns = columns;
19
- }
20
- toSQL() {
21
- const definitions = this.getColumnsSQL(this.columns);
22
- this.columns.where('primaryKey').whenNotEmpty(primaryColumns => {
23
- definitions.push(`PRIMARY KEY (${primaryColumns.pluck('name').join(', ')})`);
24
- });
25
- return `
26
- CREATE TABLE ${this.table}
27
- (
28
- ${definitions.join(', \n')}
29
- )
30
- `;
31
- }
32
- getColumnsSQL(columns) {
33
- return columns.map(this.getColumnSQL);
34
- }
35
- getColumnSQL(column) {
36
- const sqlParts = [(0, Helpers_1.wrap)(column.name), column.type];
37
- if (column.autoIncrement) {
38
- sqlParts.push('AUTO_INCREMENT');
39
- }
40
- return sqlParts.join(' ');
41
- }
4
+ const Create_1 = require("../SQL/Create");
5
+ const ColumnDefinition_1 = require("./ColumnDefinition");
6
+ class Create extends Create_1.Create {
7
+ columnDefinition = ColumnDefinition_1.ColumnDefinition;
42
8
  }
43
9
  exports.Create = Create;
44
10
  //# sourceMappingURL=Create.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Create.js","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/Create.ts"],"names":[],"mappings":";;;AAAA,mEAA+D;AAE/D,2CAAoC;AAEpC,MAAa,MAAO,SAAQ,6BAAa;IAEH;IAAlC,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,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAE9D,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE;YAC3D,WAAW,CAAC,IAAI,CAAC,gBAAgB,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAChF,CAAC,CAAC,CAAA;QAEF,OAAO;2BACY,IAAI,CAAC,KAAK;;kBAEnB,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;;SAEjC,CAAA;IACL,CAAC;IAEO,aAAa,CAAC,OAAkC;QACpD,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IACzC,CAAC;IAEO,YAAY,CAAC,MAA+B;QAChD,MAAM,QAAQ,GAAG,CAAC,IAAA,cAAI,EAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;QAEjD,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACvB,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QACnC,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC7B,CAAC;CACJ;AA1CD,wBA0CC"}
1
+ {"version":3,"file":"Create.js","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/Create.ts"],"names":[],"mappings":";;;AAAA,0CAAoD;AACpD,yDAAqD;AAErD,MAAa,MAAO,SAAQ,eAAU;IACxB,gBAAgB,GAAG,mCAAgB,CAAA;CAChD;AAFD,wBAEC"}
@@ -1,6 +1,6 @@
1
- import { DatabaseDriver } from '../DatabaseDriver';
2
1
  import { Connection, ConnectionConfig, OkPacket } from 'mysql';
3
2
  import { SqlValue } from '../../Types';
3
+ import { DatabaseDriver } from '../DatabaseDriver';
4
4
  import { Create } from './Create';
5
5
  import { Select } from '../SQL/Statements/Select';
6
6
  import { Insert } from '../SQL/Statements/Insert';
@@ -26,10 +26,7 @@ export declare class MysqlDriver extends DatabaseDriver {
26
26
  get<T>(query: string, params?: SqlValue[]): Promise<T[]>;
27
27
  first<T>(query: string, params?: SqlValue[]): Promise<T>;
28
28
  insertOne(query: string, params?: SqlValue[]): Promise<number>;
29
- tables(): Promise<{
30
- name: string;
31
- }[]>;
32
- tableExists(table: string): Promise<boolean>;
29
+ protected currentSchema(): [string, SqlValue[]];
33
30
  tableColumns(table: string): Promise<{
34
31
  name: string;
35
32
  type: string;
@@ -1 +1 @@
1
- {"version":3,"file":"MysqlDriver.d.ts","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/MysqlDriver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAoB,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAYlD,qBAAa,WAAY,SAAQ,cAAc;IAC3C,UAAU,EAAE,UAAU,CAAA;IAEtB,MAAM,EAAE,cAAc,CAAmB;IAEzC,UAAU;;;;;;;MAOT;gBAEW,gBAAgB,EAAE,gBAAgB;IAUxC,QAAQ,CAAC,KAAK,EAAE,MAAM;IAI5B,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,QAAQ,EAAO,GAAG,OAAO,CAAC,CAAC,GAAG,QAAQ,CAAC;IAYlE,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;IAI5D,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,QAAQ,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAIxE,MAAM;cACqB,MAAM;;IASjC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAWtC,YAAY,CAAC,KAAK,EAAE,MAAM;;;;;;;;CAwBnC"}
1
+ {"version":3,"file":"MysqlDriver.d.ts","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/MysqlDriver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAoB,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAYlD,qBAAa,WAAY,SAAQ,cAAc;IAC3C,UAAU,EAAE,UAAU,CAAA;IAEtB,MAAM,EAAE,cAAc,CAAmB;IAEzC,UAAU;;;;;;;MAOT;gBAEW,gBAAgB,EAAE,gBAAgB;IAUxC,QAAQ,CAAC,KAAK,EAAE,MAAM;IAI5B,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,QAAQ,EAAO,GAAG,OAAO,CAAC,CAAC,GAAG,QAAQ,CAAC;IAYlE,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;IAI5D,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,QAAQ,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAIxE,SAAS,CAAC,aAAa,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;IAIzC,YAAY,CAAC,KAAK,EAAE,MAAM;;;;;;;;CAwBnC"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MysqlDriver = void 0;
4
- const DatabaseDriver_1 = require("../DatabaseDriver");
5
4
  const mysql_1 = require("mysql");
5
+ const DatabaseDriver_1 = require("../DatabaseDriver");
6
6
  const Create_1 = require("./Create");
7
7
  const Select_1 = require("../SQL/Statements/Select");
8
8
  const Insert_1 = require("../SQL/Statements/Insert");
@@ -55,18 +55,8 @@ class MysqlDriver extends DatabaseDriver_1.DatabaseDriver {
55
55
  async insertOne(query, params = []) {
56
56
  return (await this.runRaw(query, params)).insertId;
57
57
  }
58
- tables() {
59
- return this.get(`select TABLE_NAME as name
60
- from information_schema.TABLES
61
- WHERE table_schema = ?
62
- `, [this.connection.config.database]);
63
- }
64
- tableExists(table) {
65
- return this.first(`select *
66
- from information_schema.tables
67
- where table_name = ?
68
- and table_schema = ?
69
- `, [table, this.connection.config.database]);
58
+ currentSchema() {
59
+ return ['?', [this.connection.config.database]];
70
60
  }
71
61
  async tableColumns(table) {
72
62
  const columnsInfo = await this.get(`select cast(IS_NULLABLE = 'YES' as unsigned) as nullable,
@@ -1 +1 @@
1
- {"version":3,"file":"MysqlDriver.js","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/MysqlDriver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MysqlDriver.js","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/MysqlDriver.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,13 @@
1
- import { ColumnField, Entity } from '../..';
2
1
  import { Schema as BaseSchema } from '../SQL/Schema';
2
+ import { Create } from './Create';
3
+ import { ColumnDefinitionOptions } from '../SQL';
4
+ import { AddColumn, AddConstraint, ModifyColumn } from './Alter';
3
5
  export declare class Schema extends BaseSchema {
4
- columnMetadataToColumnDefinition(metadata: ColumnField<Entity>): {
5
- name: string;
6
- primaryKey: boolean;
7
- autoIncrement: number;
8
- type: string;
9
- default: undefined;
10
- nullable: boolean;
11
- };
12
- create(table: string, columns: ColumnField<Entity>[]): Promise<void>;
13
- protected syncTableColumns(table: string, columnsMetadata: ColumnField<Entity>[]): Promise<void>;
14
- private getColumnTypeBasedOnTypescriptType;
6
+ protected typesMatches: Map<any, string>;
7
+ protected createStatement(table: string, columns: ColumnDefinitionOptions[]): Create;
8
+ protected addColumn(column: ColumnDefinitionOptions): AddColumn;
9
+ protected changeColumnType(column: ColumnDefinitionOptions): ModifyColumn;
10
+ protected addAutoIncrement(column: ColumnDefinitionOptions): ModifyColumn;
11
+ protected addPrimaryKey(column: ColumnDefinitionOptions): AddConstraint;
15
12
  }
16
13
  //# sourceMappingURL=Schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/Schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAA4B,MAAM,OAAO,CAAA;AACrE,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,eAAe,CAAA;AAMpD,qBAAa,MAAO,SAAQ,UAAU;IAElC,gCAAgC,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC;;;;;;;;IAWxD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE;cAO1C,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE;IA6CtF,OAAO,CAAC,kCAAkC;CAS7C"}
1
+ {"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/Schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEjC,OAAO,EAAE,uBAAuB,EAAE,MAAM,QAAQ,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAe,YAAY,EAAE,MAAM,SAAS,CAAA;AAE7E,qBAAa,MAAO,SAAQ,UAAU;IAElC,SAAS,CAAC,YAAY,mBAAe;IAErC,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,EAAE;IAI3E,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,uBAAuB;IAInD,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,uBAAuB;IAI1D,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,uBAAuB;IAI1D,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,uBAAuB;CAG1D"}
@@ -1,66 +1,26 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Schema = void 0;
4
- const __1 = require("../..");
5
4
  const Schema_1 = require("../SQL/Schema");
6
5
  const Create_1 = require("./Create");
7
6
  const _1 = require(".");
8
7
  const Alter_1 = require("./Alter");
9
8
  class Schema extends Schema_1.Schema {
10
- columnMetadataToColumnDefinition(metadata) {
11
- return {
12
- name: metadata.column,
13
- primaryKey: metadata.constructor === __1.PrimaryField,
14
- autoIncrement: Number(metadata.constructor === __1.PrimaryField),
15
- type: this.getColumnTypeBasedOnTypescriptType(metadata),
16
- default: undefined,
17
- nullable: true
18
- };
9
+ typesMatches = _1.typesMatches;
10
+ createStatement(table, columns) {
11
+ return new Create_1.Create(table, columns);
19
12
  }
20
- async create(table, columns) {
21
- const columnsDefinitions = columns.map(column => this.columnMetadataToColumnDefinition(column));
22
- const createStatement = new Create_1.Create(table, columnsDefinitions);
23
- await this.driver.run(createStatement.toSQL());
13
+ addColumn(column) {
14
+ return new Alter_1.AddColumn(column);
24
15
  }
25
- async syncTableColumns(table, columnsMetadata) {
26
- const columns = columnsMetadata.map(metadata => this.columnMetadataToColumnDefinition(metadata));
27
- const tableColumns = await this.driver.tableColumns(table);
28
- let alters = [];
29
- alters = alters.concat(columns
30
- .whereNotIn('name', tableColumns.pluck('name'))
31
- .map(column => new Alter_1.AddColumn({ ...column, autoIncrement: undefined })));
32
- columns.whereIn('name', tableColumns.pluck('name'))
33
- .forEach(column => {
34
- const typeInDB = tableColumns.findWhere('name', column.name)?.type;
35
- if (typeInDB !== column.type) {
36
- alters.push(new Alter_1.ModifyColumn(column));
37
- }
38
- });
39
- alters = alters.concat(tableColumns
40
- .whereNotIn('name', columns.pluck('name'))
41
- .map(tableColumn => new Alter_1.DropColumn(tableColumn.name)));
42
- await this.driver.run(new Alter_1.Alter(table, alters).toSQL());
43
- const additionalAlters = [];
44
- columns.forEach(column => {
45
- const dbInfo = tableColumns.findWhere('name', column.name);
46
- if (column.primaryKey && !dbInfo?.primaryKey) {
47
- additionalAlters.push(new Alter_1.AddConstraint(column, Alter_1.Constraints.PrimaryKey));
48
- }
49
- if (column.autoIncrement && !dbInfo?.autoIncrement) {
50
- additionalAlters.push(new Alter_1.ModifyColumn(column));
51
- }
52
- });
53
- if (!additionalAlters.empty()) {
54
- await this.driver.run(new Alter_1.Alter(table, additionalAlters).toSQL());
55
- }
16
+ changeColumnType(column) {
17
+ return new Alter_1.ModifyColumn(column);
56
18
  }
57
- getColumnTypeBasedOnTypescriptType(column) {
58
- const typePrototype = Array.from(_1.typesMatches.keys())
59
- .find(key => column.type().prototype instanceof key) || String;
60
- return _1.typesMatches.get(column.type())
61
- ?? _1.typesMatches.get(column.constructor)
62
- ?? _1.typesMatches.get(typePrototype)
63
- ?? _1.typesMatches.get(String);
19
+ addAutoIncrement(column) {
20
+ return new Alter_1.ModifyColumn(column);
21
+ }
22
+ addPrimaryKey(column) {
23
+ return new Alter_1.AddConstraint(column, Alter_1.Constraints.PrimaryKey);
64
24
  }
65
25
  }
66
26
  exports.Schema = Schema;
@@ -1 +1 @@
1
- {"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/Schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/Schema.ts"],"names":[],"mappings":";;;AAAA,0CAAoD;AACpD,qCAAiC;AACjC,wBAAgC;AAEhC,mCAA6E;AAE7E,MAAa,MAAO,SAAQ,eAAU;IAExB,YAAY,GAAG,eAAY,CAAA;IAE3B,eAAe,CAAC,KAAa,EAAE,OAAkC;QACvE,OAAO,IAAI,eAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IACrC,CAAC;IAES,SAAS,CAAC,MAA+B;QAC/C,OAAO,IAAI,iBAAS,CAAC,MAAM,CAAC,CAAA;IAChC,CAAC;IAES,gBAAgB,CAAC,MAA+B;QACtD,OAAO,IAAI,oBAAY,CAAC,MAAM,CAAC,CAAA;IACnC,CAAC;IAES,gBAAgB,CAAC,MAA+B;QACtD,OAAO,IAAI,oBAAY,CAAC,MAAM,CAAC,CAAA;IACnC,CAAC;IAES,aAAa,CAAC,MAA+B;QACnD,OAAO,IAAI,qBAAa,CAAC,MAAM,EAAE,mBAAW,CAAC,UAAU,CAAC,CAAA;IAC5D,CAAC;CACJ;AAvBD,wBAuBC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Translates the shared SQL dialect to Postgres: backtick identifiers become double-quoted
3
+ * and `?` placeholders become `$1`, `$2`, ... Quoted literals and identifiers are left untouched.
4
+ */
5
+ export declare function toPostgresSQL(sql: string): string;
6
+ //# sourceMappingURL=Helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Helpers.d.ts","sourceRoot":"","sources":["../../../../Database/Drivers/Postgres/Helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,UAsBxC"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toPostgresSQL = toPostgresSQL;
4
+ /**
5
+ * Translates the shared SQL dialect to Postgres: backtick identifiers become double-quoted
6
+ * and `?` placeholders become `$1`, `$2`, ... Quoted literals and identifiers are left untouched.
7
+ */
8
+ function toPostgresSQL(sql) {
9
+ let placeholder = 0;
10
+ let quote;
11
+ let result = '';
12
+ for (const char of sql) {
13
+ if (quote) {
14
+ quote = char === quote ? undefined : quote;
15
+ result += char;
16
+ }
17
+ else if (char === '\'' || char === '"') {
18
+ quote = char;
19
+ result += char;
20
+ }
21
+ else if (char === '`') {
22
+ result += '"';
23
+ }
24
+ else if (char === '?') {
25
+ result += '$' + ++placeholder;
26
+ }
27
+ else {
28
+ result += char;
29
+ }
30
+ }
31
+ return result;
32
+ }
33
+ //# sourceMappingURL=Helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Helpers.js","sourceRoot":"","sources":["../../../../Database/Drivers/Postgres/Helpers.ts"],"names":[],"mappings":";;AAIA,sCAsBC;AA1BD;;;GAGG;AACH,SAAgB,aAAa,CAAC,GAAW;IACrC,IAAI,WAAW,GAAG,CAAC,CAAA;IACnB,IAAI,KAAyB,CAAA;IAC7B,IAAI,MAAM,GAAG,EAAE,CAAA;IAEf,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;QACrB,IAAI,KAAK,EAAE,CAAC;YACR,KAAK,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAA;YAC1C,MAAM,IAAI,IAAI,CAAA;QAClB,CAAC;aAAM,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACvC,KAAK,GAAG,IAAI,CAAA;YACZ,MAAM,IAAI,IAAI,CAAA;QAClB,CAAC;aAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACtB,MAAM,IAAI,GAAG,CAAA;QACjB,CAAC;aAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACtB,MAAM,IAAI,GAAG,GAAG,EAAE,WAAW,CAAA;QACjC,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,IAAI,CAAA;QAClB,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAA;AACjB,CAAC"}