tspace-mysql 1.9.0 → 1.9.1-beta.2

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 (118) hide show
  1. package/README.md +4580 -133
  2. package/dist/lib/config/index.d.ts +2 -2
  3. package/dist/lib/config/index.js +24 -16
  4. package/dist/lib/config/index.js.map +1 -1
  5. package/dist/lib/constants/index.d.ts +10 -1
  6. package/dist/lib/constants/index.js +11 -2
  7. package/dist/lib/constants/index.js.map +1 -1
  8. package/dist/lib/core/Abstracts/AbstractBuilder.d.ts +27 -23
  9. package/dist/lib/core/Abstracts/AbstractBuilder.js +11 -13
  10. package/dist/lib/core/Abstracts/AbstractBuilder.js.map +1 -1
  11. package/dist/lib/core/Abstracts/AbstractDB.d.ts +5 -2
  12. package/dist/lib/core/Abstracts/AbstractDB.js.map +1 -1
  13. package/dist/lib/core/Abstracts/AbstractModel.d.ts +7 -2
  14. package/dist/lib/core/Abstracts/AbstractModel.js.map +1 -1
  15. package/dist/lib/core/Abstracts/AbstractView.js.map +1 -1
  16. package/dist/lib/core/Blueprint.d.ts +37 -17
  17. package/dist/lib/core/Blueprint.js +38 -14
  18. package/dist/lib/core/Blueprint.js.map +1 -1
  19. package/dist/lib/core/Builder.d.ts +314 -42
  20. package/dist/lib/core/Builder.js +686 -391
  21. package/dist/lib/core/Builder.js.map +1 -1
  22. package/dist/lib/core/Cache/DBCache.js +19 -20
  23. package/dist/lib/core/Cache/DBCache.js.map +1 -1
  24. package/dist/lib/core/Cache/MemoryCache.js +3 -3
  25. package/dist/lib/core/Cache/MemoryCache.js.map +1 -1
  26. package/dist/lib/core/Cache/RedisCache.js +27 -17
  27. package/dist/lib/core/Cache/RedisCache.js.map +1 -1
  28. package/dist/lib/core/Cache/index.js +37 -17
  29. package/dist/lib/core/Cache/index.js.map +1 -1
  30. package/dist/lib/core/Contracts/AlterTable.d.ts +152 -0
  31. package/dist/lib/core/Contracts/AlterTable.js +243 -0
  32. package/dist/lib/core/Contracts/AlterTable.js.map +1 -0
  33. package/dist/lib/core/Contracts/Audit.d.ts +1 -1
  34. package/dist/lib/core/Contracts/Audit.js +2 -5
  35. package/dist/lib/core/Contracts/Audit.js.map +1 -1
  36. package/dist/lib/core/Contracts/Logger.d.ts +1 -1
  37. package/dist/lib/core/Contracts/Logger.js.map +1 -1
  38. package/dist/lib/core/DB.d.ts +103 -11
  39. package/dist/lib/core/DB.js +158 -32
  40. package/dist/lib/core/DB.js.map +1 -1
  41. package/dist/lib/core/Decorator.d.ts +144 -16
  42. package/dist/lib/core/Decorator.js +156 -14
  43. package/dist/lib/core/Decorator.js.map +1 -1
  44. package/dist/lib/core/Driver/index.d.ts +50 -14
  45. package/dist/lib/core/Driver/index.js +13 -9
  46. package/dist/lib/core/Driver/index.js.map +1 -1
  47. package/dist/lib/core/Driver/mariadb/MariadbDriver.js +84 -29
  48. package/dist/lib/core/Driver/mariadb/MariadbDriver.js.map +1 -1
  49. package/dist/lib/core/Driver/mariadb/MariadbQueryBuilder.d.ts +48 -12
  50. package/dist/lib/core/Driver/mariadb/MariadbQueryBuilder.js +189 -28
  51. package/dist/lib/core/Driver/mariadb/MariadbQueryBuilder.js.map +1 -1
  52. package/dist/lib/core/Driver/mongodb/MongodbDriver.d.ts +24 -0
  53. package/dist/lib/core/Driver/mongodb/MongodbDriver.js +261 -0
  54. package/dist/lib/core/Driver/mongodb/MongodbDriver.js.map +1 -0
  55. package/dist/lib/core/Driver/mongodb/MongodbQueryBuilder.d.ts +141 -0
  56. package/dist/lib/core/Driver/mongodb/MongodbQueryBuilder.js +571 -0
  57. package/dist/lib/core/Driver/mongodb/MongodbQueryBuilder.js.map +1 -0
  58. package/dist/lib/core/Driver/mysql/MysqlDriver.js +115 -97
  59. package/dist/lib/core/Driver/mysql/MysqlDriver.js.map +1 -1
  60. package/dist/lib/core/Driver/mysql/MysqlQueryBuilder.d.ts +48 -12
  61. package/dist/lib/core/Driver/mysql/MysqlQueryBuilder.js +189 -28
  62. package/dist/lib/core/Driver/mysql/MysqlQueryBuilder.js.map +1 -1
  63. package/dist/lib/core/Driver/postgres/PostgresDriver.js +106 -73
  64. package/dist/lib/core/Driver/postgres/PostgresDriver.js.map +1 -1
  65. package/dist/lib/core/Driver/postgres/PostgresQueryBuilder.d.ts +53 -12
  66. package/dist/lib/core/Driver/postgres/PostgresQueryBuilder.js +318 -48
  67. package/dist/lib/core/Driver/postgres/PostgresQueryBuilder.js.map +1 -1
  68. package/dist/lib/core/Driver/sqlite/SqliteDriver.d.ts +21 -0
  69. package/dist/lib/core/Driver/sqlite/SqliteDriver.js +213 -0
  70. package/dist/lib/core/Driver/sqlite/SqliteDriver.js.map +1 -0
  71. package/dist/lib/core/Driver/sqlite/SqliteQueryBuilder.d.ts +146 -0
  72. package/dist/lib/core/Driver/sqlite/SqliteQueryBuilder.js +705 -0
  73. package/dist/lib/core/Driver/sqlite/SqliteQueryBuilder.js.map +1 -0
  74. package/dist/lib/core/Join.d.ts +63 -5
  75. package/dist/lib/core/Join.js +92 -15
  76. package/dist/lib/core/Join.js.map +1 -1
  77. package/dist/lib/core/JoinModel.d.ts +65 -9
  78. package/dist/lib/core/JoinModel.js +81 -52
  79. package/dist/lib/core/JoinModel.js.map +1 -1
  80. package/dist/lib/core/Meta.d.ts +22 -16
  81. package/dist/lib/core/Meta.js +28 -21
  82. package/dist/lib/core/Meta.js.map +1 -1
  83. package/dist/lib/core/Model.d.ts +644 -134
  84. package/dist/lib/core/Model.js +1361 -631
  85. package/dist/lib/core/Model.js.map +1 -1
  86. package/dist/lib/{tools/index.d.ts → core/Package.d.ts} +11 -3
  87. package/dist/lib/{tools/index.js → core/Package.js} +20 -7
  88. package/dist/lib/core/Package.js.map +1 -0
  89. package/dist/lib/core/Pool.js +42 -30
  90. package/dist/lib/core/Pool.js.map +1 -1
  91. package/dist/lib/core/Queue.d.ts +249 -0
  92. package/dist/lib/core/Queue.js +726 -0
  93. package/dist/lib/core/Queue.js.map +1 -0
  94. package/dist/lib/core/RelationManager.d.ts +4 -4
  95. package/dist/lib/core/RelationManager.js +168 -41
  96. package/dist/lib/core/RelationManager.js.map +1 -1
  97. package/dist/lib/core/Repository.d.ts +73 -207
  98. package/dist/lib/core/Repository.js +122 -234
  99. package/dist/lib/core/Repository.js.map +1 -1
  100. package/dist/lib/core/Schema.d.ts +211 -1
  101. package/dist/lib/core/Schema.js +370 -65
  102. package/dist/lib/core/Schema.js.map +1 -1
  103. package/dist/lib/core/StateManager.d.ts +31 -12
  104. package/dist/lib/core/StateManager.js +11 -5
  105. package/dist/lib/core/StateManager.js.map +1 -1
  106. package/dist/lib/core/UtilityTypes.d.ts +103 -81
  107. package/dist/lib/core/UtilityTypes.js.map +1 -1
  108. package/dist/lib/core/index.d.ts +4 -0
  109. package/dist/lib/core/index.js +6 -2
  110. package/dist/lib/core/index.js.map +1 -1
  111. package/dist/lib/types/decorator/index.d.ts +1 -1
  112. package/dist/lib/types/index.d.ts +120 -30
  113. package/dist/lib/types/repository/index.d.ts +68 -37
  114. package/dist/lib/utils/index.d.ts +13 -2
  115. package/dist/lib/utils/index.js +81 -2
  116. package/dist/lib/utils/index.js.map +1 -1
  117. package/package.json +14 -6
  118. package/dist/lib/tools/index.js.map +0 -1
