@simonbackx/simple-database 1.35.0 → 1.36.3

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 (230) hide show
  1. package/dist/_virtual/_@oxc-project_runtime@0.115.0/helpers/decorate.cjs +9 -0
  2. package/dist/_virtual/_@oxc-project_runtime@0.115.0/helpers/decorate.mjs +9 -0
  3. package/dist/_virtual/_rolldown/runtime.cjs +23 -0
  4. package/dist/index.cjs +22 -0
  5. package/dist/index.d.cts +10 -0
  6. package/dist/index.d.mts +10 -0
  7. package/dist/index.mjs +10 -0
  8. package/dist/src/classes/Column.cjs +134 -0
  9. package/dist/src/classes/Column.d.cts +34 -0
  10. package/dist/src/classes/Column.d.cts.map +1 -0
  11. package/dist/src/classes/Column.d.mts +34 -0
  12. package/dist/src/classes/Column.d.mts.map +1 -0
  13. package/dist/src/classes/Column.mjs +135 -0
  14. package/dist/src/classes/Column.mjs.map +1 -0
  15. package/dist/src/classes/ColumnType.d.cts +5 -0
  16. package/dist/src/classes/ColumnType.d.cts.map +1 -0
  17. package/dist/src/classes/ColumnType.d.mts +5 -0
  18. package/dist/src/classes/ColumnType.d.mts.map +1 -0
  19. package/dist/src/classes/Database.cjs +157 -0
  20. package/dist/src/classes/Database.d.cts +59 -0
  21. package/dist/src/classes/Database.d.cts.map +1 -0
  22. package/dist/src/classes/Database.d.mts +59 -0
  23. package/dist/src/classes/Database.d.mts.map +1 -0
  24. package/dist/src/classes/Database.mjs +155 -0
  25. package/dist/src/classes/Database.mjs.map +1 -0
  26. package/dist/src/classes/DatabaseStoredValue.d.cts +5 -0
  27. package/dist/src/classes/DatabaseStoredValue.d.cts.map +1 -0
  28. package/dist/src/classes/DatabaseStoredValue.d.mts +5 -0
  29. package/dist/src/classes/DatabaseStoredValue.d.mts.map +1 -0
  30. package/dist/src/classes/Factory.cjs +48 -0
  31. package/dist/src/classes/Factory.d.cts +17 -0
  32. package/dist/src/classes/Factory.d.cts.map +1 -0
  33. package/dist/src/classes/Factory.d.mts +17 -0
  34. package/dist/src/classes/Factory.d.mts.map +1 -0
  35. package/dist/src/classes/Factory.mjs +50 -0
  36. package/dist/src/classes/Factory.mjs.map +1 -0
  37. package/dist/src/classes/ManyToManyRelation.cjs +193 -0
  38. package/dist/src/classes/ManyToManyRelation.d.cts +83 -0
  39. package/dist/src/classes/ManyToManyRelation.d.cts.map +1 -0
  40. package/dist/src/classes/ManyToManyRelation.d.mts +83 -0
  41. package/dist/src/classes/ManyToManyRelation.d.mts.map +1 -0
  42. package/dist/src/classes/ManyToManyRelation.mjs +195 -0
  43. package/dist/src/classes/ManyToManyRelation.mjs.map +1 -0
  44. package/dist/src/classes/ManyToOneRelation.cjs +41 -0
  45. package/dist/src/classes/ManyToOneRelation.d.cts +26 -0
  46. package/dist/src/classes/ManyToOneRelation.d.cts.map +1 -0
  47. package/dist/src/classes/ManyToOneRelation.d.mts +26 -0
  48. package/dist/src/classes/ManyToOneRelation.d.mts.map +1 -0
  49. package/dist/src/classes/ManyToOneRelation.mjs +43 -0
  50. package/dist/src/classes/ManyToOneRelation.mjs.map +1 -0
  51. package/dist/src/classes/Migration.cjs +123 -0
  52. package/dist/src/classes/Migration.d.cts +16 -0
  53. package/dist/src/classes/Migration.d.cts.map +1 -0
  54. package/dist/src/classes/Migration.d.mts +16 -0
  55. package/dist/src/classes/Migration.d.mts.map +1 -0
  56. package/dist/src/classes/Migration.mjs +123 -0
  57. package/dist/src/classes/Migration.mjs.map +1 -0
  58. package/dist/src/classes/Model.cjs +459 -0
  59. package/dist/src/classes/Model.d.cts +162 -0
  60. package/dist/src/classes/Model.d.cts.map +1 -0
  61. package/dist/src/classes/Model.d.mts +162 -0
  62. package/dist/src/classes/Model.d.mts.map +1 -0
  63. package/dist/src/classes/Model.mjs +460 -0
  64. package/dist/src/classes/Model.mjs.map +1 -0
  65. package/dist/src/classes/OneToManyRelation.cjs +66 -0
  66. package/dist/src/classes/OneToManyRelation.d.cts +42 -0
  67. package/dist/src/classes/OneToManyRelation.d.cts.map +1 -0
  68. package/dist/src/classes/OneToManyRelation.d.mts +42 -0
  69. package/dist/src/classes/OneToManyRelation.d.mts.map +1 -0
  70. package/dist/src/classes/OneToManyRelation.mjs +68 -0
  71. package/dist/src/classes/OneToManyRelation.mjs.map +1 -0
  72. package/dist/src/classes/data/boys.cjs +1005 -0
  73. package/dist/src/classes/data/boys.mjs +1007 -0
  74. package/dist/src/classes/data/boys.mjs.map +1 -0
  75. package/dist/src/classes/data/family-names.cjs +1005 -0
  76. package/dist/src/classes/data/family-names.mjs +1007 -0
  77. package/dist/src/classes/data/family-names.mjs.map +1 -0
  78. package/dist/src/classes/data/girls.cjs +1004 -0
  79. package/dist/src/classes/data/girls.mjs +1006 -0
  80. package/dist/src/classes/data/girls.mjs.map +1 -0
  81. package/dist/src/decorators/Column.cjs +26 -0
  82. package/dist/src/decorators/Column.d.cts +22 -0
  83. package/dist/src/decorators/Column.d.cts.map +1 -0
  84. package/dist/src/decorators/Column.d.mts +22 -0
  85. package/dist/src/decorators/Column.d.mts.map +1 -0
  86. package/dist/src/decorators/Column.mjs +28 -0
  87. package/dist/src/decorators/Column.mjs.map +1 -0
  88. package/dist/src/models/Migration.cjs +37 -0
  89. package/dist/src/models/Migration.mjs +39 -0
  90. package/dist/src/models/Migration.mjs.map +1 -0
  91. package/package.json +16 -13
  92. package/dist/cjs/index.d.ts +0 -10
  93. package/dist/cjs/index.d.ts.map +0 -1
  94. package/dist/cjs/index.js +0 -13
  95. package/dist/cjs/index.js.map +0 -1
  96. package/dist/cjs/package.json +0 -1
  97. package/dist/cjs/src/classes/Column.d.ts +0 -30
  98. package/dist/cjs/src/classes/Column.d.ts.map +0 -1
  99. package/dist/cjs/src/classes/Column.js +0 -183
  100. package/dist/cjs/src/classes/Column.js.map +0 -1
  101. package/dist/cjs/src/classes/ColumnType.d.ts +0 -2
  102. package/dist/cjs/src/classes/ColumnType.d.ts.map +0 -1
  103. package/dist/cjs/src/classes/ColumnType.js +0 -3
  104. package/dist/cjs/src/classes/ColumnType.js.map +0 -1
  105. package/dist/cjs/src/classes/Database.d.ts +0 -59
  106. package/dist/cjs/src/classes/Database.d.ts.map +0 -1
  107. package/dist/cjs/src/classes/Database.js +0 -176
  108. package/dist/cjs/src/classes/Database.js.map +0 -1
  109. package/dist/cjs/src/classes/DatabaseStoredValue.d.ts +0 -2
  110. package/dist/cjs/src/classes/DatabaseStoredValue.d.ts.map +0 -1
  111. package/dist/cjs/src/classes/DatabaseStoredValue.js +0 -3
  112. package/dist/cjs/src/classes/DatabaseStoredValue.js.map +0 -1
  113. package/dist/cjs/src/classes/Factory.d.ts +0 -14
  114. package/dist/cjs/src/classes/Factory.d.ts.map +0 -1
  115. package/dist/cjs/src/classes/Factory.js +0 -56
  116. package/dist/cjs/src/classes/Factory.js.map +0 -1
  117. package/dist/cjs/src/classes/ManyToManyRelation.d.ts +0 -79
  118. package/dist/cjs/src/classes/ManyToManyRelation.d.ts.map +0 -1
  119. package/dist/cjs/src/classes/ManyToManyRelation.js +0 -258
  120. package/dist/cjs/src/classes/ManyToManyRelation.js.map +0 -1
  121. package/dist/cjs/src/classes/ManyToOneRelation.d.ts +0 -22
  122. package/dist/cjs/src/classes/ManyToOneRelation.d.ts.map +0 -1
  123. package/dist/cjs/src/classes/ManyToOneRelation.js +0 -51
  124. package/dist/cjs/src/classes/ManyToOneRelation.js.map +0 -1
  125. package/dist/cjs/src/classes/Migration.d.ts +0 -14
  126. package/dist/cjs/src/classes/Migration.d.ts.map +0 -1
  127. package/dist/cjs/src/classes/Migration.js +0 -206
  128. package/dist/cjs/src/classes/Migration.js.map +0 -1
  129. package/dist/cjs/src/classes/Model.d.ts +0 -159
  130. package/dist/cjs/src/classes/Model.d.ts.map +0 -1
  131. package/dist/cjs/src/classes/Model.js +0 -640
  132. package/dist/cjs/src/classes/Model.js.map +0 -1
  133. package/dist/cjs/src/classes/OneToManyRelation.d.ts +0 -38
  134. package/dist/cjs/src/classes/OneToManyRelation.d.ts.map +0 -1
  135. package/dist/cjs/src/classes/OneToManyRelation.js +0 -79
  136. package/dist/cjs/src/classes/OneToManyRelation.js.map +0 -1
  137. package/dist/cjs/src/classes/data/boys.d.ts +0 -3
  138. package/dist/cjs/src/classes/data/boys.d.ts.map +0 -1
  139. package/dist/cjs/src/classes/data/boys.js +0 -1005
  140. package/dist/cjs/src/classes/data/boys.js.map +0 -1
  141. package/dist/cjs/src/classes/data/family-names.d.ts +0 -3
  142. package/dist/cjs/src/classes/data/family-names.d.ts.map +0 -1
  143. package/dist/cjs/src/classes/data/family-names.js +0 -1005
  144. package/dist/cjs/src/classes/data/family-names.js.map +0 -1
  145. package/dist/cjs/src/classes/data/girls.d.ts +0 -3
  146. package/dist/cjs/src/classes/data/girls.d.ts.map +0 -1
  147. package/dist/cjs/src/classes/data/girls.js +0 -1004
  148. package/dist/cjs/src/classes/data/girls.js.map +0 -1
  149. package/dist/cjs/src/classes/data/streets.d.ts +0 -3
  150. package/dist/cjs/src/classes/data/streets.d.ts.map +0 -1
  151. package/dist/cjs/src/classes/data/streets.js +0 -296
  152. package/dist/cjs/src/classes/data/streets.js.map +0 -1
  153. package/dist/cjs/src/decorators/Column.d.ts +0 -18
  154. package/dist/cjs/src/decorators/Column.d.ts.map +0 -1
  155. package/dist/cjs/src/decorators/Column.js +0 -39
  156. package/dist/cjs/src/decorators/Column.js.map +0 -1
  157. package/dist/cjs/src/models/Migration.d.ts +0 -11
  158. package/dist/cjs/src/models/Migration.d.ts.map +0 -1
  159. package/dist/cjs/src/models/Migration.js +0 -52
  160. package/dist/cjs/src/models/Migration.js.map +0 -1
  161. package/dist/cjs/tsconfig.cjs.tsbuildinfo +0 -1
  162. package/dist/esm/index.d.ts +0 -10
  163. package/dist/esm/index.d.ts.map +0 -1
  164. package/dist/esm/index.js +0 -10
  165. package/dist/esm/index.js.map +0 -1
  166. package/dist/esm/src/classes/Column.d.ts +0 -30
  167. package/dist/esm/src/classes/Column.d.ts.map +0 -1
  168. package/dist/esm/src/classes/Column.js +0 -179
  169. package/dist/esm/src/classes/Column.js.map +0 -1
  170. package/dist/esm/src/classes/ColumnType.d.ts +0 -2
  171. package/dist/esm/src/classes/ColumnType.d.ts.map +0 -1
  172. package/dist/esm/src/classes/ColumnType.js +0 -2
  173. package/dist/esm/src/classes/ColumnType.js.map +0 -1
  174. package/dist/esm/src/classes/Database.d.ts +0 -59
  175. package/dist/esm/src/classes/Database.d.ts.map +0 -1
  176. package/dist/esm/src/classes/Database.js +0 -171
  177. package/dist/esm/src/classes/Database.js.map +0 -1
  178. package/dist/esm/src/classes/DatabaseStoredValue.d.ts +0 -2
  179. package/dist/esm/src/classes/DatabaseStoredValue.d.ts.map +0 -1
  180. package/dist/esm/src/classes/DatabaseStoredValue.js +0 -2
  181. package/dist/esm/src/classes/DatabaseStoredValue.js.map +0 -1
  182. package/dist/esm/src/classes/Factory.d.ts +0 -14
  183. package/dist/esm/src/classes/Factory.d.ts.map +0 -1
  184. package/dist/esm/src/classes/Factory.js +0 -51
  185. package/dist/esm/src/classes/Factory.js.map +0 -1
  186. package/dist/esm/src/classes/ManyToManyRelation.d.ts +0 -79
  187. package/dist/esm/src/classes/ManyToManyRelation.d.ts.map +0 -1
  188. package/dist/esm/src/classes/ManyToManyRelation.js +0 -254
  189. package/dist/esm/src/classes/ManyToManyRelation.js.map +0 -1
  190. package/dist/esm/src/classes/ManyToOneRelation.d.ts +0 -22
  191. package/dist/esm/src/classes/ManyToOneRelation.d.ts.map +0 -1
  192. package/dist/esm/src/classes/ManyToOneRelation.js +0 -47
  193. package/dist/esm/src/classes/ManyToOneRelation.js.map +0 -1
  194. package/dist/esm/src/classes/Migration.d.ts +0 -14
  195. package/dist/esm/src/classes/Migration.d.ts.map +0 -1
  196. package/dist/esm/src/classes/Migration.js +0 -168
  197. package/dist/esm/src/classes/Migration.js.map +0 -1
  198. package/dist/esm/src/classes/Model.d.ts +0 -159
  199. package/dist/esm/src/classes/Model.d.ts.map +0 -1
  200. package/dist/esm/src/classes/Model.js +0 -635
  201. package/dist/esm/src/classes/Model.js.map +0 -1
  202. package/dist/esm/src/classes/OneToManyRelation.d.ts +0 -38
  203. package/dist/esm/src/classes/OneToManyRelation.d.ts.map +0 -1
  204. package/dist/esm/src/classes/OneToManyRelation.js +0 -75
  205. package/dist/esm/src/classes/OneToManyRelation.js.map +0 -1
  206. package/dist/esm/src/classes/data/boys.d.ts +0 -3
  207. package/dist/esm/src/classes/data/boys.d.ts.map +0 -1
  208. package/dist/esm/src/classes/data/boys.js +0 -1003
  209. package/dist/esm/src/classes/data/boys.js.map +0 -1
  210. package/dist/esm/src/classes/data/family-names.d.ts +0 -3
  211. package/dist/esm/src/classes/data/family-names.d.ts.map +0 -1
  212. package/dist/esm/src/classes/data/family-names.js +0 -1003
  213. package/dist/esm/src/classes/data/family-names.js.map +0 -1
  214. package/dist/esm/src/classes/data/girls.d.ts +0 -3
  215. package/dist/esm/src/classes/data/girls.d.ts.map +0 -1
  216. package/dist/esm/src/classes/data/girls.js +0 -1002
  217. package/dist/esm/src/classes/data/girls.js.map +0 -1
  218. package/dist/esm/src/classes/data/streets.d.ts +0 -3
  219. package/dist/esm/src/classes/data/streets.d.ts.map +0 -1
  220. package/dist/esm/src/classes/data/streets.js +0 -294
  221. package/dist/esm/src/classes/data/streets.js.map +0 -1
  222. package/dist/esm/src/decorators/Column.d.ts +0 -18
  223. package/dist/esm/src/decorators/Column.d.ts.map +0 -1
  224. package/dist/esm/src/decorators/Column.js +0 -36
  225. package/dist/esm/src/decorators/Column.js.map +0 -1
  226. package/dist/esm/src/models/Migration.d.ts +0 -11
  227. package/dist/esm/src/models/Migration.d.ts.map +0 -1
  228. package/dist/esm/src/models/Migration.js +0 -48
  229. package/dist/esm/src/models/Migration.js.map +0 -1
  230. package/dist/esm/tsconfig.esm.tsbuildinfo +0 -1
