@zajno/common 1.3.10 → 1.3.14

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 (86) hide show
  1. package/coverage/clover.xml +68 -49
  2. package/coverage/coverage-final.json +3 -2
  3. package/coverage/lcov-report/index.html +26 -26
  4. package/coverage/lcov-report/src/__tests__/helpers/index.html +1 -1
  5. package/coverage/lcov-report/src/__tests__/helpers/main.ts.html +1 -1
  6. package/coverage/lcov-report/src/async/arrays.ts.html +1 -1
  7. package/coverage/lcov-report/src/async/index.html +1 -1
  8. package/coverage/lcov-report/src/dates/calc.ts.html +1 -1
  9. package/coverage/lcov-report/src/dates/convert.ts.html +1 -1
  10. package/coverage/lcov-report/src/dates/datex.ts.html +1 -1
  11. package/coverage/lcov-report/src/dates/format.ts.html +1 -1
  12. package/coverage/lcov-report/src/dates/index.html +1 -1
  13. package/coverage/lcov-report/src/dates/index.ts.html +1 -1
  14. package/coverage/lcov-report/src/dates/parse.ts.html +1 -1
  15. package/coverage/lcov-report/src/dates/period.ts.html +1 -1
  16. package/coverage/lcov-report/src/dates/shift.ts.html +1 -1
  17. package/coverage/lcov-report/src/dates/types.ts.html +1 -1
  18. package/coverage/lcov-report/src/dates/yearDate.ts.html +1 -1
  19. package/coverage/lcov-report/src/enumHelper.ts.html +1 -1
  20. package/coverage/lcov-report/src/event.ts.html +1 -1
  21. package/coverage/lcov-report/src/fields/index.html +15 -15
  22. package/coverage/lcov-report/src/fields/update.ts.html +69 -12
  23. package/coverage/lcov-report/src/functions.ts.html +122 -0
  24. package/coverage/lcov-report/src/index.html +32 -17
  25. package/coverage/lcov-report/src/lazy.light.ts.html +33 -21
  26. package/coverage/lcov-report/src/logger/batch.ts.html +1 -1
  27. package/coverage/lcov-report/src/logger/console.ts.html +1 -1
  28. package/coverage/lcov-report/src/logger/index.html +1 -1
  29. package/coverage/lcov-report/src/logger/index.ts.html +1 -1
  30. package/coverage/lcov-report/src/logger/named.ts.html +1 -1
  31. package/coverage/lcov-report/src/logger/proxy.ts.html +1 -1
  32. package/coverage/lcov-report/src/math/arrays.ts.html +1 -1
  33. package/coverage/lcov-report/src/math/calc.ts.html +1 -1
  34. package/coverage/lcov-report/src/math/distribution.ts.html +1 -1
  35. package/coverage/lcov-report/src/math/index.html +1 -1
  36. package/coverage/lcov-report/src/math/index.ts.html +1 -1
  37. package/coverage/lcov-report/src/transitionObserver.ts.html +1 -1
  38. package/coverage/lcov-report/src/types.ts.html +1 -1
  39. package/coverage/lcov-report/src/validation/ValidationErrors.ts.html +1 -1
  40. package/coverage/lcov-report/src/validation/creditCard.ts.html +1 -1
  41. package/coverage/lcov-report/src/validation/helpers.ts.html +1 -1
  42. package/coverage/lcov-report/src/validation/index.html +1 -1
  43. package/coverage/lcov-report/src/validation/index.ts.html +1 -1
  44. package/coverage/lcov-report/src/validation/types.ts.html +1 -1
  45. package/coverage/lcov-report/src/validation/validators.ts.html +1 -1
  46. package/coverage/lcov-report/src/validation/wrappers.ts.html +1 -1
  47. package/coverage/lcov-report/src/viewModels/FlagModel.ts.html +1 -1
  48. package/coverage/lcov-report/src/viewModels/MultiSelectModel.ts.html +1 -1
  49. package/coverage/lcov-report/src/viewModels/NumberModel.ts.html +1 -1
  50. package/coverage/lcov-report/src/viewModels/SelectModel.ts.html +1 -1
  51. package/coverage/lcov-report/src/viewModels/Validatable.ts.html +1 -1
  52. package/coverage/lcov-report/src/viewModels/index.html +1 -1
  53. package/coverage/lcov-report/src/viewModels/wrappers.ts.html +1 -1
  54. package/coverage/lcov.info +172 -113
  55. package/lib/disposer.d.ts.map +1 -1
  56. package/lib/disposer.js +3 -1
  57. package/lib/disposer.js.map +1 -1
  58. package/lib/fields/update.d.ts +8 -2
  59. package/lib/fields/update.d.ts.map +1 -1
  60. package/lib/fields/update.js +13 -1
  61. package/lib/fields/update.js.map +1 -1
  62. package/lib/functions.d.ts +1 -2
  63. package/lib/functions.d.ts.map +1 -1
  64. package/lib/functions.js.map +1 -1
  65. package/lib/lazy.d.ts +6 -2
  66. package/lib/lazy.d.ts.map +1 -1
  67. package/lib/lazy.js +22 -12
  68. package/lib/lazy.js.map +1 -1
  69. package/lib/lazy.light.d.ts +2 -1
  70. package/lib/lazy.light.d.ts.map +1 -1
  71. package/lib/lazy.light.js +11 -9
  72. package/lib/lazy.light.js.map +1 -1
  73. package/lib/pool.d.ts +12 -4
  74. package/lib/pool.d.ts.map +1 -1
  75. package/lib/pool.js +28 -5
  76. package/lib/pool.js.map +1 -1
  77. package/package.json +5 -3
  78. package/src/disposer.ts +4 -1
  79. package/src/fields/update.ts +22 -3
  80. package/src/functions.ts +1 -3
  81. package/src/lazy.light.ts +15 -11
  82. package/src/lazy.ts +22 -15
  83. package/src/pool.ts +31 -8
  84. package/tsconfig.json +6 -4
  85. package/yarn-error.log +3709 -0
  86. package/yarn.lock +1 -1