@@ -272,8 +272,8 @@ exports.Column = Column;
272
272
  * for a property. Useful for serialization/deserialization logic (e.g. ORM, DTO).
273
273
  *
274
274
  * @param {Object} options - Transform options.
275
- * @param {(value: unknown) => any | Promise<any>} options.to - Function executed when transforming *to* database/output.
276
- * @param {(value: unknown) => any | Promise<any>} options.from - Function executed when transforming *from* database/input.
275
+ * @param {(value: unknown) => any | Promise<any>} options.to - Function executed when transforming *to* app -> database.
276
+ * @param {(value: unknown) => any | Promise<any>} options.from - Function executed when transforming *from* database -> app.
277
277
  * @returns {Function} A property decorator that stores transform metadata.
278
278
  *
279
279
  * @throws {Error} If the property name cannot be determined.
@@ -353,7 +353,7 @@ exports.Validate = Validate;
353
353
  /**
354
354
  * Decorator to define a HasOne relationship on a model property.
355
355
  *
356
- * @param {TRelationOptionsDecorator} options - Options describing the relation.
356
+ * @param {RelationOptions} options - Options describing the relation.
357
357
  * @returns {Function} A decorator that registers the HasOne relationship.
358
358
  *
359
359
  * @example
@@ -382,7 +382,7 @@ exports.HasOne = HasOne;
382
382
  /**
383
383
  * Decorator to define a HasMany relationship on a model property.
384
384
  *
385
- * @param {TRelationOptionsDecorator} options - Options describing the relation.
385
+ * @param {RelationOptions} options - Options describing the relation.
386
386
  * @returns {Function} A decorator that registers the HasMany relationship.
387
387
  *
388
388
  * @example
@@ -411,7 +411,7 @@ exports.HasMany = HasMany;
411
411
  /**
412
412
  * Decorator to define a BelongsTo relationship on a model property.
413
413
  *
414
- * @param {TRelationOptionsDecorator} options - Options describing the relation.
414
+ * @param {RelationOptions} options - Options describing the relation.
415
415
  * @returns {Function} A decorator that registers the BelongsTo relationship.
416
416
  *
417
417
  * @example
@@ -440,7 +440,7 @@ exports.BelongsTo = BelongsTo;
440
440
  /**
441
441
  * Decorator to define a BelongsToMany (many-to-many) relationship on a model property.
442
442
  *
443
- * @param {TRelationOptionsDecorator} options - Options describing the relation.
443
+ * @param {RelationOptions} options - Options describing the relation.
444
444
  * @returns {Function} A decorator that registers the BelongsToMany relationship.
445
445
  *
446
446
  * @example
@@ -759,15 +759,157 @@ exports.AfterRemove = AfterRemove;
759
759
  * @namespace D
760
760
  */
