@simonbackx/simple-database 1.33.0 → 1.35.0

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 (166) hide show
  1. package/dist/cjs/index.d.ts +10 -0
  2. package/dist/cjs/index.d.ts.map +1 -0
  3. package/dist/cjs/index.js +13 -0
  4. package/dist/cjs/index.js.map +1 -0
  5. package/dist/cjs/package.json +1 -0
  6. package/dist/{src → cjs/src}/classes/Column.d.ts +3 -2
  7. package/dist/cjs/src/classes/Column.d.ts.map +1 -0
  8. package/dist/{src → cjs/src}/classes/Column.js +21 -8
  9. package/dist/cjs/src/classes/Column.js.map +1 -0
  10. package/dist/cjs/src/classes/ColumnType.d.ts +2 -0
  11. package/dist/cjs/src/classes/ColumnType.d.ts.map +1 -0
  12. package/dist/cjs/src/classes/ColumnType.js +3 -0
  13. package/dist/cjs/src/classes/ColumnType.js.map +1 -0
  14. package/dist/{src → cjs/src}/classes/Database.d.ts +18 -14
  15. package/dist/cjs/src/classes/Database.d.ts.map +1 -0
  16. package/dist/{src → cjs/src}/classes/Database.js +26 -20
  17. package/dist/cjs/src/classes/Database.js.map +1 -0
  18. package/dist/cjs/src/classes/DatabaseStoredValue.d.ts +2 -0
  19. package/dist/cjs/src/classes/DatabaseStoredValue.d.ts.map +1 -0
  20. package/dist/cjs/src/classes/DatabaseStoredValue.js +3 -0
  21. package/dist/cjs/src/classes/DatabaseStoredValue.js.map +1 -0
  22. package/dist/{src → cjs/src}/classes/Factory.d.ts +1 -0
  23. package/dist/cjs/src/classes/Factory.d.ts.map +1 -0
  24. package/dist/{src → cjs/src}/classes/Factory.js +8 -7
  25. package/dist/cjs/src/classes/Factory.js.map +1 -0
  26. package/dist/{src → cjs/src}/classes/ManyToManyRelation.d.ts +4 -3
  27. package/dist/cjs/src/classes/ManyToManyRelation.d.ts.map +1 -0
  28. package/dist/{src → cjs/src}/classes/ManyToManyRelation.js +29 -18
  29. package/dist/cjs/src/classes/ManyToManyRelation.js.map +1 -0
  30. package/dist/{src → cjs/src}/classes/ManyToOneRelation.d.ts +2 -1
  31. package/dist/cjs/src/classes/ManyToOneRelation.d.ts.map +1 -0
  32. package/dist/{src → cjs/src}/classes/ManyToOneRelation.js +11 -2
  33. package/dist/cjs/src/classes/ManyToOneRelation.js.map +1 -0
  34. package/dist/{src → cjs/src}/classes/Migration.d.ts +2 -0
  35. package/dist/cjs/src/classes/Migration.d.ts.map +1 -0
  36. package/dist/{src → cjs/src}/classes/Migration.js +64 -17
  37. package/dist/cjs/src/classes/Migration.js.map +1 -0
  38. package/dist/{src → cjs/src}/classes/Model.d.ts +17 -6
  39. package/dist/cjs/src/classes/Model.d.ts.map +1 -0
  40. package/dist/{src → cjs/src}/classes/Model.js +83 -33
  41. package/dist/cjs/src/classes/Model.js.map +1 -0
  42. package/dist/{src → cjs/src}/classes/OneToManyRelation.d.ts +2 -1
  43. package/dist/cjs/src/classes/OneToManyRelation.d.ts.map +1 -0
  44. package/dist/{src → cjs/src}/classes/OneToManyRelation.js +17 -3
  45. package/dist/cjs/src/classes/OneToManyRelation.js.map +1 -0
  46. package/dist/{src → cjs/src}/classes/data/boys.d.ts +1 -0
  47. package/dist/cjs/src/classes/data/boys.d.ts.map +1 -0
  48. package/dist/cjs/src/classes/data/boys.js.map +1 -0
  49. package/dist/cjs/src/classes/data/family-names.d.ts +3 -0
  50. package/dist/cjs/src/classes/data/family-names.d.ts.map +1 -0
  51. package/dist/cjs/src/classes/data/family-names.js.map +1 -0
  52. package/dist/{src → cjs/src}/classes/data/girls.d.ts +1 -0
  53. package/dist/cjs/src/classes/data/girls.d.ts.map +1 -0
  54. package/dist/cjs/src/classes/data/girls.js.map +1 -0
  55. package/dist/cjs/src/classes/data/streets.d.ts +3 -0
  56. package/dist/cjs/src/classes/data/streets.d.ts.map +1 -0
  57. package/dist/cjs/src/classes/data/streets.js.map +1 -0
  58. package/dist/{src → cjs/src}/decorators/Column.d.ts +4 -3
  59. package/dist/cjs/src/decorators/Column.d.ts.map +1 -0
  60. package/dist/{src → cjs/src}/decorators/Column.js +3 -4
  61. package/dist/cjs/src/decorators/Column.js.map +1 -0
  62. package/dist/{src → cjs/src}/models/Migration.d.ts +2 -1
  63. package/dist/cjs/src/models/Migration.d.ts.map +1 -0
  64. package/dist/{src → cjs/src}/models/Migration.js +14 -15
  65. package/dist/cjs/src/models/Migration.js.map +1 -0
  66. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -0
  67. package/dist/esm/index.d.ts +10 -0
  68. package/dist/esm/index.d.ts.map +1 -0
  69. package/dist/esm/index.js +10 -0
  70. package/dist/esm/index.js.map +1 -0
  71. package/dist/esm/src/classes/Column.d.ts +30 -0
  72. package/dist/esm/src/classes/Column.d.ts.map +1 -0
  73. package/dist/esm/src/classes/Column.js +179 -0
  74. package/dist/esm/src/classes/Column.js.map +1 -0
  75. package/dist/esm/src/classes/ColumnType.d.ts +2 -0
  76. package/dist/esm/src/classes/ColumnType.d.ts.map +1 -0
  77. package/dist/esm/src/classes/ColumnType.js +2 -0
  78. package/dist/esm/src/classes/ColumnType.js.map +1 -0
  79. package/dist/esm/src/classes/Database.d.ts +59 -0
  80. package/dist/esm/src/classes/Database.d.ts.map +1 -0
  81. package/dist/esm/src/classes/Database.js +171 -0
  82. package/dist/esm/src/classes/Database.js.map +1 -0
  83. package/dist/esm/src/classes/DatabaseStoredValue.d.ts +2 -0
  84. package/dist/esm/src/classes/DatabaseStoredValue.d.ts.map +1 -0
  85. package/dist/esm/src/classes/DatabaseStoredValue.js +2 -0
  86. package/dist/esm/src/classes/DatabaseStoredValue.js.map +1 -0
  87. package/dist/esm/src/classes/Factory.d.ts +14 -0
  88. package/dist/esm/src/classes/Factory.d.ts.map +1 -0
  89. package/dist/esm/src/classes/Factory.js +51 -0
  90. package/dist/esm/src/classes/Factory.js.map +1 -0
  91. package/dist/esm/src/classes/ManyToManyRelation.d.ts +79 -0
  92. package/dist/esm/src/classes/ManyToManyRelation.d.ts.map +1 -0
  93. package/dist/esm/src/classes/ManyToManyRelation.js +254 -0
  94. package/dist/esm/src/classes/ManyToManyRelation.js.map +1 -0
  95. package/dist/esm/src/classes/ManyToOneRelation.d.ts +22 -0
  96. package/dist/esm/src/classes/ManyToOneRelation.d.ts.map +1 -0
  97. package/dist/esm/src/classes/ManyToOneRelation.js +47 -0
  98. package/dist/esm/src/classes/ManyToOneRelation.js.map +1 -0
  99. package/dist/esm/src/classes/Migration.d.ts +14 -0
  100. package/dist/esm/src/classes/Migration.d.ts.map +1 -0
  101. package/dist/esm/src/classes/Migration.js +168 -0
  102. package/dist/esm/src/classes/Migration.js.map +1 -0
  103. package/dist/esm/src/classes/Model.d.ts +159 -0
  104. package/dist/esm/src/classes/Model.d.ts.map +1 -0
  105. package/dist/esm/src/classes/Model.js +635 -0
  106. package/dist/esm/src/classes/Model.js.map +1 -0
  107. package/dist/esm/src/classes/OneToManyRelation.d.ts +38 -0
  108. package/dist/esm/src/classes/OneToManyRelation.d.ts.map +1 -0
  109. package/dist/esm/src/classes/OneToManyRelation.js +75 -0
  110. package/dist/esm/src/classes/OneToManyRelation.js.map +1 -0
  111. package/dist/{src/classes/data/family-names.d.ts → esm/src/classes/data/boys.d.ts} +1 -0
  112. package/dist/esm/src/classes/data/boys.d.ts.map +1 -0
  113. package/dist/esm/src/classes/data/boys.js +1003 -0
  114. package/dist/{src → esm/src}/classes/data/boys.js.map +1 -1
  115. package/dist/esm/src/classes/data/family-names.d.ts +3 -0
  116. package/dist/esm/src/classes/data/family-names.d.ts.map +1 -0
  117. package/dist/esm/src/classes/data/family-names.js +1003 -0
  118. package/dist/{src → esm/src}/classes/data/family-names.js.map +1 -1
  119. package/dist/{src/classes/data/streets.d.ts → esm/src/classes/data/girls.d.ts} +1 -0
  120. package/dist/esm/src/classes/data/girls.d.ts.map +1 -0
  121. package/dist/esm/src/classes/data/girls.js +1002 -0
  122. package/dist/{src → esm/src}/classes/data/girls.js.map +1 -1
  123. package/dist/esm/src/classes/data/streets.d.ts +3 -0
  124. package/dist/esm/src/classes/data/streets.d.ts.map +1 -0
  125. package/dist/esm/src/classes/data/streets.js +294 -0
  126. package/dist/{src → esm/src}/classes/data/streets.js.map +1 -1
  127. package/dist/esm/src/decorators/Column.d.ts +18 -0
  128. package/dist/esm/src/decorators/Column.d.ts.map +1 -0
  129. package/dist/esm/src/decorators/Column.js +36 -0
  130. package/dist/esm/src/decorators/Column.js.map +1 -0
  131. package/dist/esm/src/models/Migration.d.ts +11 -0
  132. package/dist/esm/src/models/Migration.d.ts.map +1 -0
  133. package/dist/esm/src/models/Migration.js +48 -0
  134. package/dist/esm/src/models/Migration.js.map +1 -0
  135. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -0
  136. package/package.json +52 -36
  137. package/dist/index.d.ts +0 -9
  138. package/dist/index.js +0 -13
  139. package/dist/index.js.map +0 -1
  140. package/dist/migrations.d.ts +0 -1
  141. package/dist/migrations.js +0 -18
  142. package/dist/migrations.js.map +0 -1
  143. package/dist/src/classes/Column.js.map +0 -1
  144. package/dist/src/classes/Database.js.map +0 -1
  145. package/dist/src/classes/Factory.js.map +0 -1
  146. package/dist/src/classes/ManyToManyRelation.js.map +0 -1
  147. package/dist/src/classes/ManyToOneRelation.js.map +0 -1
  148. package/dist/src/classes/Migration.js.map +0 -1
  149. package/dist/src/classes/Model.js.map +0 -1
  150. package/dist/src/classes/Model.test.d.ts +0 -1
  151. package/dist/src/classes/Model.test.js +0 -629
  152. package/dist/src/classes/Model.test.js.map +0 -1
  153. package/dist/src/classes/OneToManyRelation.js.map +0 -1
  154. package/dist/src/decorators/Column.js.map +0 -1
  155. package/dist/src/models/Migration.js.map +0 -1
  156. package/dist/tests/jest.global.setup.d.ts +0 -3
  157. package/dist/tests/jest.global.setup.js +0 -12
  158. package/dist/tests/jest.global.setup.js.map +0 -1
  159. package/dist/tests/jest.setup.d.ts +0 -1
  160. package/dist/tests/jest.setup.js +0 -8
  161. package/dist/tests/jest.setup.js.map +0 -1
  162. /package/dist/{src → cjs/src}/classes/data/boys.js +0 -0
  163. /package/dist/{src → cjs/src}/classes/data/family-names.js +0 -0
  164. /package/dist/{src → cjs/src}/classes/data/girls.js +0 -0
  165. /package/dist/{src → cjs/src}/classes/data/streets.js +0 -0
  166. /package/{dist/src/migrations → migrations}/000000000-setup-migrations.sql +0 -0
