@vcmap/core 5.2.0 → 5.2.1

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.
@@ -57,7 +57,7 @@ declare class VcsApp {
57
57
  private _categoryClassRegistry;
58
58
  private _categories;
59
59
  private _destroyed;
60
- private _moduleMutationPromise;
60
+ private _moduleMutationChain;
61
61
  private _categoryItemClassRegistry;
62
62
  private _tileProviderClassRegistry;
63
63
  private _featureProviderClassRegistry;
@@ -98,7 +98,13 @@ declare class VcsApp {
98
98
  getModuleById(id: string): VcsModule | undefined;
99
99
  protected _parseModule(module: VcsModule): Promise<void>;
100
100
  protected _setModuleState(module: VcsModule): Promise<void>;
101
+ /**
102
+ * When adding multiple modules, adding of previous modules are awaited.
103
+ * If an invalid module is added an error is thrown and already added items of invalid module are removed.
104
+ * @param module
105
+ */
101
106
  addModule(module: VcsModule): Promise<void>;
107
+ _startModuleMutationChain(): void;
102
108
  serializeModule(moduleId: string): VcsModuleConfig;
103
109
  /**
104
110
  * sets the given module as the dynamic
@@ -61,7 +61,7 @@ class VcsApp {
61
61
  _categoryClassRegistry;
62
62
  _categories;
63
63
  _destroyed;
64
- _moduleMutationPromise;
64
+ _moduleMutationChain;
65
65
  _categoryItemClassRegistry;
66
66
  _tileProviderClassRegistry;
67
67
  _featureProviderClassRegistry;
@@ -95,7 +95,7 @@ class VcsApp {
95
95
  this._categoryClassRegistry = new OverrideClassRegistry(categoryClassRegistry);
96
96
  this._categories = new CategoryCollection(this);
97
97
  this._destroyed = new VcsEvent();
98
- this._moduleMutationPromise = Promise.resolve();
98
+ this._moduleMutationChain = { running: false, items: [] };
99
99
  this._categoryItemClassRegistry = new OverrideClassRegistry(new ClassRegistry());
100
100
  this._tileProviderClassRegistry = new OverrideClassRegistry(tileProviderClassRegistry);
101
101
  this._featureProviderClassRegistry = new OverrideClassRegistry(featureProviderClassRegistry);
@@ -228,12 +228,11 @@ class VcsApp {
228
228
  if (config.startingObliqueCollectionName) {
229
229
  const startingObliqueCollection = this._obliqueCollections.getByKey(config.startingObliqueCollectionName);
230
230
  if (startingObliqueCollection) {
231
- [...this._maps]
231
+ await Promise.all([...this._maps]
232
232
  .filter((m) => m instanceof ObliqueMap)
233
- .forEach((m) => {
234
- // eslint-disable-next-line no-void
235
- void m.setCollection(startingObliqueCollection);
236
- });
233
+ .map((m) => {
234
+ return m.setCollection(startingObliqueCollection);
235
+ }));
237
236
  }
238
237
  }
239
238
  if (config.startingMapName) {
@@ -249,18 +248,60 @@ class VcsApp {
249
248
  }
250
249
  }
251
250
  }
252
- addModule(module) {
251
+ /**
252
+ * When adding multiple modules, adding of previous modules are awaited.
253
+ * If an invalid module is added an error is thrown and already added items of invalid module are removed.
254
+ * @param module
255
+ */
256
+ async addModule(module) {
253
257
  check(module, VcsModule);
254
- this._moduleMutationPromise = this._moduleMutationPromise.then(async () => {
255
- if (this._modules.hasKey(module._id)) {
256
- getLogger().info(`module with id ${module._id} already loaded`);
257
- return;
258
+ const mutation = async () => {
259
+ try {
260
+ if (this._modules.hasKey(module._id)) {
261
+ getLogger().info(`module with id ${module._id} already loaded`);
262
+ return;
263
+ }
264
+ await this._parseModule(module);
265
+ await this._setModuleState(module);
266
+ this._modules.add(module);
258
267
  }
259
- await this._parseModule(module);
260
- await this._setModuleState(module);
261
- this._modules.add(module);
268
+ catch (err) {
269
+ await this._removeModule(module._id);
270
+ throw err;
271
+ }
272
+ };
273
+ return new Promise((resolve, reject) => {
274
+ this._moduleMutationChain.items.push({
275
+ moduleId: module._id,
276
+ mutation,
277
+ resolve,
278
+ reject,
279
+ });
280
+ this._startModuleMutationChain();
262
281
  });
263
- return this._moduleMutationPromise;
282
+ }
283
+ _startModuleMutationChain() {
284
+ if (!this._moduleMutationChain.running) {
285
+ const item = this._moduleMutationChain.items.shift();
286
+ if (item) {
287
+ try {
288
+ this._moduleMutationChain.running = true;
289
+ item
290
+ .mutation()
291
+ .then(() => item.resolve())
292
+ .catch((err) => item.reject(err))
293
+ .finally(() => {
294
+ this._moduleMutationChain.running = false;
295
+ this._startModuleMutationChain();
296
+ });
297
+ }
298
+ catch (err) {
299
+ item.reject(err);
300
+ this._moduleMutationChain.running = false;
301
+ this._startModuleMutationChain();
302
+ }
303
+ }
304
+ }
264
305
  }
265
306
  serializeModule(moduleId) {
266
307
  check(moduleId, String);
@@ -311,8 +352,8 @@ class VcsApp {
311
352
  this._flights.removeModule(moduleId),
312
353
  ]);
313
354
  }
314
- removeModule(moduleId) {
315
- this._moduleMutationPromise = this._moduleMutationPromise.then(async () => {
355
+ async removeModule(moduleId) {
356
+ const mutation = async () => {
316
357
  const module = this._modules.getByKey(moduleId);
317
358
  if (!module) {
318
359
  getLogger().info(`module with id ${moduleId} has already been removed`);
@@ -320,14 +361,24 @@ class VcsApp {
320
361
  }
321
362
  await this._removeModule(moduleId);
322
363
  this._modules.remove(module);
364
+ };
365
+ return new Promise((resolve, reject) => {
366
+ this._moduleMutationChain.items.push({
367
+ moduleId,
368
+ mutation,
369
+ resolve,
370
+ reject,
371
+ });
372
+ this._startModuleMutationChain();
323
373
  });
324
- return this._moduleMutationPromise;
325
374
  }
326
375
  /**
327
376
  * Destroys the app and all its collections, their content and ui managers.
328
377
  */
329
378
  destroy() {
330
- Object.defineProperty(this, '_moduleMutationPromise', {
379
+ this._moduleMutationChain.running = false;
380
+ this._moduleMutationChain.items.splice(0);
381
+ Object.defineProperty(this, '_moduleMutationChain', {
331
382
  get() {
332
383
  throw new Error('VcsApp was destroyed');
333
384
  },
@@ -1 +1 @@
1
- {"version":3,"file":"vcsApp.js","sourceRoot":"","sources":["../../src/vcsApp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vcsApp.js","sourceRoot":"","sources":["../../src/vcsApp.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vcmap/core",
3
- "version": "5.2.0",
3
+ "version": "5.2.1",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
package/src/vcsApp.ts CHANGED
@@ -122,7 +122,15 @@ class VcsApp {
122
122
 
123
123
  private _destroyed: VcsEvent<void>;
124
124
 
125
- private _moduleMutationPromise: Promise<void>;
125
+ private _moduleMutationChain: {
126
+ running: boolean;
127
+ items: Array<{
128
+ moduleId: string;
129
+ mutation: () => Promise<void>;
130
+ resolve: () => void;
131
+ reject: (reason?: any) => void;
132
+ }>;
133
+ };
126
134
 
127
135
  private _categoryItemClassRegistry: OverrideClassRegistry<Ctor<any>>;
128
136
 
@@ -216,7 +224,7 @@ class VcsApp {
216
224
  );
217
225
  this._categories = new CategoryCollection(this);
218
226
  this._destroyed = new VcsEvent();
219
- this._moduleMutationPromise = Promise.resolve();
227
+ this._moduleMutationChain = { running: false, items: [] };
220
228
  this._categoryItemClassRegistry = new OverrideClassRegistry(
221
229
  new ClassRegistry(),
222
230
  );
@@ -402,12 +410,13 @@ class VcsApp {
402
410
  config.startingObliqueCollectionName,
403
411
  );
404
412
  if (startingObliqueCollection) {
405
- [...this._maps]
406
- .filter((m) => m instanceof ObliqueMap)
407
- .forEach((m) => {
408
- // eslint-disable-next-line no-void
409
- void (m as ObliqueMap).setCollection(startingObliqueCollection);
410
- });
413
+ await Promise.all(
414
+ [...this._maps]
415
+ .filter((m) => m instanceof ObliqueMap)
416
+ .map((m) => {
417
+ return (m as ObliqueMap).setCollection(startingObliqueCollection);
418
+ }),
419
+ );
411
420
  }
412
421
  }
413
422
 
@@ -427,20 +436,61 @@ class VcsApp {
427
436
  }
428
437
  }
429
438
 
430
- addModule(module: VcsModule): Promise<void> {
439
+ /**
440
+ * When adding multiple modules, adding of previous modules are awaited.
441
+ * If an invalid module is added an error is thrown and already added items of invalid module are removed.
442
+ * @param module
443
+ */
444
+ async addModule(module: VcsModule): Promise<void> {
431
445
  check(module, VcsModule);
432
446
 
433
- this._moduleMutationPromise = this._moduleMutationPromise.then(async () => {
434
- if (this._modules.hasKey(module._id)) {
435
- getLogger().info(`module with id ${module._id} already loaded`);
436
- return;
437
- }
447
+ const mutation = async (): Promise<void> => {
448
+ try {
449
+ if (this._modules.hasKey(module._id)) {
450
+ getLogger().info(`module with id ${module._id} already loaded`);
451
+ return;
452
+ }
438
453
 
439
- await this._parseModule(module);
440
- await this._setModuleState(module);
441
- this._modules.add(module);
454
+ await this._parseModule(module);
455
+ await this._setModuleState(module);
456
+ this._modules.add(module);
457
+ } catch (err) {
458
+ await this._removeModule(module._id);
459
+ throw err;
460
+ }
461
+ };
462
+ return new Promise((resolve, reject) => {
463
+ this._moduleMutationChain.items.push({
464
+ moduleId: module._id,
465
+ mutation,
466
+ resolve,
467
+ reject,
468
+ });
469
+ this._startModuleMutationChain();
442
470
  });
443
- return this._moduleMutationPromise;
471
+ }
472
+
473
+ _startModuleMutationChain(): void {
474
+ if (!this._moduleMutationChain.running) {
475
+ const item = this._moduleMutationChain.items.shift();
476
+ if (item) {
477
+ try {
478
+ this._moduleMutationChain.running = true;
479
+ item
480
+ .mutation()
481
+ .then(() => item.resolve())
482
+ .catch((err) => item.reject(err))
483
+ .finally(() => {
484
+ this._moduleMutationChain.running = false;
485
+ this._startModuleMutationChain();
486
+ });
487
+ } catch (err) {
488
+ item.reject(err);
489
+ this._moduleMutationChain.running = false;
490
+ this._startModuleMutationChain();
491
+ }
492
+ }
493
+ }
444
494
  }
445
495
 
446
496
  serializeModule(moduleId: string): VcsModuleConfig {
@@ -503,8 +553,8 @@ class VcsApp {
503
553
  ]);
504
554
  }
505
555
 
506
- removeModule(moduleId: string): Promise<void> {
507
- this._moduleMutationPromise = this._moduleMutationPromise.then(async () => {
556
+ async removeModule(moduleId: string): Promise<void> {
557
+ const mutation = async (): Promise<void> => {
508
558
  const module = this._modules.getByKey(moduleId);
509
559
  if (!module) {
510
560
  getLogger().info(`module with id ${moduleId} has already been removed`);
@@ -512,16 +562,25 @@ class VcsApp {
512
562
  }
513
563
  await this._removeModule(moduleId);
514
564
  this._modules.remove(module);
565
+ };
566
+ return new Promise((resolve, reject) => {
567
+ this._moduleMutationChain.items.push({
568
+ moduleId,
569
+ mutation,
570
+ resolve,
571
+ reject,
572
+ });
573
+ this._startModuleMutationChain();
515
574
  });
516
-
517
- return this._moduleMutationPromise;
518
575
  }
519
576
 
520
577
  /**
521
578
  * Destroys the app and all its collections, their content and ui managers.
522
579
  */
523
580
  destroy(): void {
524
- Object.defineProperty(this, '_moduleMutationPromise', {
581
+ this._moduleMutationChain.running = false;
582
+ this._moduleMutationChain.items.splice(0);
583
+ Object.defineProperty(this, '_moduleMutationChain', {
525
584
  get() {
526
585
  throw new Error('VcsApp was destroyed');
527
586
  },