@@ -209,28 +209,50 @@ BRF:6
209
209
  BRH:4
210
210
  end_of_record
211
211
  TN:
212
+ SF:src/functions.ts
213
+ FN:10,safeCall
214
+ FNF:1
215
+ FNH:1
216
+ FNDA:17,safeCall
217
+ DA:10,1
218
+ DA:11,17
219
+ DA:12,0
220
+ LF:3
221
+ LH:2
222
+ BRDA:11,0,0,0
223
+ BRDA:11,0,1,17
224
+ BRF:2
225
+ BRH:1
226
+ end_of_record
227
+ TN:
212
228
  SF:src/lazy.light.ts
213
- FN:9,createLazy
214
- FN:13,(anonymous_1)
215
- FN:19,(anonymous_2)
216
- FN:20,(anonymous_3)
217
- FNF:4
229
+ FN:10,createLazy
230
+ FN:15,(anonymous_1)
231
+ FN:21,(anonymous_2)
232
+ FN:22,(anonymous_3)
233
+ FN:25,(anonymous_4)
234
+ FNF:5
218
235
  FNH:3
219
236
  FNDA:11,createLazy
220
237
  FNDA:19,(anonymous_1)
221
238
  FNDA:27,(anonymous_2)
222
239
  FNDA:0,(anonymous_3)
223
- DA:9,2
224
- DA:10,11
225
- DA:14,19
226
- DA:15,1
227
- DA:17,19
228
- DA:19,27
229
- DA:21,0
230
- LF:7
231
- LH:6
232
- BRDA:14,0,0,1
233
- BRDA:14,0,1,18
240
+ FNDA:0,(anonymous_4)
241
+ DA:10,2
242
+ DA:11,11
243
+ DA:12,11
244
+ DA:14,11
245
+ DA:16,19
246
+ DA:17,1
247
+ DA:19,19
248
+ DA:21,27
249
+ DA:23,0
250
+ DA:25,0
251
+ DA:28,11
252
+ LF:11
253
+ LH:9
254
+ BRDA:16,0,0,1
255
+ BRDA:16,0,1,18
234
256
  BRF:2
235
257
  BRH:2
236
258
  end_of_record
@@ -1343,17 +1365,17 @@ BRH:51
1343
1365
  end_of_record
1344
1366
  TN:
1345
1367
  SF:src/fields/update.ts
1346
- FN:11,updateField
1347
- FN:12,(anonymous_1)
1348
- FN:12,(anonymous_2)
1349
- FN:15,updateFieldExtended
1350
- FN:24,(anonymous_4)
1351
- FN:38,(anonymous_5)
1352
- FN:39,(anonymous_6)
1353
- FN:49,updateArray
1354
- FN:69,(anonymous_8)
1355
- FN:78,(anonymous_9)
1356
- FN:79,(anonymous_10)
1368
+ FN:12,updateField
1369
+ FN:13,(anonymous_1)
1370
+ FN:13,(anonymous_2)
1371
+ FN:16,updateFieldExtended
1372
+ FN:25,(anonymous_4)
1373
+ FN:39,(anonymous_5)
1374
+ FN:40,(anonymous_6)
1375
+ FN:57,updateArray
1376
+ FN:80,(anonymous_8)
1377
+ FN:92,(anonymous_9)
1378
+ FN:93,(anonymous_10)
1357
1379
  FNF:11
1358
1380
  FNH:5
1359
1381
  FNDA:0,updateField
@@ -1367,97 +1389,134 @@ FNDA:6,updateArray
1367
1389
  FNDA:31,(anonymous_8)
1368
1390
  FNDA:12,(anonymous_9)
1369
1391
  FNDA:15,(anonymous_10)
1370
- DA:11,1
1371
- DA:12,0
1372
- DA:15,1
1373
- DA:24,0
1374
- DA:26,0
1375
- DA:28,0
1392
+ DA:1,1
1393
+ DA:12,1
1394
+ DA:13,0
1395
+ DA:16,1
1396
+ DA:25,0
1397
+ DA:27,0
1376
1398
  DA:29,0
1377
1399
  DA:30,0
1378
1400
  DA:31,0
1379
- DA:34,0
1380
- DA:38,38
1381
- DA:39,1
1382
- DA:49,1
1383
- DA:54,6
1384
- DA:55,1
1385
- DA:58,5
1386
- DA:59,5
1387
- DA:63,5
1388
- DA:64,5
1401
+ DA:32,0
1402
+ DA:35,0
1403
+ DA:39,38
1404
+ DA:40,1
1405
+ DA:57,1
1406
+ DA:62,6
1407
+ DA:63,1
1408
+ DA:66,5
1389
1409
  DA:67,5
1390
- DA:68,5
1391
- DA:69,31
1392
- DA:70,10
1393
- DA:71,10
1394
- DA:72,10
1410
+ DA:71,5
1411
+ DA:72,5
1412
+ DA:73,5
1413
+ DA:74,5
1414
+ DA:75,5
1395
1415
  DA:78,5