761
761
  exports.D = {
762
- Table: exports.Table, TableSingular: exports.TableSingular, TablePlural: exports.TablePlural,
763
- UUID: exports.UUID, SoftDelete: exports.SoftDelete, Timestamp: exports.Timestamp,
764
- Pattern: exports.Pattern, CamelCase: exports.CamelCase, SnakeCase: exports.SnakeCase,
765
- Column: exports.Column, Validate: exports.Validate,
762
+ Table: exports.Table,
763
+ TableSingular: exports.TableSingular,
764
+ TablePlural: exports.TablePlural,
765
+ UUID: exports.UUID,
766
+ /**
767
+ * Decorator to enable automatic timestamps on a model.
768
+ *
769
+ * Stores metadata indicating that `createdAt` and `updatedAt` columns should be handled.
770
+ *
771
+ * @param {{ createdAt: string; updatedAt: string }} [columns] - Optional custom column names for timestamps.
772
+ * @returns {ClassDecorator} A class decorator that enables timestamp metadata.
773
+ *
774
+ * @example
775
+ * ```ts
776
+ * @Timestamp({ createdAt: 'created_at', updatedAt: 'updated_at' })
777
+ * class User extends Model {}
778
+ * ```
779
+ */
780
+ SoftDelete: exports.SoftDelete,
781
+ Timestamp: exports.Timestamp,
782
+ Pattern: exports.Pattern,
783
+ CamelCase: exports.CamelCase,
784
+ SnakeCase: exports.SnakeCase,
785
+ /**
786
+ * Decorator to define a database column for a model property.
787
+ *
788
+ * Accepts a `Blueprint` function that defines the column type, constraints, and other attributes.
789
+ * The resulting column schema is stored as metadata on the target class.
790
+ *
791
+ * @param {() => Blueprint} blueprint - A function returning a `Blueprint` instance describing the column.
792
+ * @returns {Function} A property decorator that registers the column schema.
793
+ *
794
+ * @throws {Error} If the property name cannot be determined.
795
+ *
796
+ * @example
797
+ * ```ts
798
+ * class User extends Model {
799
+ *
800
+ * @Column(() => Blueprint.int().notNull().primary().autoIncrement())
801
+ * public id!: number;
802
+ *
803
+ * @Column(() => Blueprint.varchar(50).null())
804
+ * public uuid!: string;
805
+ * }
806
+ *
807
+ * ```
808
+ */
809
+ Column: exports.Column,
810
+ /**
811
+ * Decorator to attach validation rules to a model property.
812
+ *
813
+ * Accepts a `TValidateSchemaDecorator` object describing the validation rules
814
+ * (e.g., type, required, length, regex match, uniqueness, or custom validation function).
815
+ * The validation schema is stored as metadata on the target class.
816
+ *
817
+ * @param {TValidateSchemaDecorator} validate - An object defining validation rules for the property.
818
+ * @returns {Function} A decorator that registers the validation schema.
819
+ *
820
+ * @example
821
+ * ```ts
822
+ * class User extends Model {
823
+ *
824
+ * @Column(() => Blueprint.int().notNull().primary().autoIncrement())
825
+ * public id!: number;
826
+ *
827
+ * @Column(() => Blueprint.varchar(50).null())
828
+ * public uuid!: string;
829
+ *
830
+ * @Column(() => Blueprint.varchar(50).null())
831
+ * @Validate({
832
+ * type: String,
833
+ * require: true,
834
+ * length: 50,
835
+ * match: /^[a-zA-Z0-9._]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/,
836
+ * unique: true,
837
+ * fn: async (email: string) => {
838
+ * const exists = await new User().where('email',email).exists();
839
+ * if(exists) return `This column "${email}" is dupicate`;
840
+ * return null;
841
+ * }
842
+ * })
843
+ * public email!: string;
844
+ * }
845
+ *
846
+ * ```
847
+ */
848
+ Validate: exports.Validate,
766
849
  // ------- Relations --------
767
- HasOne: exports.HasOne, HasMany: exports.HasMany, BelongsTo: exports.BelongsTo, BelongsToMany: exports.BelongsToMany,
850
+ HasOne: exports.HasOne,
851
+ HasMany: exports.HasMany,
852
+ BelongsTo: exports.BelongsTo,
853
+ BelongsToMany: exports.BelongsToMany,
768
854
  // ------- Hook -------------
769
- Transform: exports.Transform, Observer: exports.Observer, Hooks: exports.Hooks,
770
- BeforeInsert: exports.BeforeInsert, BeforeUpdate: exports.BeforeUpdate, BeforeRemove: exports.BeforeRemove,
771
- AfterInsert: exports.AfterInsert, AfterUpdate: exports.AfterUpdate, AfterRemove: exports.AfterRemove
855
+ /**
856
+ * A decorator factory that registers custom `to` and `from` transform functions
857
+ * for a property. Useful for serialization/deserialization logic (e.g. ORM, DTO).
858
+ *
859
+ * @param {Object} options - Transform options.
860
+ * @param {(value: unknown) => any | Promise<any>} options.to - Function executed when transforming *to* app -> database.
861
+ * @param {(value: unknown) => any | Promise<any>} options.from - Function executed when transforming *from* database -> app.
862
+ * @returns {Function} A property decorator that stores transform metadata.
863
+ *
864
+ * @throws {Error} If the property name cannot be determined.
865
+ *
866
+ * @example
867
+ * ```ts
868
+ * class User {
869
+ * @Transform({
870
+ * to: (v) => JSON.stringify(v),
871
+ * from: (v) => JSON.parse(v),
872
+ * })
873
+ * profile;
874
+ * }
875
+ * ```
876
+ */
877
+ Transform: exports.Transform,
878
+ /**
879
+ * Decorator that registers a method as a generic lifecycle hook.
880
+ * Unlike specific hooks such as `@BeforeInsert` or `@AfterUpdate`,
881
+ * this decorator is **multi-purpose** and collects all tagged methods
882
+ * into a single metadata registry (`REFLECT_META.HOOKS`).
883
+ *
884
+ * These hook methods can later be invoked by the ORM/engine at any stage
885
+ * depending on your custom logic.
886
+ *
887
+ * @returns {Function} A method decorator.
888
+ *
889
+ * @throws {Error} If applied to a non-method class member.
890
+ *
891
+ * @example
892
+ * ```ts
893
+ * class User {
894
+ * @Hooks()
895
+ * logAction() {
896
+ * console.log("A lifecycle action happened");
897
+ * }
898
+ * }
899
+ * ```
900
+ *
901
+ * @example
902
+ * // Later, your ORM engine could do:
903
+ * const hooks = Reflect.getMetadata(REFLECT_META.HOOKS, userInstance) || [];
904
+ * for (const hook of hooks) hook.call(userInstance);
905
+ */
906
+ Hooks: exports.Hooks,
907
+ Observer: exports.Observer,
908
+ BeforeInsert: exports.BeforeInsert,
909
+ BeforeUpdate: exports.BeforeUpdate,
910
+ BeforeRemove: exports.BeforeRemove,
911
+ AfterInsert: exports.AfterInsert,
912
+ AfterUpdate: exports.AfterUpdate,
913
+ AfterRemove: exports.AfterRemove
772
914
  };
