@nymphjs/nymph 1.0.0-beta.11 → 1.0.0-beta.13

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.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,16 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [1.0.0-beta.13](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.12...v1.0.0-beta.13) (2023-03-16)
7
+
8
+ ### Bug Fixes
9
+
10
+ - pubsub publishing changes before transaction is finished ([a918cc1](https://github.com/sciactive/nymphjs/commit/a918cc1451e03015ecce20f1c9bf6ceb62b7dff1))
11
+
12
+ # [1.0.0-beta.12](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.11...v1.0.0-beta.12) (2023-03-04)
13
+
14
+ **Note:** Version bump only for package @nymphjs/nymph
15
+
6
16
  # [1.0.0-beta.11](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.10...v1.0.0-beta.11) (2023-02-27)
7
17
 
8
18
  **Note:** Version bump only for package @nymphjs/nymph
package/dist/Nymph.d.ts CHANGED
@@ -2,9 +2,10 @@ import { Config } from './conf';
2
2
  import { NymphDriver } from './driver';
3
3
  import Entity from './Entity';
4
4
  import { EntityConstructor, EntityInterface } from './Entity.types';
5
- import type { Selector, Options, NymphConnectCallback, NymphDisconnectCallback, NymphBeforeGetEntityCallback, NymphBeforeGetEntitiesCallback, NymphBeforeSaveEntityCallback, NymphAfterSaveEntityCallback, NymphBeforeDeleteEntityCallback, NymphAfterDeleteEntityCallback, NymphBeforeDeleteEntityByIDCallback, NymphAfterDeleteEntityByIDCallback, NymphBeforeNewUIDCallback, NymphAfterNewUIDCallback, NymphBeforeSetUIDCallback, NymphAfterSetUIDCallback, NymphBeforeRenameUIDCallback, NymphAfterRenameUIDCallback, NymphBeforeDeleteUIDCallback, NymphAfterDeleteUIDCallback, NymphEventType, NymphQueryCallback, FormattedSelector, TilmeldInterface } from './Nymph.types';
5
+ import type { Selector, Options, NymphConnectCallback, NymphDisconnectCallback, NymphBeforeGetEntityCallback, NymphBeforeGetEntitiesCallback, NymphBeforeSaveEntityCallback, NymphAfterSaveEntityCallback, NymphFailedSaveEntityCallback, NymphBeforeDeleteEntityCallback, NymphAfterDeleteEntityCallback, NymphFailedDeleteEntityCallback, NymphBeforeDeleteEntityByIDCallback, NymphAfterDeleteEntityByIDCallback, NymphFailedDeleteEntityByIDCallback, NymphBeforeNewUIDCallback, NymphAfterNewUIDCallback, NymphFailedNewUIDCallback, NymphBeforeSetUIDCallback, NymphAfterSetUIDCallback, NymphFailedSetUIDCallback, NymphBeforeRenameUIDCallback, NymphAfterRenameUIDCallback, NymphFailedRenameUIDCallback, NymphBeforeDeleteUIDCallback, NymphAfterDeleteUIDCallback, NymphFailedDeleteUIDCallback, NymphBeforeStartTransactionCallback, NymphAfterStartTransactionCallback, NymphBeforeCommitTransactionCallback, NymphAfterCommitTransactionCallback, NymphBeforeRollbackTransactionCallback, NymphAfterRollbackTransactionCallback, NymphEventType, NymphQueryCallback, FormattedSelector, TilmeldInterface } from './Nymph.types';
6
6
  export default class Nymph {
7
7
  config: Config;
8
+ parent: Nymph | null;
8
9
  driver: NymphDriver;
9
10
  tilmeld?: TilmeldInterface;
10
11
  private entityClasses;
@@ -16,18 +17,31 @@ export default class Nymph {
16
17
  private beforeGetEntitiesCallbacks;
17
18
  private beforeSaveEntityCallbacks;
18
19
  private afterSaveEntityCallbacks;
20
+ private failedSaveEntityCallbacks;
19
21
  private beforeDeleteEntityCallbacks;
20
22
  private afterDeleteEntityCallbacks;
23
+ private failedDeleteEntityCallbacks;
21
24
  private beforeDeleteEntityByIDCallbacks;
22
25
  private afterDeleteEntityByIDCallbacks;
26
+ private failedDeleteEntityByIDCallbacks;
23
27
  private beforeNewUIDCallbacks;
24
28
  private afterNewUIDCallbacks;
29
+ private failedNewUIDCallbacks;
25
30
  private beforeSetUIDCallbacks;
26
31
  private afterSetUIDCallbacks;
32
+ private failedSetUIDCallbacks;
27
33
  private beforeRenameUIDCallbacks;
28
34
  private afterRenameUIDCallbacks;
35
+ private failedRenameUIDCallbacks;
29
36
  private beforeDeleteUIDCallbacks;
30
37
  private afterDeleteUIDCallbacks;
38
+ private failedDeleteUIDCallbacks;
39
+ private beforeStartTransactionCallbacks;
40
+ private afterStartTransactionCallbacks;
41
+ private beforeCommitTransactionCallbacks;
42
+ private afterCommitTransactionCallbacks;
43
+ private beforeRollbackTransactionCallbacks;
44
+ private afterRollbackTransactionCallbacks;
31
45
  constructor(config: Partial<Config>, driver: NymphDriver, tilmeld?: TilmeldInterface);
32
46
  addEntityClass<T extends EntityConstructor>(entityClass: T): T;
33
47
  getEntityClass(className: string): EntityConstructor;
@@ -68,6 +82,6 @@ export default class Nymph {
68
82
  export(filename: string): Promise<boolean>;
69
83
  exportPrint(): Promise<boolean>;
70
84
  import(filename: string): Promise<boolean>;
71
- on<T extends NymphEventType>(event: T, callback: T extends 'connect' ? NymphConnectCallback : T extends 'disconnect' ? NymphDisconnectCallback : T extends 'query' ? NymphQueryCallback : T extends 'beforeGetEntity' ? NymphBeforeGetEntityCallback : T extends 'beforeGetEntities' ? NymphBeforeGetEntitiesCallback : T extends 'beforeSaveEntity' ? NymphBeforeSaveEntityCallback : T extends 'afterSaveEntity' ? NymphAfterSaveEntityCallback : T extends 'beforeDeleteEntity' ? NymphBeforeDeleteEntityCallback : T extends 'afterDeleteEntity' ? NymphAfterDeleteEntityCallback : T extends 'beforeDeleteEntityByID' ? NymphBeforeDeleteEntityByIDCallback : T extends 'afterDeleteEntityByID' ? NymphAfterDeleteEntityByIDCallback : T extends 'beforeNewUID' ? NymphBeforeNewUIDCallback : T extends 'afterNewUID' ? NymphAfterNewUIDCallback : T extends 'beforeSetUID' ? NymphBeforeSetUIDCallback : T extends 'afterSetUID' ? NymphAfterSetUIDCallback : T extends 'beforeRenameUID' ? NymphBeforeRenameUIDCallback : T extends 'afterRenameUID' ? NymphAfterRenameUIDCallback : T extends 'beforeDeleteUID' ? NymphBeforeDeleteUIDCallback : T extends 'afterDeleteUID' ? NymphAfterDeleteUIDCallback : never): () => boolean;
72
- off<T extends NymphEventType>(event: T, callback: T extends 'connect' ? NymphConnectCallback : T extends 'disconnect' ? NymphDisconnectCallback : T extends 'query' ? NymphQueryCallback : T extends 'beforeGetEntity' ? NymphBeforeGetEntityCallback : T extends 'beforeGetEntities' ? NymphBeforeGetEntitiesCallback : T extends 'beforeSaveEntity' ? NymphBeforeSaveEntityCallback : T extends 'afterSaveEntity' ? NymphAfterSaveEntityCallback : T extends 'beforeDeleteEntity' ? NymphBeforeDeleteEntityCallback : T extends 'afterDeleteEntity' ? NymphAfterDeleteEntityCallback : T extends 'beforeDeleteEntityByID' ? NymphBeforeDeleteEntityByIDCallback : T extends 'afterDeleteEntityByID' ? NymphAfterDeleteEntityByIDCallback : T extends 'beforeNewUID' ? NymphBeforeNewUIDCallback : T extends 'afterNewUID' ? NymphAfterNewUIDCallback : T extends 'beforeSetUID' ? NymphBeforeSetUIDCallback : T extends 'afterSetUID' ? NymphAfterSetUIDCallback : T extends 'beforeRenameUID' ? NymphBeforeRenameUIDCallback : T extends 'afterRenameUID' ? NymphAfterRenameUIDCallback : T extends 'beforeDeleteUID' ? NymphBeforeDeleteUIDCallback : T extends 'afterDeleteUID' ? NymphAfterDeleteUIDCallback : never): boolean;
85
+ on<T extends NymphEventType>(event: T, callback: T extends 'connect' ? NymphConnectCallback : T extends 'disconnect' ? NymphDisconnectCallback : T extends 'query' ? NymphQueryCallback : T extends 'beforeGetEntity' ? NymphBeforeGetEntityCallback : T extends 'beforeGetEntities' ? NymphBeforeGetEntitiesCallback : T extends 'beforeSaveEntity' ? NymphBeforeSaveEntityCallback : T extends 'afterSaveEntity' ? NymphAfterSaveEntityCallback : T extends 'failedSaveEntity' ? NymphFailedSaveEntityCallback : T extends 'beforeDeleteEntity' ? NymphBeforeDeleteEntityCallback : T extends 'afterDeleteEntity' ? NymphAfterDeleteEntityCallback : T extends 'failedDeleteEntity' ? NymphFailedDeleteEntityCallback : T extends 'beforeDeleteEntityByID' ? NymphBeforeDeleteEntityByIDCallback : T extends 'afterDeleteEntityByID' ? NymphAfterDeleteEntityByIDCallback : T extends 'failedDeleteEntityByID' ? NymphFailedDeleteEntityByIDCallback : T extends 'beforeNewUID' ? NymphBeforeNewUIDCallback : T extends 'afterNewUID' ? NymphAfterNewUIDCallback : T extends 'failedNewUID' ? NymphFailedNewUIDCallback : T extends 'beforeSetUID' ? NymphBeforeSetUIDCallback : T extends 'afterSetUID' ? NymphAfterSetUIDCallback : T extends 'failedSetUID' ? NymphFailedSetUIDCallback : T extends 'beforeRenameUID' ? NymphBeforeRenameUIDCallback : T extends 'afterRenameUID' ? NymphAfterRenameUIDCallback : T extends 'failedRenameUID' ? NymphFailedRenameUIDCallback : T extends 'beforeDeleteUID' ? NymphBeforeDeleteUIDCallback : T extends 'afterDeleteUID' ? NymphAfterDeleteUIDCallback : T extends 'failedDeleteUID' ? NymphFailedDeleteUIDCallback : T extends 'beforeStartTransaction' ? NymphBeforeStartTransactionCallback : T extends 'afterStartTransaction' ? NymphAfterStartTransactionCallback : T extends 'beforeCommitTransaction' ? NymphBeforeCommitTransactionCallback : T extends 'afterCommitTransaction' ? NymphAfterCommitTransactionCallback : T extends 'beforeRollbackTransaction' ? NymphBeforeRollbackTransactionCallback : T extends 'afterRollbackTransaction' ? NymphAfterRollbackTransactionCallback : never): () => boolean;
86
+ off<T extends NymphEventType>(event: T, callback: T extends 'connect' ? NymphConnectCallback : T extends 'disconnect' ? NymphDisconnectCallback : T extends 'query' ? NymphQueryCallback : T extends 'beforeGetEntity' ? NymphBeforeGetEntityCallback : T extends 'beforeGetEntities' ? NymphBeforeGetEntitiesCallback : T extends 'beforeSaveEntity' ? NymphBeforeSaveEntityCallback : T extends 'afterSaveEntity' ? NymphAfterSaveEntityCallback : T extends 'failedSaveEntity' ? NymphFailedSaveEntityCallback : T extends 'beforeDeleteEntity' ? NymphBeforeDeleteEntityCallback : T extends 'afterDeleteEntity' ? NymphAfterDeleteEntityCallback : T extends 'failedDeleteEntity' ? NymphFailedDeleteEntityCallback : T extends 'beforeDeleteEntityByID' ? NymphBeforeDeleteEntityByIDCallback : T extends 'afterDeleteEntityByID' ? NymphAfterDeleteEntityByIDCallback : T extends 'failedDeleteEntityByID' ? NymphFailedDeleteEntityByIDCallback : T extends 'beforeNewUID' ? NymphBeforeNewUIDCallback : T extends 'afterNewUID' ? NymphAfterNewUIDCallback : T extends 'failedNewUID' ? NymphFailedNewUIDCallback : T extends 'beforeSetUID' ? NymphBeforeSetUIDCallback : T extends 'afterSetUID' ? NymphAfterSetUIDCallback : T extends 'failedSetUID' ? NymphFailedSetUIDCallback : T extends 'beforeRenameUID' ? NymphBeforeRenameUIDCallback : T extends 'afterRenameUID' ? NymphAfterRenameUIDCallback : T extends 'failedRenameUID' ? NymphFailedRenameUIDCallback : T extends 'beforeDeleteUID' ? NymphBeforeDeleteUIDCallback : T extends 'afterDeleteUID' ? NymphAfterDeleteUIDCallback : T extends 'failedDeleteUID' ? NymphFailedDeleteUIDCallback : T extends 'beforeStartTransaction' ? NymphBeforeStartTransactionCallback : T extends 'afterStartTransaction' ? NymphAfterStartTransactionCallback : T extends 'beforeCommitTransaction' ? NymphBeforeCommitTransactionCallback : T extends 'afterCommitTransaction' ? NymphAfterCommitTransactionCallback : T extends 'beforeRollbackTransaction' ? NymphBeforeRollbackTransactionCallback : T extends 'afterRollbackTransaction' ? NymphAfterRollbackTransactionCallback : never): boolean;
73
87
  }
package/dist/Nymph.js CHANGED
@@ -17,20 +17,34 @@ class Nymph {
17
17
  this.beforeGetEntitiesCallbacks = [];
18
18
  this.beforeSaveEntityCallbacks = [];
19
19
  this.afterSaveEntityCallbacks = [];
20
+ this.failedSaveEntityCallbacks = [];
20
21
  this.beforeDeleteEntityCallbacks = [];
21
22
  this.afterDeleteEntityCallbacks = [];
23
+ this.failedDeleteEntityCallbacks = [];
22
24
  this.beforeDeleteEntityByIDCallbacks = [];
23
25
  this.afterDeleteEntityByIDCallbacks = [];
26
+ this.failedDeleteEntityByIDCallbacks = [];
24
27
  this.beforeNewUIDCallbacks = [];
25
28
  this.afterNewUIDCallbacks = [];
29
+ this.failedNewUIDCallbacks = [];
26
30
  this.beforeSetUIDCallbacks = [];
27
31
  this.afterSetUIDCallbacks = [];
32
+ this.failedSetUIDCallbacks = [];
28
33
  this.beforeRenameUIDCallbacks = [];
29
34
  this.afterRenameUIDCallbacks = [];
35
+ this.failedRenameUIDCallbacks = [];
30
36
  this.beforeDeleteUIDCallbacks = [];
31
37
  this.afterDeleteUIDCallbacks = [];
38
+ this.failedDeleteUIDCallbacks = [];
39
+ this.beforeStartTransactionCallbacks = [];
40
+ this.afterStartTransactionCallbacks = [];
41
+ this.beforeCommitTransactionCallbacks = [];
42
+ this.afterCommitTransactionCallbacks = [];
43
+ this.beforeRollbackTransactionCallbacks = [];
44
+ this.afterRollbackTransactionCallbacks = [];
32
45
  this.config = { ...conf_1.ConfigDefaults, ...config };
33
46
  this.driver = driver;
47
+ this.parent = null;
34
48
  this.Entity = this.addEntityClass(Entity_1.default);
35
49
  if (typeof tilmeld !== 'undefined') {
36
50
  this.tilmeld = tilmeld;
@@ -59,6 +73,7 @@ class Nymph {
59
73
  }
60
74
  clone() {
61
75
  const nymph = new Nymph(this.config, this.driver.clone(), this.tilmeld?.clone());
76
+ nymph.parent = this;
62
77
  for (const name in this.entityClasses) {
63
78
  if (name === 'Entity' || this.entityClasses[name].skipOnClone) {
64
79
  continue;
@@ -73,18 +88,31 @@ class Nymph {
73
88
  'beforeGetEntities',
74
89
  'beforeSaveEntity',
75
90
  'afterSaveEntity',
91
+ 'failedSaveEntity',
76
92
  'beforeDeleteEntity',
77
93
  'afterDeleteEntity',
94
+ 'failedDeleteEntity',
78
95
  'beforeDeleteEntityByID',
79
96
  'afterDeleteEntityByID',
97
+ 'failedDeleteEntityByID',
80
98
  'beforeNewUID',
81
99
  'afterNewUID',
100
+ 'failedNewUID',
82
101
  'beforeSetUID',
83
102
  'afterSetUID',
103
+ 'failedSetUID',
84
104
  'beforeRenameUID',
85
105
  'afterRenameUID',
106
+ 'failedRenameUID',
86
107
  'beforeDeleteUID',
87
108
  'afterDeleteUID',
109
+ 'failedDeleteUID',
110
+ 'beforeStartTransaction',
111
+ 'afterStartTransaction',
112
+ 'beforeCommitTransaction',
113
+ 'afterCommitTransaction',
114
+ 'beforeRollbackTransaction',
115
+ 'afterRollbackTransaction',
88
116
  ];
89
117
  for (let event of events) {
90
118
  const prop = event + 'Callbacks';
@@ -124,13 +152,46 @@ class Nymph {
124
152
  }
125
153
  }
126
154
  async startTransaction(name) {
127
- return await this.driver.startTransaction(name);
155
+ for (let callback of this.beforeStartTransactionCallbacks) {
156
+ if (callback) {
157
+ await callback(this, name);
158
+ }
159
+ }
160
+ const result = await this.driver.startTransaction(name);
161
+ for (let callback of this.afterStartTransactionCallbacks) {
162
+ if (callback) {
163
+ await callback(this, name, result);
164
+ }
165
+ }
166
+ return result;
128
167
  }
129
168
  async commit(name) {
130
- return await this.driver.commit(name);
169
+ for (let callback of this.beforeCommitTransactionCallbacks) {
170
+ if (callback) {
171
+ await callback(this, name);
172
+ }
173
+ }
174
+ const result = await this.driver.commit(name);
175
+ for (let callback of this.afterCommitTransactionCallbacks) {
176
+ if (callback) {
177
+ await callback(this, name, result);
178
+ }
179
+ }
180
+ return result;
131
181
  }
132
182
  async rollback(name) {
133
- return await this.driver.rollback(name);
183
+ for (let callback of this.beforeRollbackTransactionCallbacks) {
184
+ if (callback) {
185
+ await callback(this, name);
186
+ }
187
+ }
188
+ const result = await this.driver.rollback(name);
189
+ for (let callback of this.afterRollbackTransactionCallbacks) {
190
+ if (callback) {
191
+ await callback(this, name, result);
192
+ }
193
+ }
194
+ return result;
134
195
  }
135
196
  async inTransaction() {
136
197
  return await this.driver.inTransaction();
@@ -141,7 +202,18 @@ class Nymph {
141
202
  await callback(this, name);
142
203
  }
143
204
  }
144
- const result = this.driver.newUID(name);
205
+ let result;
206
+ try {
207
+ result = this.driver.newUID(name);
208
+ }
209
+ catch (e) {
210
+ for (let callback of this.failedNewUIDCallbacks) {
211
+ if (callback) {
212
+ await callback(this, e);
213
+ }
214
+ }
215
+ throw e;
216
+ }
145
217
  for (let callback of this.afterNewUIDCallbacks) {
146
218
  if (callback) {
147
219
  await callback(this, result);
@@ -158,7 +230,18 @@ class Nymph {
158
230
  await callback(this, name, value);
159
231
  }
160
232
  }
161
- const result = this.driver.setUID(name, value);
233
+ let result;
234
+ try {
235
+ result = this.driver.setUID(name, value);
236
+ }
237
+ catch (e) {
238
+ for (let callback of this.failedSetUIDCallbacks) {
239
+ if (callback) {
240
+ await callback(this, e);
241
+ }
242
+ }
243
+ throw e;
244
+ }
162
245
  for (let callback of this.afterSetUIDCallbacks) {
163
246
  if (callback) {
164
247
  await callback(this, result);
@@ -172,7 +255,18 @@ class Nymph {
172
255
  await callback(this, name);
173
256
  }
174
257
  }
175
- const result = this.driver.deleteUID(name);
258
+ let result;
259
+ try {
260
+ result = this.driver.deleteUID(name);
261
+ }
262
+ catch (e) {
263
+ for (let callback of this.failedDeleteUIDCallbacks) {
264
+ if (callback) {
265
+ await callback(this, e);
266
+ }
267
+ }
268
+ throw e;
269
+ }
176
270
  for (let callback of this.afterDeleteUIDCallbacks) {
177
271
  if (callback) {
178
272
  await callback(this, result);
@@ -186,7 +280,18 @@ class Nymph {
186
280
  await callback(this, oldName, newName);
187
281
  }
188
282
  }
189
- const result = this.driver.renameUID(oldName, newName);
283
+ let result;
284
+ try {
285
+ result = this.driver.renameUID(oldName, newName);
286
+ }
287
+ catch (e) {
288
+ for (let callback of this.failedRenameUIDCallbacks) {
289
+ if (callback) {
290
+ await callback(this, e);
291
+ }
292
+ }
293
+ throw e;
294
+ }
190
295
  for (let callback of this.afterRenameUIDCallbacks) {
191
296
  if (callback) {
192
297
  await callback(this, result);
@@ -200,7 +305,18 @@ class Nymph {
200
305
  await callback(this, entity);
201
306
  }
202
307
  }
203
- const result = this.driver.saveEntity(entity);
308
+ let result;
309
+ try {
310
+ result = this.driver.saveEntity(entity);
311
+ }
312
+ catch (e) {
313
+ for (let callback of this.failedSaveEntityCallbacks) {
314
+ if (callback) {
315
+ await callback(this, e);
316
+ }
317
+ }
318
+ throw e;
319
+ }
204
320
  for (let callback of this.afterSaveEntityCallbacks) {
205
321
  if (callback) {
206
322
  await callback(this, result);
@@ -241,7 +357,18 @@ class Nymph {
241
357
  await callback(this, entity);
242
358
  }
243
359
  }
244
- const result = this.driver.deleteEntity(entity);
360
+ let result;
361
+ try {
362
+ result = this.driver.deleteEntity(entity);
363
+ }
364
+ catch (e) {
365
+ for (let callback of this.failedDeleteEntityCallbacks) {
366
+ if (callback) {
367
+ await callback(this, e);
368
+ }
369
+ }
370
+ throw e;
371
+ }
245
372
  for (let callback of this.afterDeleteEntityCallbacks) {
246
373
  if (callback) {
247
374
  await callback(this, result);
@@ -255,7 +382,18 @@ class Nymph {
255
382
  await callback(this, guid, className);
256
383
  }
257
384
  }
258
- const result = this.driver.deleteEntityByID(guid, className);
385
+ let result;
386
+ try {
387
+ result = this.driver.deleteEntityByID(guid, className);
388
+ }
389
+ catch (e) {
390
+ for (let callback of this.failedDeleteEntityByIDCallbacks) {
391
+ if (callback) {
392
+ await callback(this, e);
393
+ }
394
+ }
395
+ throw e;
396
+ }
259
397
  for (let callback of this.afterDeleteEntityByIDCallbacks) {
260
398
  if (callback) {
261
399
  await callback(this, result);
package/dist/Nymph.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Nymph.js","sourceRoot":"","sources":["../src/Nymph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Nymph.js","sourceRoot":"","sources":["../src/Nymph.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { EntityConstructor, EntityInterface } from './Entity.types';
2
2
  import Nymph from './Nymph';
3
- export type NymphEventType = 'connect' | 'disconnect' | 'query' | 'beforeGetEntity' | 'beforeGetEntities' | 'beforeSaveEntity' | 'afterSaveEntity' | 'beforeDeleteEntity' | 'afterDeleteEntity' | 'beforeDeleteEntityByID' | 'afterDeleteEntityByID' | 'beforeNewUID' | 'afterNewUID' | 'beforeSetUID' | 'afterSetUID' | 'beforeRenameUID' | 'afterRenameUID' | 'beforeDeleteUID' | 'afterDeleteUID';
3
+ export type NymphEventType = 'connect' | 'disconnect' | 'query' | 'beforeGetEntity' | 'beforeGetEntities' | 'beforeSaveEntity' | 'afterSaveEntity' | 'failedSaveEntity' | 'beforeDeleteEntity' | 'afterDeleteEntity' | 'failedDeleteEntity' | 'beforeDeleteEntityByID' | 'afterDeleteEntityByID' | 'failedDeleteEntityByID' | 'beforeNewUID' | 'afterNewUID' | 'failedNewUID' | 'beforeSetUID' | 'afterSetUID' | 'failedSetUID' | 'beforeRenameUID' | 'afterRenameUID' | 'failedRenameUID' | 'beforeDeleteUID' | 'afterDeleteUID' | 'failedDeleteUID' | 'beforeStartTransaction' | 'afterStartTransaction' | 'beforeCommitTransaction' | 'afterCommitTransaction' | 'beforeRollbackTransaction' | 'afterRollbackTransaction';
4
4
  export type NymphConnectCallback = (nymph: Nymph, result: Promise<boolean>) => Promise<void>;
5
5
  export type NymphDisconnectCallback = (nymph: Nymph, result: Promise<boolean>) => Promise<void>;
6
6
  export type NymphQueryCallback = (nymph: Nymph, options: Options, selectors: FormattedSelector[]) => void;
@@ -8,18 +8,31 @@ export type NymphBeforeGetEntityCallback = (nymph: Nymph, options: Options, sele
8
8
  export type NymphBeforeGetEntitiesCallback = (nymph: Nymph, options: Options, selectors: Selector[]) => Promise<void>;
9
9
  export type NymphBeforeSaveEntityCallback = (nymph: Nymph, entity: EntityInterface) => Promise<void>;
10
10
  export type NymphAfterSaveEntityCallback = (nymph: Nymph, result: Promise<boolean>) => Promise<void>;
11
+ export type NymphFailedSaveEntityCallback = (nymph: Nymph, error: any) => Promise<void>;
11
12
  export type NymphBeforeDeleteEntityCallback = (nymph: Nymph, entity: EntityInterface) => Promise<void>;
12
13
  export type NymphAfterDeleteEntityCallback = (nymph: Nymph, result: Promise<boolean>) => Promise<void>;
14
+ export type NymphFailedDeleteEntityCallback = (nymph: Nymph, error: any) => Promise<void>;
13
15
  export type NymphBeforeDeleteEntityByIDCallback = (nymph: Nymph, guid: string, className?: string) => Promise<void>;
14
16
  export type NymphAfterDeleteEntityByIDCallback = (nymph: Nymph, result: Promise<boolean>) => Promise<void>;
17
+ export type NymphFailedDeleteEntityByIDCallback = (nymph: Nymph, error: any) => Promise<void>;
15
18
  export type NymphBeforeNewUIDCallback = (nymph: Nymph, name: string) => Promise<void>;
16
19
  export type NymphAfterNewUIDCallback = (nymph: Nymph, result: Promise<number | null>) => Promise<void>;
20
+ export type NymphFailedNewUIDCallback = (nymph: Nymph, error: any) => Promise<void>;
17
21
  export type NymphBeforeSetUIDCallback = (nymph: Nymph, name: string, value: number) => Promise<void>;
18
22
  export type NymphAfterSetUIDCallback = (nymph: Nymph, result: Promise<boolean>) => Promise<void>;
23
+ export type NymphFailedSetUIDCallback = (nymph: Nymph, error: any) => Promise<void>;
19
24
  export type NymphBeforeRenameUIDCallback = (nymph: Nymph, oldName: string, newName: string) => Promise<void>;
20
25
  export type NymphAfterRenameUIDCallback = (nymph: Nymph, result: Promise<boolean>) => Promise<void>;
26
+ export type NymphFailedRenameUIDCallback = (nymph: Nymph, error: any) => Promise<void>;
21
27
  export type NymphBeforeDeleteUIDCallback = (nymph: Nymph, name: string) => Promise<void>;
22
28
  export type NymphAfterDeleteUIDCallback = (nymph: Nymph, result: Promise<boolean>) => Promise<void>;
29
+ export type NymphFailedDeleteUIDCallback = (nymph: Nymph, error: any) => Promise<void>;
30
+ export type NymphBeforeStartTransactionCallback = (nymph: Nymph, name: string) => Promise<void>;
31
+ export type NymphAfterStartTransactionCallback = (nymph: Nymph, name: string, result: Nymph) => Promise<void>;
32
+ export type NymphBeforeCommitTransactionCallback = (nymph: Nymph, name: string) => Promise<void>;
33
+ export type NymphAfterCommitTransactionCallback = (nymph: Nymph, name: string, result: boolean) => Promise<void>;
34
+ export type NymphBeforeRollbackTransactionCallback = (nymph: Nymph, name: string) => Promise<void>;
35
+ export type NymphAfterRollbackTransactionCallback = (nymph: Nymph, name: string, result: boolean) => Promise<void>;
23
36
  export type Options<T extends EntityConstructor = EntityConstructor> = {
24
37
  class?: T;
25
38
  limit?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"Nymph.types.js","sourceRoot":"","sources":["../src/Nymph.types.ts"],"names":[],"mappings":";;;AAwSA,IAAY,mBAMX;AAND,WAAY,mBAAmB;IAC7B,uEAAa,CAAA;IACb,2EAAe,CAAA;IACf,6EAAgB,CAAA;IAEhB,2EAAe,CAAA;AACjB,CAAC,EANW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAM9B"}
1
+ {"version":3,"file":"Nymph.types.js","sourceRoot":"","sources":["../src/Nymph.types.ts"],"names":[],"mappings":";;;AA4WA,IAAY,mBAMX;AAND,WAAY,mBAAmB;IAC7B,uEAAa,CAAA;IACb,2EAAe,CAAA;IACf,6EAAgB,CAAA;IAEhB,2EAAe,CAAA;AACjB,CAAC,EANW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAM9B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nymphjs/nymph",
3
- "version": "1.0.0-beta.11",
3
+ "version": "1.0.0-beta.13",
4
4
  "description": "NymphJS - Nymph ORM",
5
5
  "type": "commonjs",
6
6
  "main": "dist/index.js",
@@ -31,7 +31,7 @@
31
31
  },
32
32
  "license": "Apache-2.0",
33
33
  "dependencies": {
34
- "@nymphjs/guid": "^1.0.0-beta.11",
34
+ "@nymphjs/guid": "^1.0.0-beta.13",
35
35
  "joi": "^17.8.3",
36
36
  "locutus": "^2.0.16",
37
37
  "lodash": "^4.17.21",
@@ -47,5 +47,5 @@
47
47
  "ts-jest": "^29.0.5",
48
48
  "typescript": "^4.9.5"
49
49
  },
50
- "gitHead": "812eeec8e5b100c6f82abbae1722cfc64a167046"
50
+ "gitHead": "fcc750b12db6426cbf9dbd38618280c1ba965491"
51
51
  }
package/src/Nymph.ts CHANGED
@@ -12,18 +12,31 @@ import type {
12
12
  NymphBeforeGetEntitiesCallback,
13
13
  NymphBeforeSaveEntityCallback,
14
14
  NymphAfterSaveEntityCallback,
15
+ NymphFailedSaveEntityCallback,
15
16
  NymphBeforeDeleteEntityCallback,
16
17
  NymphAfterDeleteEntityCallback,
18
+ NymphFailedDeleteEntityCallback,
17
19
  NymphBeforeDeleteEntityByIDCallback,
18
20
  NymphAfterDeleteEntityByIDCallback,
21
+ NymphFailedDeleteEntityByIDCallback,
19
22
  NymphBeforeNewUIDCallback,
20
23
  NymphAfterNewUIDCallback,
24
+ NymphFailedNewUIDCallback,
21
25
  NymphBeforeSetUIDCallback,
22
26
  NymphAfterSetUIDCallback,
27
+ NymphFailedSetUIDCallback,
23
28
  NymphBeforeRenameUIDCallback,
24
29
  NymphAfterRenameUIDCallback,
30
+ NymphFailedRenameUIDCallback,
25
31
  NymphBeforeDeleteUIDCallback,
26
32
  NymphAfterDeleteUIDCallback,
33
+ NymphFailedDeleteUIDCallback,
34
+ NymphBeforeStartTransactionCallback,
35
+ NymphAfterStartTransactionCallback,
36
+ NymphBeforeCommitTransactionCallback,
37
+ NymphAfterCommitTransactionCallback,
38
+ NymphBeforeRollbackTransactionCallback,
39
+ NymphAfterRollbackTransactionCallback,
27
40
  NymphEventType,
28
41
  NymphQueryCallback,
29
42
  FormattedSelector,
@@ -41,10 +54,16 @@ import type {
41
54
  */
42
55
  export default class Nymph {
43
56
  /**
44
- * The PubSub config.
57
+ * The Nymph config.
45
58
  */
46
59
  public config: Config;
47
60
 
61
+ /**
62
+ * The Nymph instance that this one was cloned from, or null if it's not a
63
+ * clone.
64
+ */
65
+ public parent: Nymph | null;
66
+
48
67
  /**
49
68
  * The Nymph database driver.
50
69
  */
@@ -72,20 +91,40 @@ export default class Nymph {
72
91
  private beforeGetEntitiesCallbacks: NymphBeforeGetEntitiesCallback[] = [];
73
92
  private beforeSaveEntityCallbacks: NymphBeforeSaveEntityCallback[] = [];
74
93
  private afterSaveEntityCallbacks: NymphAfterSaveEntityCallback[] = [];
94
+ private failedSaveEntityCallbacks: NymphFailedSaveEntityCallback[] = [];
75
95
  private beforeDeleteEntityCallbacks: NymphBeforeDeleteEntityCallback[] = [];
76
96
  private afterDeleteEntityCallbacks: NymphAfterDeleteEntityCallback[] = [];
97
+ private failedDeleteEntityCallbacks: NymphFailedDeleteEntityCallback[] = [];
77
98
  private beforeDeleteEntityByIDCallbacks: NymphBeforeDeleteEntityByIDCallback[] =
78
99
  [];
79
100
  private afterDeleteEntityByIDCallbacks: NymphAfterDeleteEntityByIDCallback[] =
80
101
  [];
102
+ private failedDeleteEntityByIDCallbacks: NymphFailedDeleteEntityByIDCallback[] =
103
+ [];
81
104
  private beforeNewUIDCallbacks: NymphBeforeNewUIDCallback[] = [];
82
105
  private afterNewUIDCallbacks: NymphAfterNewUIDCallback[] = [];
106
+ private failedNewUIDCallbacks: NymphFailedNewUIDCallback[] = [];
83
107
  private beforeSetUIDCallbacks: NymphBeforeSetUIDCallback[] = [];
84
108
  private afterSetUIDCallbacks: NymphAfterSetUIDCallback[] = [];
109
+ private failedSetUIDCallbacks: NymphFailedSetUIDCallback[] = [];
85
110
  private beforeRenameUIDCallbacks: NymphBeforeRenameUIDCallback[] = [];
86
111
  private afterRenameUIDCallbacks: NymphAfterRenameUIDCallback[] = [];
112
+ private failedRenameUIDCallbacks: NymphFailedRenameUIDCallback[] = [];
87
113
  private beforeDeleteUIDCallbacks: NymphBeforeDeleteUIDCallback[] = [];
88
114
  private afterDeleteUIDCallbacks: NymphAfterDeleteUIDCallback[] = [];
115
+ private failedDeleteUIDCallbacks: NymphFailedDeleteUIDCallback[] = [];
116
+ private beforeStartTransactionCallbacks: NymphBeforeStartTransactionCallback[] =
117
+ [];
118
+ private afterStartTransactionCallbacks: NymphAfterStartTransactionCallback[] =
119
+ [];
120
+ private beforeCommitTransactionCallbacks: NymphBeforeCommitTransactionCallback[] =
121
+ [];
122
+ private afterCommitTransactionCallbacks: NymphAfterCommitTransactionCallback[] =
123
+ [];
124
+ private beforeRollbackTransactionCallbacks: NymphBeforeRollbackTransactionCallback[] =
125
+ [];
126
+ private afterRollbackTransactionCallbacks: NymphAfterRollbackTransactionCallback[] =
127
+ [];
89
128
 
90
129
  /**
91
130
  * Initialize Nymph.
@@ -101,6 +140,7 @@ export default class Nymph {
101
140
  ) {
102
141
  this.config = { ...defaults, ...config };
103
142
  this.driver = driver;
143
+ this.parent = null;
104
144
 
105
145
  this.Entity = this.addEntityClass(Entity);
106
146
 
@@ -158,6 +198,9 @@ export default class Nymph {
158
198
  this.driver.clone(),
159
199
  this.tilmeld?.clone()
160
200
  );
201
+
202
+ nymph.parent = this;
203
+
161
204
  for (const name in this.entityClasses) {
162
205
  if (name === 'Entity' || (this.entityClasses[name] as any).skipOnClone) {
163
206
  continue;
@@ -173,18 +216,31 @@ export default class Nymph {
173
216
  'beforeGetEntities',
174
217
  'beforeSaveEntity',
175
218
  'afterSaveEntity',
219
+ 'failedSaveEntity',
176
220
  'beforeDeleteEntity',
177
221
  'afterDeleteEntity',
222
+ 'failedDeleteEntity',
178
223
  'beforeDeleteEntityByID',
179
224
  'afterDeleteEntityByID',
225
+ 'failedDeleteEntityByID',
180
226
  'beforeNewUID',
181
227
  'afterNewUID',
228
+ 'failedNewUID',
182
229
  'beforeSetUID',
183
230
  'afterSetUID',
231
+ 'failedSetUID',
184
232
  'beforeRenameUID',
185
233
  'afterRenameUID',
234
+ 'failedRenameUID',
186
235
  'beforeDeleteUID',
187
236
  'afterDeleteUID',
237
+ 'failedDeleteUID',
238
+ 'beforeStartTransaction',
239
+ 'afterStartTransaction',
240
+ 'beforeCommitTransaction',
241
+ 'afterCommitTransaction',
242
+ 'beforeRollbackTransaction',
243
+ 'afterRollbackTransaction',
188
244
  ];
189
245
 
190
246
  for (let event of events) {
@@ -256,7 +312,18 @@ export default class Nymph {
256
312
  * @returns A new instance of Nymph that should be used for the transaction.
257
313
  */
258
314
  public async startTransaction(name: string): Promise<Nymph> {
259
- return await this.driver.startTransaction(name);
315
+ for (let callback of this.beforeStartTransactionCallbacks) {
316
+ if (callback) {
317
+ await callback(this, name);
318
+ }
319
+ }
320
+ const result = await this.driver.startTransaction(name);
321
+ for (let callback of this.afterStartTransactionCallbacks) {
322
+ if (callback) {
323
+ await callback(this, name, result);
324
+ }
325
+ }
326
+ return result;
260
327
  }
261
328
 
262
329
  /**
@@ -267,7 +334,18 @@ export default class Nymph {
267
334
  * @returns True on success, false on failure.
268
335
  */
269
336
  public async commit(name: string): Promise<boolean> {
270
- return await this.driver.commit(name);
337
+ for (let callback of this.beforeCommitTransactionCallbacks) {
338
+ if (callback) {
339
+ await callback(this, name);
340
+ }
341
+ }
342
+ const result = await this.driver.commit(name);
343
+ for (let callback of this.afterCommitTransactionCallbacks) {
344
+ if (callback) {
345
+ await callback(this, name, result);
346
+ }
347
+ }
348
+ return result;
271
349
  }
272
350
 
273
351
  /**
@@ -278,7 +356,18 @@ export default class Nymph {
278
356
  * @returns True on success, false on failure.
279
357
  */
280
358
  public async rollback(name: string): Promise<boolean> {
281
- return await this.driver.rollback(name);
359
+ for (let callback of this.beforeRollbackTransactionCallbacks) {
360
+ if (callback) {
361
+ await callback(this, name);
362
+ }
363
+ }
364
+ const result = await this.driver.rollback(name);
365
+ for (let callback of this.afterRollbackTransactionCallbacks) {
366
+ if (callback) {
367
+ await callback(this, name, result);
368
+ }
369
+ }
370
+ return result;
282
371
  }
283
372
 
284
373
  /**
@@ -317,7 +406,17 @@ export default class Nymph {
317
406
  await callback(this, name);
318
407
  }
319
408
  }
320
- const result = this.driver.newUID(name);
409
+ let result: Promise<number | null>;
410
+ try {
411
+ result = this.driver.newUID(name);
412
+ } catch (e: any) {
413
+ for (let callback of this.failedNewUIDCallbacks) {
414
+ if (callback) {
415
+ await callback(this, e);
416
+ }
417
+ }
418
+ throw e;
419
+ }
321
420
  for (let callback of this.afterNewUIDCallbacks) {
322
421
  if (callback) {
323
422
  await callback(this, result);
@@ -348,7 +447,17 @@ export default class Nymph {
348
447
  await callback(this, name, value);
349
448
  }
350
449
  }
351
- const result = this.driver.setUID(name, value);
450
+ let result: Promise<boolean>;
451
+ try {
452
+ result = this.driver.setUID(name, value);
453
+ } catch (e: any) {
454
+ for (let callback of this.failedSetUIDCallbacks) {
455
+ if (callback) {
456
+ await callback(this, e);
457
+ }
458
+ }
459
+ throw e;
460
+ }
352
461
  for (let callback of this.afterSetUIDCallbacks) {
353
462
  if (callback) {
354
463
  await callback(this, result);
@@ -369,7 +478,17 @@ export default class Nymph {
369
478
  await callback(this, name);
370
479
  }
371
480
  }
372
- const result = this.driver.deleteUID(name);
481
+ let result: Promise<boolean>;
482
+ try {
483
+ result = this.driver.deleteUID(name);
484
+ } catch (e: any) {
485
+ for (let callback of this.failedDeleteUIDCallbacks) {
486
+ if (callback) {
487
+ await callback(this, e);
488
+ }
489
+ }
490
+ throw e;
491
+ }
373
492
  for (let callback of this.afterDeleteUIDCallbacks) {
374
493
  if (callback) {
375
494
  await callback(this, result);
@@ -391,7 +510,17 @@ export default class Nymph {
391
510
  await callback(this, oldName, newName);
392
511
  }
393
512
  }
394
- const result = this.driver.renameUID(oldName, newName);
513
+ let result: Promise<boolean>;
514
+ try {
515
+ result = this.driver.renameUID(oldName, newName);
516
+ } catch (e: any) {
517
+ for (let callback of this.failedRenameUIDCallbacks) {
518
+ if (callback) {
519
+ await callback(this, e);
520
+ }
521
+ }
522
+ throw e;
523
+ }
395
524
  for (let callback of this.afterRenameUIDCallbacks) {
396
525
  if (callback) {
397
526
  await callback(this, result);
@@ -417,7 +546,17 @@ export default class Nymph {
417
546
  await callback(this, entity);
418
547
  }
419
548
  }
420
- const result = this.driver.saveEntity(entity);
549
+ let result: Promise<boolean>;
550
+ try {
551
+ result = this.driver.saveEntity(entity);
552
+ } catch (e: any) {
553
+ for (let callback of this.failedSaveEntityCallbacks) {
554
+ if (callback) {
555
+ await callback(this, e);
556
+ }
557
+ }
558
+ throw e;
559
+ }
421
560
  for (let callback of this.afterSaveEntityCallbacks) {
422
561
  if (callback) {
423
562
  await callback(this, result);
@@ -681,7 +820,17 @@ export default class Nymph {
681
820
  await callback(this, entity);
682
821
  }
683
822
  }
684
- const result = this.driver.deleteEntity(entity);
823
+ let result: Promise<boolean>;
824
+ try {
825
+ result = this.driver.deleteEntity(entity);
826
+ } catch (e: any) {
827
+ for (let callback of this.failedDeleteEntityCallbacks) {
828
+ if (callback) {
829
+ await callback(this, e);
830
+ }
831
+ }
832
+ throw e;
833
+ }
685
834
  for (let callback of this.afterDeleteEntityCallbacks) {
686
835
  if (callback) {
687
836
  await callback(this, result);
@@ -706,7 +855,17 @@ export default class Nymph {
706
855
  await callback(this, guid, className);
707
856
  }
708
857
  }
709
- const result = this.driver.deleteEntityByID(guid, className);
858
+ let result: Promise<boolean>;
859
+ try {
860
+ result = this.driver.deleteEntityByID(guid, className);
861
+ } catch (e: any) {
862
+ for (let callback of this.failedDeleteEntityByIDCallbacks) {
863
+ if (callback) {
864
+ await callback(this, e);
865
+ }
866
+ }
867
+ throw e;
868
+ }
710
869
  for (let callback of this.afterDeleteEntityByIDCallbacks) {
711
870
  if (callback) {
712
871
  await callback(this, result);
@@ -790,30 +949,56 @@ export default class Nymph {
790
949
  ? NymphBeforeSaveEntityCallback
791
950
  : T extends 'afterSaveEntity'
792
951
  ? NymphAfterSaveEntityCallback
952
+ : T extends 'failedSaveEntity'
953
+ ? NymphFailedSaveEntityCallback
793
954
  : T extends 'beforeDeleteEntity'
794
955
  ? NymphBeforeDeleteEntityCallback
795
956
  : T extends 'afterDeleteEntity'
796
957
  ? NymphAfterDeleteEntityCallback
958
+ : T extends 'failedDeleteEntity'
959
+ ? NymphFailedDeleteEntityCallback
797
960
  : T extends 'beforeDeleteEntityByID'
798
961
  ? NymphBeforeDeleteEntityByIDCallback
799
962
  : T extends 'afterDeleteEntityByID'
800
963
  ? NymphAfterDeleteEntityByIDCallback
964
+ : T extends 'failedDeleteEntityByID'
965
+ ? NymphFailedDeleteEntityByIDCallback
801
966
  : T extends 'beforeNewUID'
802
967
  ? NymphBeforeNewUIDCallback
803
968
  : T extends 'afterNewUID'
804
969
  ? NymphAfterNewUIDCallback
970
+ : T extends 'failedNewUID'
971
+ ? NymphFailedNewUIDCallback
805
972
  : T extends 'beforeSetUID'
806
973
  ? NymphBeforeSetUIDCallback
807
974
  : T extends 'afterSetUID'
808
975
  ? NymphAfterSetUIDCallback
976
+ : T extends 'failedSetUID'
977
+ ? NymphFailedSetUIDCallback
809
978
  : T extends 'beforeRenameUID'
810
979
  ? NymphBeforeRenameUIDCallback
811
980
  : T extends 'afterRenameUID'
812
981
  ? NymphAfterRenameUIDCallback
982
+ : T extends 'failedRenameUID'
983
+ ? NymphFailedRenameUIDCallback
813
984
  : T extends 'beforeDeleteUID'
814
985
  ? NymphBeforeDeleteUIDCallback
815
986
  : T extends 'afterDeleteUID'
816
987
  ? NymphAfterDeleteUIDCallback
988
+ : T extends 'failedDeleteUID'
989
+ ? NymphFailedDeleteUIDCallback
990
+ : T extends 'beforeStartTransaction'
991
+ ? NymphBeforeStartTransactionCallback
992
+ : T extends 'afterStartTransaction'
993
+ ? NymphAfterStartTransactionCallback
994
+ : T extends 'beforeCommitTransaction'
995
+ ? NymphBeforeCommitTransactionCallback
996
+ : T extends 'afterCommitTransaction'
997
+ ? NymphAfterCommitTransactionCallback
998
+ : T extends 'beforeRollbackTransaction'
999
+ ? NymphBeforeRollbackTransactionCallback
1000
+ : T extends 'afterRollbackTransaction'
1001
+ ? NymphAfterRollbackTransactionCallback
817
1002
  : never
818
1003
  ) {
819
1004
  const prop = (event + 'Callbacks') as T extends 'connect'
@@ -830,30 +1015,56 @@ export default class Nymph {
830
1015
  ? 'beforeSaveEntityCallbacks'
831
1016
  : T extends 'afterSaveEntity'
832
1017
  ? 'afterSaveEntityCallbacks'
1018
+ : T extends 'failedSaveEntity'
1019
+ ? 'failedSaveEntityCallbacks'
833
1020
  : T extends 'beforeDeleteEntity'
834
1021
  ? 'beforeDeleteEntityCallbacks'
835
1022
  : T extends 'afterDeleteEntity'
836
1023
  ? 'afterDeleteEntityCallbacks'
1024
+ : T extends 'failedDeleteEntity'
1025
+ ? 'failedDeleteEntityCallbacks'
837
1026
  : T extends 'beforeDeleteEntityByID'
838
1027
  ? 'beforeDeleteEntityByIDCallbacks'
839
1028
  : T extends 'afterDeleteEntityByID'
840
1029
  ? 'afterDeleteEntityByIDCallbacks'
1030
+ : T extends 'failedDeleteEntityByID'
1031
+ ? 'failedDeleteEntityByIDCallbacks'
841
1032
  : T extends 'beforeNewUID'
842
1033
  ? 'beforeNewUIDCallbacks'
843
1034
  : T extends 'afterNewUID'
844
1035
  ? 'afterNewUIDCallbacks'
1036
+ : T extends 'failedNewUID'
1037
+ ? 'failedNewUIDCallbacks'
845
1038
  : T extends 'beforeSetUID'
846
1039
  ? 'beforeSetUIDCallbacks'
847
1040
  : T extends 'afterSetUID'
848
1041
  ? 'afterSetUIDCallbacks'
1042
+ : T extends 'failedSetUID'
1043
+ ? 'failedSetUIDCallbacks'
849
1044
  : T extends 'beforeRenameUID'
850
1045
  ? 'beforeRenameUIDCallbacks'
851
1046
  : T extends 'afterRenameUID'
852
1047
  ? 'afterRenameUIDCallbacks'
1048
+ : T extends 'failedRenameUID'
1049
+ ? 'failedRenameUIDCallbacks'
853
1050
  : T extends 'beforeDeleteUID'
854
1051
  ? 'beforeDeleteUIDCallbacks'
855
1052
  : T extends 'afterDeleteUID'
856
1053
  ? 'afterDeleteUIDCallbacks'
1054
+ : T extends 'failedDeleteUID'
1055
+ ? 'failedDeleteUIDCallbacks'
1056
+ : T extends 'beforeStartTransaction'
1057
+ ? 'beforeStartTransactionCallbacks'
1058
+ : T extends 'afterStartTransaction'
1059
+ ? 'afterStartTransactionCallbacks'
1060
+ : T extends 'beforeCommitTransaction'
1061
+ ? 'beforeCommitTransactionCallbacks'
1062
+ : T extends 'afterCommitTransaction'
1063
+ ? 'afterCommitTransactionCallbacks'
1064
+ : T extends 'beforeRollbackTransaction'
1065
+ ? 'beforeRollbackTransactionCallbacks'
1066
+ : T extends 'afterRollbackTransaction'
1067
+ ? 'afterRollbackTransactionCallbacks'
857
1068
  : never;
858
1069
  if (!(prop in this)) {
859
1070
  throw new Error('Invalid event type.');
@@ -879,30 +1090,56 @@ export default class Nymph {
879
1090
  ? NymphBeforeSaveEntityCallback
880
1091
  : T extends 'afterSaveEntity'
881
1092
  ? NymphAfterSaveEntityCallback
1093
+ : T extends 'failedSaveEntity'
1094
+ ? NymphFailedSaveEntityCallback
882
1095
  : T extends 'beforeDeleteEntity'
883
1096
  ? NymphBeforeDeleteEntityCallback
884
1097
  : T extends 'afterDeleteEntity'
885
1098
  ? NymphAfterDeleteEntityCallback
1099
+ : T extends 'failedDeleteEntity'
1100
+ ? NymphFailedDeleteEntityCallback
886
1101
  : T extends 'beforeDeleteEntityByID'
887
1102
  ? NymphBeforeDeleteEntityByIDCallback
888
1103
  : T extends 'afterDeleteEntityByID'
889
1104
  ? NymphAfterDeleteEntityByIDCallback
1105
+ : T extends 'failedDeleteEntityByID'
1106
+ ? NymphFailedDeleteEntityByIDCallback
890
1107
  : T extends 'beforeNewUID'
891
1108
  ? NymphBeforeNewUIDCallback
892
1109
  : T extends 'afterNewUID'
893
1110
  ? NymphAfterNewUIDCallback
1111
+ : T extends 'failedNewUID'
1112
+ ? NymphFailedNewUIDCallback
894
1113
  : T extends 'beforeSetUID'
895
1114
  ? NymphBeforeSetUIDCallback
896
1115
  : T extends 'afterSetUID'
897
1116
  ? NymphAfterSetUIDCallback
1117
+ : T extends 'failedSetUID'
1118
+ ? NymphFailedSetUIDCallback
898
1119
  : T extends 'beforeRenameUID'
899
1120
  ? NymphBeforeRenameUIDCallback
900
1121
  : T extends 'afterRenameUID'
901
1122
  ? NymphAfterRenameUIDCallback
1123
+ : T extends 'failedRenameUID'
1124
+ ? NymphFailedRenameUIDCallback
902
1125
  : T extends 'beforeDeleteUID'
903
1126
  ? NymphBeforeDeleteUIDCallback
904
1127
  : T extends 'afterDeleteUID'
905
1128
  ? NymphAfterDeleteUIDCallback
1129
+ : T extends 'failedDeleteUID'
1130
+ ? NymphFailedDeleteUIDCallback
1131
+ : T extends 'beforeStartTransaction'
1132
+ ? NymphBeforeStartTransactionCallback
1133
+ : T extends 'afterStartTransaction'
1134
+ ? NymphAfterStartTransactionCallback
1135
+ : T extends 'beforeCommitTransaction'
1136
+ ? NymphBeforeCommitTransactionCallback
1137
+ : T extends 'afterCommitTransaction'
1138
+ ? NymphAfterCommitTransactionCallback
1139
+ : T extends 'beforeRollbackTransaction'
1140
+ ? NymphBeforeRollbackTransactionCallback
1141
+ : T extends 'afterRollbackTransaction'
1142
+ ? NymphAfterRollbackTransactionCallback
906
1143
  : never
907
1144
  ) {
908
1145
  const prop = (event + 'Callbacks') as T extends 'connect'
@@ -919,30 +1156,56 @@ export default class Nymph {
919
1156
  ? 'beforeGetEntitiesCallbacks'
920
1157
  : T extends 'afterSaveEntity'
921
1158
  ? 'afterSaveEntityCallbacks'
1159
+ : T extends 'failedSaveEntity'
1160
+ ? 'failedSaveEntityCallbacks'
922
1161
  : T extends 'beforeDeleteEntity'
923
1162
  ? 'beforeDeleteEntityCallbacks'
924
1163
  : T extends 'afterDeleteEntity'
925
1164
  ? 'afterDeleteEntityCallbacks'
1165
+ : T extends 'failedDeleteEntity'
1166
+ ? 'failedDeleteEntityCallbacks'
926
1167
  : T extends 'beforeDeleteEntityByID'
927
1168
  ? 'beforeDeleteEntityByIDCallbacks'
928
1169
  : T extends 'afterDeleteEntityByID'
929
1170
  ? 'afterDeleteEntityByIDCallbacks'
1171
+ : T extends 'failedDeleteEntityByID'
1172
+ ? 'failedDeleteEntityByIDCallbacks'
930
1173
  : T extends 'beforeNewUID'
931
1174
  ? 'beforeNewUIDCallbacks'
932
1175
  : T extends 'afterNewUID'
933
1176
  ? 'afterNewUIDCallbacks'
1177
+ : T extends 'failedNewUID'
1178
+ ? 'failedNewUIDCallbacks'
934
1179
  : T extends 'beforeSetUID'
935
1180
  ? 'beforeSetUIDCallbacks'
936
1181
  : T extends 'afterSetUID'
937
1182
  ? 'afterSetUIDCallbacks'
1183
+ : T extends 'failedSetUID'
1184
+ ? 'failedSetUIDCallbacks'
938
1185
  : T extends 'beforeRenameUID'
939
1186
  ? 'beforeRenameUIDCallbacks'
940
1187
  : T extends 'afterRenameUID'
941
1188
  ? 'afterRenameUIDCallbacks'
1189
+ : T extends 'failedRenameUID'
1190
+ ? 'failedRenameUIDCallbacks'
942
1191
  : T extends 'beforeDeleteUID'
943
1192
  ? 'beforeDeleteUIDCallbacks'
944
1193
  : T extends 'afterDeleteUID'
945
1194
  ? 'afterDeleteUIDCallbacks'
1195
+ : T extends 'failedDeleteUID'
1196
+ ? 'failedDeleteUIDCallbacks'
1197
+ : T extends 'beforeStartTransaction'
1198
+ ? 'beforeStartTransactionCallbacks'
1199
+ : T extends 'afterStartTransaction'
1200
+ ? 'afterStartTransactionCallbacks'
1201
+ : T extends 'beforeCommitTransaction'
1202
+ ? 'beforeCommitTransactionCallbacks'
1203
+ : T extends 'afterCommitTransaction'
1204
+ ? 'afterCommitTransactionCallbacks'
1205
+ : T extends 'beforeRollbackTransaction'
1206
+ ? 'beforeRollbackTransactionCallbacks'
1207
+ : T extends 'afterRollbackTransaction'
1208
+ ? 'afterRollbackTransactionCallbacks'
946
1209
  : never;
947
1210
  if (!(prop in this)) {
948
1211
  return false;
@@ -9,18 +9,31 @@ export type NymphEventType =
9
9
  | 'beforeGetEntities'
10
10
  | 'beforeSaveEntity'
11
11
  | 'afterSaveEntity'
12
+ | 'failedSaveEntity'
12
13
  | 'beforeDeleteEntity'
13
14
  | 'afterDeleteEntity'
15
+ | 'failedDeleteEntity'
14
16
  | 'beforeDeleteEntityByID'
15
17
  | 'afterDeleteEntityByID'
18
+ | 'failedDeleteEntityByID'
16
19
  | 'beforeNewUID'
17
20
  | 'afterNewUID'
21
+ | 'failedNewUID'
18
22
  | 'beforeSetUID'
19
23
  | 'afterSetUID'
24
+ | 'failedSetUID'
20
25
  | 'beforeRenameUID'
21
26
  | 'afterRenameUID'
27
+ | 'failedRenameUID'
22
28
  | 'beforeDeleteUID'
23
- | 'afterDeleteUID';
29
+ | 'afterDeleteUID'
30
+ | 'failedDeleteUID'
31
+ | 'beforeStartTransaction'
32
+ | 'afterStartTransaction'
33
+ | 'beforeCommitTransaction'
34
+ | 'afterCommitTransaction'
35
+ | 'beforeRollbackTransaction'
36
+ | 'afterRollbackTransaction';
24
37
  export type NymphConnectCallback = (
25
38
  nymph: Nymph,
26
39
  result: Promise<boolean>
@@ -63,6 +76,10 @@ export type NymphAfterSaveEntityCallback = (
63
76
  nymph: Nymph,
64
77
  result: Promise<boolean>
65
78
  ) => Promise<void>;
79
+ export type NymphFailedSaveEntityCallback = (
80
+ nymph: Nymph,
81
+ error: any
82
+ ) => Promise<void>;
66
83
  export type NymphBeforeDeleteEntityCallback = (
67
84
  nymph: Nymph,
68
85
  entity: EntityInterface
@@ -71,6 +88,10 @@ export type NymphAfterDeleteEntityCallback = (
71
88
  nymph: Nymph,
72
89
  result: Promise<boolean>
73
90
  ) => Promise<void>;
91
+ export type NymphFailedDeleteEntityCallback = (
92
+ nymph: Nymph,
93
+ error: any
94
+ ) => Promise<void>;
74
95
  export type NymphBeforeDeleteEntityByIDCallback = (
75
96
  nymph: Nymph,
76
97
  guid: string,
@@ -80,6 +101,10 @@ export type NymphAfterDeleteEntityByIDCallback = (
80
101
  nymph: Nymph,
81
102
  result: Promise<boolean>
82
103
  ) => Promise<void>;
104
+ export type NymphFailedDeleteEntityByIDCallback = (
105
+ nymph: Nymph,
106
+ error: any
107
+ ) => Promise<void>;
83
108
  export type NymphBeforeNewUIDCallback = (
84
109
  nymph: Nymph,
85
110
  name: string
@@ -88,6 +113,10 @@ export type NymphAfterNewUIDCallback = (
88
113
  nymph: Nymph,
89
114
  result: Promise<number | null>
90
115
  ) => Promise<void>;
116
+ export type NymphFailedNewUIDCallback = (
117
+ nymph: Nymph,
118
+ error: any
119
+ ) => Promise<void>;
91
120
  export type NymphBeforeSetUIDCallback = (
92
121
  nymph: Nymph,
93
122
  name: string,
@@ -97,6 +126,10 @@ export type NymphAfterSetUIDCallback = (
97
126
  nymph: Nymph,
98
127
  result: Promise<boolean>
99
128
  ) => Promise<void>;
129
+ export type NymphFailedSetUIDCallback = (
130
+ nymph: Nymph,
131
+ error: any
132
+ ) => Promise<void>;
100
133
  export type NymphBeforeRenameUIDCallback = (
101
134
  nymph: Nymph,
102
135
  oldName: string,
@@ -106,6 +139,10 @@ export type NymphAfterRenameUIDCallback = (
106
139
  nymph: Nymph,
107
140
  result: Promise<boolean>
108
141
  ) => Promise<void>;
142
+ export type NymphFailedRenameUIDCallback = (
143
+ nymph: Nymph,
144
+ error: any
145
+ ) => Promise<void>;
109
146
  export type NymphBeforeDeleteUIDCallback = (
110
147
  nymph: Nymph,
111
148
  name: string
@@ -114,6 +151,37 @@ export type NymphAfterDeleteUIDCallback = (
114
151
  nymph: Nymph,
115
152
  result: Promise<boolean>
116
153
  ) => Promise<void>;
154
+ export type NymphFailedDeleteUIDCallback = (
155
+ nymph: Nymph,
156
+ error: any
157
+ ) => Promise<void>;
158
+ export type NymphBeforeStartTransactionCallback = (
159
+ nymph: Nymph,
160
+ name: string
161
+ ) => Promise<void>;
162
+ export type NymphAfterStartTransactionCallback = (
163
+ nymph: Nymph,
164
+ name: string,
165
+ result: Nymph
166
+ ) => Promise<void>;
167
+ export type NymphBeforeCommitTransactionCallback = (
168
+ nymph: Nymph,
169
+ name: string
170
+ ) => Promise<void>;
171
+ export type NymphAfterCommitTransactionCallback = (
172
+ nymph: Nymph,
173
+ name: string,
174
+ result: boolean
175
+ ) => Promise<void>;
176
+ export type NymphBeforeRollbackTransactionCallback = (
177
+ nymph: Nymph,
178
+ name: string
179
+ ) => Promise<void>;
180
+ export type NymphAfterRollbackTransactionCallback = (
181
+ nymph: Nymph,
182
+ name: string,
183
+ result: boolean
184
+ ) => Promise<void>;
117
185
 
118
186
  export type Options<T extends EntityConstructor = EntityConstructor> = {
119
187
  class?: T;