1396
- DA:79,15
1397
- DA:80,12
1398
- DA:81,12
1399
- DA:82,7
1400
- DA:83,7
1401
- DA:84,5
1402
- DA:85,1
1403
- DA:89,5
1404
- DA:90,5
1405
- DA:91,4
1406
- DA:94,5
1407
- LF:37
1408
- LH:29
1409
- BRDA:11,0,0,0
1410
- BRDA:21,1,0,0
1411
- BRDA:24,2,0,0
1412
- BRDA:24,2,1,0
1413
- BRDA:28,3,0,0
1414
- BRDA:28,3,1,0
1415
- BRDA:28,4,0,0
1416
- BRDA:28,4,1,0
1417
- BRDA:54,5,0,1
1418
- BRDA:54,5,1,5
1419
- BRDA:60,6,0,5
1420
- BRDA:60,6,1,0
1421
- BRDA:60,7,0,2
1422
- BRDA:60,7,1,3
1423
- BRDA:60,8,0,2
1424
- BRDA:60,8,1,3
1425
- BRDA:60,9,0,5
1426
- BRDA:60,9,1,5
1427
- BRDA:63,10,0,5
1428
- BRDA:63,10,1,4
1429
- BRDA:63,11,0,2
1430
- BRDA:63,11,1,3
1431
- BRDA:63,12,0,5
1432
- BRDA:63,12,1,5
1433
- BRDA:64,13,0,5
1434
- BRDA:64,13,1,4
1435
- BRDA:64,14,0,2
1436
- BRDA:64,14,1,3
1437
- BRDA:64,15,0,5
1438
- BRDA:64,15,1,5
1439
- BRDA:67,16,0,5
1440
- BRDA:67,16,1,0
1441
- BRDA:67,17,0,2
1442
- BRDA:67,17,1,3
1443
- BRDA:67,18,0,5
1444
- BRDA:67,18,1,5
1445
- BRDA:69,19,0,10
1446
- BRDA:69,19,1,5
1447
- BRDA:81,20,0,7
1448
- BRDA:81,20,1,5
1449
- BRDA:84,21,0,1
1450
- BRDA:84,21,1,4
1451
- BRDA:89,22,0,2
1452
- BRDA:89,22,1,3
1453
- BRDA:89,23,0,5
1454
- BRDA:89,23,1,5
1455
- BRDA:90,24,0,4
1456
- BRDA:90,24,1,1
1457
- BRDA:91,25,0,4
1458
- BRDA:91,25,1,3
1459
- BRF:50
1460
- BRH:40
1416
+ DA:79,5
1417
+ DA:80,31
1418
+ DA:82,10
1419
+ DA:83,10
1420
+ DA:85,10
1421
+ DA:86,10
1422
+ DA:92,5
1423
+ DA:93,15
1424
+ DA:94,12
1425
+ DA:95,12
1426
+ DA:96,7
1427
+ DA:97,7
1428
+ DA:98,7
1429
+ DA:99,5
1430
+ DA:100,1
1431
+ DA:101,1
1432
+ DA:102,1
1433
+ DA:103,0
1434
+ DA:108,5
1435
+ DA:109,5
1436
+ DA:110,4
1437
+ DA:113,5
1438
+ LF:46
1439
+ LH:37
1440
+ BRDA:12,0,0,0
1441
+ BRDA:22,1,0,0
1442
+ BRDA:25,2,0,0
1443
+ BRDA:25,2,1,0
1444
+ BRDA:29,3,0,0
1445
+ BRDA:29,3,1,0
1446
+ BRDA:29,4,0,0
1447
+ BRDA:29,4,1,0
1448
+ BRDA:62,5,0,1
1449
+ BRDA:62,5,1,5
1450
+ BRDA:68,6,0,5
1451
+ BRDA:68,6,1,0
1452
+ BRDA:68,7,0,2
1453
+ BRDA:68,7,1,3
1454
+ BRDA:68,8,0,2
1455
+ BRDA:68,8,1,3
1456
+ BRDA:68,9,0,5
1457
+ BRDA:68,9,1,5
1458
+ BRDA:71,10,0,5
1459
+ BRDA:71,10,1,4
1460
+ BRDA:71,11,0,2
1461
+ BRDA:71,11,1,3
1462
+ BRDA:71,12,0,5
1463
+ BRDA:71,12,1,5
1464
+ BRDA:72,13,0,5
1465
+ BRDA:72,13,1,4
1466
+ BRDA:72,14,0,2
1467
+ BRDA:72,14,1,3
1468
+ BRDA:72,15,0,5
1469
+ BRDA:72,15,1,5
1470
+ BRDA:73,16,0,5
1471
+ BRDA:73,16,1,0
1472
+ BRDA:73,17,0,5
1473
+ BRDA:73,17,1,5
1474
+ BRDA:73,18,0,2
1475
+ BRDA:73,18,1,3
1476
+ BRDA:73,19,0,5
1477
+ BRDA:73,19,1,5
1478
+ BRDA:74,20,0,5
1479
+ BRDA:74,20,1,0
1480
+ BRDA:74,21,0,5
1481
+ BRDA:74,21,1,5
1482
+ BRDA:74,22,0,2
1483
+ BRDA:74,22,1,3
1484
+ BRDA:74,23,0,5
1485
+ BRDA:74,23,1,5
1486
+ BRDA:75,24,0,5
1487
+ BRDA:75,24,1,0
1488
+ BRDA:75,25,0,5
1489
+ BRDA:75,25,1,5
1490
+ BRDA:75,26,0,2
1491
+ BRDA:75,26,1,3
1492
+ BRDA:75,27,0,5
1493
+ BRDA:75,27,1,5
1494
+ BRDA:78,28,0,5
1495
+ BRDA:78,28,1,0
1496
+ BRDA:78,29,0,2
1497
+ BRDA:78,29,1,3
1498
+ BRDA:78,30,0,5
1499
+ BRDA:78,30,1,5
1500
+ BRDA:80,31,0,10
1501
+ BRDA:80,31,1,5
1502
+ BRDA:95,32,0,7
1503
+ BRDA:95,32,1,5
1504
+ BRDA:99,33,0,1
1505
+ BRDA:99,33,1,4
1506
+ BRDA:100,34,0,0
1507
+ BRDA:100,34,1,1
1508
+ BRDA:102,35,0,0
1509
+ BRDA:102,35,1,1
1510
+ BRDA:108,36,0,2
1511
+ BRDA:108,36,1,3
1512
+ BRDA:108,37,0,5
1513
+ BRDA:108,37,1,5
1514
+ BRDA:109,38,0,4
1515
+ BRDA:109,38,1,1
1516
+ BRDA:110,39,0,4
1517
+ BRDA:110,39,1,3
1518
+ BRF:78
1519
+ BRH:63
1461
1520
  end_of_record