773
915
  //# sourceMappingURL=Decorator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Decorator.js","sourceRoot":"","sources":["../../../src/lib/core/Decorator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Decorator.js","sourceRoot":"","sources":["../../../src/lib/core/Decorator.ts"],"names":[],"mappings":"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"}
@@ -3,11 +3,15 @@ import { StateManager } from "../StateManager";
3
3
  import { Blueprint } from "../Blueprint";
4
4
  import type { TConstant, TPoolConnected } from "../../types";
5
5
  export declare abstract class BaseDriver extends EventEmitter {
6
- private SLOW_QUERY_EXECUTE_TIME;
7
- private SLOW_QUERY_LIMIT_LENGTH;
8
6
  protected pool: any;
7
+ protected poolTrx: any;
9
8
  protected options: Record<string, any>;
9
+ protected SLOW_QUERY_EXECUTE_TIME: number;
10
+ protected SLOW_QUERY_LIMIT_LENGTH: number;
11
+ protected TRX_TIMEOUT: number;
12
+ protected MESSAGE_TRX_NOT_STARTED: string;
10
13
  protected MESSAGE_TRX_CLOSED: string;
14
+ protected MESSAGE_TRX_TIMEOUT: string;
11
15
  protected abstract connect(): TPoolConnected;
12
16
  protected abstract disconnect(pool: any): void;
13
17
  protected abstract meta(results: any, sql: string): void;
@@ -18,7 +22,7 @@ export declare abstract class BaseDriver extends EventEmitter {
18
22
  sql: string;
19
23
  }): void;