@@ -0,0 +1,9 @@
1
+ //#region \0@oxc-project+runtime@0.115.0/helpers/decorate.js
2
+ function __decorate(decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ }
8
+ //#endregion
9
+ exports.__decorate = __decorate;
@@ -0,0 +1,9 @@
1
+ //#region \0@oxc-project+runtime@0.115.0/helpers/decorate.js
2
+ function __decorate(decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ }
8
+ //#endregion
9
+ export { __decorate };
@@ -0,0 +1,23 @@
1
+ //#region \0rolldown/runtime.js
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __copyProps = (to, from, except, desc) => {
9
+ if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
10
+ key = keys[i];
11
+ if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
12
+ get: ((k) => from[k]).bind(null, key),
13
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
14
+ });
15
+ }
16
+ return to;
17
+ };
18
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
19
+ value: mod,
20
+ enumerable: true
21
+ }) : target, mod));
22
+ //#endregion
23
+ exports.__toESM = __toESM;
package/dist/index.cjs ADDED
@@ -0,0 +1,22 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_Database = require("./src/classes/Database.cjs");
3
+ const require_Factory = require("./src/classes/Factory.cjs");
4
+ const require_Model = require("./src/classes/Model.cjs");
5
+ const require_ManyToManyRelation = require("./src/classes/ManyToManyRelation.cjs");
6
+ const require_ManyToOneRelation = require("./src/classes/ManyToOneRelation.cjs");
7
+ const require_OneToManyRelation = require("./src/classes/OneToManyRelation.cjs");
8
+ const require_Column = require("./src/classes/Column.cjs");
9
+ const require_Column$1 = require("./src/decorators/Column.cjs");
10
+ const require_Migration = require("./src/classes/Migration.cjs");
11
+ exports.Column = require_Column.Column;
12
+ exports.Database = require_Database.Database;
13
+ exports.DatabaseInstance = require_Database.DatabaseInstance;
14
+ exports.Factory = require_Factory.Factory;
15
+ exports.ManyToManyRelation = require_ManyToManyRelation.ManyToManyRelation;
16
+ exports.ManyToOneRelation = require_ManyToOneRelation.ManyToOneRelation;
17
+ exports.Migration = require_Migration.Migration;
18
+ exports.Model = require_Model.Model;
19
+ exports.ModelEventBus = require_Model.ModelEventBus;
20
+ exports.OneToManyRelation = require_OneToManyRelation.OneToManyRelation;
21
+ exports.column = require_Column$1.column;
22
+ exports.fileExists = require_Migration.fileExists;
@@ -0,0 +1,10 @@
1
+ import { Database, DatabaseInstance, PoolOptions, SQLResultNamespacedRow, SQLResultRow } from "./src/classes/Database.cjs";
2
+ import { Factory } from "./src/classes/Factory.cjs";
3
+ import { Column } from "./src/classes/Column.cjs";
4
+ import { ManyToOneRelation } from "./src/classes/ManyToOneRelation.cjs";
5
+ import { OneToManyRelation } from "./src/classes/OneToManyRelation.cjs";
6
+ import { Model, ModelEvent, ModelEventBus, ModelEventType } from "./src/classes/Model.cjs";
7
+ import { ManyToManyRelation } from "./src/classes/ManyToManyRelation.cjs";
8
+ import { Migration, fileExists } from "./src/classes/Migration.cjs";
9
+ import { column } from "./src/decorators/Column.cjs";
10
+ export { Column, Database, DatabaseInstance, Factory, ManyToManyRelation, ManyToOneRelation, Migration, Model, ModelEvent, ModelEventBus, ModelEventType, OneToManyRelation, PoolOptions, SQLResultNamespacedRow, SQLResultRow, column, fileExists };
@@ -0,0 +1,10 @@
1
+ import { Database, DatabaseInstance, PoolOptions, SQLResultNamespacedRow, SQLResultRow } from "./src/classes/Database.mjs";
2
+ import { Factory } from "./src/classes/Factory.mjs";
3
+ import { Column } from "./src/classes/Column.mjs";
4
+ import { ManyToOneRelation } from "./src/classes/ManyToOneRelation.mjs";
5
+ import { OneToManyRelation } from "./src/classes/OneToManyRelation.mjs";
6
+ import { Model, ModelEvent, ModelEventBus, ModelEventType } from "./src/classes/Model.mjs";
7
+ import { ManyToManyRelation } from "./src/classes/ManyToManyRelation.mjs";
8
+ import { Migration, fileExists } from "./src/classes/Migration.mjs";
9
+ import { column } from "./src/decorators/Column.mjs";
10
+ export { Column, Database, DatabaseInstance, Factory, ManyToManyRelation, ManyToOneRelation, Migration, Model, ModelEvent, ModelEventBus, ModelEventType, OneToManyRelation, PoolOptions, SQLResultNamespacedRow, SQLResultRow, column, fileExists };
package/dist/index.mjs ADDED
@@ -0,0 +1,10 @@
1
+ import { Database, DatabaseInstance } from "./src/classes/Database.mjs";
2
+ import { Factory } from "./src/classes/Factory.mjs";
3
+ import { Model, ModelEventBus } from "./src/classes/Model.mjs";
4
+ import { ManyToManyRelation } from "./src/classes/ManyToManyRelation.mjs";
5
+ import { ManyToOneRelation } from "./src/classes/ManyToOneRelation.mjs";
6
+ import { OneToManyRelation } from "./src/classes/OneToManyRelation.mjs";
7
+ import { Column } from "./src/classes/Column.mjs";
8
+ import { column } from "./src/decorators/Column.mjs";
9
+ import { Migration, fileExists } from "./src/classes/Migration.mjs";
10
+ export { Column, Database, DatabaseInstance, Factory, ManyToManyRelation, ManyToOneRelation, Migration, Model, ModelEventBus, OneToManyRelation, column, fileExists };
@@ -0,0 +1,134 @@
1
+ require("../../_virtual/_rolldown/runtime.cjs");
2
+ let _simonbackx_simple_encoding = require("@simonbackx/simple-encoding");
3
+ //#region src/classes/Column.ts
4
+ var Column = class Column {
5
+ type;
6
+ name;
7
+ nullable = false;
8
+ primary = false;
9
+ /**
10
+ * Do not save the model if this is the only field that has changed
11
+ */
12
+ skipUpdate = false;
13
+ decoder;
14
+ beforeSave;
15
+ beforeLoad;
16
+ static jsonVersion = 0;
17
+ /**
18
+ * Set the version used for JSON encoding in simple-encoding
19
+ */
20
+ static setJSONVersion(version) {
21
+ Column.jsonVersion = version;
22
+ }
23
+ constructor(type, name) {
24
+ this.type = type;
25
+ this.name = name;
26
+ }
27
+ /**
28
+ * @deprecated use to instead
29
+ */
30
+ saveProperty(data) {
31
+ return this.to(data);
32
+ }
33
+ isChanged(old, now) {
34
+ if (old instanceof Date) {
35
+ if (now instanceof Date) return old.getTime() !== now.getTime();
36
+ return true;
37
+ }
38
+ return now !== old;
39
+ }
40
+ from(data) {
41
+ if (this.beforeLoad) data = this.beforeLoad(data);
42
+ if (this.nullable && data === null) return null;
43
+ if (!this.nullable && data === null) throw new Error("Received null value from database. Expected a non-nullable value for " + this.name);
44
+ switch (this.type) {
45
+ case "integer":
46
+ if (!Number.isInteger(data)) throw new Error("Expected integer");
47
+ return data;
48
+ case "number":
49
+ if (Number.isNaN(data)) throw new Error("Expected number");
50
+ return data;
51
+ case "string": return data;
52
+ case "boolean":
53
+ if (data !== 1 && data !== 0) throw new Error("Expected boolean");
54
+ return data === 1;
55
+ case "date": return data;
56
+ case "datetime": return data;
57
+ case "json": {
58
+ if (typeof data !== "string") throw new Error("Expected string for JSON column");
59
+ let parsed;
60
+ try {
61
+ parsed = JSON.parse(data);
62
+ } catch (e) {
63
+ console.error(e);
64
+ parsed = {};
65
+ }
66
+ if (this.decoder) {
67
+ if (this.decoder.decodeField) {
68
+ if (typeof parsed === "object" && parsed !== null && "value" in parsed && typeof parsed.version === "number") return this.decoder.decodeField(parsed.value, {
69
+ version: parsed.version,
70
+ medium: _simonbackx_simple_encoding.EncodeMedium.Database
71
+ }, this.name);
72
+ return this.decoder.decodeField(parsed, {
73
+ version: 0,
74
+ medium: _simonbackx_simple_encoding.EncodeMedium.Database
75
+ }, this.name);
76
+ }
77
+ if (typeof parsed === "object" && parsed !== null && "version" in parsed && "value" in parsed && typeof parsed.version === "number") return this.decoder.decode(new _simonbackx_simple_encoding.ObjectData(parsed.value, {
78
+ version: parsed.version,
79
+ medium: _simonbackx_simple_encoding.EncodeMedium.Database
80
+ }, this.name));
81
+ return this.decoder.decode(new _simonbackx_simple_encoding.ObjectData(parsed, {
82
+ version: 0,
83
+ medium: _simonbackx_simple_encoding.EncodeMedium.Database
84
+ }, this.name));
85
+ } else console.warn("It is recommended to always use a decoder for JSON columns");
86
+ if (typeof parsed === "object" && parsed !== null && "version" in parsed && "value" in parsed && typeof parsed.version === "number") return parsed.value;
87
+ return parsed;
88
+ }
89
+ default: {
90
+ const t = this.type;
91
+ throw new Error("Type " + t + " not supported");
92
+ }
93
+ }
94
+ }
95
+ to(data) {
96
+ if (this.nullable && data === null) return null;
97
+ if (!this.nullable && data === null) throw new Error("Tried to set null to non-nullable value. Expected a non-nullable value");
98
+ switch (this.type) {
99
+ case "integer":
100
+ if (typeof data !== "number") throw new Error("Expected integer for " + this.name + ", received " + typeof data);
101
+ return data;
102
+ case "number":
103
+ if (typeof data !== "number") throw new Error("Expected number for " + this.name + ", received " + typeof data);
104
+ return data;
105
+ case "string":
106
+ if (typeof data !== "string") throw new Error("Expected string for " + this.name + ", received " + typeof data);
107
+ return data;
108
+ case "boolean":
109
+ if (typeof data !== "boolean") throw new Error("Expected boolean for " + this.name + ", received " + typeof data);
110
+ return data ? 1 : 0;
111
+ case "date":
112
+ case "datetime":
113
+ if (!(data instanceof Date)) throw new Error("Expected Date for " + this.name + ", received " + typeof data);
114
+ data.setMilliseconds(0);
115
+ return data;
116
+ case "json": {
117
+ const version = Column.jsonVersion;
118
+ return JSON.stringify({
119
+ value: (0, _simonbackx_simple_encoding.encodeObject)(data, {
120
+ version,
121
+ medium: _simonbackx_simple_encoding.EncodeMedium.Database
122
+ }),
123
+ version
124
+ });
125
+ }
126
+ default: {
127
+ const t = this.type;
128
+ throw new Error("Type " + t + " not supported");
129
+ }
130
+ }
131
+ }
132
+ };
133
+ //#endregion
134
+ exports.Column = Column;
@@ -0,0 +1,34 @@
1
+ import { DatabaseStoredValue } from "./DatabaseStoredValue.cjs";
2
+ import { ColumnType } from "./ColumnType.cjs";
3
+ import { Decoder } from "@simonbackx/simple-encoding";
4
+
5
+ //#region src/classes/Column.d.ts
6
+ declare class Column {
7
+ type: ColumnType;
8
+ name: string;
9
+ nullable: boolean;
10
+ primary: boolean;
11
+ /**
12
+ * Do not save the model if this is the only field that has changed
13
+ */
14
+ skipUpdate: boolean;
15
+ decoder: Decoder<any> | undefined;
16
+ beforeSave?: (value?: any) => any | Promise<any>;
17
+ beforeLoad?: (value?: any) => any;
18
+ private static jsonVersion;
19
+ /**
20
+ * Set the version used for JSON encoding in simple-encoding
21
+ */
22
+ static setJSONVersion(version: number): void;
23
+ constructor(type: ColumnType, name: string);
24
+ /**
25
+ * @deprecated use to instead
26
+ */
27
+ saveProperty(data: unknown): DatabaseStoredValue;
28
+ isChanged(old: DatabaseStoredValue, now: DatabaseStoredValue): boolean;
29
+ from(data: DatabaseStoredValue): unknown;
30
+ to(data: unknown): DatabaseStoredValue;
31
+ }
32
+ //#endregion
33
+ export { Column };
34
+ //# sourceMappingURL=Column.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Column.d.cts","names":[],"sources":["../../../src/classes/Column.ts"],"mappings":";;;;;cAKa,MAAA;EACT,IAAA,EAAM,UAAA;EACN,IAAA;EACA,QAAA;EACA,OAAA;EAHM;;;EAQN,UAAA;EACA,OAAA,EAAS,OAAA;EACT,UAAA,IAAc,KAAA,iBAAsB,OAAA;EAGpC,UAAA,IAAc,KAAA;EAAA,eAEC,WAAA;EAgII;;;EAAA,OA3HZ,cAAA,CAAe,OAAA;cAIV,IAAA,EAAM,UAAA,EAAY,IAAA;EAvB9B;;;EA+BA,YAAA,CAAa,IAAA,YAAgB,mBAAA;EAI7B,SAAA,CAAU,GAAA,EAAK,mBAAA,EAAqB,GAAA,EAAK,mBAAA;EAWzC,IAAA,CAAK,IAAA,EAAM,mBAAA;EAgGX,EAAA,CAAG,IAAA,YAAgB,mBAAA;AAAA"}
@@ -0,0 +1,34 @@
1
+ import { DatabaseStoredValue } from "./DatabaseStoredValue.mjs";
2
+ import { ColumnType } from "./ColumnType.mjs";
3
+ import { Decoder } from "@simonbackx/simple-encoding";
4
+
5
+ //#region src/classes/Column.d.ts
6
+ declare class Column {
7
+ type: ColumnType;
8
+ name: string;
9
+ nullable: boolean;
10
+ primary: boolean;
11
+ /**
12
+ * Do not save the model if this is the only field that has changed
13
+ */
14
+ skipUpdate: boolean;
15
+ decoder: Decoder<any> | undefined;
16
+ beforeSave?: (value?: any) => any | Promise<any>;
17
+ beforeLoad?: (value?: any) => any;
18
+ private static jsonVersion;
19
+ /**
20
+ * Set the version used for JSON encoding in simple-encoding
21
+ */
22
+ static setJSONVersion(version: number): void;
23
+ constructor(type: ColumnType, name: string);
24
+ /**
25
+ * @deprecated use to instead
26
+ */
27
+ saveProperty(data: unknown): DatabaseStoredValue;
28
+ isChanged(old: DatabaseStoredValue, now: DatabaseStoredValue): boolean;
29
+ from(data: DatabaseStoredValue): unknown;
30
+ to(data: unknown): DatabaseStoredValue;
31
+ }
32
+ //#endregion
33
+ export { Column };
34
+ //# sourceMappingURL=Column.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Column.d.mts","names":[],"sources":["../../../src/classes/Column.ts"],"mappings":";;;;;cAKa,MAAA;EACT,IAAA,EAAM,UAAA;EACN,IAAA;EACA,QAAA;EACA,OAAA;EAHM;;;EAQN,UAAA;EACA,OAAA,EAAS,OAAA;EACT,UAAA,IAAc,KAAA,iBAAsB,OAAA;EAGpC,UAAA,IAAc,KAAA;EAAA,eAEC,WAAA;EAgII;;;EAAA,OA3HZ,cAAA,CAAe,OAAA;cAIV,IAAA,EAAM,UAAA,EAAY,IAAA;EAvB9B;;;EA+BA,YAAA,CAAa,IAAA,YAAgB,mBAAA;EAI7B,SAAA,CAAU,GAAA,EAAK,mBAAA,EAAqB,GAAA,EAAK,mBAAA;EAWzC,IAAA,CAAK,IAAA,EAAM,mBAAA;EAgGX,EAAA,CAAG,IAAA,YAAgB,mBAAA;AAAA"}
@@ -0,0 +1,135 @@
1
+ import { EncodeMedium, ObjectData, encodeObject } from "@simonbackx/simple-encoding";
2
+ //#region src/classes/Column.ts
3
+ var Column = class Column {
4
+ type;
5
+ name;
6
+ nullable = false;
7
+ primary = false;
8
+ /**
9
+ * Do not save the model if this is the only field that has changed
10
+ */
11
+ skipUpdate = false;
12
+ decoder;
13
+ beforeSave;
14
+ beforeLoad;
15
+ static jsonVersion = 0;
16
+ /**
17
+ * Set the version used for JSON encoding in simple-encoding
18
+ */
19
+ static setJSONVersion(version) {
20
+ Column.jsonVersion = version;
21
+ }
22
+ constructor(type, name) {
23
+ this.type = type;
24
+ this.name = name;
25
+ }
26
+ /**
27
+ * @deprecated use to instead
28
+ */
29
+ saveProperty(data) {
30
+ return this.to(data);
31
+ }
32
+ isChanged(old, now) {
33
+ if (old instanceof Date) {
34
+ if (now instanceof Date) return old.getTime() !== now.getTime();
35
+ return true;
36
+ }
37
+ return now !== old;
38
+ }
39
+ from(data) {
40
+ if (this.beforeLoad) data = this.beforeLoad(data);
41
+ if (this.nullable && data === null) return null;
42
+ if (!this.nullable && data === null) throw new Error("Received null value from database. Expected a non-nullable value for " + this.name);
43
+ switch (this.type) {
44
+ case "integer":
45
+ if (!Number.isInteger(data)) throw new Error("Expected integer");
46
+ return data;
47
+ case "number":
48
+ if (Number.isNaN(data)) throw new Error("Expected number");
49
+ return data;
50
+ case "string": return data;
51
+ case "boolean":
52
+ if (data !== 1 && data !== 0) throw new Error("Expected boolean");
53
+ return data === 1;
54
+ case "date": return data;
55
+ case "datetime": return data;
56
+ case "json": {
57
+ if (typeof data !== "string") throw new Error("Expected string for JSON column");
58
+ let parsed;
59
+ try {
60
+ parsed = JSON.parse(data);
61
+ } catch (e) {
62
+ console.error(e);
63
+ parsed = {};
64
+ }
65
+ if (this.decoder) {
66
+ if (this.decoder.decodeField) {
67
+ if (typeof parsed === "object" && parsed !== null && "value" in parsed && typeof parsed.version === "number") return this.decoder.decodeField(parsed.value, {
68
+ version: parsed.version,
69
+ medium: EncodeMedium.Database
70
+ }, this.name);
71
+ return this.decoder.decodeField(parsed, {
72
+ version: 0,
73
+ medium: EncodeMedium.Database
74
+ }, this.name);
75
+ }
76
+ if (typeof parsed === "object" && parsed !== null && "version" in parsed && "value" in parsed && typeof parsed.version === "number") return this.decoder.decode(new ObjectData(parsed.value, {
77
+ version: parsed.version,
78
+ medium: EncodeMedium.Database
79
+ }, this.name));
80
+ return this.decoder.decode(new ObjectData(parsed, {
81
+ version: 0,
82
+ medium: EncodeMedium.Database
83
+ }, this.name));
84
+ } else console.warn("It is recommended to always use a decoder for JSON columns");
85
+ if (typeof parsed === "object" && parsed !== null && "version" in parsed && "value" in parsed && typeof parsed.version === "number") return parsed.value;
86
+ return parsed;
87
+ }
88
+ default: {
89
+ const t = this.type;
90
+ throw new Error("Type " + t + " not supported");
91
+ }
92
+ }
93
+ }
94
+ to(data) {
95
+ if (this.nullable && data === null) return null;
96
+ if (!this.nullable && data === null) throw new Error("Tried to set null to non-nullable value. Expected a non-nullable value");
97
+ switch (this.type) {
98
+ case "integer":
99
+ if (typeof data !== "number") throw new Error("Expected integer for " + this.name + ", received " + typeof data);
100
+ return data;
101
+ case "number":
102
+ if (typeof data !== "number") throw new Error("Expected number for " + this.name + ", received " + typeof data);
103
+ return data;
104
+ case "string":
105
+ if (typeof data !== "string") throw new Error("Expected string for " + this.name + ", received " + typeof data);
106
+ return data;
107
+ case "boolean":
108
+ if (typeof data !== "boolean") throw new Error("Expected boolean for " + this.name + ", received " + typeof data);
109
+ return data ? 1 : 0;
110
+ case "date":
111
+ case "datetime":
112
+ if (!(data instanceof Date)) throw new Error("Expected Date for " + this.name + ", received " + typeof data);
113
+ data.setMilliseconds(0);
114
+ return data;
115
+ case "json": {
116
+ const version = Column.jsonVersion;
117
+ return JSON.stringify({
118
+ value: encodeObject(data, {
119
+ version,
120
+ medium: EncodeMedium.Database
121
+ }),
122
+ version
123
+ });
124
+ }
125
+ default: {
126
+ const t = this.type;
127
+ throw new Error("Type " + t + " not supported");
128
+ }
129
+ }
130
+ }
131
+ };
132
+ //#endregion
133
+ export { Column };
134
+
135
+ //# sourceMappingURL=Column.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Column.mjs","names":[],"sources":["../../../src/classes/Column.ts"],"sourcesContent":["import { Decoder, EncodableObject, EncodeMedium, encodeObject, ObjectData } from '@simonbackx/simple-encoding';\n\nimport { type ColumnType } from './ColumnType.js';\nimport { type DatabaseStoredValue } from './DatabaseStoredValue.js';\n\nexport class Column {\n type: ColumnType;\n name: string;\n nullable = false;\n primary = false;\n\n /**\n * Do not save the model if this is the only field that has changed\n */\n skipUpdate = false;\n decoder: Decoder<any> | undefined;\n beforeSave?: (value?: any) => any | Promise<any>;\n\n // Allow handling of new fields etc\n beforeLoad?: (value?: any) => any;\n\n private static jsonVersion = 0;\n\n /**\n * Set the version used for JSON encoding in simple-encoding\n */\n static setJSONVersion(version: number): void {\n Column.jsonVersion = version;\n }\n\n constructor(type: ColumnType, name: string) {\n this.type = type;\n this.name = name;\n }\n\n /**\n * @deprecated use to instead\n */\n saveProperty(data: unknown): DatabaseStoredValue {\n return this.to(data);\n }\n\n isChanged(old: DatabaseStoredValue, now: DatabaseStoredValue): boolean {\n if (old instanceof Date) {\n if (now instanceof Date) {\n return old.getTime() !== now.getTime();\n }\n return true;\n }\n return now !== old;\n }\n\n /// Convert from database to javascript\n from(data: DatabaseStoredValue): unknown {\n if (this.beforeLoad) {\n data = this.beforeLoad(data);\n }\n if (this.nullable && data === null) {\n return null;\n }\n if (!this.nullable && data === null) {\n throw new Error('Received null value from database. Expected a non-nullable value for ' + this.name);\n }\n switch (this.type) {\n case 'integer':\n // Mapped correctly by MySQL\n if (!Number.isInteger(data)) {\n throw new Error('Expected integer');\n }\n return data;\n\n case 'number':\n // Mapped correctly by MySQL\n if (Number.isNaN(data)) {\n throw new Error('Expected number');\n }\n return data;\n\n case 'string':\n return data;\n\n case 'boolean':\n // Mapped correctly by MySQL\n if (data !== 1 && data !== 0) {\n throw new Error('Expected boolean');\n }\n return data === 1;\n\n case 'date':\n // Correctly mapped by node MySQL\n return data;\n\n case 'datetime':\n // Mapped correctly by node MySQL\n return data;\n\n case 'json': {\n if (typeof data !== 'string') {\n throw new Error('Expected string for JSON column');\n }\n\n // Mapped correctly by node MySQL\n let parsed: unknown;\n try {\n parsed = JSON.parse(data);\n }\n catch (e) {\n // Syntax error. Mark this in the future.\n console.error(e);\n parsed = {};\n }\n\n if (this.decoder) {\n if (this.decoder.decodeField) {\n if (typeof parsed === 'object' && parsed !== null && 'value' in parsed && typeof (parsed as any).version === 'number') {\n return this.decoder.decodeField(parsed.value, { version: (parsed as any).version, medium: EncodeMedium.Database }, this.name);\n }\n\n // Fallback decoding without version (since we don't know the saved version)\n return this.decoder.decodeField(parsed, { version: 0, medium: EncodeMedium.Database }, this.name);\n }\n if (typeof parsed === 'object' && parsed !== null && 'version' in parsed && 'value' in parsed && typeof parsed.version === 'number') {\n return this.decoder.decode(new ObjectData(parsed.value, { version: parsed.version, medium: EncodeMedium.Database }, this.name));\n }\n\n // Fallback decoding without version (since we don't know the saved version)\n return this.decoder.decode(new ObjectData(parsed, { version: 0, medium: EncodeMedium.Database }, this.name));\n }\n else {\n console.warn('It is recommended to always use a decoder for JSON columns');\n }\n\n if (typeof parsed === 'object' && parsed !== null && 'version' in parsed && 'value' in parsed && typeof parsed.version === 'number') {\n return parsed.value;\n }\n\n // If data comes from before version encoding, fall back to parsed\n return parsed;\n }\n\n default: {\n // If we get a compile error heres, a type is missing in the switch\n const t: never = this.type;\n throw new Error('Type ' + t + ' not supported');\n }\n }\n }\n\n /// Convert to database from javascript\n to(data: unknown): DatabaseStoredValue {\n if (this.nullable && data === null) {\n return null;\n }\n if (!this.nullable && data === null) {\n throw new Error('Tried to set null to non-nullable value. Expected a non-nullable value');\n }\n\n switch (this.type) {\n case 'integer':\n // Mapped correctly by MySQL\n if (typeof data !== 'number') {\n throw new Error('Expected integer for ' + this.name + ', received ' + (typeof data));\n }\n\n return data;\n\n case 'number':\n if (typeof data !== 'number') {\n throw new Error('Expected number for ' + this.name + ', received ' + (typeof data));\n }\n\n // Mapped correctly by node MySQL\n return data;\n\n case 'string':\n if (typeof data !== 'string') {\n throw new Error('Expected string for ' + this.name + ', received ' + (typeof data));\n }\n\n return data;\n\n case 'boolean':\n if (typeof data !== 'boolean') {\n throw new Error('Expected boolean for ' + this.name + ', received ' + (typeof data));\n }\n\n return data ? 1 : 0;\n\n case 'date':\n case 'datetime':\n if (!(data instanceof Date)) {\n throw new Error('Expected Date for ' + this.name + ', received ' + (typeof data));\n }\n // This information cannot be stored in the database - so also update it in JS to keep it in sync\n data.setMilliseconds(0);\n\n // Correctly mapped by node MySQL\n return data;\n\n case 'json': {\n const version = Column.jsonVersion;\n\n return JSON.stringify({\n // Warning: keys should be sorted or they will get marked as changed every time\n value: encodeObject(data as EncodableObject, { version, medium: EncodeMedium.Database }),\n version: version,\n\n });\n }\n\n default: {\n // If we get a compile error heres, a type is missing in the switch\n const t: never = this.type;\n throw new Error('Type ' + t + ' not supported');\n }\n }\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ //#region src/classes/ColumnType.d.ts
2
+ type ColumnType = 'integer' | 'number' | 'string' | 'date' | 'datetime' | 'boolean' | 'json';
3
+ //#endregion
4
+ export { ColumnType };
5
+ //# sourceMappingURL=ColumnType.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColumnType.d.cts","names":[],"sources":["../../../src/classes/ColumnType.ts"],"mappings":";KAAY,UAAA"}
@@ -0,0 +1,5 @@
1
+ //#region src/classes/ColumnType.d.ts
2
+ type ColumnType = 'integer' | 'number' | 'string' | 'date' | 'datetime' | 'boolean' | 'json';
3
+ //#endregion
4
+ export { ColumnType };
5
+ //# sourceMappingURL=ColumnType.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColumnType.d.mts","names":[],"sources":["../../../src/classes/ColumnType.ts"],"mappings":";KAAY,UAAA"}
@@ -0,0 +1,157 @@
1
+ const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
2
+ let fs = require("fs");
3
+ fs = require_runtime.__toESM(fs);
4
+ let mysql2_promise = require("mysql2/promise");
5
+ mysql2_promise = require_runtime.__toESM(mysql2_promise);
6
+ //#region src/classes/Database.ts
7
+ var DatabaseInstance = class {
8
+ pool;
9
+ debug = false;
10
+ constructor(options = {}) {
11
+ this.createPool(options);
12
+ }
13
+ createPool(options = {}) {
14
+ const settings = {
15
+ host: options.host ?? process.env.DB_HOST ?? "localhost",
16
+ user: options.user ?? process.env.DB_USER ?? "root",
17
+ password: options.password ?? process.env.DB_PASS ?? "root",
18
+ port: options.port ? options.port : parseInt(process.env.DB_PORT ?? "3306"),
19
+ database: options.database === void 0 ? process.env.DB_DATABASE : options.database,
20
+ connectionLimit: options.connectionLimit ? options.connectionLimit : parseInt(process.env.DB_CONNECTION_LIMIT ?? "10"),
21
+ multipleStatements: options.multipleStatements ?? (process.env.DB_MULTIPLE_STATEMENTS ?? "true") === "true",
22
+ charset: options.charset ?? process.env.DB_CHARSET ?? "utf8mb4_0900_ai_ci",
23
+ useSSL: options.useSSL ?? !!process.env.DB_USE_SSL,
24
+ ca: options.ca ?? process.env.DB_CA
25
+ };
26
+ if (settings.database === void 0) throw new Error("Environment variable DB_DATABASE is missing");
27
+ this.pool = mysql2_promise.default.createPool({
28
+ host: settings.host,
29
+ user: settings.user,
30
+ password: settings.password,
31
+ port: settings.port,
32
+ database: settings.database ?? void 0,
33
+ waitForConnections: true,
34
+ connectionLimit: settings.connectionLimit,
35
+ queueLimit: 0,
36
+ multipleStatements: settings.multipleStatements,
37
+ charset: settings.charset,
38
+ decimalNumbers: true,
39
+ jsonStrings: true,
40
+ ssl: settings.useSSL ? {
41
+ ca: settings.ca ? fs.default.readFileSync(settings.ca) : void 0,
42
+ rejectUnauthorized: settings.ca ? true : false
43
+ } : void 0
44
+ });
45
+ this.debug = options?.debug ?? false;
46
+ if (this.debug) {
47
+ this.pool.on("acquire", function(connection) {
48
+ console.log("Connection %d acquired", connection.threadId);
49
+ });
50
+ this.pool.on("connection", function(connection) {
51
+ console.log("Connection %d created", connection.threadId);
52
+ });
53
+ this.pool.on("enqueue", function() {
54
+ console.log("Waiting for available connection slot");
55
+ });
56
+ this.pool.on("release", function(connection) {
57
+ console.log("Connection %d released", connection.threadId);
58
+ });
59
+ }
60
+ }
61
+ async reload(options = {}) {
62
+ await this.pool.end();
63
+ this.createPool(options);
64
+ }
65
+ setDebug(enabled = true) {
66
+ this.debug = enabled;
67
+ }
68
+ async getConnection() {
69
+ return await this.pool.getConnection();
70
+ }
71
+ escapeId(value) {
72
+ return this.pool.escapeId(value);
73
+ }
74
+ async end() {
75
+ return await this.pool.end();
76
+ }
77
+ startQuery() {
78
+ return process.hrtime();
79
+ }
80
+ logQuery(q, hrstart) {
81
+ if (this.debug) {
82
+ const hrend = process.hrtime(hrstart);
83
+ console.warn(q.sql.replace(/\n+ +/g, "\n"), "started at " + (hrend[0] * 1e3 + hrend[1] / 1e6) + "ms");
84
+ }
85
+ }
86
+ finishQuery(q, hrstart) {
87
+ if (this.debug) {
88
+ const hrend = process.hrtime(hrstart);
89
+ console.log(q.sql.replace(/\s+/g, " "), "in " + (hrend[0] * 1e3 + hrend[1] / 1e6) + "ms");
90
+ }
91
+ }
92
+ async select(query, values, options = {}) {
93
+ const connection = options.connection ?? await this.getConnection();
94
+ try {
95
+ const q = await connection.query({
96
+ sql: query,
97
+ nestTables: options.nestTables ?? true,
98
+ values
99
+ });
100
+ return [q[0], q[1]];
101
+ } finally {
102
+ if (!options.connection) connection.release();
103
+ }
104
+ }
105
+ async insert(query, values, useConnection) {
106
+ const connection = useConnection ?? await this.getConnection();
107
+ try {
108
+ const q = await connection.query({
109
+ sql: query,
110
+ values
111
+ });
112
+ return [q[0], q[1]];
113
+ } finally {
114
+ if (!useConnection) connection.release();
115
+ }
116
+ }
117
+ async update(query, values, useConnection) {
118
+ const connection = useConnection ?? await this.getConnection();
119
+ try {
120
+ const q = await connection.query({
121
+ sql: query,
122
+ values
123
+ });
124
+ return [q[0], q[1]];
125
+ } finally {
126
+ if (!useConnection) connection.release();
127
+ }
128
+ }
129
+ async delete(query, values, useConnection) {
130
+ const connection = useConnection ?? await this.getConnection();
131
+ try {
132
+ const q = await connection.query({
133
+ sql: query,
134
+ values
135
+ });
136
+ return [q[0], q[1]];
137
+ } finally {
138
+ if (!useConnection) connection.release();
139
+ }
140
+ }
141
+ async statement(query, values, useConnection) {
142
+ const connection = useConnection ?? await this.getConnection();
143
+ try {
144
+ const q = await connection.query({
145
+ sql: query,
146
+ values
147
+ });
148
+ return [q[0], q[1]];
149
+ } finally {
150
+ if (!useConnection) connection.release();
151
+ }
152
+ }
153
+ };
154
+ const Database = new DatabaseInstance();
155
+ //#endregion
156
+ exports.Database = Database;
157
+ exports.DatabaseInstance = DatabaseInstance;