1462
1521
  TN:
1463
1522
  SF:src/logger/batch.ts
@@ -1 +1 @@
1
- {"version":3,"file":"disposer.d.ts","sourceRoot":"","sources":["../src/disposer.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IACxB,OAAO,IAAI,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC5B,IAAI,IAAI,CAAC;CACZ;AAED,qBAAa,QAAQ;IAKL,QAAQ,CAAC,OAAO,EAAE,MAAM;IAHpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IACpD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsC;gBAEtC,OAAO,GAAE,MAAa;IAE3C,GAAG,CAAC,CAAC,EAAE,eAAe,GAAG,WAAW,EAAE,EAAE,CAAC,EAAE,MAAM;IAqBjD,OAAO,CAAC,EAAE,EAAE,MAAM;IAelB,OAAO,CAAC,GAAG,UAAQ;CAYtB;AAED,wBAAgB,gBAAgB,CAAC,GAAG,KAAK,EAAE,eAAe,EAAE,GAAG,eAAe,CAE7E;AAED,qBAAa,UAAW,YAAW,WAAW;IAE1C,SAAS,CAAC,QAAQ,CAAC,QAAQ,WAAkB;IAC7C,SAAS,CAAC,WAAW,UAAS;IAEvB,OAAO,aAGZ;CACL"}
1
+ {"version":3,"file":"disposer.d.ts","sourceRoot":"","sources":["../src/disposer.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IACxB,OAAO,IAAI,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC5B,IAAI,IAAI,CAAC;CACZ;AAED,qBAAa,QAAQ;IAKL,QAAQ,CAAC,OAAO,EAAE,MAAM;IAHpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IACpD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsC;gBAEtC,OAAO,GAAE,MAAa;IAE3C,GAAG,CAAC,CAAC,EAAE,eAAe,GAAG,WAAW,EAAE,EAAE,CAAC,EAAE,MAAM;IAqBjD,OAAO,CAAC,EAAE,EAAE,MAAM;IAelB,OAAO,CAAC,GAAG,UAAQ;CAetB;AAED,wBAAgB,gBAAgB,CAAC,GAAG,KAAK,EAAE,eAAe,EAAE,GAAG,eAAe,CAE7E;AAED,qBAAa,UAAW,YAAW,WAAW;IAE1C,SAAS,CAAC,QAAQ,CAAC,QAAQ,WAAkB;IAC7C,SAAS,CAAC,WAAW,UAAS;IAEvB,OAAO,aAGZ;CACL"}
package/lib/disposer.js CHANGED
@@ -41,9 +41,11 @@ class Disposer {
41
41
  if (log) {
42
42
  logger_1.default.log(`[Disposer:${this.logName || '<unknown>'}] Disposing ${this._disposers.length} items including named ones:`, Array.from(this._map.entries()).map(e => e[0]));
43
43
  }
44
- this._disposers.forEach(d => d());
44
+ const copy = this._disposers.slice().reverse();
45
45
  this._disposers.length = 0;
46
46
  this._map.clear();
47
+ // this should separate side effects
48
+ copy.forEach(d => d());
47
49
  }
48
50
  }
49
51
  exports.Disposer = Disposer;
@@ -1 +1 @@
1
- {"version":3,"file":"disposer.js","sourceRoot":"","sources":["../src/disposer.ts"],"names":[],"mappings":";;;;AAAA,8DAA8B;AAU9B,MAAa,QAAQ;IAKjB,YAAqB,UAAkB,IAAI;QAAtB,YAAO,GAAP,OAAO,CAAe;QAH1B,eAAU,GAAsB,EAAE,CAAC;QACnC,SAAI,GAAG,IAAI,GAAG,EAA2B,CAAC;IAEZ,CAAC;IAEhD,GAAG,CAAC,CAAgC,EAAE,EAAW;QAC7C,IAAI,CAAC,CAAC,EAAE;YACJ,OAAO;SACV;QAED,MAAM,EAAE,GAAoB,OAAO,CAAC,KAAK,UAAU;YAC/C,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACxC,CAAC,CAAC,CAAC,CAAC;QAER,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEzB,IAAI,EAAE,EAAE;YACJ,uCAAuC;YACvC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBACnB,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;aACpB;YAED,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;SACzB;IACL,CAAC;IAED,OAAO,CAAC,EAAU;QACd,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5B,IAAI,CAAC,CAAC,EAAE;YACJ,OAAO;SACV;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrB,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,EAAE;YACR,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAChC;QAED,CAAC,EAAE,CAAC;IACR,CAAC;IAED,OAAO,CAAC,GAAG,GAAG,KAAK;QACf,IAAI,GAAG,EAAE;YACL,gBAAM,CAAC,GAAG,CACN,aAAa,IAAI,CAAC,OAAO,IAAI,WAAW,eAAe,IAAI,CAAC,UAAU,CAAC,MAAM,8BAA8B,EAC3G,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACjD,CAAC;SACL;QAED,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;CACJ;AAvDD,4BAuDC;AAED,SAAgB,gBAAgB,CAAC,GAAG,KAAwB;IACxD,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACzC,CAAC;AAFD,4CAEC;AAED,MAAa,UAAU;IAAvB;QAEuB,aAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QACnC,gBAAW,GAAG,KAAK,CAAC;QAEvB,YAAO,GAAG,GAAG,EAAE;YAClB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC5B,CAAC,CAAC;IACN,CAAC;CAAA;AATD,gCASC"}
1
+ {"version":3,"file":"disposer.js","sourceRoot":"","sources":["../src/disposer.ts"],"names":[],"mappings":";;;;AAAA,8DAA8B;AAU9B,MAAa,QAAQ;IAKjB,YAAqB,UAAkB,IAAI;QAAtB,YAAO,GAAP,OAAO,CAAe;QAH1B,eAAU,GAAsB,EAAE,CAAC;QACnC,SAAI,GAAG,IAAI,GAAG,EAA2B,CAAC;IAEZ,CAAC;IAEhD,GAAG,CAAC,CAAgC,EAAE,EAAW;QAC7C,IAAI,CAAC,CAAC,EAAE;YACJ,OAAO;SACV;QAED,MAAM,EAAE,GAAoB,OAAO,CAAC,KAAK,UAAU;YAC/C,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACxC,CAAC,CAAC,CAAC,CAAC;QAER,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEzB,IAAI,EAAE,EAAE;YACJ,uCAAuC;YACvC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBACnB,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;aACpB;YAED,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;SACzB;IACL,CAAC;IAED,OAAO,CAAC,EAAU;QACd,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5B,IAAI,CAAC,CAAC,EAAE;YACJ,OAAO;SACV;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrB,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,EAAE;YACR,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAChC;QAED,CAAC,EAAE,CAAC;IACR,CAAC;IAED,OAAO,CAAC,GAAG,GAAG,KAAK;QACf,IAAI,GAAG,EAAE;YACL,gBAAM,CAAC,GAAG,CACN,aAAa,IAAI,CAAC,OAAO,IAAI,WAAW,eAAe,IAAI,CAAC,UAAU,CAAC,MAAM,8BAA8B,EAC3G,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACjD,CAAC;SACL;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;QAC/C,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAElB,oCAAoC;QACpC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;CACJ;AA1DD,4BA0DC;AAED,SAAgB,gBAAgB,CAAC,GAAG,KAAwB;IACxD,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACzC,CAAC;AAFD,4CAEC;AAED,MAAa,UAAU;IAAvB;QAEuB,aAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QACnC,gBAAW,GAAG,KAAK,CAAC;QAEvB,YAAO,GAAG,GAAG,EAAE;YAClB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC5B,CAAC,CAAC;IACN,CAAC;CAAA;AATD,gCASC"}
@@ -5,14 +5,20 @@ export declare namespace Fields {
5
5
  type Comparer<T> = (source: Partial<T>, target: Partial<T>) => boolean;
6
6
  type Updater<T> = (target: T, source: T) => T;
7
7
  }
8
- export declare function updateField<T>(target: T, source: Partial<T>, diff: Partial<T>, key: keyof T, hasChanged?: Fields.Comparer<T>): boolean;
9
- export declare function updateFieldExtended<T>(target: T, source: Partial<T>, diff: Partial<T>, get: Fields.Getter<T>, set: Fields.Setter<T>, hasChanged?: Fields.Comparer<T>): boolean;
8
+ export declare function updateField<T>(target: T, source: Partial<T>, diff: Partial<T>, key: keyof T, hasChanged?: null | Fields.Comparer<T>): boolean;
9
+ export declare function updateFieldExtended<T>(target: T, source: Partial<T>, diff: Partial<T>, get: Fields.Getter<T>, set: Fields.Setter<T>, hasChanged?: null | Fields.Comparer<T>): boolean;
10
10
  export declare type UpdateArrayOptions<T> = {
11
11
  additive?: boolean;
12
12
  clone?: boolean;
13
13
  comparator?: Comparator<T>;
14
14
  updater?: Fields.Updater<T>;
15
15
  sorter?: Comparator<T, number> | null | undefined;
16
+ hooks?: UpdateArrayHooks<T>;
17
+ };
18
+ export declare type UpdateArrayHooks<T> = {
19
+ onAdded?: (item: T) => void;
20
+ onDeleted?: (item: T) => void;
21
+ onUpdated?: (previous: T, next: T) => void;
16
22
  };
17
23
  export declare function updateArray<T>(target: T[] | null, source: T[], options?: UpdateArrayOptions<T>): {
18
24
  changed: number;
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/fields/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,yBAAiB,MAAM,CAAC;IACpB,KAAY,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACxD,KAAY,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,CAAC;IACnE,KAAY,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC;IAC9E,KAAY,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;CACxD;AAGD,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,UAAU,GAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAQ,GAAG,OAAO,CAE5I;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EACjC,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAClB,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EACrB,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EACrB,UAAU,GAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAQ,GACtC,OAAO,CAcT;AAKD,oBAAY,kBAAkB,CAAC,CAAC,IAAI;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;CACrD,CAAC;AAEF,wBAAgB,WAAW,CAAC,CAAC,EACzB,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,EAClB,MAAM,EAAE,CAAC,EAAE,EACX,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAChC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,CAAC,EAAE,CAAA;CAAE,CA6ClC"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/fields/update.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,yBAAiB,MAAM,CAAC;IACpB,KAAY,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACxD,KAAY,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,CAAC;IACnE,KAAY,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC;IAC9E,KAAY,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;CACxD;AAGD,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,UAAU,GAAE,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAQ,GAAG,OAAO,CAEnJ;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EACjC,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAClB,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EACrB,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EACrB,UAAU,GAAE,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAQ,GAC7C,OAAO,CAcT;AAKD,oBAAY,kBAAkB,CAAC,CAAC,IAAI;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IAClD,KAAK,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;CAC/B,CAAC;AAEF,oBAAY,gBAAgB,CAAC,CAAC,IAAI;IAC9B,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IAC9B,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;CAC9C,CAAC;AAEF,wBAAgB,WAAW,CAAC,CAAC,EACzB,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,EAClB,MAAM,EAAE,CAAC,EAAE,EACX,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAChC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,CAAC,EAAE,CAAA;CAAE,CAwDlC"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.updateArray = exports.updateFieldExtended = exports.updateField = void 0;
4
+ const functions_1 = require("../functions");
4
5
  function updateField(target, source, diff, key, hasChanged = null) {
5
6
  return updateFieldExtended(target, source, diff, t => t[key], (t, v) => t[key] = v, hasChanged);
6
7
  }
@@ -19,6 +20,7 @@ exports.updateFieldExtended = updateFieldExtended;
19
20
  const DefaultComparator = (v1, v2) => v1 === v2;
20
21
  const DefaultUpdater = (v1, v2) => Object.assign(v1, v2);
21
22
  function updateArray(target, source, options) {
23
+ var _a, _b, _c;
22
24
  if (!source) {
23
25
  return { changed: 0, result: target };
24
26
  }
@@ -28,11 +30,16 @@ function updateArray(target, source, options) {
28
30
  : [];
29
31
  const comparator = (options === null || options === void 0 ? void 0 : options.comparator) || DefaultComparator;
30
32
  const updater = (options === null || options === void 0 ? void 0 : options.updater) || DefaultUpdater;
33
+ const onDeleted = (_a = options === null || options === void 0 ? void 0 : options.hooks) === null || _a === void 0 ? void 0 : _a.onDeleted;
34
+ const onUpdate = (_b = options === null || options === void 0 ? void 0 : options.hooks) === null || _b === void 0 ? void 0 : _b.onUpdated;
35
+ const onAdded = (_c = options === null || options === void 0 ? void 0 : options.hooks) === null || _c === void 0 ? void 0 : _c.onAdded;
31
36
  // remove all missing elements
32
37
  if (!(options === null || options === void 0 ? void 0 : options.additive)) {
33
38
  for (let i = 0; i < result.length; ++i) {
34
39
  if (source.find(item => comparator(item, result[i])) == null) {
35
- result.splice(i, 1);
40
+ // DELETE
41
+ const removed = result.splice(i, 1);
42
+ functions_1.safeCall(onDeleted, removed[0]);
36
43
  ++changed;
37
44
  --i;
38
45
  }
@@ -44,10 +51,15 @@ function updateArray(target, source, options) {
44
51
  const existingItem = result[existingIndex];
45
52
  if (existingIndex < 0) {
46
53
  result.push(i);
54
+ functions_1.safeCall(onAdded, i);
47
55
  ++changed;
48
56
  }
49
57
  else if (typeof existingItem === 'object') {
58
+ const before = onUpdate != null ? { ...existingItem } : undefined;
50
59
  result[existingIndex] = updater(existingItem, i);
60
+ if (onUpdate != null) {
61
+ onUpdate(before, result[existingIndex]);
62
+ }
51
63
  }
52
64
  });
53
65
  const sorter = options === null || options === void 0 ? void 0 : options.sorter;
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/fields/update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/fields/update.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,6 @@ declare type PropertiesOf<T> = Exclude<{
4
4
  export declare type RemoveFunctionFields<T> = {
5
5
  readonly [P in PropertiesOf<T>]: T[P];
6
6
  };
7
- export declare function safeCall<T extends (...args: any) => any>(cb: T, ...args: Parameters<T>): ReturnType<T>;
8
- export declare type SortingFunction<T> = (i1: T, i2: T) => number;
7
+ export declare function safeCall<T extends (...args: any) => any>(cb: T | undefined, ...args: Parameters<T>): ReturnType<T> | void;
9
8
  export {};
10
9
  //# sourceMappingURL=functions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../src/functions.ts"],"names":[],"mappings":"AACA,aAAK,YAAY,CAAC,CAAC,IAAI,OAAO,CAAC;KAC1B,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,GAAG,KAAK,GAAG,CAAC;CACpD,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AAEvB,oBAAY,oBAAoB,CAAC,CAAC,IAAI;IAClC,QAAQ,EAAE,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACxC,CAAC;AAEF,wBAAgB,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAItG;AAED,oBAAY,eAAe,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,MAAM,CAAC"}
1
+ {"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../src/functions.ts"],"names":[],"mappings":"AACA,aAAK,YAAY,CAAC,CAAC,IAAI,OAAO,CAAC;KAC1B,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,GAAG,KAAK,GAAG,CAAC;CACpD,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AAEvB,oBAAY,oBAAoB,CAAC,CAAC,IAAI;IAClC,QAAQ,EAAE,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACxC,CAAC;AAEF,wBAAgB,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,SAAS,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAIzH"}
@@ -1 +1 @@
1
- {"version":3,"file":"functions.js","sourceRoot":"","sources":["../src/functions.ts"],"names":[],"mappings":";;;AASA,SAAgB,QAAQ,CAAkC,EAAK,EAAE,GAAG,IAAmB;IACnF,IAAI,EAAE,EAAE;QACJ,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KAC/B;AACL,CAAC;AAJD,4BAIC"}
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../src/functions.ts"],"names":[],"mappings":";;;AASA,SAAgB,QAAQ,CAAkC,EAAiB,EAAE,GAAG,IAAmB;IAC/F,IAAI,EAAE,EAAE;QACJ,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KAC/B;AACL,CAAC;AAJD,4BAIC"}
package/lib/lazy.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- export default class Lazy<T> {
1
+ import type { IDisposable } from 'disposer';
2
+ export default class Lazy<T> implements IDisposable {
2
3
  private _factory;
3
4
  private _instance;
4
5
  constructor(_factory: (() => T));
@@ -6,8 +7,9 @@ export default class Lazy<T> {
6
7
  get value(): T;
7
8
  prewarm(): T;
8
9
  reset(): void;
10
+ dispose: () => void;
9
11
  }
10
- export declare class LazyPromise<T> {
12
+ export declare class LazyPromise<T> implements IDisposable {
11
13
  private readonly _factory;
12
14
  private readonly initial;
13
15
  private _instance;
@@ -16,6 +18,8 @@ export declare class LazyPromise<T> {
16
18
  constructor(_factory: () => Promise<T>, initial?: T);
17
19
  get busy(): boolean;
18
20
  get(): T;
21
+ private setInstance;
19
22
  reset(): void;
23
+ dispose: () => void;
20
24
  }
21
25
  //# sourceMappingURL=lazy.d.ts.map
package/lib/lazy.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lazy.d.ts","sourceRoot":"","sources":["../src/lazy.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,IAAI,CAAC,CAAC;IAKX,OAAO,CAAC,QAAQ;IAF5B,OAAO,CAAC,SAAS,CAAW;gBAER,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC;IAIvC,IAAI,QAAQ,YAAqC;IAEjD,IAAI,KAAK,MAKR;IAED,OAAO;IAIP,KAAK;CAGR;AAED,qBAAa,WAAW,CAAC,CAAC;IAWlB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAT5B,OAAO,CAAC,SAAS,CAAW;IAG5B,OAAO,CAAC,KAAK,CAAS;IAEtB,OAAO,CAAC,OAAO,CAAS;gBAGH,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC1B,OAAO,GAAE,CAAQ;IAMtC,IAAI,IAAI,YAAyB;IAEjC,GAAG;IAeH,KAAK;CAOR"}
1
+ {"version":3,"file":"lazy.d.ts","sourceRoot":"","sources":["../src/lazy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5C,MAAM,CAAC,OAAO,OAAO,IAAI,CAAC,CAAC,CAAE,YAAW,WAAW;IAKnC,OAAO,CAAC,QAAQ;IAF5B,OAAO,CAAC,SAAS,CAAW;gBAER,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC;IAIvC,IAAI,QAAQ,YAAqC;IAEjD,IAAI,KAAK,MAKR;IAED,OAAO;IAIP,KAAK;IAIL,OAAO,aAAsB;CAChC;AAED,qBAAa,WAAW,CAAC,CAAC,CAAE,YAAW,WAAW;IAW1C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAT5B,OAAO,CAAC,SAAS,CAAW;IAG5B,OAAO,CAAC,KAAK,CAAS;IAEtB,OAAO,CAAC,OAAO,CAAS;gBAGH,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC1B,OAAO,GAAE,CAAQ;IAMtC,IAAI,IAAI,YAAyB;IAEjC,GAAG;IAUH,OAAO,CAAC,WAAW,CAMjB;IAGF,KAAK;IAML,OAAO,aAAsB;CAChC"}
package/lib/lazy.js CHANGED
@@ -7,6 +7,7 @@ class Lazy {
7
7
  constructor(_factory) {
8
8
  this._factory = _factory;
9
9
  this._instance = null;
10
+ this.dispose = () => this.reset();
10
11
  mobx_1.makeObservable(this);
11
12
  }
12
13
  get hasValue() { return this._instance != null; }
@@ -35,6 +36,13 @@ class LazyPromise {
35
36
  this._instance = null;
36
37
  this._busy = false;
37
38
  this._loaded = false;
39
+ this.setInstance = (res) => {
40
+ const wasBusy = this._busy;
41
+ this._busy = false;
42
+ this._loaded = wasBusy;
43
+ this._instance = wasBusy ? res : null;
44
+ };
45
+ this.dispose = () => this.reset();
38
46
  mobx_1.makeObservable(this);
39
47
  this._instance = initial;
40
48
  }
@@ -42,22 +50,14 @@ class LazyPromise {
42
50
  get() {
43
51
  if (!this._loaded && !this._busy) {
44
52
  this._busy = true;
45
- this._factory().then(res => {
46
- mobx_1.transaction(() => {
47
- this._busy = false;
48
- this._loaded = true;
49
- this._instance = res;
50
- });
51
- });
53
+ this._factory().then(this.setInstance);
52
54
  }
53
55
  return this._instance;
54
56
  }
55
57
  reset() {
56
- mobx_1.transaction(() => {
57
- this._busy = false;
58
- this._instance = this.initial;
59
- this._loaded = false;
60
- });
58
+ this._busy = false;
59
+ this._instance = this.initial;
60
+ this._loaded = false;
61
61
  }
62
62
  }
63
63
  tslib_1.__decorate([
@@ -68,5 +68,15 @@ tslib_1.__decorate([
68
68
  mobx_1.observable,
69
69
  tslib_1.__metadata("design:type", Object)
70
70
  ], LazyPromise.prototype, "_busy", void 0);
71
+ tslib_1.__decorate([
72
+ mobx_1.action,
73
+ tslib_1.__metadata("design:type", Object)
74
+ ], LazyPromise.prototype, "setInstance", void 0);
75
+ tslib_1.__decorate([
76
+ mobx_1.action,
77
+ tslib_1.__metadata("design:type", Function),
78
+ tslib_1.__metadata("design:paramtypes", []),
79
+ tslib_1.__metadata("design:returntype", void 0)
80
+ ], LazyPromise.prototype, "reset", null);
71
81
  exports.LazyPromise = LazyPromise;
72
82
  //# sourceMappingURL=lazy.js.map
package/lib/lazy.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lazy.js","sourceRoot":"","sources":["../src/lazy.ts"],"names":[],"mappings":";;;;AAAA,+BAA+D;AAE/D,MAAqB,IAAI;IAKrB,YAAoB,QAAmB;QAAnB,aAAQ,GAAR,QAAQ,CAAW;QAF/B,cAAS,GAAM,IAAI,CAAC;QAGxB,qBAAc,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC;IAEjD,IAAI,KAAK;QACL,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;SACpC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,KAAK;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAC1B,CAAC;CACJ;AAtBG;IADC,iBAAU,CAAC,GAAG;;uCACa;AAHhC,uBAyBC;AAED,MAAa,WAAW;IAUpB,YACqB,QAA0B,EAC1B,UAAa,IAAI;QADjB,aAAQ,GAAR,QAAQ,CAAkB;QAC1B,YAAO,GAAP,OAAO,CAAU;QAT9B,cAAS,GAAM,IAAI,CAAC;QAGpB,UAAK,GAAG,KAAK,CAAC;QAEd,YAAO,GAAG,KAAK,CAAC;QAMpB,qBAAc,CAAC,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;IAC7B,CAAC;IAED,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAEjC,GAAG;QACC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YAC9B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBACvB,kBAAW,CAAC,GAAG,EAAE;oBACb,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;oBACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;oBACpB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;gBACzB,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;SACN;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,KAAK;QACD,kBAAW,CAAC,GAAG,EAAE;YACb,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;YAC9B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACzB,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAvCG;IADC,iBAAU,CAAC,GAAG;;8CACa;AAG5B;IADC,iBAAU;;0CACW;AAN1B,kCA0CC"}
1
+ {"version":3,"file":"lazy.js","sourceRoot":"","sources":["../src/lazy.ts"],"names":[],"mappings":";;;;AACA,+BAA0D;AAE1D,MAAqB,IAAI;IAKrB,YAAoB,QAAmB;QAAnB,aAAQ,GAAR,QAAQ,CAAW;QAF/B,cAAS,GAAM,IAAI,CAAC;QAuB5B,YAAO,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QApBzB,qBAAc,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC;IAEjD,IAAI,KAAK;QACL,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;SACpC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,KAAK;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAC1B,CAAC;CAGJ;AAxBG;IADC,iBAAU,CAAC,GAAG;;uCACa;AAHhC,uBA2BC;AAED,MAAa,WAAW;IAUpB,YACqB,QAA0B,EAC1B,UAAa,IAAI;QADjB,aAAQ,GAAR,QAAQ,CAAkB;QAC1B,YAAO,GAAP,OAAO,CAAU;QAT9B,cAAS,GAAM,IAAI,CAAC;QAGpB,UAAK,GAAG,KAAK,CAAC;QAEd,YAAO,GAAG,KAAK,CAAC;QAsBhB,gBAAW,GAAG,CAAC,GAAM,EAAE,EAAE;YAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;YAE3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACvB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1C,CAAC,CAAC;QASF,YAAO,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QA/BzB,qBAAc,CAAC,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;IAC7B,CAAC;IAED,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAEjC,GAAG;QACC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YAC9B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC1C;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAYD,KAAK;QACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACzB,CAAC;CAGJ;AA3CG;IADC,iBAAU,CAAC,GAAG;;8CACa;AAG5B;IADC,iBAAU;;0CACW;AAwBtB;IADC,aAAM;;gDAOL;AAGF;IADC,aAAM;;;;wCAKN;AA3CL,kCA8CC"}
@@ -1,4 +1,5 @@
1
- export declare type LazyLight<T> = {
1
+ import type { IDisposable } from './disposer';
2
+ export declare type LazyLight<T> = IDisposable & {
2
3
  readonly value: T;
3
4
  readonly hasValue: boolean;
4
5
  reset(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"lazy.light.d.ts","sourceRoot":"","sources":["../src/lazy.light.ts"],"names":[],"mappings":"AACA,oBAAY,SAAS,CAAC,CAAC,IAAI;IACvB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAE3B,KAAK,IAAI,IAAI,CAAC;CACjB,CAAC;AAEF,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,gBAgB7C"}
1
+ {"version":3,"file":"lazy.light.d.ts","sourceRoot":"","sources":["../src/lazy.light.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,oBAAY,SAAS,CAAC,CAAC,IAAI,WAAW,GAAG;IACrC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAE3B,KAAK,IAAI,IAAI,CAAC;CACjB,CAAC;AAEF,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,gBAmB7C"}
package/lib/lazy.light.js CHANGED
@@ -2,20 +2,22 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createLazy = void 0;
4
4
  function createLazy(factory) {
5
- return {
6
- _factory: factory,
7
- _instance: undefined,
5
+ const _factory = factory;
6
+ let _instance = undefined;
7
+ const res = {
8
8
  get value() {
9
- if (this._instance === undefined) {
10
- this._instance = this._factory();
9
+ if (_instance === undefined) {
10
+ _instance = _factory();
11
11
  }
12
- return this._instance;
12
+ return _instance;
13
13
  },
14
- get hasValue() { return this._instance !== undefined; },
15
- reset() {
16
- this._instance = undefined;
14
+ get hasValue() { return _instance !== undefined; },
15
+ reset: () => {
16
+ _instance = undefined;
17
17
  },
18
+ dispose: () => res.reset(),
18
19
  };
20
+ return res;
19
21
  }
20
22
  exports.createLazy = createLazy;
21
23
  //# sourceMappingURL=lazy.light.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lazy.light.js","sourceRoot":"","sources":["../src/lazy.light.ts"],"names":[],"mappings":";;;AAQA,SAAgB,UAAU,CAAI,OAAgB;IAC1C,OAAO;QACH,QAAQ,EAAE,OAAO;QACjB,SAAS,EAAE,SAAc;QACzB,IAAI,KAAK;YACL,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;gBAC9B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;aACpC;YACD,OAAO,IAAI,CAAC,SAAS,CAAC;QAC1B,CAAC;QACD,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC;QACvD,KAAK;YACD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC/B,CAAC;KAEY,CAAC;AACtB,CAAC;AAhBD,gCAgBC"}
1
+ {"version":3,"file":"lazy.light.js","sourceRoot":"","sources":["../src/lazy.light.ts"],"names":[],"mappings":";;;AASA,SAAgB,UAAU,CAAI,OAAgB;IAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC;IACzB,IAAI,SAAS,GAAM,SAAS,CAAC;IAE7B,MAAM,GAAG,GAAiB;QACtB,IAAI,KAAK;YACL,IAAI,SAAS,KAAK,SAAS,EAAE;gBACzB,SAAS,GAAG,QAAQ,EAAE,CAAC;aAC1B;YACD,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,IAAI,QAAQ,KAAK,OAAO,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC;QAClD,KAAK,EAAE,GAAG,EAAE;YACR,SAAS,GAAG,SAAS,CAAC;QAC1B,CAAC;QACD,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE;KAC7B,CAAC;IAEF,OAAO,GAAG,CAAC;AACf,CAAC;AAnBD,gCAmBC"}