20
24
  protected _messageSlowQuery(duration: number, sql: string): string;
21
- protected _detectQueryType(query: string): "" | "SELECT" | "UPDATE" | "DELETE" | "INSERT";
25
+ protected _detectQueryType(query: string): "SELECT" | "UPDATE" | "DELETE" | "INSERT" | "UNKNOWN";
22
26
  protected _onPoolConnect(pool: any): void;
23
27
  protected _messageConnected(message: string): string;
24
28
  protected _messageError(message: string): string;
@@ -41,10 +45,11 @@ export declare abstract class QueryBuilder {
41
45
  table: string;
42
46
  }): string;
43
47
  abstract getTables(database: string): string;
44
- abstract getTable({ database, table, }: {
48
+ abstract hasTable({ database, table, }: {
45
49
  database: string;
46
50
  table: string;
47
51
  }): string;
52
+ abstract createDatabase(database: string): string;
48
53
  abstract createTable({ database, table, schema, }: {
49
54
  database: string;
50
55
  table: string;
@@ -80,7 +85,7 @@ export declare abstract class QueryBuilder {
80
85
  table: string;
81
86
  constraint: string;
82
87
  }): string;
83
- abstract createFK({ table, tableRef, key, constraint, foreign, }: {
88
+ abstract addFK({ table, tableRef, key, constraint, foreign, }: {
84
89
  table: string;
85
90
  tableRef: string;
86
91
  key: string;
@@ -91,19 +96,48 @@ export declare abstract class QueryBuilder {
91
96
  onUpdate: string;
92
97
  };
93
98
  }): string;
94
- abstract getIndexes({ database, table }: {
99
+ abstract getIndexes({ database, table, }: {
95
100
  database: string;
96
101
  table: string;
97
102
  }): string;
98
- abstract hasIndex({ database, table, index, }: {
103
+ abstract hasIndex({ database, table, name, }: {
99
104
  database: string;
100
105
  table: string;
101
- index: string;
106
+ name: string;
102
107
  }): string;
103
- abstract createIndex({ table, index, key, }: {
108
+ abstract addIndex({ table, name, columns, }: {
109
+ table: string;
110
+ name: string;
111
+ columns: string[];
112
+ }): string;
113
+ abstract dropIndex({ table, name }: {
114
+ table: string;
115
+ name: string;
116
+ }): string;
117
+ abstract hasUnique({ database, table, name, }: {
118
+ database: string;
119
+ table: string;
120
+ name: string;
121
+ }): string;
122
+ abstract addUnique({ table, name, columns, }: {
123
+ table: string;
124
+ name: string;
125
+ columns: string[];
126
+ }): string;
127
+ abstract dropUnique({ table, name }: {
128
+ table: string;
129
+ name: string;
130
+ }): string;
131
+ abstract hasPrimaryKey({ database, table, }: {
132
+ database: string;
133
+ table: string;
134
+ }): string;
135
+ abstract addPrimaryKey({ table, columns, }: {
136
+ table: string;
137
+ columns: string[];
138
+ }): string;
139
+ abstract dropPrimaryKey({ table }: {
104
140
  table: string;
105
- index: string;
106
- key: string;
107
141
  }): string;
108
142
  abstract getDatabase(database: string): string;
109
143
  abstract dropDatabase(database: string): string;
@@ -112,13 +146,15 @@ export declare abstract class QueryBuilder {
112
146
  abstract truncate(table: string): string;
113
147
  abstract sleep(second: number): string;
114
148
  abstract format(sql: (string | null)[] | string): string;
149
+ abstract getActiveConnections(): string;
150
+ abstract getMaxConnections(): string;
151
+ abstract lockTable(mode: 'WRITE' | 'READ'): string;
152
+ abstract unlockTable(): string | null;
115
153
  protected abstract bindJoin(values: string[]): string | null;
116
154
  protected abstract bindWhere(values: string[]): string | null;
117
155
  protected abstract bindOrderBy(values: string[]): string | null;
118
156
  protected abstract bindGroupBy(values: string[]): string | null;
119
- protected abstract bindSelect(values: string[], opts?: {
120
- distinct?: string;
121
- }): string;
157
+ protected abstract bindSelect(values: string[]): string;
122
158
  protected abstract bindFrom(args: {
123
159
  from: string[];
124
160
  alias: string | null;
@@ -2,16 +2,20 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.QueryBuilder = exports.BaseDriver = void 0;
4
4
  const events_1 = require("events");
5
- const tools_1 = require("../../tools");
5
+ const Package_1 = require("../Package");
6
6
  const constants_1 = require("../../constants");
7
7
  class BaseDriver extends events_1.EventEmitter {
8
- SLOW_QUERY_EXECUTE_TIME = 1000 * 15;
9
- SLOW_QUERY_LIMIT_LENGTH = 1000 * 2;
10
8
  pool;
9
+ poolTrx;
11
10
  options;
11
+ SLOW_QUERY_EXECUTE_TIME = 1000 * 15;
12
+ SLOW_QUERY_LIMIT_LENGTH = 1000 * 2;
13
+ TRX_TIMEOUT = 120;
14
+ MESSAGE_TRX_NOT_STARTED = "The transaction has not been started";
12
15
  MESSAGE_TRX_CLOSED = "The transaction has either been closed";
16
+ MESSAGE_TRX_TIMEOUT = `The transaction has been open for more than ${this.TRX_TIMEOUT} seconds. It will be rollbacked automatically.`;
13
17
  import(mod) {
14
- return tools_1.Tool.import(mod);
18
+ return Package_1.Package.import(mod);
15
19
  }
16
20
  _detectEventQuery({ start, sql }) {
17
21
  const duration = Date.now() - start;
@@ -39,10 +43,10 @@ class BaseDriver extends events_1.EventEmitter {
39
43
  return message;
40
44
  }
41
45
  _detectQueryType(query) {
42
- const selectRegex = /^SELECT\b/i;
43
- const updateRegex = /^UPDATE\b/i;
44
- const insertRegex = /^INSERT\b/i;
45
- const deleteRegex = /^DELETE\b/i;
46
+ const selectRegex = /^\s*SELECT\b/i;
47
+ const updateRegex = /^\s*UPDATE\b/i;
48
+ const insertRegex = /^\s*INSERT\b/i;
49
+ const deleteRegex = /^\s*DELETE\b/i;
46
50
  if (selectRegex.test(query))
47
51
  return "SELECT";
48
52
  if (updateRegex.test(query))
@@ -51,7 +55,7 @@ class BaseDriver extends events_1.EventEmitter {
51
55
  return "INSERT";
52
56
  if (deleteRegex.test(query))
53
57
  return "DELETE";
54
- return "";
58
+ return "UNKNOWN";
55
59
  }
56
60
  _onPoolConnect(pool) {
57
61
  const delay = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/core/Driver/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/core/Driver/index.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ class MariadbDriver extends __1.BaseDriver {
11
11
  connect() {
12
12
  const options = this.options;
13
13
  const mariadb = this.import("mariadb");
14
- this.pool = mariadb.createPool({
14
+ const configs = {
15
15
  host: options.host,
16
16
  port: options.port,
17
17
  database: options.database,
@@ -19,19 +19,43 @@ class MariadbDriver extends __1.BaseDriver {
19
19
  password: options.password,
20
20
  connectionLimit: options.connectionLimit ?? 20,
21
21
  connectTimeout: options.connectTimeout ?? 1000 * 60,
22
- minimumIdle: Math.max(2, Math.floor((options.connectionLimit ?? 20) / 3)),
22
+ minimumIdle: options.connectionLimit ?? 20,
23
23
  acquireTimeout: 1000 * 20,
24
24
  idleTimeout: 1000 * 60,
25
- queryTimeout: 1000 * 60,
25
+ queryTimeout: 1000 * 90,
26
26
  pipelining: true,
27
27
  bigIntAsNumber: true,
28
28
  insertIdAsNumber: true,
29
+ };
30
+ this.pool = mariadb.createPool(configs);
31
+ this.poolTrx = mariadb.createPool({
32
+ ...configs,
33
+ connectionLimit: Math.min(10, Math.round(configs.connectionLimit * 0.5))
29
34
  });
30
- this.pool.getConnection().catch((err) => {
35
+ this.pool.getConnection().catch(async (err) => {
36
+ if (!err)
37
+ return;
38
+ if (err?.message?.includes('Unknown database') ||
39
+ err?.message.includes('(conn:-1, no: 45028, SQLState: HY000) pool timeout')) {
40
+ const db = await mariadb.createConnection({
41
+ host: options.host,
42
+ port: options.port,
43
+ user: options.user || options.username,
44
+ password: options.password,
45
+ });
46
+ const sql = new MariadbQueryBuilder_1.MariadbQueryBuilder({}).createDatabase(options.database);
47
+ await db.query(sql);
48
+ await db.end();
49
+ return;
50
+ }
31
51
  const message = this._messageError.bind(this);
32
52
  process.nextTick(() => {
33
- console.log(message(err?.message));
34
- return process.exit();
53
+ if (String(err.message).includes('Pool is close')) {
54
+ return;
55
+ }
56
+ console.log(message(err.message == null || err.message === '' ? err.code : err.message));
57
+ if (this.options.CONNECTION_ERROR)
58
+ return process.exit();
35
59
  });
36
60
  });
37
61
  return {
@@ -58,55 +82,86 @@ class MariadbDriver extends __1.BaseDriver {
58
82
  return this.returning(results);
59
83
  }
60
84
  async _connection() {
61
- let closeTransaction = false;
62
- const connection = await this.pool.getConnection();
85
+ const conn = await this.poolTrx.getConnection();
86
+ let started = false;
87
+ let closed = false;
88
+ let commited = false;
89
+ let rollbacked = false;
63
90
  const query = async (sql) => {
64
- if (closeTransaction)
65
- throw new Error(this.MESSAGE_TRX_CLOSED);
66
91
  const start = Date.now();
67
- const results = await connection.query(sql);
92
+ const results = await conn.query(sql);
68
93
  this._detectEventQuery({ start, sql });
69
94
  this.meta(results, sql);
70
95
  return this.returning(results);
71
96
  };
72
97
  const startTransaction = async () => {
73
- if (closeTransaction)
98
+ if (closed) {
74
99
  throw new Error(this.MESSAGE_TRX_CLOSED);
75
- await connection.beginTransaction();
100
+ }
101
+ await conn.beginTransaction();
102
+ started = true;
103
+ closed = false;
104
+ setTimeout(() => {
105
+ if (commited || rollbacked)
106
+ return;
107
+ console.log(this.MESSAGE_TRX_TIMEOUT);
108
+ rollback().catch(() => null);
109
+ }, 1000 * this.TRX_TIMEOUT);
110
+ return;
76
111
  };
77
112
  const commit = async () => {
78
- if (closeTransaction)
113
+ if (closed) {
79
114
  throw new Error(this.MESSAGE_TRX_CLOSED);
80
- await connection.commit();
115
+ }
116
+ if (!started) {
117
+ throw new Error(this.MESSAGE_TRX_NOT_STARTED);
118
+ }
119
+ commited = true;
120
+ await conn.commit();
81
121
  await end();
122
+ return;
82
123
  };
83
124
  const rollback = async () => {
84
- if (closeTransaction)
85
- throw new Error(this.MESSAGE_TRX_CLOSED);
86
- await connection.rollback();
125
+ if (closed)
126
+ return;
127
+ if (!started) {
128
+ throw new Error(this.MESSAGE_TRX_NOT_STARTED);
129
+ }
130
+ rollbacked = true;
131
+ await conn.rollback();
87
132
  await end();
133
+ return;
88
134
  };
89
135
  const end = async () => {
90
- await new Promise((resolve) => setTimeout(() => {
91
- if (!closeTransaction) {
92
- closeTransaction = true;
93
- // After commit the transaction, you can't perform any actions with this transaction.
94
- connection.destroy();
95
- // After destroying the connection, it will be removed from the connection this.pool.
96
- this.pool.end();
97
- }
98
- return resolve();
99
- }, 500));
136
+ if (closed)
137
+ return;
138
+ if (!started) {
139
+ throw new Error(this.MESSAGE_TRX_NOT_STARTED);
140
+ }
141
+ if (!commited && !rollbacked) {
142
+ await rollback();
143
+ return;
144
+ }
145
+ await conn.release();
146
+ started = false;
147
+ closed = true;
148
+ return;
149
+ };
150
+ const release = async () => {
151
+ if (closed)
152
+ return;
153
+ await conn.release();
100
154
  return;
101
155
  };
102
156
  return {
103
157
  on: (event, data) => this.on(event, data),
104
- query,
105
158
  queryBuilder: MariadbQueryBuilder_1.MariadbQueryBuilder,
159
+ query,
106
160
  startTransaction,
107
161
  commit,
108
162
  rollback,
109
163
  end,
164
+ release
110
165
  };
111
166
  }
112
167
  async _end() {