@nymphjs/nymph 1.0.0-beta.2 → 1.0.0-beta.20

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/dist/Nymph.js CHANGED
@@ -7,22 +7,9 @@ const conf_1 = require("./conf");
7
7
  const Entity_1 = __importDefault(require("./Entity"));
8
8
  const errors_1 = require("./errors");
9
9
  class Nymph {
10
- addEntityClass(entityClass) {
11
- this.entityClasses[entityClass.class] = entityClass;
12
- entityClass.nymph = this;
13
- }
14
- getEntityClass(className) {
15
- if (className in this.entityClasses) {
16
- const EntityClass = this.entityClasses[className];
17
- EntityClass.nymph = this;
18
- return EntityClass;
19
- }
20
- throw new errors_1.ClassNotAvailableError('Tried to use class: ' + className);
21
- }
22
10
  constructor(config, driver, tilmeld) {
23
11
  this.tilmeld = undefined;
24
12
  this.entityClasses = {};
25
- this.Entity = Entity_1.default;
26
13
  this.connectCallbacks = [];
27
14
  this.disconnectCallbacks = [];
28
15
  this.queryCallbacks = [];
@@ -30,35 +17,63 @@ class Nymph {
30
17
  this.beforeGetEntitiesCallbacks = [];
31
18
  this.beforeSaveEntityCallbacks = [];
32
19
  this.afterSaveEntityCallbacks = [];
20
+ this.failedSaveEntityCallbacks = [];
33
21
  this.beforeDeleteEntityCallbacks = [];
34
22
  this.afterDeleteEntityCallbacks = [];
23
+ this.failedDeleteEntityCallbacks = [];
35
24
  this.beforeDeleteEntityByIDCallbacks = [];
36
25
  this.afterDeleteEntityByIDCallbacks = [];
26
+ this.failedDeleteEntityByIDCallbacks = [];
37
27
  this.beforeNewUIDCallbacks = [];
38
28
  this.afterNewUIDCallbacks = [];
29
+ this.failedNewUIDCallbacks = [];
39
30
  this.beforeSetUIDCallbacks = [];
40
31
  this.afterSetUIDCallbacks = [];
32
+ this.failedSetUIDCallbacks = [];
41
33
  this.beforeRenameUIDCallbacks = [];
42
34
  this.afterRenameUIDCallbacks = [];
35
+ this.failedRenameUIDCallbacks = [];
43
36
  this.beforeDeleteUIDCallbacks = [];
44
37
  this.afterDeleteUIDCallbacks = [];
38
+ this.failedDeleteUIDCallbacks = [];
39
+ this.beforeStartTransactionCallbacks = [];
40
+ this.afterStartTransactionCallbacks = [];
41
+ this.beforeCommitTransactionCallbacks = [];
42
+ this.afterCommitTransactionCallbacks = [];
43
+ this.beforeRollbackTransactionCallbacks = [];
44
+ this.afterRollbackTransactionCallbacks = [];
45
45
  this.config = { ...conf_1.ConfigDefaults, ...config };
46
46
  this.driver = driver;
47
- if (typeof tilmeld !== 'undefined') {
47
+ this.parent = null;
48
+ this.Entity = this.addEntityClass(Entity_1.default);
49
+ if (tilmeld != null) {
48
50
  this.tilmeld = tilmeld;
49
51
  }
50
- class NymphEntity extends Entity_1.default {
51
- }
52
- NymphEntity.nymph = this;
53
- this.Entity = NymphEntity;
54
- this.addEntityClass(NymphEntity);
55
52
  this.driver.init(this);
56
53
  if (this.tilmeld) {
57
54
  this.tilmeld.init(this);
58
55
  }
59
56
  }
57
+ addEntityClass(entityClass) {
58
+ const nymph = this;
59
+ class NymphEntity extends entityClass {
60
+ constructor(...args) {
61
+ super(...args);
62
+ }
63
+ }
64
+ NymphEntity.nymph = nymph;
65
+ this.entityClasses[entityClass.class] = NymphEntity;
66
+ return NymphEntity;
67
+ }
68
+ getEntityClass(className) {
69
+ if (className in this.entityClasses) {
70
+ return this.entityClasses[className];
71
+ }
72
+ throw new errors_1.ClassNotAvailableError('Tried to use class: ' + className);
73
+ }
60
74
  clone() {
61
- const nymph = new Nymph(this.config, this.driver, this.tilmeld?.clone());
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';
@@ -116,21 +144,54 @@ class Nymph {
116
144
  }
117
145
  return await result;
118
146
  }
119
- async runQueryCallbacks(options, selectors) {
147
+ runQueryCallbacks(options, selectors) {
120
148
  for (let callback of this.queryCallbacks) {
121
149
  if (callback) {
122
- await callback(this, options, selectors);
150
+ callback(this, options, selectors);
123
151
  }
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,31 +1,44 @@
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
- export type NymphQueryCallback = (nymph: Nymph, options: Options, selectors: FormattedSelector[]) => Promise<void>;
6
+ export type NymphQueryCallback = (nymph: Nymph, options: Options, selectors: FormattedSelector[]) => void;
7
7
  export type NymphBeforeGetEntityCallback = (nymph: Nymph, options: Options, selectors: Selector[]) => Promise<void>;
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;
26
39
  offset?: number;
27
40
  reverse?: boolean;
28
- sort?: 'cdate' | 'mdate';
41
+ sort?: 'cdate' | 'mdate' | string;
29
42
  return?: 'entity' | 'guid' | 'count';
30
43
  source?: string;
31
44
  skipCache?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"Nymph.types.js","sourceRoot":"","sources":["../src/Nymph.types.ts"],"names":[],"mappings":";;;AA8RA,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"}
@@ -16,6 +16,7 @@ export default abstract class NymphDriver {
16
16
  [k: string]: number;
17
17
  };
18
18
  private putDataCounter;
19
+ abstract clone(): NymphDriver;
19
20
  abstract connect(): Promise<boolean>;
20
21
  abstract isConnected(): boolean;
21
22
  abstract startTransaction(name: string): Promise<Nymph>;
@@ -58,7 +59,10 @@ export default abstract class NymphDriver {
58
59
  protected cleanCache(guid: string): void;
59
60
  deleteEntity(entity: EntityInterface): Promise<boolean>;
60
61
  protected entityReferenceSearch(value: any, entity: EntityInterface | EntityReference | string | (EntityInterface | EntityReference | string)[]): boolean;
61
- formatSelectors(selectors: Selector[], options?: Options): FormattedSelector[];
62
+ formatSelectors(selectors: Selector[], options?: Options): {
63
+ selectors: FormattedSelector[];
64
+ qrefs: [Options, ...FormattedSelector[]][];
65
+ };
62
66
  protected iterateSelectorsForQuery(selectors: FormattedSelector[], callback: (key: string, value: any, typeIsOr: boolean, typeIsNot: boolean) => string): string[];
63
67
  getEntitySync<T extends EntityConstructor = EntityConstructor>(options: Options<T> & {
64
68
  return: 'count';
@@ -87,7 +91,7 @@ export default abstract class NymphDriver {
87
91
  svalue: string;
88
92
  }): {
89
93
  result: any;
90
- process: () => number;
94
+ process: () => number | Error;
91
95
  };
92
96
  protected getEntitesRowLike<T extends EntityConstructor = EntityConstructor>(options: Options<T> & {
93
97
  return: 'guid';
@@ -102,7 +106,7 @@ export default abstract class NymphDriver {
102
106
  svalue: string;
103
107
  }): {
104
108
  result: any;
105
- process: () => string[];
109
+ process: () => string[] | Error;
106
110
  };
107
111
  protected getEntitesRowLike<T extends EntityConstructor = EntityConstructor>(options: Options<T>, selectors: Selector[], performQueryCallback: (options: Options<T>, formattedSelectors: FormattedSelector[], etype: string) => {
108
112
  result: any;
@@ -115,7 +119,7 @@ export default abstract class NymphDriver {
115
119
  svalue: string;
116
120
  }): {
117
121
  result: any;
118
- process: () => ReturnType<T['factorySync']>[];
122
+ process: () => ReturnType<T['factorySync']>[] | Error;
119
123
  };
120
124
  protected saveEntityRowLike(entity: EntityInterface, saveNewEntityCallback: (entity: EntityInterface, guid: string, tags: string[], data: EntityData, sdata: SerializedEntityData, cdate: number, etype: string) => Promise<boolean>, saveExistingEntityCallback: (entity: EntityInterface, guid: string, tags: string[], data: EntityData, sdata: SerializedEntityData, mdate: number, etype: string) => Promise<boolean>, startTransactionCallback?: (() => Promise<void>) | null, commitTransactionCallback?: ((success: boolean) => Promise<boolean>) | null): Promise<boolean>;
121
125
  protected pullCache<T extends EntityInterface = EntityInterface>(guid: string, className: string, useSkipAc?: boolean): T | null;
@@ -144,7 +144,7 @@ class NymphDriver {
144
144
  return true;
145
145
  }
146
146
  checkData(data, sdata, selectors, guid = null, tags = null) {
147
- const formattedSelectors = this.formatSelectors(selectors);
147
+ const formattedSelectors = this.formatSelectors(selectors).selectors;
148
148
  for (const curSelector of formattedSelectors) {
149
149
  const type = curSelector.type;
150
150
  const typeIsNot = type === '!&' || type === '!|';
@@ -334,6 +334,7 @@ class NymphDriver {
334
334
  }
335
335
  formatSelectors(selectors, options = {}) {
336
336
  const newSelectors = [];
337
+ const qrefs = [];
337
338
  for (const curSelector of selectors) {
338
339
  const newSelector = {
339
340
  type: curSelector.type,
@@ -364,14 +365,16 @@ class NymphDriver {
364
365
  source: options.source,
365
366
  };
366
367
  const newSelectors = this.formatSelectors(qrefSelectors, options);
367
- this.nymph.runQueryCallbacks(newOptions, newSelectors);
368
- formatArr[i] = [name, [newOptions, ...newSelectors]];
368
+ qrefs.push([newOptions, ...newSelectors.selectors], ...newSelectors.qrefs);
369
+ formatArr[i] = [name, [newOptions, ...newSelectors.selectors]];
369
370
  }
370
371
  newSelector[key] = formatArr;
371
372
  }
372
373
  else if (key === 'selector' || key === '!selector') {
373
374
  const tmpArr = (Array.isArray(value) ? value : [value]);
374
- newSelector[key] = this.formatSelectors(tmpArr, options);
375
+ const newSelectors = this.formatSelectors(tmpArr, options);
376
+ newSelector[key] = newSelectors.selectors;
377
+ qrefs.push(...newSelectors.qrefs);
375
378
  }
376
379
  else if (!Array.isArray(value)) {
377
380
  newSelector[key] = [[value]];
@@ -399,7 +402,7 @@ class NymphDriver {
399
402
  }
400
403
  newSelectors.push(newSelector);
401
404
  }
402
- return newSelectors;
405
+ return { selectors: newSelectors, qrefs };
403
406
  }
404
407
  iterateSelectorsForQuery(selectors, callback) {
405
408
  const queryParts = [];
@@ -486,70 +489,84 @@ class NymphDriver {
486
489
  }
487
490
  }
488
491
  }
489
- const formattedSelectors = this.formatSelectors(selectors, options);
490
- this.nymph.runQueryCallbacks(options, formattedSelectors);
491
- const { result } = performQueryCallback(options, formattedSelectors, etype);
492
- return {
493
- result,
494
- process: () => {
495
- let row = rowFetchCallback();
496
- if (options.return === 'count') {
497
- while (row != null) {
498
- count += getCountCallback(row);
499
- row = rowFetchCallback();
500
- }
501
- }
502
- else if (options.return === 'guid') {
503
- while (row != null) {
504
- entities.push(getGUIDCallback(row));
505
- row = rowFetchCallback();
506
- }
507
- }
508
- else {
509
- while (row != null) {
510
- const guid = getGUIDCallback(row);
511
- const tagsAndDates = getTagsAndDatesCallback(row);
512
- const tags = tagsAndDates.tags;
513
- const cdate = tagsAndDates.cdate;
514
- const mdate = tagsAndDates.mdate;
515
- let dataNameAndSValue = getDataNameAndSValueCallback(row);
516
- const data = {};
517
- const sdata = {};
518
- if (dataNameAndSValue.name !== '') {
519
- do {
520
- dataNameAndSValue = getDataNameAndSValueCallback(row);
521
- sdata[dataNameAndSValue.name] = dataNameAndSValue.svalue;
522
- row = rowFetchCallback();
523
- } while (row != null && getGUIDCallback(row) === guid);
524
- }
525
- else {
492
+ try {
493
+ const formattedSelectors = this.formatSelectors(selectors, options);
494
+ this.nymph.runQueryCallbacks(options, formattedSelectors.selectors);
495
+ for (let qref of formattedSelectors.qrefs) {
496
+ const [options, ...selectors] = qref;
497
+ this.nymph.runQueryCallbacks(options, selectors);
498
+ }
499
+ const { result } = performQueryCallback(options, formattedSelectors.selectors, etype);
500
+ return {
501
+ result,
502
+ process: () => {
503
+ let row = rowFetchCallback();
504
+ if (options.return === 'count') {
505
+ while (row != null) {
506
+ count += getCountCallback(row);
526
507
  row = rowFetchCallback();
527
508
  }
528
- const entity = EntityClass.factorySync();
529
- entity.$nymph = this.nymph;
530
- if (options.skipAc != null) {
531
- entity.$useSkipAc(!!options.skipAc);
532
- }
533
- entity.guid = guid;
534
- entity.cdate = cdate;
535
- entity.mdate = mdate;
536
- entity.tags = tags;
537
- this.putDataCounter++;
538
- if (this.putDataCounter == 100) {
539
- throw new Error('Infinite loop detected in Entity loading.');
509
+ }
510
+ else if (options.return === 'guid') {
511
+ while (row != null) {
512
+ entities.push(getGUIDCallback(row));
513
+ row = rowFetchCallback();
540
514
  }
541
- entity.$putData(data, sdata);
542
- this.putDataCounter--;
543
- if (this.nymph.config.cache) {
544
- this.pushCache(guid, cdate, mdate, tags, data, sdata);
515
+ }
516
+ else {
517
+ while (row != null) {
518
+ const guid = getGUIDCallback(row);
519
+ const tagsAndDates = getTagsAndDatesCallback(row);
520
+ const tags = tagsAndDates.tags;
521
+ const cdate = tagsAndDates.cdate;
522
+ const mdate = tagsAndDates.mdate;
523
+ let dataNameAndSValue = getDataNameAndSValueCallback(row);
524
+ const data = {};
525
+ const sdata = {};
526
+ if (dataNameAndSValue.name !== '') {
527
+ do {
528
+ dataNameAndSValue = getDataNameAndSValueCallback(row);
529
+ sdata[dataNameAndSValue.name] = dataNameAndSValue.svalue;
530
+ row = rowFetchCallback();
531
+ } while (row != null && getGUIDCallback(row) === guid);
532
+ }
533
+ else {
534
+ row = rowFetchCallback();
535
+ }
536
+ const entity = EntityClass.factorySync();
537
+ entity.$nymph = this.nymph;
538
+ if (options.skipAc != null) {
539
+ entity.$useSkipAc(!!options.skipAc);
540
+ }
541
+ entity.guid = guid;
542
+ entity.cdate = cdate;
543
+ entity.mdate = mdate;
544
+ entity.tags = tags;
545
+ this.putDataCounter++;
546
+ if (this.putDataCounter == 100) {
547
+ throw new Error('Infinite loop detected in Entity loading.');
548
+ }
549
+ entity.$putData(data, sdata);
550
+ this.putDataCounter--;
551
+ if (this.nymph.config.cache) {
552
+ this.pushCache(guid, cdate, mdate, tags, data, sdata);
553
+ }
554
+ entities.push(entity);
545
555
  }
546
- entities.push(entity);
547
556
  }
548
- }
549
- freeResultCallback();
550
- return options.return === 'count' ? count : entities;
551
- },
552
- };
557
+ freeResultCallback();
558
+ return options.return === 'count' ? count : entities;
559
+ },
560
+ };
561
+ }
562
+ catch (e) {
563
+ return {
564
+ result: Promise.resolve(e),
565
+ process: () => {
566
+ return e;
567
+ },
568
+ };
569
+ }
553
570
  }
554
571
  async saveEntityRowLike(entity, saveNewEntityCallback, saveExistingEntityCallback, startTransactionCallback = null, commitTransactionCallback = null) {
555
572
  const mdate = Date.now();