@@ -0,0 +1,10 @@
1
+ export * from './src/classes/Database.js';
2
+ export * from './src/classes/Factory.js';
3
+ export * from './src/classes/ManyToManyRelation.js';
4
+ export * from './src/classes/ManyToOneRelation.js';
5
+ export * from './src/classes/OneToManyRelation.js';
6
+ export * from './src/classes/Migration.js';
7
+ export * from './src/classes/Model.js';
8
+ export * from './src/decorators/Column.js';
9
+ export * from './src/classes/Column.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./src/classes/Database.js"), exports);
5
+ tslib_1.__exportStar(require("./src/classes/Factory.js"), exports);
6
+ tslib_1.__exportStar(require("./src/classes/ManyToManyRelation.js"), exports);
7
+ tslib_1.__exportStar(require("./src/classes/ManyToOneRelation.js"), exports);
8
+ tslib_1.__exportStar(require("./src/classes/OneToManyRelation.js"), exports);
9
+ tslib_1.__exportStar(require("./src/classes/Migration.js"), exports);
10
+ tslib_1.__exportStar(require("./src/classes/Model.js"), exports);
11
+ tslib_1.__exportStar(require("./src/decorators/Column.js"), exports);
12
+ tslib_1.__exportStar(require("./src/classes/Column.js"), exports);
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":";;;AAAA,oEAA0C;AAC1C,mEAAyC;AACzC,8EAAoD;AACpD,6EAAmD;AACnD,6EAAmD;AACnD,qEAA2C;AAC3C,iEAAuC;AACvC,qEAA2C;AAC3C,kEAAwC"}
@@ -0,0 +1 @@
1
+ {"type":"commonjs"}
@@ -1,6 +1,6 @@
1
1
  import { Decoder } from '@simonbackx/simple-encoding';
