@simonbackx/simple-database 1.34.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 +2 -1
  15. package/dist/cjs/src/classes/Database.d.ts.map +1 -0
  16. package/dist/{src → cjs/src}/classes/Database.js +19 -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
@@ -15,19 +15,64 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  Object.defineProperty(exports, "__esModule", { value: true });
26
36
  exports.Migration = void 0;
37
+ exports.fileExists = fileExists;
27
38
  const fs_1 = require("fs");
28
- const Migration_1 = require("../models/Migration");
29
- const Database_1 = require("./Database");
39
+ const Migration_js_1 = require("../models/Migration.js");
40
+ const Database_js_1 = require("./Database.js");
30
41
  const simple_logging_1 = require("@simonbackx/simple-logging");
42
+ const node_path_1 = require("node:path");
43
+ const node_url_1 = require("node:url");
44
+ function getDirname() {
45
+ // CJS environment
46
+ if (typeof __dirname !== 'undefined') {
47
+ return __dirname;
48
+ }
49
+ // ESM environment
50
+ // @ts-ignore
51
+ if (typeof import.meta !== 'undefined' && import.meta.url) {
52
+ // @ts-ignore
53
+ return (0, node_path_1.dirname)((0, node_url_1.fileURLToPath)(import.meta.url));
54
+ }
55
+ throw new Error('Cannot determine __dirname');
56
+ }
57
+ async function fileExists(file) {
58
+ try {
59
+ await fs_1.promises.access(file);
60
+ return true;
61
+ }
62
+ catch (e) {
63
+ return false;
64
+ }
65
+ }
66
+ async function getProjectRoot() {
67
+ let path = getDirname();
68
+ for (let index = 0; index < 5; index++) {
69
+ if (await fileExists(path + '/migrations')) {
70
+ return path;
71
+ }
72
+ path += '/..';
73
+ }
74
+ throw new Error('Could not find migrations root');
75
+ }
31
76
  async function directoryExists(filePath) {
32
77
  try {
33
78
  return (await fs_1.promises.stat(filePath)).isDirectory();
@@ -37,6 +82,8 @@ async function directoryExists(filePath) {
37
82
  }
38
83
  }
39
84
  class Migration {
85
+ up;
86
+ down;
40
87
  constructor(up, down) {
41
88
  this.up = up;
42
89
  this.down = down;
@@ -45,19 +92,20 @@ class Migration {
45
92
  * Given a folder, loop all the folders in that folder and run the migrations in the 'migrations' folder
46
93
  */
47
94
  static async runAll(folder) {
48
- const dirname = __dirname;
95
+ const dirname = getDirname();
49
96
  // Get the current working directory by removing shared part of folder and dirname
50
97
  const shared = dirname.split('/').filter((part, index) => part === folder.split('/')[index]).join('/');
51
98
  const cwd = folder.replace(shared, '');
52
99
  simple_logging_1.logger.log(new simple_logging_1.StyledText('[Migration]').addClass('migration', 'prefix').addTag('migration'), ' ', new simple_logging_1.StyledText('Running all... ').addClass('migration', 'runAll'), new simple_logging_1.StyledText(cwd).addClass('migration', 'folder').addStyle('dim'));
53
100
  process.env.DB_MULTIPLE_STATEMENTS = 'true';
54
101
  // First check if we have migrations table
55
- const setupMigration = await this.getMigration(__dirname + '/../migrations/000000000-setup-migrations.sql');
102
+ const projectRoot = await getProjectRoot();
103
+ const setupMigration = await this.getMigration(projectRoot + '/migrations/000000000-setup-migrations.sql');
56
104
  if (!setupMigration) {
57
105
  throw new Error('Setup migration missing');
58
106
  }
59
107
  await setupMigration.up();
60
- await Migration_1.Migration.markAsExecuted('000000000-setup-migrations.sql');
108
+ await Migration_js_1.Migration.markAsExecuted('000000000-setup-migrations.sql');
61
109
  const parts = folder.split('/');
62
110
  const firstPart = parts.shift();
63
111
  if (firstPart === undefined) {
@@ -85,7 +133,7 @@ class Migration {
85
133
  for (const file of folderFiles) {
86
134
  const full = p + '/' + file;
87
135
  const name = file;
88
- if (!(await Migration_1.Migration.isExecuted(name))) {
136
+ if (!(await Migration_js_1.Migration.isExecuted(name))) {
89
137
  migrations.push([name, full]);
90
138
  }
91
139
  }
@@ -113,7 +161,7 @@ class Migration {
113
161
  tags: ['migration'],
114
162
  }, async () => {
115
163
  await migration.up();
116
- await Migration_1.Migration.markAsExecuted(name);
164
+ await Migration_js_1.Migration.markAsExecuted(name);
117
165
  });
118
166
  simple_logging_1.logger.log(new simple_logging_1.StyledText('[Migration]').addClass('migration', 'prefix').addTag('migration'), ' ', new simple_logging_1.StyledText('✓').addClass('migration', 'success', 'tag'), ' ', new simple_logging_1.StyledText('Migration ' + name + ' ran successfully').addClass('migration', 'success', 'text'));
119
167
  }
@@ -127,7 +175,6 @@ class Migration {
127
175
  return true;
128
176
  }
129
177
  static async getMigration(file) {
130
- var _a;
131
178
  let migration;
132
179
  if (file.endsWith('.sql')) {
133
180
  if (file.endsWith('.down.sql')) {
@@ -136,7 +183,7 @@ class Migration {
136
183
  }
137
184
  const sqlStatement = await fs_1.promises.readFile(file, { encoding: 'utf-8' });
138
185
  migration = new Migration(async () => {
139
- await Database_1.Database.statement(sqlStatement);
186
+ await Database_js_1.Database.statement(sqlStatement);
140
187
  });
141
188
  }
142
189
  else {
@@ -149,7 +196,7 @@ class Migration {
149
196
  if (!file.endsWith('.ts') && !file.endsWith('.js')) {
150
197
  return;
151
198
  }
152
- const imported = await (_a = file, Promise.resolve().then(() => __importStar(require(_a))));
199
+ const imported = await Promise.resolve(`${file}`).then(s => __importStar(require(s)));
153
200
  migration = imported.default;
154
201
  }
155
202
  return migration;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Migration.js","sourceRoot":"","sources":["../../../../src/classes/Migration.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
- import { Column, DatabaseStoredValue } from './Column';
2
- import { ManyToManyRelation } from './ManyToManyRelation';
3
- import { ManyToOneRelation } from './ManyToOneRelation';
4
- import { OneToManyRelation } from './OneToManyRelation';
1
+ import { Column } from './Column.js';
2
+ import { type DatabaseStoredValue } from './DatabaseStoredValue.js';
3
+ import { type ManyToManyRelation } from './ManyToManyRelation.js';
4
+ import { type ManyToOneRelation } from './ManyToOneRelation.js';
5
+ import { type OneToManyRelation } from './OneToManyRelation.js';
5
6
  type SQLWhere = {
6
7
  sign: string;
7
8
  value: string | Date | number | null | (string | null)[] | (number | null)[];
@@ -51,7 +52,10 @@ export declare class Model {
51
52
  static table: string;
52
53
  static relations: ManyToOneRelation<string, Model>[];
53
54
  existsInDatabase: boolean;
54
- savedProperties: Map<string, DatabaseStoredValue>;
55
+ savedProperties: Map<string, DatabaseStoredValue | {
56
+ to: () => DatabaseStoredValue;
57
+ from: () => unknown;
58
+ }>;
55
59
  /**
56
60
  * Sometimes we have skipUpdate properties that still should get saved on specific occasions.
57
61
  * E.g. update updatedAt field manually if is the only changed field.
@@ -92,13 +96,19 @@ export declare class Model {
92
96
  * Set a many relation. Note that this doesn't save the relation! You'll need to use the methods of the relation instead
93
97
  */
94
98
  setManyRelation<Key extends keyof any, Value extends Model>(relation: ManyToManyRelation<Key, any, Value, any> | OneToManyRelation<Key, any, Value>, value: Value[]): this & Record<Key, Value[]>;
99
+ /**
100
+ * Set a many relation. Note that this doesn't save the relation! You'll need to use the methods of the relation instead
101
+ */
102
+ getManyRelation<Key extends keyof any, Value extends Model>(relation: ManyToManyRelation<Key, any, Value, any> | OneToManyRelation<Key, any, Value>): Value[] | null;
95
103
  /**
96
104
  * Load the returned properties from a DB response row into the model
97
105
  * If the row's primary key is null, undefined is returned
98
106
  */
99
107
  static fromRow<T extends typeof Model>(this: T, row: Record<string, DatabaseStoredValue>): InstanceType<T> | undefined;
100
108
  static fromRows<T extends typeof Model>(this: T, rows: Record<string, Record<string, DatabaseStoredValue>>[], namespace: string): InstanceType<T>[];
101
- markSaved(fields?: Record<string, DatabaseStoredValue>): void;
109
+ markSaved(fields?: Record<string, DatabaseStoredValue>, options?: {
110
+ fromMySQL?: boolean;
111
+ }): void;
102
112
  copyFrom<T extends Model>(this: T, from: T): void;
103
113
  get static(): typeof Model;
104
114
  getPrimaryKey(): number | string | null;
@@ -146,3 +156,4 @@ export declare class Model {
146
156
  delete(): Promise<void>;
147
157
  }
148
158
  export {};
159
+ //# sourceMappingURL=Model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Model.d.ts","sourceRoot":"","sources":["../../../../src/classes/Model.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Model = exports.ModelEventBus = void 0;
4
- const Database_1 = require("./Database");
4
+ const Database_js_1 = require("./Database.js");
5
5
  /**
6
6
  * Controls the fetching and decrypting of members
7
7
  */
8
8
  class ModelEventBus {
9
- constructor() {
10
- this.listeners = new Map();
11
- }
9
+ listeners = new Map();
12
10
  addListener(owner, listener) {
13
11
  const existing = this.listeners.get(owner);
14
12
  if (existing) {
@@ -25,7 +23,10 @@ class ModelEventBus {
25
23
  const values = [];
26
24
  for (const owner of this.listeners.values()) {
27
25
  for (const listener of owner) {
28
- values.push(listener.listener(value));
26
+ const v = listener.listener(value);
27
+ if (v) {
28
+ values.push(v);
29
+ }
29
30
  }
30
31
  }
31
32
  return await Promise.all(values);
@@ -33,14 +34,24 @@ class ModelEventBus {
33
34
  }
34
35
  exports.ModelEventBus = ModelEventBus;
35
36
  class Model /* static implements RowInitiable<Model> */ {
37
+ static primary;
38
+ static modelEventBus = new ModelEventBus();
39
+ /**
40
+ * Properties that are stored in the table (including foreign keys, but without mapped relations!)
41
+ */
42
+ static columns;
43
+ static debug = false;
44
+ static showWarnings = false;
45
+ static table; // override this!
46
+ static relations;
47
+ existsInDatabase = false;
48
+ savedProperties = new Map();
49
+ /**
50
+ * Sometimes we have skipUpdate properties that still should get saved on specific occasions.
51
+ * E.g. update updatedAt field manually if is the only changed field.
52
+ */
53
+ forceSaveProperties = new Set();
36
54
  constructor() {
37
- this.existsInDatabase = false;
38
- this.savedProperties = new Map();
39
- /**
40
- * Sometimes we have skipUpdate properties that still should get saved on specific occasions.
41
- * E.g. update updatedAt field manually if is the only changed field.
42
- */
43
- this.forceSaveProperties = new Set();
44
55
  // Read values
45
56
  if (!this.static.relations) {
46
57
  this.static.relations = [];
@@ -137,6 +148,13 @@ class Model /* static implements RowInitiable<Model> */ {
137
148
  t[relation.modelKey] = value;
138
149
  return t;
139
150
  }
151
+ /**
152
+ * Set a many relation. Note that this doesn't save the relation! You'll need to use the methods of the relation instead
153
+ */
154
+ getManyRelation(relation) {
155
+ const t = this;
156
+ return t[relation.modelKey] ?? null;
157
+ }
140
158
  /**
141
159
  * Load the returned properties from a DB response row into the model
142
160
  * If the row's primary key is null, undefined is returned
@@ -156,7 +174,7 @@ class Model /* static implements RowInitiable<Model> */ {
156
174
  model[column.name] = undefined;
157
175
  }
158
176
  }
159
- model.markSaved(); // note: we don't pass row because that value is unreliable for json values (mysql performs sorting and other opertions on keys)
177
+ model.markSaved(row, { fromMySQL: true }); // note: we don't pass row because that value is unreliable for json values (mysql performs sorting and other opertions on keys)
160
178
  return model;
161
179
  }
162
180
  static fromRows(rows, namespace) {
@@ -168,13 +186,40 @@ class Model /* static implements RowInitiable<Model> */ {
168
186
  return [];
169
187
  });
170
188
  }
171
- markSaved(fields) {
189
+ markSaved(fields, options) {
172
190
  this.existsInDatabase = true;
173
191
  this.forceSaveProperties.clear();
174
192
  for (const column of this.static.columns.values()) {
175
193
  if ((fields ? fields[column.name] : this[column.name]) !== undefined) {
176
194
  // If undefined: do not update, since we didn't save the value
177
- this.savedProperties.set(column.name, fields ? fields[column.name] : column.to(this[column.name]));
195
+ this.savedProperties.set(column.name, fields
196
+ ? (column.type === 'json' && options?.fromMySQL
197
+ ? {
198
+ // We can never use the original value we received from MySQL because the ordering of keys is different in MySQL.
199
+ // We use this object to avoid doing expensive CPU operations if we don't need to check if a value has changed
200
+ // so we only evaluate this once we actually try to save a model to the database
201
+ to() {
202
+ if (this._to) {
203
+ return this._to;
204
+ }
205
+ const value = this._from ?? column.from(fields[column.name]);
206
+ this._from = value;
207
+ const found = column.to(value);
208
+ // Store permanently
209
+ this._to = found;
210
+ return found;
211
+ },
212
+ from() {
213
+ if (this._from) {
214
+ return this._from;
215
+ }
216
+ const from = column.from(fields[column.name]);
217
+ this._from = from;
218
+ return from;
219
+ },
220
+ }
221
+ : fields[column.name])
222
+ : column.to(this[column.name]));
178
223
  }
179
224
  }
180
225
  /// Save relation foreign keys (so we can check if the id has changed)
@@ -202,6 +247,7 @@ class Model /* static implements RowInitiable<Model> */ {
202
247
  }
203
248
  this.savedProperties = from.savedProperties;
204
249
  this.forceSaveProperties = from.forceSaveProperties;
250
+ this.existsInDatabase = from.existsInDatabase;
205
251
  }
206
252
  get static() {
207
253
  return this.constructor;
@@ -214,7 +260,7 @@ class Model /* static implements RowInitiable<Model> */ {
214
260
  * @param id primary key
215
261
  */
216
262
  static async getByID(id) {
217
- const [rows] = await Database_1.Database.select(`SELECT ${this.getDefaultSelect()} FROM \`${this.table}\` WHERE \`${this.primary.name}\` = ? LIMIT 1`, [id]);
263
+ const [rows] = await Database_js_1.Database.select(`SELECT ${this.getDefaultSelect()} FROM \`${this.table}\` WHERE \`${this.primary.name}\` = ? LIMIT 1`, [id]);
218
264
  if (rows.length === 0) {
219
265
  return undefined;
220
266
  }
@@ -230,7 +276,7 @@ class Model /* static implements RowInitiable<Model> */ {
230
276
  if (ids.length === 0) {
231
277
  return [];
232
278
  }
233
- const [rows] = await Database_1.Database.select(`SELECT ${this.getDefaultSelect()} FROM \`${this.table}\` WHERE \`${this.primary.name}\` IN (?) LIMIT ?`, [
279
+ const [rows] = await Database_js_1.Database.select(`SELECT ${this.getDefaultSelect()} FROM \`${this.table}\` WHERE \`${this.primary.name}\` IN (?) LIMIT ?`, [
234
280
  ids,
235
281
  ids.length,
236
282
  ]);
@@ -360,9 +406,8 @@ class Model /* static implements RowInitiable<Model> */ {
360
406
  * Get multiple models by a simple where
361
407
  */
362
408
  static async where(where, extra) {
363
- var _a, _b, _c;
364
409
  const params = [];
365
- let query = `SELECT ${(_a = extra === null || extra === void 0 ? void 0 : extra.select) !== null && _a !== void 0 ? _a : this.getDefaultSelect()} FROM \`${this.table}\``;
410
+ let query = `SELECT ${extra?.select ?? this.getDefaultSelect()} FROM \`${this.table}\``;
366
411
  if (Object.keys(where).length !== 0) {
367
412
  const [whereQuery, p] = this.buildWhereQuery(where);
368
413
  query += `WHERE ` + whereQuery;
@@ -372,15 +417,15 @@ class Model /* static implements RowInitiable<Model> */ {
372
417
  const sortQuery = [];
373
418
  for (const item of extra.sort) {
374
419
  if (typeof item === 'string') {
375
- sortQuery.push(Database_1.Database.escapeId(item) + ' ASC');
420
+ sortQuery.push(Database_js_1.Database.escapeId(item) + ' ASC');
376
421
  }
377
422
  else if (typeof item.column === 'string') {
378
- sortQuery.push(Database_1.Database.escapeId(item.column) + ' ' + ((_b = item.direction) !== null && _b !== void 0 ? _b : 'ASC'));
423
+ sortQuery.push(Database_js_1.Database.escapeId(item.column) + ' ' + (item.direction ?? 'ASC'));
379
424
  }
380
425
  else {
381
426
  // Repeat use of a where query in the sorting (needed when fulltext searching and need to sort on the score, because limit won't work without this for an unknown reason)
382
427
  const [w, p] = this.buildWhereQuery(item.column);
383
- sortQuery.push('(' + w + ') ' + ((_c = item.direction) !== null && _c !== void 0 ? _c : 'ASC'));
428
+ sortQuery.push('(' + w + ') ' + (item.direction ?? 'ASC'));
384
429
  params.push(...p);
385
430
  }
386
431
  }
@@ -390,7 +435,7 @@ class Model /* static implements RowInitiable<Model> */ {
390
435
  query += ` LIMIT ?`;
391
436
  params.push(extra.limit);
392
437
  }
393
- const [rows] = await Database_1.Database.select(query, params);
438
+ const [rows] = await Database_js_1.Database.select(query, params);
394
439
  return this.fromRows(rows, this.table);
395
440
  }
396
441
  /**
@@ -403,7 +448,7 @@ class Model /* static implements RowInitiable<Model> */ {
403
448
  query += ` LIMIT ?`;
404
449
  params.push(limit);
405
450
  }
406
- const [rows] = await Database_1.Database.select(query, params);
451
+ const [rows] = await Database_js_1.Database.select(query, params);
407
452
  return this.fromRows(rows, this.table);
408
453
  }
409
454
  /**
@@ -426,7 +471,7 @@ class Model /* static implements RowInitiable<Model> */ {
426
471
  const forceSave = this.forceSaveProperties.has(column.name);
427
472
  const oldSavedValue = forceSave ? undefined : this.savedProperties.get(column.name);
428
473
  const saveValue = forceSave ? null : column.to(this[column.name]); // .to is expensive, so avoid calling it when not needed
429
- if (forceSave || oldSavedValue === undefined || column.isChanged(oldSavedValue, saveValue)) {
474
+ if (forceSave || oldSavedValue === undefined || column.isChanged(typeof oldSavedValue === 'object' && oldSavedValue !== null && 'to' in oldSavedValue ? oldSavedValue.to() : oldSavedValue, saveValue)) {
430
475
  set[column.name] = forceSave ? column.to(this[column.name]) : saveValue;
431
476
  if (column.skipUpdate && !forceSave) {
432
477
  skipUpdate++;
@@ -456,6 +501,9 @@ class Model /* static implements RowInitiable<Model> */ {
456
501
  if (c === undefined) {
457
502
  return undefined;
458
503
  }
504
+ if (typeof c === 'object' && c !== null && 'from' in c) {
505
+ return c.from();
506
+ }
459
507
  return column.from(c);
460
508
  }
461
509
  async save() {
@@ -517,7 +565,7 @@ class Model /* static implements RowInitiable<Model> */ {
517
565
  if (!this.existsInDatabase) {
518
566
  if (Model.debug)
519
567
  console.log(`Creating new ${this.constructor.name}`);
520
- const [result] = await Database_1.Database.insert('INSERT INTO `' + this.static.table + '` SET ?', [fields]);
568
+ const [result] = await Database_js_1.Database.insert('INSERT INTO `' + this.static.table + '` SET ?', [fields]);
521
569
  if (this.static.primary.type === 'integer' && this.static.primary.name === 'id') {
522
570
  // Auto increment value
523
571
  this[this.static.primary.name] = result.insertId;
@@ -529,7 +577,7 @@ class Model /* static implements RowInitiable<Model> */ {
529
577
  else {
530
578
  if (Model.debug)
531
579
  console.log(`Updating ${this.constructor.name} where ${this.static.primary.name} = ${id}`);
532
- const [result] = await Database_1.Database.update('UPDATE `' + this.static.table + '` SET ? WHERE `' + this.static.primary.name + '` = ?', [fields, id]);
580
+ const [result] = await Database_js_1.Database.update('UPDATE `' + this.static.table + '` SET ? WHERE `' + this.static.primary.name + '` = ?', [fields, id]);
533
581
  if (result.changedRows !== 1 && Model.showWarnings) {
534
582
  console.warn(`Updated ${this.constructor.name}, but it didn't change a row. Check if ID exists.`);
535
583
  }
@@ -537,7 +585,12 @@ class Model /* static implements RowInitiable<Model> */ {
537
585
  // Emit event
538
586
  if (this.existsInDatabase) {
539
587
  // Keep reference to old properties before marking saved
540
- const originalProperties = Object.fromEntries(Array.from(this.savedProperties.entries()));
588
+ const originalProperties = Object.fromEntries(Array.from(this.savedProperties.entries()).map(([key, value]) => {
589
+ if (typeof value === 'object' && value !== null && 'to' in value) {
590
+ return [key, value.to()];
591
+ }
592
+ return [key, value];
593
+ }));
541
594
  // Mark saved before sending the event
542
595
  this.markSaved(fields);
543
596
  await this.static.modelEventBus.sendEvent({
@@ -570,8 +623,8 @@ class Model /* static implements RowInitiable<Model> */ {
570
623
  throw new Error('Model ' + this.constructor.name + " can't be deleted if it doesn't exist in the database already");
571
624
  }
572
625
  if (Model.debug)
573
- console.log(`Updating ${this.constructor.name} where ${this.static.primary.name} = ${id}`);
574
- const [result] = await Database_1.Database.delete('DELETE FROM `' + this.static.table + '` WHERE `' + this.static.primary.name + '` = ?', [id]);
626
+ console.log(`Deleting ${this.constructor.name} where ${this.static.primary.name} = ${id}`);
627
+ const [result] = await Database_js_1.Database.delete('DELETE FROM `' + this.static.table + '` WHERE `' + this.static.primary.name + '` = ?', [id]);
575
628
  if (result.affectedRows !== 1 && Model.showWarnings) {
576
629
  console.warn(`Deleted ${this.constructor.name}, but it didn't change a row. Check if ID exists.`);
577
630
  }
@@ -584,7 +637,4 @@ class Model /* static implements RowInitiable<Model> */ {
584
637
  }
585
638
  }
586
639
  exports.Model = Model;
587
- Model.modelEventBus = new ModelEventBus();
588
- Model.debug = false;
589
- Model.showWarnings = false;
590
640
  //# sourceMappingURL=Model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Model.js","sourceRoot":"","sources":["../../../../src/classes/Model.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 OneToManyRelation<Key extends keyof any, A extends Model, B extends Model> {
3
3
  modelA: {
4
4
  new (): A;
@@ -35,3 +35,4 @@ export declare class OneToManyRelation<Key extends keyof any, A extends Model, B
35
35
  orderByQuery(namespaceB: string): string;
36
36
  load(modelA: A, sorted?: boolean, where?: object): Promise<B[]>;
37
37
  }
38
+ //# sourceMappingURL=OneToManyRelation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OneToManyRelation.d.ts","sourceRoot":"","sources":["../../../../src/classes/OneToManyRelation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,qBAAa,iBAAiB,CAAC,GAAG,SAAS,MAAM,GAAG,EAAE,CAAC,SAAS,KAAK,EAAE,CAAC,SAAS,KAAK;IAClF,MAAM,EAAE;QAAE,QAAQ,CAAC,CAAA;KAAE,GAAG,OAAO,KAAK,CAAC;IACrC,MAAM,EAAE;QAAE,QAAQ,CAAC,CAAA;KAAE,GAAG,OAAO,KAAK,CAAC;IAErC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC,CAAC;IAEpB;;OAEG;IACH,QAAQ,EAAE,GAAG,CAAC;IAEd;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAC7B,SAAS,EAAE,KAAK,GAAG,MAAM,CAAS;gBAEtB,MAAM,EAAE;QAAE,QAAQ,CAAC,CAAA;KAAE,GAAG,OAAO,KAAK,EAAE,MAAM,EAAE;QAAE,QAAQ,CAAC,CAAA;KAAE,GAAG,OAAO,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC;IAO1H,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,GAAE,KAAK,GAAG,MAAc,GAAG,IAAI;IAO1D,QAAQ,CAAC,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;IAK9D;;;;OAIG;IACH,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IAIzD,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAYlC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,UAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;CAuBrE"}
@@ -1,10 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OneToManyRelation = void 0;
4
- const Database_1 = require("./Database");
4
+ const Database_js_1 = require("./Database.js");
5
5
  class OneToManyRelation {
6
+ modelA;
7
+ modelB;
8
+ /**
9
+ * Foreign key of the other model that references the current model
10
+ */
11
+ foreignKey;
12
+ /**
13
+ * E.g. categories
14
+ */
15
+ modelKey;
16
+ /**
17
+ * Sort the loading of this relation
18
+ */
19
+ sortKey;
20
+ sortOrder = 'ASC';
6
21
  constructor(modelA, modelB, modelKey, foreignKey) {
7
- this.sortOrder = 'ASC';
8
22
  this.modelA = modelA;
9
23
  this.modelB = modelB;
10
24
  this.modelKey = modelKey;
@@ -55,7 +69,7 @@ class OneToManyRelation {
55
69
  if (sorted) {
56
70
  str += this.orderByQuery('B');
57
71
  }
58
- const [rows] = await Database_1.Database.select(str, params);
72
+ const [rows] = await Database_js_1.Database.select(str, params);
59
73
  const modelsB = this.modelB.fromRows(rows, namespaceB);
60
74
  modelA.setManyRelation(this, modelsB);
61
75
  return modelsB;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OneToManyRelation.js","sourceRoot":"","sources":["../../../../src/classes/OneToManyRelation.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  declare const _default: string[];
2
2
  export default _default;
3
+ //# sourceMappingURL=boys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boys.d.ts","sourceRoot":"","sources":["../../../../../src/classes/data/boys.ts"],"names":[],"mappings":";AAAA,wBAy+BE"}