2
- import { ColumnType } from '../decorators/Column';
3
- export type DatabaseStoredValue = string | number | Date | null;
2
+ import { type ColumnType } from './ColumnType.js';
3
+ import { type DatabaseStoredValue } from './DatabaseStoredValue.js';
4
4
  export declare class Column {
5
5
  type: ColumnType;
6
6
  name: string;
@@ -27,3 +27,4 @@ export declare class Column {
27
27
  from(data: DatabaseStoredValue): unknown;
28
28
  to(data: unknown): DatabaseStoredValue;
29
29
  }
30
+ //# sourceMappingURL=Column.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Column.d.ts","sourceRoot":"","sources":["../../../../src/classes/Column.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA2D,MAAM,6BAA6B,CAAC;AAE/G,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,qBAAa,MAAM;IACf,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,UAAS;IACjB,OAAO,UAAS;IAEhB;;OAEG;IACH,UAAU,UAAS;IACnB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAClC,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAGjD,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,GAAG,CAAC;IAElC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAK;IAE/B;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;gBAIhC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM;IAK1C;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,mBAAmB;IAIhD,SAAS,CAAC,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO;IAWtE,IAAI,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO;IAgGxC,EAAE,CAAC,IAAI,EAAE,OAAO,GAAG,mBAAmB;CAoEzC"}
@@ -3,6 +3,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Column = void 0;
4
4
  const simple_encoding_1 = require("@simonbackx/simple-encoding");
5
5
  class Column {
6
+ type;
7
+ name;
8
+ nullable = false;
9
+ primary = false;
10
+ /**
11
+ * Do not save the model if this is the only field that has changed
12
+ */
13
+ skipUpdate = false;
14
+ decoder;
15
+ beforeSave;
16
+ // Allow handling of new fields etc
17
+ beforeLoad;
18
+ static jsonVersion = 0;
6
19
  /**
7
20
  * Set the version used for JSON encoding in simple-encoding
8
21
  */
@@ -10,12 +23,6 @@ class Column {
10
23
  Column.jsonVersion = version;
11
24
  }
12
25
  constructor(type, name) {
13
- this.nullable = false;
14
- this.primary = false;
15
- /**
16
- * Do not save the model if this is the only field that has changed
17
- */
18
- this.skipUpdate = false;
19
26
  this.type = type;
20
27
  this.name = name;
21
28
  }
@@ -87,6 +94,13 @@ class Column {
87
94
  parsed = {};
88
95
  }
89
96
  if (this.decoder) {
97
+ if (this.decoder.decodeField) {
98
+ if (typeof parsed === 'object' && parsed !== null && 'value' in parsed && typeof parsed.version === 'number') {
99
+ return this.decoder.decodeField(parsed.value, { version: parsed.version, medium: simple_encoding_1.EncodeMedium.Database }, this.name);
100
+ }
101
+ // Fallback decoding without version (since we don't know the saved version)
102
+ return this.decoder.decodeField(parsed, { version: 0, medium: simple_encoding_1.EncodeMedium.Database }, this.name);
103
+ }
90
104
  if (typeof parsed === 'object' && parsed !== null && 'version' in parsed && 'value' in parsed && typeof parsed.version === 'number') {
91
105
  return this.decoder.decode(new simple_encoding_1.ObjectData(parsed.value, { version: parsed.version, medium: simple_encoding_1.EncodeMedium.Database }, this.name));
92
106
  }
@@ -153,7 +167,7 @@ class Column {
153
167
  const version = Column.jsonVersion;
154
168
  return JSON.stringify({
155
169
  // Warning: keys should be sorted or they will get marked as changed every time
156
- value: (0, simple_encoding_1.encodeObject)(data, { version }),
170
+ value: (0, simple_encoding_1.encodeObject)(data, { version, medium: simple_encoding_1.EncodeMedium.Database }),
157
171
  version: version,
158
172
  });
159
173
  }
@@ -166,5 +180,4 @@ class Column {
166
180
  }
167
181
  }
168
182
  exports.Column = Column;
169
- Column.jsonVersion = 0;
170
183
  //# sourceMappingURL=Column.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Column.js","sourceRoot":"","sources":["../../../../src/classes/Column.ts"],"names":[],"mappings":";;;AAAA,iEAA+G;AAK/G,MAAa,MAAM;IACf,IAAI,CAAa;IACjB,IAAI,CAAS;IACb,QAAQ,GAAG,KAAK,CAAC;IACjB,OAAO,GAAG,KAAK,CAAC;IAEhB;;OAEG;IACH,UAAU,GAAG,KAAK,CAAC;IACnB,OAAO,CAA2B;IAClC,UAAU,CAAuC;IAEjD,mCAAmC;IACnC,UAAU,CAAwB;IAE1B,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC;IAE/B;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,OAAe;QACjC,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC;IACjC,CAAC;IAED,YAAY,IAAgB,EAAE,IAAY;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,IAAa;QACtB,OAAO,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,SAAS,CAAC,GAAwB,EAAE,GAAwB;QACxD,IAAI,GAAG,YAAY,IAAI,EAAE,CAAC;YACtB,IAAI,GAAG,YAAY,IAAI,EAAE,CAAC;gBACtB,OAAO,GAAG,CAAC,OAAO,EAAE,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC;YAC3C,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,GAAG,KAAK,GAAG,CAAC;IACvB,CAAC;IAED,uCAAuC;IACvC,IAAI,CAAC,IAAyB;QAC1B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,uEAAuE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QACzG,CAAC;QACD,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAChB,KAAK,SAAS;gBACV,4BAA4B;gBAC5B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC1B,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;gBACxC,CAAC;gBACD,OAAO,IAAI,CAAC;YAEhB,KAAK,QAAQ;gBACT,4BAA4B;gBAC5B,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;oBACrB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;gBACvC,CAAC;gBACD,OAAO,IAAI,CAAC;YAEhB,KAAK,QAAQ;gBACT,OAAO,IAAI,CAAC;YAEhB,KAAK,SAAS;gBACV,4BAA4B;gBAC5B,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;oBAC3B,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;gBACxC,CAAC;gBACD,OAAO,IAAI,KAAK,CAAC,CAAC;YAEtB,KAAK,MAAM;gBACP,iCAAiC;gBACjC,OAAO,IAAI,CAAC;YAEhB,KAAK,UAAU;gBACX,iCAAiC;gBACjC,OAAO,IAAI,CAAC;YAEhB,KAAK,MAAM,CAAC,CAAC,CAAC;gBACV,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC3B,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;gBACvD,CAAC;gBAED,iCAAiC;gBACjC,IAAI,MAAe,CAAC;gBACpB,IAAI,CAAC;oBACD,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC9B,CAAC;gBACD,OAAO,CAAC,EAAE,CAAC;oBACP,yCAAyC;oBACzC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBACjB,MAAM,GAAG,EAAE,CAAC;gBAChB,CAAC;gBAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBACf,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;wBAC3B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,IAAI,MAAM,IAAI,OAAQ,MAAc,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;4BACpH,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,OAAO,EAAG,MAAc,CAAC,OAAO,EAAE,MAAM,EAAE,8BAAY,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;wBAClI,CAAC;wBAED,4EAA4E;wBAC5E,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,8BAAY,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;oBACtG,CAAC;oBACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,SAAS,IAAI,MAAM,IAAI,OAAO,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;wBAClI,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,4BAAU,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,8BAAY,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;oBACpI,CAAC;oBAED,4EAA4E;oBAC5E,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,4BAAU,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,8BAAY,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACjH,CAAC;qBACI,CAAC;oBACF,OAAO,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;gBAC/E,CAAC;gBAED,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,SAAS,IAAI,MAAM,IAAI,OAAO,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;oBAClI,OAAO,MAAM,CAAC,KAAK,CAAC;gBACxB,CAAC;gBAED,kEAAkE;gBAClE,OAAO,MAAM,CAAC;YAClB,CAAC;YAED,OAAO,CAAC,CAAC,CAAC;gBACN,mEAAmE;gBACnE,MAAM,CAAC,GAAU,IAAI,CAAC,IAAI,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC,GAAG,gBAAgB,CAAC,CAAC;YACpD,CAAC;QACL,CAAC;IACL,CAAC;IAED,uCAAuC;IACvC,EAAE,CAAC,IAAa;QACZ,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;QAC9F,CAAC;QAED,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAChB,KAAK,SAAS;gBACV,4BAA4B;gBAC5B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC3B,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,IAAI,CAAC,IAAI,GAAG,aAAa,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;gBACzF,CAAC;gBAED,OAAO,IAAI,CAAC;YAEhB,KAAK,QAAQ;gBACT,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC3B,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,IAAI,CAAC,IAAI,GAAG,aAAa,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;gBACxF,CAAC;gBAED,iCAAiC;gBACjC,OAAO,IAAI,CAAC;YAEhB,KAAK,QAAQ;gBACT,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC3B,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,IAAI,CAAC,IAAI,GAAG,aAAa,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;gBACxF,CAAC;gBAED,OAAO,IAAI,CAAC;YAEhB,KAAK,SAAS;gBACV,IAAI,OAAO,IAAI,KAAK,SAAS,EAAE,CAAC;oBAC5B,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,IAAI,CAAC,IAAI,GAAG,aAAa,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;gBACzF,CAAC;gBAED,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAExB,KAAK,MAAM,CAAC;YACZ,KAAK,UAAU;gBACX,IAAI,CAAC,CAAC,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;oBAC1B,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC,IAAI,GAAG,aAAa,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;gBACtF,CAAC;gBACD,iGAAiG;gBACjG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;gBAExB,iCAAiC;gBACjC,OAAO,IAAI,CAAC;YAEhB,KAAK,MAAM,CAAC,CAAC,CAAC;gBACV,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC;gBAEnC,OAAO,IAAI,CAAC,SAAS,CAAC;oBAClB,+EAA+E;oBAC/E,KAAK,EAAE,IAAA,8BAAY,EAAC,IAAuB,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,8BAAY,CAAC,QAAQ,EAAE,CAAC;oBACxF,OAAO,EAAE,OAAO;iBAEnB,CAAC,CAAC;YACP,CAAC;YAED,OAAO,CAAC,CAAC,CAAC;gBACN,mEAAmE;gBACnE,MAAM,CAAC,GAAU,IAAI,CAAC,IAAI,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC,GAAG,gBAAgB,CAAC,CAAC;YACpD,CAAC;QACL,CAAC;IACL,CAAC;;AAnNL,wBAoNC"}
@@ -0,0 +1,2 @@
1
+ export type ColumnType = 'integer' | 'number' | 'string' | 'date' | 'datetime' | 'boolean' | 'json';
2
+ //# sourceMappingURL=ColumnType.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColumnType.d.ts","sourceRoot":"","sources":["../../../../src/classes/ColumnType.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ColumnType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColumnType.js","sourceRoot":"","sources":["../../../../src/classes/ColumnType.ts"],"names":[],"mappings":""}
@@ -1,27 +1,30 @@
1
1
  import mysql from 'mysql2/promise';
2
- import { DatabaseStoredValue } from './Column';
2
+ import { type DatabaseStoredValue } from './DatabaseStoredValue.js';
3
3
  export type SQLResultRow = Record<string, DatabaseStoredValue>;
4
4
  export type SQLResultNamespacedRow = Record<string, SQLResultRow>;
5
5
  type SelectOptions = {
6
6
  connection?: mysql.PoolConnection;
7
7
  nestTables?: boolean;
8
8
  };
9
+ export type PoolOptions = {
10
+ debug?: boolean;
11
+ host?: string;
12
+ user?: string;
13
+ password?: string;
14
+ port?: number;
15
+ database?: string | null;
16
+ connectionLimit?: number;
17
+ multipleStatements?: boolean;
18
+ charset?: string;
19
+ useSSL?: boolean;
20
+ ca?: string;
21
+ };
9
22
  export declare class DatabaseInstance {
10
23
  pool: mysql.Pool;
11
24
  debug: boolean;
12
- constructor(options?: {
13
- debug?: boolean;
14
- host?: string;
15
- user?: string;
16
- password?: string;
17
- port?: number;
18
- database?: string | null;
19
- connectionLimit?: number;
20
- multipleStatements?: boolean;
21
- charset?: string;
22
- useSSL?: boolean;
23
- ca?: string;
24
- });
25
+ constructor(options?: PoolOptions);
26
+ createPool(options?: PoolOptions): void;
27
+ reload(options?: PoolOptions): Promise<void>;
25
28
  setDebug(enabled?: boolean): void;
26
29
  getConnection(): Promise<mysql.PoolConnection>;
27
30
  escapeId(value: string): string;
@@ -53,3 +56,4 @@ export declare class DatabaseInstance {
53
56
  }
54
57
  export declare const Database: DatabaseInstance;
55
58
  export {};
59
+ //# sourceMappingURL=Database.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Database.d.ts","sourceRoot":"","sources":["../../../../src/classes/Database.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,gBAAgB,CAAC;AACnC,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAC/D,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAElE,KAAK,aAAa,GAAG;IAAE,UAAU,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AACjF,MAAM,MAAM,WAAW,GAAG;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAGF,qBAAa,gBAAgB;IACzB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC;IACjB,KAAK,UAAS;gBAEF,OAAO,GAAE,WAAgB;IAIrC,UAAU,CAAC,OAAO,GAAE,WAAgB;IA2D9B,MAAM,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtD,QAAQ,CAAC,OAAO,UAAO;IAIjB,aAAa,IAAI,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC;IAKpD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIzB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAI1B,UAAU,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;IAI9B,QAAQ,CAAC,CAAC,KAAA,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;IAOrC,WAAW,CAAC,CAAC,KAAA,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;IAOxC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG;QAAE,UAAU,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,sBAAsB,EAAE,EAAE,KAAK,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,CAAC;IACzJ,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG;QAAE,UAAU,EAAE,KAAK,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE,KAAK,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,CAAC;IAiB1I,MAAM,CACR,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,GAAG,EACZ,aAAa,CAAC,EAAE,KAAK,CAAC,cAAc,GACrC,OAAO,CAAC,CAAC;QAAE,QAAQ,EAAE,GAAG,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,EAAE,KAAK,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,CAAC;IAgBhF,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,EAAE,KAAK,CAAC,cAAc,GAAG,OAAO,CAAC;QACrF;YAAqB,WAAW,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE;QAC9D,KAAK,CAAC,WAAW,EAAE,GAAG,SAAS;KAAC,CAAC;IAgBjC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,EAAE,KAAK,CAAC,cAAc,GAAG,OAAO,CAAC,CAAC;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,EAAE,KAAK,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,CAAC;IAgB/I,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,EAAE,KAAK,CAAC,cAAc,GAAG,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;CAe1G;AAED,eAAO,MAAM,QAAQ,kBAAyB,CAAC"}
@@ -6,20 +6,23 @@ const fs_1 = tslib_1.__importDefault(require("fs"));
6
6
  const promise_1 = tslib_1.__importDefault(require("mysql2/promise"));
7
7
  /// Database is a wrapper arround mysql, because we want to use promises + types
8
8
  class DatabaseInstance {
9
+ pool;
10
+ debug = false;
9
11
  constructor(options = {}) {
10
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
11
- this.debug = false;
12
+ this.createPool(options);
13
+ }
14
+ createPool(options = {}) {
12
15
  const settings = {
13
- host: (_b = (_a = options.host) !== null && _a !== void 0 ? _a : process.env.DB_HOST) !== null && _b !== void 0 ? _b : 'localhost',
14
- user: (_d = (_c = options.user) !== null && _c !== void 0 ? _c : process.env.DB_USER) !== null && _d !== void 0 ? _d : 'root',
15
- password: (_f = (_e = options.password) !== null && _e !== void 0 ? _e : process.env.DB_PASS) !== null && _f !== void 0 ? _f : 'root',
16
- port: options.port ? options.port : parseInt((_g = process.env.DB_PORT) !== null && _g !== void 0 ? _g : '3306'),
16
+ host: options.host ?? process.env.DB_HOST ?? 'localhost',
17
+ user: options.user ?? process.env.DB_USER ?? 'root',
18
+ password: options.password ?? process.env.DB_PASS ?? 'root',
19
+ port: options.port ? options.port : parseInt(process.env.DB_PORT ?? '3306'),
17
20
  database: options.database === undefined ? process.env.DB_DATABASE : options.database,
18
- connectionLimit: options.connectionLimit ? options.connectionLimit : parseInt((_h = process.env.DB_CONNECTION_LIMIT) !== null && _h !== void 0 ? _h : '10'),
19
- multipleStatements: (_j = options.multipleStatements) !== null && _j !== void 0 ? _j : (((_k = process.env.DB_MULTIPLE_STATEMENTS) !== null && _k !== void 0 ? _k : 'false') === 'true'),
20
- charset: (_m = (_l = options.charset) !== null && _l !== void 0 ? _l : process.env.DB_CHARSET) !== null && _m !== void 0 ? _m : 'utf8mb4_0900_ai_ci',
21
- useSSL: (_o = options.useSSL) !== null && _o !== void 0 ? _o : !!process.env.DB_USE_SSL,
22
- ca: (_p = options.ca) !== null && _p !== void 0 ? _p : process.env.DB_CA,
21
+ connectionLimit: options.connectionLimit ? options.connectionLimit : parseInt(process.env.DB_CONNECTION_LIMIT ?? '10'),
22
+ multipleStatements: options.multipleStatements ?? ((process.env.DB_MULTIPLE_STATEMENTS ?? 'true') === 'true'),
23
+ charset: options.charset ?? process.env.DB_CHARSET ?? 'utf8mb4_0900_ai_ci',
24
+ useSSL: options.useSSL ?? !!process.env.DB_USE_SSL,
25
+ ca: options.ca ?? process.env.DB_CA,
23
26
  };
24
27
  if (settings.database === undefined) {
25
28
  throw new Error('Environment variable DB_DATABASE is missing');
@@ -29,7 +32,7 @@ class DatabaseInstance {
29
32
  user: settings.user,
30
33
  password: settings.password,
31
34
  port: settings.port,
32
- database: (_q = settings.database) !== null && _q !== void 0 ? _q : undefined,
35
+ database: settings.database ?? undefined,
33
36
  waitForConnections: true,
34
37
  connectionLimit: settings.connectionLimit,
35
38
  queueLimit: 0,
@@ -44,7 +47,7 @@ class DatabaseInstance {
44
47
  }
45
48
  : undefined,
46
49
  });
47
- this.debug = (_r = options === null || options === void 0 ? void 0 : options.debug) !== null && _r !== void 0 ? _r : false;
50
+ this.debug = options?.debug ?? false;
48
51
  if (this.debug) {
49
52
  this.pool.on('acquire', function (connection) {
50
53
  console.log('Connection %d acquired', connection.threadId);
@@ -60,6 +63,10 @@ class DatabaseInstance {
60
63
  });
61
64
  }
62
65
  }
66
+ async reload(options = {}) {
67
+ await this.pool.end();
68
+ this.createPool(options);
69
+ }
63
70
  setDebug(enabled = true) {
64
71
  this.debug = enabled;
65
72
  }
@@ -89,10 +96,9 @@ class DatabaseInstance {
89
96
  }
90
97
  }
91
98
  async select(query, values, options = {}) {
92
- var _a, _b;
93
- const connection = (_a = options.connection) !== null && _a !== void 0 ? _a : (await this.getConnection());
99
+ const connection = options.connection ?? (await this.getConnection());
94
100
  try {
95
- const q = await connection.query({ sql: query, nestTables: (_b = options.nestTables) !== null && _b !== void 0 ? _b : true, values: values });
101
+ const q = await connection.query({ sql: query, nestTables: options.nestTables ?? true, values: values });
96
102
  return [
97
103
  q[0],
98
104
  q[1],
@@ -105,7 +111,7 @@ class DatabaseInstance {
105
111
  }
106
112
  }
107
113
  async insert(query, values, useConnection) {
108
- const connection = useConnection !== null && useConnection !== void 0 ? useConnection : (await this.getConnection());
114
+ const connection = useConnection ?? (await this.getConnection());
109
115
  try {
110
116
  const q = await connection.query({ sql: query, values: values });
111
117
  return [
@@ -120,7 +126,7 @@ class DatabaseInstance {
120
126
  }
121
127
  }
122
128
  async update(query, values, useConnection) {
123
- const connection = useConnection !== null && useConnection !== void 0 ? useConnection : (await this.getConnection());
129
+ const connection = useConnection ?? (await this.getConnection());
124
130
  try {
125
131
  const q = await connection.query({ sql: query, values: values });
126
132
  return [
@@ -135,7 +141,7 @@ class DatabaseInstance {
135
141
  }
136
142
  }
137
143
  async delete(query, values, useConnection) {
138
- const connection = useConnection !== null && useConnection !== void 0 ? useConnection : (await this.getConnection());
144
+ const connection = useConnection ?? (await this.getConnection());
139
145
  try {
140
146
  const q = await connection.query({ sql: query, values: values });
141
147
  return [
@@ -150,7 +156,7 @@ class DatabaseInstance {
150
156
  }
151
157
  }
152
158
  async statement(query, values, useConnection) {
153
- const connection = useConnection !== null && useConnection !== void 0 ? useConnection : (await this.getConnection());
159
+ const connection = useConnection ?? (await this.getConnection());
154
160
  try {
155
161
  const q = await connection.query({ sql: query, values: values });
156
162
  return [
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Database.js","sourceRoot":"","sources":["../../../../src/classes/Database.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export type DatabaseStoredValue = string | number | Date | null;
2
+ //# sourceMappingURL=DatabaseStoredValue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatabaseStoredValue.d.ts","sourceRoot":"","sources":["../../../../src/classes/DatabaseStoredValue.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=DatabaseStoredValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatabaseStoredValue.js","sourceRoot":"","sources":["../../../../src/classes/DatabaseStoredValue.ts"],"names":[],"mappings":""}
@@ -11,3 +11,4 @@ export declare abstract class Factory<Options, Model> {
11
11
  randomLastName(): string;
12
12
  createMultiple(amount?: number): Promise<Model[]>;
13
13
  }
14
+ //# sourceMappingURL=Factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Factory.d.ts","sourceRoot":"","sources":["../../../../src/classes/Factory.ts"],"names":[],"mappings":"AAIA,8BAAsB,OAAO,CAAC,OAAO,EAAE,KAAK;IACxC,OAAO,EAAE,OAAO,CAAC;gBACL,OAAO,EAAE,OAAO;IAG5B,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC;IAEjC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG;IAKjC,UAAU,CAAC,CAAC,SAAS;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;KAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;IAI1E,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAUpC,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM;IAgB5D,cAAc,IAAI,MAAM;IAIlB,cAAc,CAAC,MAAM,SAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;CAOtD"}
@@ -2,10 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Factory = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const boys_1 = tslib_1.__importDefault(require("./data/boys"));
6
- const family_names_1 = tslib_1.__importDefault(require("./data/family-names"));
7
- const girls_1 = tslib_1.__importDefault(require("./data/girls"));
5
+ const boys_js_1 = tslib_1.__importDefault(require("./data/boys.js"));
6
+ const family_names_js_1 = tslib_1.__importDefault(require("./data/family-names.js"));
7
+ const girls_js_1 = tslib_1.__importDefault(require("./data/girls.js"));
8
8
  class Factory {
9
+ options;
9
10
  constructor(options) {
10
11
  this.options = options;
11
12
  }
@@ -29,19 +30,19 @@ class Factory {
29
30
  let names;
30
31
  switch (gender) {
31
32
  case 'Male':
32
- names = boys_1.default;
33
+ names = boys_js_1.default;
33
34
  break;
34
35
  case 'Female':
35
- names = girls_1.default;
36
+ names = girls_js_1.default;
36
37
  break;
37
38
  case 'Other':
38
- names = [...boys_1.default, ...girls_1.default];
39
+ names = [...boys_js_1.default, ...girls_js_1.default];
39
40
  break;
40
41
  }
41
42
  return this.randomArray(names);
42
43
  }
43
44
  randomLastName() {
44
- return this.randomArray(family_names_1.default);
45
+ return this.randomArray(family_names_js_1.default);
45
46
  }
46
47
  async createMultiple(amount = 40) {
47
48
  const arr = [];
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Factory.js","sourceRoot":"","sources":["../../../../src/classes/Factory.ts"],"names":[],"mappings":";;;;AAAA,qEAAsC;AACtC,qFAAiD;AACjD,uEAAwC;AAExC,MAAsB,OAAO;IACzB,OAAO,CAAU;IACjB,YAAY,OAAgB;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAGD,WAAW,CAAC,GAAe;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;QACnD,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IAED,UAAU,CAA+C,CAAI;QACzD,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,YAAY,CAAC,MAAc;QACvB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,MAAM,UAAU,GAAG,gEAAgE,CAAC;QACpF,MAAM,gBAAgB,GAAG,UAAU,CAAC,MAAM,CAAC;QAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9B,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC;QAC9E,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,eAAe,CAAC,MAAmC;QAC/C,IAAI,KAAe,CAAC;QACpB,QAAQ,MAAM,EAAE,CAAC;YACb,KAAK,MAAM;gBACP,KAAK,GAAG,iBAAQ,CAAC;gBACjB,MAAM;YACV,KAAK,QAAQ;gBACT,KAAK,GAAG,kBAAS,CAAC;gBAClB,MAAM;YACV,KAAK,OAAO;gBACR,KAAK,GAAG,CAAC,GAAG,iBAAQ,EAAE,GAAG,kBAAS,CAAC,CAAC;gBACpC,MAAM;QACd,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,cAAc;QACV,OAAO,IAAI,CAAC,WAAW,CAAC,yBAAW,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,EAAE;QAC5B,MAAM,GAAG,GAAY,EAAE,CAAC;QACxB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YAC1C,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,GAAG,CAAC;IACf,CAAC;CACJ;AArDD,0BAqDC"}
@@ -1,4 +1,4 @@
1
- import { Model } from './Model';
1
+ import { Model } from './Model.js';
2
2
  export declare class ManyToManyRelation<Key extends keyof any, A extends Model, B extends Model, Link extends Model | undefined = undefined> {
3
3
  modelA: {
4
4
  new (): A;
@@ -50,10 +50,10 @@ export declare class ManyToManyRelation<Key extends keyof any, A extends Model,
50
50
  }): Promise<void>;
51
51
  linkIds(modelA: string | number, modelsB: (string | number)[], linkTableValues?: {
52
52
  [key: string]: any[];
53
- } | Link[]): Promise<number>;
53
+ }): Promise<number>;
54
54
  link(modelA: A, modelsB: B[], linkTableValues?: {
55
55
  [key: string]: any[];
56
- } | Link[]): Promise<void>;
56
+ }): Promise<void>;
57
57
  /**
58
58
  * Delete all the links from modelA for this relation
59
59
  * @param modelA
@@ -76,3 +76,4 @@ export declare class ManyToManyRelation<Key extends keyof any, A extends Model,
76
76
  }>;
77
77
  unlink(modelA: A, ...modelsB: B[]): Promise<void>;
78
78
  }
79
+ //# sourceMappingURL=ManyToManyRelation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ManyToManyRelation.d.ts","sourceRoot":"","sources":["../../../../src/classes/ManyToManyRelation.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ManyToManyRelation = void 0;
4
- const Database_1 = require("./Database");
5
- const Model_1 = require("./Model");
4
+ const Database_js_1 = require("./Database.js");
5
+ const Model_js_1 = require("./Model.js");
6
6
  class ManyToManyRelation {
7
+ modelA;
8
+ modelB;
9
+ modelLink;
10
+ /**
11
+ * E.g. parents
12
+ */
13
+ modelKey;
14
+ /**
15
+ * Sort the loading of this relation
16
+ */
17
+ sortKey;
18
+ sortOrder = 'ASC';
7
19
  /**
8
20
  * E.g. _models_parents
9
21
  */
@@ -32,7 +44,6 @@ class ManyToManyRelation {
32
44
  + (this.modelA === this.modelB ? 'B' : ''));
33
45
  }
34
46
  constructor(modelA, modelB, modelKey, modelLink) {
35
- this.sortOrder = 'ASC';
36
47
  this.modelA = modelA;
37
48
  this.modelB = modelB;
38
49
  this.modelKey = modelKey;
@@ -95,7 +106,7 @@ class ManyToManyRelation {
95
106
  if (sorted) {
96
107
  str += this.orderByQuery('A', 'B');
97
108
  }
98
- const [rows] = await Database_1.Database.select(str, params);
109
+ const [rows] = await Database_js_1.Database.select(str, params);
99
110
  const modelsB = this.modelB.fromRows(rows, namespaceB);
100
111
  // Also load link table if possible
101
112
  if (this.modelLink) {
@@ -119,8 +130,8 @@ class ManyToManyRelation {
119
130
  return Array.isArray(model[this.modelKey]);
120
131
  }
121
132
  async setLinkTable(modelA, modelB, linkTableValues) {
122
- const str = `UPDATE ${this.linkTable} SET ? WHERE ${Database_1.Database.escapeId(this.linkKeyA)} = ? AND ${Database_1.Database.escapeId(this.linkKeyB)} = ?`;
123
- const [result] = await Database_1.Database.update(str, [linkTableValues, modelA.getPrimaryKey(), modelB.getPrimaryKey()]);
133
+ const str = `UPDATE ${this.linkTable} SET ? WHERE ${Database_js_1.Database.escapeId(this.linkKeyA)} = ? AND ${Database_js_1.Database.escapeId(this.linkKeyB)} = ?`;
134
+ const [result] = await Database_js_1.Database.update(str, [linkTableValues, modelA.getPrimaryKey(), modelB.getPrimaryKey()]);
124
135
  if (result.changedRows !== 1) {
125
136
  // Todo: add option to fail silently
126
137
  throw new Error('Failed to update link table. Check if combination exists');
@@ -147,19 +158,19 @@ class ManyToManyRelation {
147
158
  }
148
159
  }
149
160
  }
150
- const query = `INSERT INTO ${Database_1.Database.escapeId(this.linkTable)} (
151
- ${Database_1.Database.escapeId(this.linkKeyA)},
152
- ${Database_1.Database.escapeId(this.linkKeyB)},
153
- ${linkTableKeys.map(k => Database_1.Database.escapeId(k)).join(', ')}
161
+ const query = `INSERT INTO ${Database_js_1.Database.escapeId(this.linkTable)} (
162
+ ${Database_js_1.Database.escapeId(this.linkKeyA)},
163
+ ${Database_js_1.Database.escapeId(this.linkKeyB)},
164
+ ${linkTableKeys.map(k => Database_js_1.Database.escapeId(k)).join(', ')}
154
165
  ) VALUES ?`;
155
- [result] = await Database_1.Database.insert(query, [modelsB.map((modelB, i) => [modelA, modelB, ...linkTableKeys.map(k => linkTableValues[k][i])])]);
166
+ [result] = await Database_js_1.Database.insert(query, [modelsB.map((modelB, i) => [modelA, modelB, ...linkTableKeys.map(k => linkTableValues[k][i])])]);
156
167
  }
157
168
  else {
158
- const query = `INSERT INTO ${Database_1.Database.escapeId(this.linkTable)} (
159
- ${Database_1.Database.escapeId(this.linkKeyA)},
160
- ${Database_1.Database.escapeId(this.linkKeyB)}
169
+ const query = `INSERT INTO ${Database_js_1.Database.escapeId(this.linkTable)} (
170
+ ${Database_js_1.Database.escapeId(this.linkKeyA)},
171
+ ${Database_js_1.Database.escapeId(this.linkKeyB)}
161
172
  ) VALUES ?`;
162
- [result] = await Database_1.Database.insert(query, [modelsB.map(modelB => [modelA, modelB])]);
173
+ [result] = await Database_js_1.Database.insert(query, [modelsB.map(modelB => [modelA, modelB])]);
163
174
  }
164
175
  return result.affectedRows;
165
176
  }
@@ -196,8 +207,8 @@ class ManyToManyRelation {
196
207
  async clearId(modelA) {
197
208
  const query = `DELETE FROM ${this.linkTable} WHERE ${this.linkKeyA} = ?`;
198
209
  // Arrays are turned into list, e.g. ['a', 'b'] turns into 'a', 'b'
199
- const [result] = await Database_1.Database.delete(query, [modelA]);
200
- if (result.affectedRows === 0 && Model_1.Model.debug) {
210
+ const [result] = await Database_js_1.Database.delete(query, [modelA]);
211
+ if (result.affectedRows === 0 && Model_js_1.Model.debug) {
201
212
  console.warn("Cleared many to many relation, but didn't deleted any entries");
202
213
  }
203
214
  }
@@ -221,7 +232,7 @@ class ManyToManyRelation {
221
232
  async unlinkIds(modelA, ...modelsB) {
222
233
  const query = `DELETE FROM ${this.linkTable} WHERE ${this.linkKeyA} = ? AND ${this.linkKeyB} IN (?)`;
223
234
  // Arrays are turned into list, e.g. ['a', 'b'] turns into 'a', 'b'
224
- const [result] = await Database_1.Database.delete(query, [modelA, modelsB]);
235
+ const [result] = await Database_js_1.Database.delete(query, [modelA, modelsB]);
225
236
  return result;
226
237
  }
227
238
  async unlink(modelA, ...modelsB) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ManyToManyRelation.js","sourceRoot":"","sources":["../../../../src/classes/ManyToManyRelation.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Model } from './Model';
1
+ import { Model } from './Model.js';
2
2
  export declare class ManyToOneRelation<Key extends keyof any, M extends Model> {
3
3
  model: {
4
4
  new (): M;
@@ -19,3 +19,4 @@ export declare class ManyToOneRelation<Key extends keyof any, M extends Model> {
19
19
  joinQuery(namespaceA: string, namespaceB: string): string;
20
20
  load<A extends Model>(modelsA: A[]): Promise<(A & Record<Key, M>)[]>;
21
21
  }
22
+ //# sourceMappingURL=ManyToOneRelation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ManyToOneRelation.d.ts","sourceRoot":"","sources":["../../../../src/classes/ManyToOneRelation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,qBAAa,iBAAiB,CAAC,GAAG,SAAS,MAAM,GAAG,EAAE,CAAC,SAAS,KAAK;IACjE,KAAK,EAAE;QAAE,QAAQ,CAAC,CAAA;KAAE,GAAG,OAAO,KAAK,CAAC;IAEpC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,QAAQ,EAAE,GAAG,CAAC;gBAEF,KAAK,EAAE;QAAE,QAAQ,CAAC,CAAA;KAAE,GAAG,OAAO,KAAK,EAAE,QAAQ,EAAE,GAAG;IAM9D,QAAQ,CAAC,KAAK,EAAE,KAAK;IAKrB,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAK5B,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IAKnD,IAAI,CAAC,CAAC,SAAS,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;CAmB7E"}
@@ -1,8 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ManyToOneRelation = void 0;
4
- const Database_1 = require("./Database");
4
+ const Database_js_1 = require("./Database.js");
5
5
  class ManyToOneRelation {
6
+ model;
7
+ /**
8
+ * E.g. addressId
9
+ */
10
+ foreignKey;
11
+ /**
12
+ * E.g. address
13
+ */
14
+ modelKey;
6
15
  constructor(model, modelKey) {
7
16
  this.model = model;
8
17
  this.modelKey = modelKey;
@@ -26,7 +35,7 @@ class ManyToOneRelation {
26
35
  }
27
36
  let str = `SELECT ${this.model.getDefaultSelect()} FROM ${this.model.table}\n`;
28
37
  str += `WHERE ${this.model.primary.name} IN (?)`;
29
- const [rows] = await Database_1.Database.select(str, [modelsA.map(m => m[this.foreignKey])]);
38
+ const [rows] = await Database_js_1.Database.select(str, [modelsA.map(m => m[this.foreignKey])]);
30
39
  const modelsB = this.model.fromRows(rows, this.model.table);
31
40
  for (const model of modelsA) {
32
41
  const found = modelsB.find(m => m.getPrimaryKey() === model[this.foreignKey]);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ManyToOneRelation.js","sourceRoot":"","sources":["../../../../src/classes/ManyToOneRelation.ts"],"names":[],"mappings":";;;AAAA,+CAAyC;AAGzC,MAAa,iBAAiB;IAC1B,KAAK,CAA+B;IAEpC;;OAEG;IACH,UAAU,CAAS;IAEnB;;OAEG;IACH,QAAQ,CAAM;IAEd,YAAY,KAAmC,EAAE,QAAa;QAC1D,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,mCAAmC;IACnC,QAAQ,CAAC,KAAY;QACjB,OAAQ,KAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,SAAS,CAAC;IACvD,CAAC;IAED,gCAAgC;IAChC,KAAK,CAAC,KAAY;QACd,OAAQ,KAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,SAAS,IAAK,KAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;IACjG,CAAC;IAED,yBAAyB;IACzB,SAAS,CAAC,UAAkB,EAAE,UAAkB;QAC5C,OAAO,aAAa,IAAI,CAAC,KAAK,CAAC,KAAK,OAAO,UAAU,OAAO,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,MAAM,UAAU,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC;IAC7I,CAAC;IAED,yCAAyC;IACzC,KAAK,CAAC,IAAI,CAAkB,OAAY;QACpC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,EAAE,CAAC;QACd,CAAC;QACD,IAAI,GAAG,GAAG,UAAU,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,SAAS,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;QAC/E,GAAG,IAAI,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC;QAEjD,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,sBAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAClF,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAQ,CAAC;QAEnE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,KAAK,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YAC9E,IAAI,CAAC,KAAK,EAAE,CAAC;gBACT,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;YACxF,CAAC;YACD,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,OAAiC,CAAC;IAC7C,CAAC;CACJ;AArDD,8CAqDC"}