@daiso-tech/core 0.24.0 → 0.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/README.md +3 -2
  2. package/dist/async/utilities/lazy-promise/lazy-promise.d.ts +12 -3
  3. package/dist/async/utilities/lazy-promise/lazy-promise.js +37 -4
  4. package/dist/async/utilities/lazy-promise/lazy-promise.js.map +1 -1
  5. package/dist/cache/contracts/cache.contract.d.ts +4 -4
  6. package/dist/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js +2 -2
  7. package/dist/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js.map +1 -1
  8. package/dist/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js +4 -4
  9. package/dist/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -1
  10. package/dist/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js +2 -2
  11. package/dist/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
  12. package/dist/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js +5 -5
  13. package/dist/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -1
  14. package/dist/cache/implementations/derivables/cache/cache.d.ts +70 -184
  15. package/dist/cache/implementations/derivables/cache/cache.js +68 -185
  16. package/dist/cache/implementations/derivables/cache/cache.js.map +1 -1
  17. package/dist/cache/implementations/derivables/cache-factory/cache-factory.d.ts +11 -15
  18. package/dist/cache/implementations/derivables/cache-factory/cache-factory.js +0 -11
  19. package/dist/cache/implementations/derivables/cache-factory/cache-factory.js.map +1 -1
  20. package/dist/collection/implementations/async-iterable-collection/async-iterable-collection.js +5 -5
  21. package/dist/collection/implementations/async-iterable-collection/async-iterable-collection.js.map +1 -1
  22. package/dist/collection/implementations/iterable-collection/iterable-collection.js +5 -5
  23. package/dist/collection/implementations/iterable-collection/iterable-collection.js.map +1 -1
  24. package/dist/collection/implementations/list-collection/list-collection.js +5 -5
  25. package/dist/collection/implementations/list-collection/list-collection.js.map +1 -1
  26. package/dist/event-bus/contracts/_shared.d.ts +0 -7
  27. package/dist/event-bus/contracts/_shared.js.map +1 -1
  28. package/dist/event-bus/contracts/event-bus-adapter.contract.d.ts +6 -5
  29. package/dist/event-bus/contracts/event-bus.contract.d.ts +21 -16
  30. package/dist/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.d.ts +4 -3
  31. package/dist/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js +3 -3
  32. package/dist/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js.map +1 -1
  33. package/dist/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.d.ts +4 -3
  34. package/dist/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js.map +1 -1
  35. package/dist/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.d.ts +4 -3
  36. package/dist/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js +3 -3
  37. package/dist/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js.map +1 -1
  38. package/dist/event-bus/implementations/derivables/event-bus/event-bus.d.ts +64 -33
  39. package/dist/event-bus/implementations/derivables/event-bus/event-bus.js +92 -33
  40. package/dist/event-bus/implementations/derivables/event-bus/event-bus.js.map +1 -1
  41. package/dist/event-bus/implementations/test-utilities/event-bus.test-suite.js +957 -201
  42. package/dist/event-bus/implementations/test-utilities/event-bus.test-suite.js.map +1 -1
  43. package/dist/lock/contracts/lock-provider.contract.d.ts +2 -2
  44. package/dist/lock/contracts/lock.contract.d.ts +24 -6
  45. package/dist/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js +2 -2
  46. package/dist/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js.map +1 -1
  47. package/dist/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.js +4 -4
  48. package/dist/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.js.map +1 -1
  49. package/dist/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.js +2 -2
  50. package/dist/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.js.map +1 -1
  51. package/dist/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.js +4 -4
  52. package/dist/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.js.map +1 -1
  53. package/dist/lock/implementations/derivables/lock-provider/lock-provider.d.ts +90 -48
  54. package/dist/lock/implementations/derivables/lock-provider/lock-provider.js +67 -43
  55. package/dist/lock/implementations/derivables/lock-provider/lock-provider.js.map +1 -1
  56. package/dist/lock/implementations/derivables/lock-provider/lock-serde-transformer.d.ts +4 -23
  57. package/dist/lock/implementations/derivables/lock-provider/lock-serde-transformer.js +8 -2
  58. package/dist/lock/implementations/derivables/lock-provider/lock-serde-transformer.js.map +1 -1
  59. package/dist/lock/implementations/derivables/lock-provider/lock.d.ts +744 -11
  60. package/dist/lock/implementations/derivables/lock-provider/lock.js +770 -3
  61. package/dist/lock/implementations/derivables/lock-provider/lock.js.map +1 -1
  62. package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.d.ts +36 -5
  63. package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js +10 -4
  64. package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js.map +1 -1
  65. package/dist/lock/implementations/test-utilities/lock-provider.test-suite.d.ts +1 -0
  66. package/dist/lock/implementations/test-utilities/lock-provider.test-suite.js +417 -0
  67. package/dist/lock/implementations/test-utilities/lock-provider.test-suite.js.map +1 -1
  68. package/dist/serde/implementations/derivables/serde.js +4 -4
  69. package/dist/serde/implementations/derivables/serde.js.map +1 -1
  70. package/dist/utilities/{constants.js → _constants.js} +1 -1
  71. package/dist/utilities/_constants.js.map +1 -0
  72. package/dist/utilities/_module-exports.d.ts +1 -1
  73. package/dist/utilities/_module-exports.js +1 -1
  74. package/dist/utilities/_module-exports.js.map +1 -1
  75. package/dist/utilities/contracts/_module.d.ts +0 -1
  76. package/dist/utilities/contracts/_module.js +0 -1
  77. package/dist/utilities/contracts/_module.js.map +1 -1
  78. package/dist/utilities/functions.d.ts +3 -7
  79. package/dist/utilities/functions.js +3 -10
  80. package/dist/utilities/functions.js.map +1 -1
  81. package/dist/utilities/pipeline/_module.d.ts +1 -0
  82. package/dist/utilities/pipeline/_module.js +2 -0
  83. package/dist/utilities/pipeline/_module.js.map +1 -0
  84. package/dist/utilities/pipeline/pipeline.d.ts +45 -0
  85. package/dist/utilities/pipeline/pipeline.js +75 -0
  86. package/dist/utilities/pipeline/pipeline.js.map +1 -0
  87. package/dist/utilities/time-span/time-span.d.ts +3 -12
  88. package/dist/utilities/time-span/time-span.js +3 -6
  89. package/dist/utilities/time-span/time-span.js.map +1 -1
  90. package/dist/utilities/types.d.ts +19 -2
  91. package/package.json +1 -1
  92. package/dist/utilities/constants.js.map +0 -1
  93. package/dist/utilities/contracts/buildable.contract.d.ts +0 -11
  94. package/dist/utilities/contracts/buildable.contract.js +0 -5
  95. package/dist/utilities/contracts/buildable.contract.js.map +0 -1
  96. /package/dist/utilities/{constants.d.ts → _constants.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"lock.js","sourceRoot":"","sources":["../../../../../src/lock/implementations/derivables/lock-provider/lock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lock.js","sourceRoot":"","sources":["../../../../../src/lock/implementations/derivables/lock-provider/lock.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAMhE,OAAO,EACH,wBAAwB,EACxB,oBAAoB,EACpB,2BAA2B,EAC3B,2BAA2B,EAC3B,yBAAyB,EACzB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,GAE1B,MAAM,qCAAqC,CAAC;AAW7C,OAAO,EAEH,SAAS,GACZ,MAAM,+DAA+D,CAAC;AAoCvE;;;GAGG;AACH,MAAM,OAAO,IAAI;IACb;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,iBAAuB;QACpC,OAAO;YACH,KAAK,EAAE,iBAAiB,CAAC,OAAO,CAAC,QAAQ,EAAE;YAC3C,GAAG,EAAE,iBAAiB,CAAC,GAAG;YAC1B,KAAK,EAAE,iBAAiB,CAAC,KAAK;YAC9B,OAAO,EAAE,iBAAiB,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,IAAI;YACxD,cAAc,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,IAAI;SACnE,CAAC;IACN,CAAC;IAEgB,2BAA2B,CAA+B;IAC1D,YAAY,CAAwB;IACpC,OAAO,CAAe;IACtB,GAAG,CAAS;IACZ,KAAK,CAAS;IACd,GAAG,CAAkB;IACrB,uBAAuB,CAAW;IAClC,mBAAmB,CAAW;IAC9B,kBAAkB,CAAW;IAC7B,mBAAmB,CAAsC;IACzD,KAAK,CAAY;IAElC;;OAEG;IACH,YAAY,QAAsB;QAC9B,MAAM,EACF,2BAA2B,EAC3B,YAAY,EACZ,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,EAClB,OAAO,EACP,GAAG,EACH,KAAK,EACL,GAAG,EACH,mBAAmB,EACnB,WAAW,EACX,cAAc,GACjB,GAAG,QAAQ,CAAC;QACb,IAAI,CAAC,2BAA2B,GAAG,2BAA2B,CAAC;QAC/D,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;QACvD,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,CAAC,KAAK,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACnC,CAAC;IAEO,gBAAgB,CACpB,OAAkC;QAElC,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC;aAC1B,gBAAgB,CAAC,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC;aACxD,gBAAgB,CAAC,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC;aACxD,cAAc,CAAC,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC;aACpD,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACtD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiGG;IACH,GAAG,CACC,OAAgC;QAEhC,OAAO,IAAI,CAAC,gBAAgB,CACxB,KAAK,IAA0D,EAAE;YAC7D,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;gBAChC,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;YACvC,CAAC;YACD,IAAI,CAAC;gBACD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;gBACxC,IAAI,CAAC,UAAU,EAAE,CAAC;oBACd,OAAO;wBACH,IAAI;wBACJ,IAAI,2BAA2B,CAC3B,QAAQ,IAAI,CAAC,GAAG,oBAAoB,CACvC;qBACJ,CAAC;gBACN,CAAC;gBAED,OAAO,CAAC,MAAM,OAAO,EAAE,IAAI,CAAC,CAAC;YACjC,CAAC;oBAAS,CAAC;gBACP,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YACzB,CAAC;QACL,CAAC,CACJ,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,YAAY,uBAAuB,CAAC,CAAC;IAC1E,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsGG;IACH,SAAS,CACL,OAAgC;QAEhC,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,IAAI,EAAE;YACpC,IAAI,CAAC;gBACD,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;oBAChC,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;gBACvC,CAAC;gBACD,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC3B,OAAO,MAAM,OAAO,CAAC;YACzB,CAAC;oBAAS,CAAC;gBACP,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YACzB,CAAC;QACL,CAAC,CAAC,CAAC,cAAc,CACb,CAAC,KAAK,EAAE,EAAE,CACN,KAAK,YAAY,uBAAuB;YACxC,KAAK,YAAY,2BAA2B,CACnD,CAAC;IACN,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiGG;IACH,WAAW,CACP,OAAgC,EAChC,QAAiC;QAEjC,OAAO,IAAI,CAAC,gBAAgB,CACxB,KAAK,IAA0D,EAAE;YAC7D,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;gBAChC,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;YACvC,CAAC;YACD,IAAI,CAAC;gBACD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;gBACxD,IAAI,CAAC,UAAU,EAAE,CAAC;oBACd,OAAO;wBACH,IAAI;wBACJ,IAAI,2BAA2B,CAC3B,QAAQ,IAAI,CAAC,GAAG,oBAAoB,CACvC;qBACJ,CAAC;gBACN,CAAC;gBAED,OAAO,CAAC,MAAM,OAAO,EAAE,IAAI,CAAC,CAAC;YACjC,CAAC;oBAAS,CAAC;gBACP,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YACzB,CAAC;QACL,CAAC,CACJ,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,YAAY,uBAAuB,CAAC,CAAC;IAC1E,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoDG;IACH,OAAO;QACH,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,IAAI,EAAE;YACpC,IAAI,CAAC;gBACD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBACpB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CACzC,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,GAAG,CACX,CAAC;gBACF,IAAI,UAAU,EAAE,CAAC;oBACb,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACzB,MAAM,KAAK,GAAG,IAAI,oBAAoB,CAAC;wBACnC,GAAG,EAAE,IAAI,CAAC,GAAG;wBACb,KAAK,EAAE,IAAI,CAAC,KAAK;wBACjB,GAAG,EAAE,IAAI,CAAC,GAAG;qBAChB,CAAC,CAAC;oBACH,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;oBAC1C,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;gBAC7D,CAAC;qBAAM,CAAC;oBACJ,MAAM,KAAK,GAAG,IAAI,2BAA2B,CAAC;wBAC1C,GAAG,EAAE,IAAI,CAAC,GAAG;wBACb,KAAK,EAAE,IAAI,CAAC,KAAK;qBACpB,CAAC,CAAC;oBACH,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;oBAC1C,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;gBAC7D,CAAC;gBACD,OAAO,UAAU,CAAC;YACtB,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACtB,MAAM,KAAK,GAAG,IAAI,wBAAwB,CAAC;oBACvC,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,KAAK;iBACR,CAAC,CAAC;gBACH,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;gBAC1C,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;gBACzD,MAAM,KAAK,CAAC;YAChB,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkDG;IACH,aAAa;QACT,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YACxC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACd,MAAM,IAAI,2BAA2B,CACjC,QAAQ,IAAI,CAAC,GAAG,oBAAoB,CACvC,CAAC;YACN,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoDG;IACH,eAAe,CACX,WAAmC,EAAE;QAErC,OAAO,IAAI,WAAW,CAAC,KAAK,IAAI,EAAE;YAC9B,MAAM,EACF,IAAI,GAAG,IAAI,CAAC,uBAAuB,EACnC,QAAQ,GAAG,IAAI,CAAC,uBAAuB,GAC1C,GAAG,QAAQ,CAAC;YACb,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YACjC,OAAO,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC9C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;gBACxC,IAAI,UAAU,EAAE,CAAC;oBACb,OAAO,IAAI,CAAC;gBAChB,CAAC;gBACD,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC1B,CAAC;YACD,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,IAAI,EAAE;YACpC,IAAI,CAAC;gBACD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAC1C,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,KAAK,CACb,CAAC;gBACF,IAAI,WAAW,EAAE,CAAC;oBACd,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;oBACpB,MAAM,KAAK,GAAG,IAAI,oBAAoB,CAAC;wBACnC,GAAG,EAAE,IAAI,CAAC,GAAG;wBACb,KAAK,EAAE,IAAI,CAAC,KAAK;qBACpB,CAAC,CAAC;oBACH,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;oBAC1C,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;gBAC7D,CAAC;qBAAM,CAAC;oBACJ,MAAM,KAAK,GAAG,IAAI,uBAAuB,CAAC;wBACtC,GAAG,EAAE,IAAI,CAAC,GAAG;wBACb,KAAK,EAAE,IAAI,CAAC,KAAK;qBACpB,CAAC,CAAC;oBACH,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;oBAC1C,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;gBAC7D,CAAC;gBACD,OAAO,WAAW,CAAC;YACvB,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACtB,MAAM,KAAK,GAAG,IAAI,wBAAwB,CAAC;oBACvC,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,KAAK;iBACR,CAAC,CAAC;gBACH,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;gBAC1C,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;gBACzD,MAAM,KAAK,CAAC;YAChB,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,aAAa;QACT,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YACxC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACd,MAAM,IAAI,uBAAuB,CAC7B,2BAA2B,IAAI,CAAC,GAAG,eAAe,IAAI,CAAC,KAAK,GAAG,CAClE,CAAC;YACN,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,YAAY;QACR,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,IAAI,EAAE;YACpC,IAAI,CAAC;gBACD,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC1C,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBACpB,MAAM,KAAK,GAAG,IAAI,yBAAyB,CAAC;oBACxC,GAAG,EAAE,IAAI,CAAC,GAAG;iBAChB,CAAC,CAAC;gBACH,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;gBAC1C,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;YAC7D,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACtB,MAAM,KAAK,GAAG,IAAI,wBAAwB,CAAC;oBACvC,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,KAAK;iBACR,CAAC,CAAC;gBACH,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;gBAC1C,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;gBACzD,MAAM,KAAK,CAAC;YAChB,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,SAAS;QACL,4DAA4D;QAC5D,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,IAAI,EAAE;YACpC,IAAI,CAAC;gBACD,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YAClC,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACtB,MAAM,KAAK,GAAG,IAAI,wBAAwB,CAAC;oBACvC,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,KAAK;iBACR,CAAC,CAAC;gBACH,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;gBAC1C,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;gBACzD,MAAM,KAAK,CAAC;YAChB,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACzC,OAAO,CAAC,SAAS,CAAC;QACtB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,OAAO,CAAC,MAAgB,IAAI,CAAC,kBAAkB;QAC3C,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,IAAI,EAAE;YACpC,IAAI,CAAC;gBACD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAC3C,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,KAAK,EACV,GAAG,CACN,CAAC;gBACF,IAAI,YAAY,EAAE,CAAC;oBACf,MAAM,KAAK,GAAG,IAAI,qBAAqB,CAAC;wBACpC,GAAG,EAAE,IAAI,CAAC,GAAG;wBACb,KAAK,EAAE,IAAI,CAAC,KAAK;wBACjB,GAAG;qBACN,CAAC,CAAC;oBACH,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACpB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;oBAC1C,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;gBAC7D,CAAC;qBAAM,CAAC;oBACJ,MAAM,KAAK,GAAG,IAAI,uBAAuB,CAAC;wBACtC,GAAG,EAAE,IAAI,CAAC,GAAG;wBACb,KAAK,EAAE,IAAI,CAAC,KAAK;qBACpB,CAAC,CAAC;oBACH,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;oBAC1C,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;gBAC7D,CAAC;gBACD,OAAO,YAAY,CAAC;YACxB,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACtB,MAAM,KAAK,GAAG,IAAI,wBAAwB,CAAC;oBACvC,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,KAAK;iBACR,CAAC,CAAC;gBACH,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;gBAC1C,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;gBACzD,MAAM,KAAK,CAAC;YAChB,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,aAAa,CAAC,GAAc;QACxB,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC7C,IAAI,CAAC,YAAY,EAAE,CAAC;gBAChB,MAAM,IAAI,uBAAuB,CAC7B,2BAA2B,IAAI,CAAC,GAAG,eAAe,IAAI,CAAC,KAAK,GAAG,CAClE,CAAC;YACN,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,gBAAgB;QACZ,4DAA4D;QAC5D,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,IAAI,EAAE;YACpC,OAAO,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;QACzC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,QAAQ;QACJ,4DAA4D;QAC5D,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,IAAI,EAAE;YACpC,OAAO,IAAI,CAAC,KAAK,CAAC;QACtB,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACH,WAAW,CACP,KAAkB,EAClB,QAA+C;QAE/C,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACH,eAAe,CACX,MAAqB,EACrB,QAA+C;QAE/C,OAAO,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/D,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACH,cAAc,CACV,KAAkB,EAClB,QAA+C;QAE/C,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACH,kBAAkB,CACd,MAAqB,EACrB,QAA+C;QAE/C,OAAO,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAClE,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACH,UAAU,CACN,KAAkB,EAClB,QAA+C;QAE/C,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACzD,CAAC;IAED,SAAS,CACL,KAAkB;QAElB,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACH,SAAS,CACL,KAAkB,EAClB,QAA+C;QAE/C,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACxD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACH,aAAa,CACT,MAAqB,EACrB,QAA+C;QAE/C,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7D,CAAC;CACJ"}
@@ -45,19 +45,48 @@ export type LockProviderFactorySettings<TAdapters extends string> = {
45
45
  */
46
46
  createOwnerId?: () => string;
47
47
  /**
48
- * In order to listen to events of <i>{@link LockProvider}</i> class you must pass in <i>{@link IGroupableEventBus}</i>.
48
+ * @default
49
+ * ```ts
50
+ * new EventBus({
51
+ * adapter: new MemoryEventBusAdapter({
52
+ * rootGroup: "@global"
53
+ * })
54
+ * })
55
+ * ```
49
56
  */
50
57
  eventBus?: IGroupableEventBus<any>;
51
58
  /**
52
59
  * You can decide the default ttl value for <i>{@link ILock}</i> expiration. If null is passed then no ttl will be used by default.
53
- * @default TimeSpan.fromMinutes(5);
60
+ * @default
61
+ * ```ts
62
+ * TimeSpan.fromMinutes(5);
63
+ * ```
54
64
  */
55
65
  defaultTtl?: TimeSpan | null;
66
+ /**
67
+ * The default refresh time used in the <i>{@link ILock}</i> <i>acquireBlocking</i> and <i>runBlocking</i> methods.
68
+ * @default
69
+ * ```ts
70
+ * TimeSpan.fromSeconds(1);
71
+ * ```
72
+ */
73
+ defaultBlockingInterval?: TimeSpan;
74
+ /**
75
+ * The default refresh time used in the <i>{@link ILock}</i> <i>acquireBlocking</i> and <i>runBlocking</i> methods.
76
+ * @default
77
+ * ```ts
78
+ * TimeSpan.fromMinutes(1)
79
+ * ```
80
+ */
81
+ defaultBlockingTime?: TimeSpan;
56
82
  /**
57
83
  * The default refreshtime used in the <i>{@link ILock}</i> <i>extend</i> method.
58
- * @default TimeSpan.fromMinutes(5);`
84
+ * @default
85
+ * ```ts
86
+ * TimeSpan.fromMinutes(5);
87
+ * ```
59
88
  */
60
- defaultExtendTime?: TimeSpan;
89
+ defaultRefreshTime?: TimeSpan;
61
90
  /**
62
91
  * The default retry attempt to use in the returned <i>LazyPromise</i>.
63
92
  * @default {null}
@@ -93,7 +122,9 @@ export declare class LockProviderFactory<TAdapters extends string> implements IL
93
122
  private readonly createOwnerId?;
94
123
  private readonly eventBus?;
95
124
  private readonly defaultTtl?;
96
- private readonly defaultExtendTime?;
125
+ private readonly defaultBlockingInterval?;
126
+ private readonly defaultBlockingTime?;
127
+ private readonly defaultRefreshTime?;
97
128
  private readonly retryAttempts?;
98
129
  private readonly backoffPolicy?;
99
130
  private readonly retryPolicy?;
@@ -18,7 +18,9 @@ export class LockProviderFactory {
18
18
  createOwnerId;
19
19
  eventBus;
20
20
  defaultTtl;
21
- defaultExtendTime;
21
+ defaultBlockingInterval;
22
+ defaultBlockingTime;
23
+ defaultRefreshTime;
22
24
  retryAttempts;
23
25
  backoffPolicy;
24
26
  retryPolicy;
@@ -55,7 +57,7 @@ export class LockProviderFactory {
55
57
  * ```
56
58
  */
57
59
  constructor(settings) {
58
- const { serde, shouldRegisterErrors = true, shouldRegisterEvents = true, adapters, defaultAdapter, createOwnerId, eventBus, defaultTtl, defaultExtendTime, retryAttempts, backoffPolicy, retryPolicy, timeout, } = settings;
60
+ const { serde, shouldRegisterErrors = true, shouldRegisterEvents = true, adapters, defaultAdapter, createOwnerId, eventBus, defaultTtl, defaultBlockingInterval, defaultBlockingTime, defaultRefreshTime, retryAttempts, backoffPolicy, retryPolicy, timeout, } = settings;
59
61
  this.serde = serde;
60
62
  this.shouldRegisterErrors = shouldRegisterErrors;
61
63
  this.shouldRegisterEvents = shouldRegisterEvents;
@@ -63,7 +65,9 @@ export class LockProviderFactory {
63
65
  this.createOwnerId = createOwnerId;
64
66
  this.eventBus = eventBus;
65
67
  this.defaultTtl = defaultTtl;
66
- this.defaultExtendTime = defaultExtendTime;
68
+ this.defaultBlockingInterval = defaultBlockingInterval;
69
+ this.defaultBlockingTime = defaultBlockingTime;
70
+ this.defaultRefreshTime = defaultRefreshTime;
67
71
  this.retryAttempts = retryAttempts;
68
72
  this.backoffPolicy = backoffPolicy;
69
73
  this.retryPolicy = retryPolicy;
@@ -92,7 +96,9 @@ export class LockProviderFactory {
92
96
  backoffPolicy: this.backoffPolicy,
93
97
  retryPolicy: this.retryPolicy,
94
98
  timeout: this.timeout,
95
- defaultRefreshTime: this.defaultExtendTime,
99
+ defaultBlockingInterval: this.defaultBlockingInterval,
100
+ defaultBlockingTime: this.defaultBlockingTime,
101
+ defaultRefreshTime: this.defaultRefreshTime,
96
102
  createOwnerId: this.createOwnerId,
97
103
  });
98
104
  cacheRecord[key] = lockProvider;
@@ -1 +1 @@
1
- {"version":3,"file":"lock-provider-factory.js","sourceRoot":"","sources":["../../../../../src/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lock-provider-factory.js","sourceRoot":"","sources":["../../../../../src/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,7 @@ export type LockProviderTestSuiteSettings = {
23
23
  *
24
24
  * IMPORT_PATH: ```"@daiso-tech/core/lock/implementations/test-utilities"```
25
25
  * @group Utilities
26
+ * @example
26
27
  * ```ts
27
28
  * import { beforeEach, describe, expect, test } from "vitest";
28
29
  * import { MemoryLockAdapter } from "@daiso-tech/core/lock/implementations/adapters";
@@ -13,6 +13,7 @@ import { Serde } from "../../../serde/implementations/derivables/_module-exports
13
13
  *
14
14
  * IMPORT_PATH: ```"@daiso-tech/core/lock/implementations/test-utilities"```
15
15
  * @group Utilities
16
+ * @example
16
17
  * ```ts
17
18
  * import { beforeEach, describe, expect, test } from "vitest";
18
19
  * import { MemoryLockAdapter } from "@daiso-tech/core/lock/implementations/adapters";
@@ -148,6 +149,76 @@ export function lockProviderTestSuite(settings) {
148
149
  expect(result).toBe("a");
149
150
  });
150
151
  });
152
+ describe("method: runBlocking", () => {
153
+ test("Should return string when lock is available", async () => {
154
+ const key = "a";
155
+ const ttl = null;
156
+ const lock = lockProviderA.create(key, {
157
+ ttl,
158
+ });
159
+ const [result, error] = await lock.runBlocking(async () => {
160
+ await delay(TTL);
161
+ return "a";
162
+ }, {
163
+ time: TimeSpan.fromMilliseconds(5),
164
+ interval: TimeSpan.fromMilliseconds(5),
165
+ });
166
+ expect(result).toBe("a");
167
+ expect(error).toBeNull();
168
+ });
169
+ test("Should return null when lock is already acquired", async () => {
170
+ const key = "a";
171
+ const ttl = null;
172
+ const lock = lockProviderA.create(key, {
173
+ ttl,
174
+ });
175
+ await lock.acquire();
176
+ const [result, error] = await lock.runBlocking(async () => {
177
+ await delay(TTL);
178
+ return "a";
179
+ }, {
180
+ time: TimeSpan.fromMilliseconds(5),
181
+ interval: TimeSpan.fromMilliseconds(5),
182
+ });
183
+ expect(result).toBeNull();
184
+ expect(error).toBeInstanceOf(KeyAlreadyAcquiredLockError);
185
+ });
186
+ test("Should work with LazyPromise", async () => {
187
+ const key = "a";
188
+ const ttl = null;
189
+ const lock = lockProviderA.create(key, {
190
+ ttl,
191
+ });
192
+ const [result, error] = await lock.runBlocking(new LazyPromise(async () => {
193
+ await delay(TTL);
194
+ return "a";
195
+ }), {
196
+ time: TimeSpan.fromMilliseconds(5),
197
+ interval: TimeSpan.fromMilliseconds(5),
198
+ });
199
+ expect(result).toBe("a");
200
+ expect(error).toBeNull();
201
+ });
202
+ test("Should retry acquire the lock", async () => {
203
+ const key = "a";
204
+ const ttl = TimeSpan.fromMilliseconds(50);
205
+ const lock = lockProviderA.create(key, {
206
+ ttl,
207
+ });
208
+ await lock.acquire();
209
+ let index = 0;
210
+ await lock.addListener(KeyAlreadyAcquiredLockEvent, (_event) => {
211
+ index++;
212
+ });
213
+ await lock.runBlocking(async () => {
214
+ await delay(TTL);
215
+ }, {
216
+ time: TimeSpan.fromMilliseconds(55),
217
+ interval: TimeSpan.fromMilliseconds(5),
218
+ });
219
+ expect(index).toBeGreaterThan(1);
220
+ });
221
+ });
151
222
  describe("method: acquire", () => {
152
223
  test("Should return true when lock is available", async () => {
153
224
  const key = "a";
@@ -214,6 +285,83 @@ export function lockProviderTestSuite(settings) {
214
285
  await expect(result).rejects.toBeInstanceOf(KeyAlreadyAcquiredLockError);
215
286
  });
216
287
  });
288
+ describe("method: acquireBlocking", () => {
289
+ test("Should return true when lock is available", async () => {
290
+ const key = "a";
291
+ const ttl = null;
292
+ const lock = lockProviderA.create(key, {
293
+ ttl,
294
+ });
295
+ const result = await lock.acquireBlocking({
296
+ time: TimeSpan.fromMilliseconds(5),
297
+ interval: TimeSpan.fromMilliseconds(5),
298
+ });
299
+ expect(result).toBe(true);
300
+ });
301
+ test("Should return false when lock is already acquired", async () => {
302
+ const key = "a";
303
+ const ttl = null;
304
+ const lock = lockProviderA.create(key, {
305
+ ttl,
306
+ });
307
+ await lock.acquireBlocking({
308
+ time: TimeSpan.fromMilliseconds(0),
309
+ interval: TimeSpan.fromMilliseconds(0),
310
+ });
311
+ const result = await lock.acquireBlocking({
312
+ time: TimeSpan.fromMilliseconds(0),
313
+ interval: TimeSpan.fromMilliseconds(0),
314
+ });
315
+ expect(result).toBe(false);
316
+ });
317
+ test("Should not be expired when released by same owner", async () => {
318
+ const key = "a";
319
+ const ttl = null;
320
+ const owner = "b";
321
+ const lock = lockProviderA.create(key, {
322
+ ttl,
323
+ owner,
324
+ });
325
+ await lock.acquireBlocking({
326
+ time: TimeSpan.fromMilliseconds(0),
327
+ interval: TimeSpan.fromMilliseconds(0),
328
+ });
329
+ const result = await lock.isExpired();
330
+ expect(result).toBe(false);
331
+ });
332
+ test("Should be loked when released by same owner", async () => {
333
+ const key = "a";
334
+ const ttl = null;
335
+ const owner = "b";
336
+ const lock = lockProviderA.create(key, {
337
+ ttl,
338
+ owner,
339
+ });
340
+ await lock.acquireBlocking({
341
+ time: TimeSpan.fromMilliseconds(0),
342
+ interval: TimeSpan.fromMilliseconds(0),
343
+ });
344
+ const result = await lock.isLocked();
345
+ expect(result).toBe(true);
346
+ });
347
+ test("Should retry acquire the lock", async () => {
348
+ const key = "a";
349
+ const ttl = TimeSpan.fromMilliseconds(50);
350
+ const lock = lockProviderA.create(key, {
351
+ ttl,
352
+ });
353
+ await lock.acquire();
354
+ let index = 0;
355
+ await lock.addListener(KeyAlreadyAcquiredLockEvent, (_event) => {
356
+ index++;
357
+ });
358
+ await lock.acquireBlocking({
359
+ time: TimeSpan.fromMilliseconds(55),
360
+ interval: TimeSpan.fromMilliseconds(5),
361
+ });
362
+ expect(index).toBeGreaterThan(1);
363
+ });
364
+ });
217
365
  describe("method: release", () => {
218
366
  test("Should return true when released by same owner", async () => {
219
367
  const key = "a";
@@ -662,6 +810,75 @@ export function lockProviderTestSuite(settings) {
662
810
  await unsubscribe();
663
811
  });
664
812
  });
813
+ describe("method: runBlocking", () => {
814
+ test("Should dispatch KeyAcquiredLockEvent when lock is not acquired", async () => {
815
+ const key = "a";
816
+ const owner = "b";
817
+ const lock = lockProviderA.create(key, {
818
+ owner,
819
+ ttl: TTL,
820
+ });
821
+ let event_ = null;
822
+ const unsubscribe = await lock.subscribe(KeyAcquiredLockEvent, (event) => {
823
+ event_ = event;
824
+ });
825
+ await lock.runBlocking(async () => {
826
+ await delay(TTL);
827
+ }, {
828
+ time: TimeSpan.fromMilliseconds(5),
829
+ interval: TimeSpan.fromMilliseconds(5),
830
+ });
831
+ await delay(TTL);
832
+ expect(event_?.fields.key).toBe("a");
833
+ expect(event_?.fields.owner).toBe(owner);
834
+ expect(event_?.fields.ttl?.toMilliseconds()).toBe(TTL.toMilliseconds());
835
+ await unsubscribe();
836
+ });
837
+ test("Should dispatch KeyReleasedLockEvent when lock is not acquired", async () => {
838
+ const key = "a";
839
+ const owner = "b";
840
+ const lock = lockProviderA.create(key, {
841
+ owner,
842
+ ttl: TTL,
843
+ });
844
+ let event_ = null;
845
+ const unsubscribe = await lock.subscribe(KeyReleasedLockEvent, (event) => {
846
+ event_ = event;
847
+ });
848
+ await lock.runBlocking(async () => {
849
+ await delay(TTL);
850
+ }, {
851
+ time: TimeSpan.fromMilliseconds(5),
852
+ interval: TimeSpan.fromMilliseconds(5),
853
+ });
854
+ await delay(TTL);
855
+ expect(event_?.fields.key).toBe(key);
856
+ expect(event_?.fields.owner).toBe(owner);
857
+ await unsubscribe();
858
+ });
859
+ test("Should dispatch KeyAlreadyAcquiredLockEvent when lock is acquired", async () => {
860
+ const key = "a";
861
+ const owner = "b";
862
+ const lock = lockProviderA.create(key, {
863
+ owner,
864
+ });
865
+ let event_ = null;
866
+ await lock.acquire();
867
+ const unsubscribe = await lock.subscribe(KeyAlreadyAcquiredLockEvent, (event) => {
868
+ event_ = event;
869
+ });
870
+ await lock.runBlocking(async () => {
871
+ await delay(TTL);
872
+ }, {
873
+ time: TimeSpan.fromMilliseconds(5),
874
+ interval: TimeSpan.fromMilliseconds(5),
875
+ });
876
+ await delay(TTL);
877
+ expect(event_?.fields.key).toBe("a");
878
+ expect(event_?.fields.owner).toBe(owner);
879
+ await unsubscribe();
880
+ });
881
+ });
665
882
  describe("method: runOrFail", () => {
666
883
  test("Should dispatch KeyAcquiredLockEvent when lock is not acquired", async () => {
667
884
  const key = "a";
@@ -764,6 +981,52 @@ export function lockProviderTestSuite(settings) {
764
981
  await unsubscribe();
765
982
  });
766
983
  });
984
+ describe("method: acquireBlocking", () => {
985
+ test("Should dispatch KeyAcquiredLockEvent when lock is not acquired", async () => {
986
+ const key = "a";
987
+ const owner = "b";
988
+ const lock = lockProviderA.create(key, {
989
+ owner,
990
+ ttl: TTL,
991
+ });
992
+ let event_ = null;
993
+ const unsubscribe = await lock.subscribe(KeyAcquiredLockEvent, (event) => {
994
+ event_ = event;
995
+ });
996
+ await lock.acquireBlocking({
997
+ time: TimeSpan.fromMilliseconds(5),
998
+ interval: TimeSpan.fromMilliseconds(5),
999
+ });
1000
+ await delay(TTL);
1001
+ expect(event_?.fields.key).toBe("a");
1002
+ expect(event_?.fields.owner).toBe(owner);
1003
+ expect(event_?.fields.ttl?.toMilliseconds()).toBe(TTL.toMilliseconds());
1004
+ await unsubscribe();
1005
+ });
1006
+ test("Should dispatch KeyAlreadyAcquiredLockEvent when lock is acquired", async () => {
1007
+ const key = "a";
1008
+ const owner = "b";
1009
+ const lock = lockProviderA.create(key, {
1010
+ owner,
1011
+ });
1012
+ let event_ = null;
1013
+ await lock.acquireBlocking({
1014
+ time: TimeSpan.fromMilliseconds(5),
1015
+ interval: TimeSpan.fromMilliseconds(5),
1016
+ });
1017
+ const unsubscribe = await lock.subscribe(KeyAlreadyAcquiredLockEvent, (event) => {
1018
+ event_ = event;
1019
+ });
1020
+ await lock.acquireBlocking({
1021
+ time: TimeSpan.fromMilliseconds(5),
1022
+ interval: TimeSpan.fromMilliseconds(5),
1023
+ });
1024
+ await delay(TTL);
1025
+ expect(event_?.fields.key).toBe("a");
1026
+ expect(event_?.fields.owner).toBe(owner);
1027
+ await unsubscribe();
1028
+ });
1029
+ });
767
1030
  describe("method: acquireOrFail", () => {
768
1031
  test("Should dispatch KeyAcquiredLockEvent when lock is not acquired", async () => {
769
1032
  const key = "a";
@@ -1074,6 +1337,75 @@ export function lockProviderTestSuite(settings) {
1074
1337
  await unsubscribe();
1075
1338
  });
1076
1339
  });
1340
+ describe("method: runBlocking", () => {
1341
+ test("Should dispatch KeyAcquiredLockEvent when lock is not acquired", async () => {
1342
+ const key = "a";
1343
+ const owner = "b";
1344
+ const lock = lockProviderA.create(key, {
1345
+ owner,
1346
+ ttl: TTL,
1347
+ });
1348
+ let event_ = null;
1349
+ const unsubscribe = await lockProviderA.subscribe(KeyAcquiredLockEvent, (event) => {
1350
+ event_ = event;
1351
+ });
1352
+ await lock.runBlocking(async () => {
1353
+ await delay(TTL);
1354
+ }, {
1355
+ time: TimeSpan.fromMilliseconds(5),
1356
+ interval: TimeSpan.fromMilliseconds(5),
1357
+ });
1358
+ await delay(TTL);
1359
+ expect(event_?.fields.key).toBe("a");
1360
+ expect(event_?.fields.owner).toBe(owner);
1361
+ expect(event_?.fields.ttl?.toMilliseconds()).toBe(TTL.toMilliseconds());
1362
+ await unsubscribe();
1363
+ });
1364
+ test("Should dispatch KeyReleasedLockEvent when lock is not acquired", async () => {
1365
+ const key = "a";
1366
+ const owner = "b";
1367
+ const lock = lockProviderA.create(key, {
1368
+ owner,
1369
+ ttl: TTL,
1370
+ });
1371
+ let event_ = null;
1372
+ const unsubscribe = await lockProviderA.subscribe(KeyReleasedLockEvent, (event) => {
1373
+ event_ = event;
1374
+ });
1375
+ await lock.runBlocking(async () => {
1376
+ await delay(TTL);
1377
+ }, {
1378
+ time: TimeSpan.fromMilliseconds(5),
1379
+ interval: TimeSpan.fromMilliseconds(5),
1380
+ });
1381
+ await delay(TTL);
1382
+ expect(event_?.fields.key).toBe(key);
1383
+ expect(event_?.fields.owner).toBe(owner);
1384
+ await unsubscribe();
1385
+ });
1386
+ test("Should dispatch KeyAlreadyAcquiredLockEvent when lock is acquired", async () => {
1387
+ const key = "a";
1388
+ const owner = "b";
1389
+ const lock = lockProviderA.create(key, {
1390
+ owner,
1391
+ });
1392
+ let event_ = null;
1393
+ await lock.acquire();
1394
+ const unsubscribe = await lockProviderA.subscribe(KeyAlreadyAcquiredLockEvent, (event) => {
1395
+ event_ = event;
1396
+ });
1397
+ await lock.runBlocking(async () => {
1398
+ await delay(TTL);
1399
+ }, {
1400
+ time: TimeSpan.fromMilliseconds(5),
1401
+ interval: TimeSpan.fromMilliseconds(5),
1402
+ });
1403
+ await delay(TTL);
1404
+ expect(event_?.fields.key).toBe("a");
1405
+ expect(event_?.fields.owner).toBe(owner);
1406
+ await unsubscribe();
1407
+ });
1408
+ });
1077
1409
  describe("method: runOrFail", () => {
1078
1410
  test("Should dispatch KeyAcquiredLockEvent when lock is not acquired", async () => {
1079
1411
  const key = "a";
@@ -1176,6 +1508,43 @@ export function lockProviderTestSuite(settings) {
1176
1508
  await unsubscribe();
1177
1509
  });
1178
1510
  });
1511
+ describe("method: acquireBlocking", () => {
1512
+ test("Should dispatch KeyAcquiredLockEvent when lock is not acquired", async () => {
1513
+ const key = "a";
1514
+ const owner = "b";
1515
+ const lock = lockProviderA.create(key, {
1516
+ owner,
1517
+ ttl: TTL,
1518
+ });
1519
+ let event_ = null;
1520
+ const unsubscribe = await lockProviderA.subscribe(KeyAcquiredLockEvent, (event) => {
1521
+ event_ = event;
1522
+ });
1523
+ await lock.acquire();
1524
+ await delay(TTL);
1525
+ expect(event_?.fields.key).toBe("a");
1526
+ expect(event_?.fields.owner).toBe(owner);
1527
+ expect(event_?.fields.ttl?.toMilliseconds()).toBe(TTL.toMilliseconds());
1528
+ await unsubscribe();
1529
+ });
1530
+ test("Should dispatch KeyAlreadyAcquiredLockEvent when lock is acquired", async () => {
1531
+ const key = "a";
1532
+ const owner = "b";
1533
+ const lock = lockProviderA.create(key, {
1534
+ owner,
1535
+ });
1536
+ let event_ = null;
1537
+ await lock.acquire();
1538
+ const unsubscribe = await lockProviderA.subscribe(KeyAlreadyAcquiredLockEvent, (event) => {
1539
+ event_ = event;
1540
+ });
1541
+ await lock.acquire();
1542
+ await delay(TTL);
1543
+ expect(event_?.fields.key).toBe("a");
1544
+ expect(event_?.fields.owner).toBe(owner);
1545
+ await unsubscribe();
1546
+ });
1547
+ });
1179
1548
  describe("method: acquireOrFail", () => {
1180
1549
  test("Should dispatch KeyAcquiredLockEvent when lock is not acquired", async () => {
1181
1550
  const key = "a";
@@ -1454,6 +1823,36 @@ export function lockProviderTestSuite(settings) {
1454
1823
  expect(resultB).toBe("a");
1455
1824
  expect(errorB).toBeNull();
1456
1825
  });
1826
+ test("method: runBlocking", async () => {
1827
+ const key = "a";
1828
+ const ownerA = "b";
1829
+ const lockA = lockProviderA.create(key, {
1830
+ owner: ownerA,
1831
+ });
1832
+ const promiseA = lockA.run(async () => {
1833
+ await delay(TTL);
1834
+ return "a";
1835
+ });
1836
+ const ownerB = "c";
1837
+ const lockB = lockProviderB.create(key, {
1838
+ owner: ownerB,
1839
+ });
1840
+ const promiseB = lockB.runBlocking(async () => {
1841
+ await delay(TTL);
1842
+ return "a";
1843
+ }, {
1844
+ time: TimeSpan.fromMilliseconds(5),
1845
+ interval: TimeSpan.fromMilliseconds(5),
1846
+ });
1847
+ const [[resultA, errorA], [resultB, errorB]] = await Promise.all([
1848
+ promiseA,
1849
+ promiseB,
1850
+ ]);
1851
+ expect(resultA).toBe("a");
1852
+ expect(errorA).toBeNull();
1853
+ expect(resultB).toBe("a");
1854
+ expect(errorB).toBeNull();
1855
+ });
1457
1856
  test("method: runOrFail", async () => {
1458
1857
  const key = "a";
1459
1858
  const ownerA = "b";
@@ -1491,6 +1890,24 @@ export function lockProviderTestSuite(settings) {
1491
1890
  expect(resultA).toBe(true);
1492
1891
  expect(resultB).toBe(true);
1493
1892
  });
1893
+ test("method: acquireBlocking", async () => {
1894
+ const key = "a";
1895
+ const ownerA = "b";
1896
+ const lockA = lockProviderA.create(key, {
1897
+ owner: ownerA,
1898
+ });
1899
+ const resultA = await lockA.acquireBlocking({
1900
+ time: TimeSpan.fromMilliseconds(5),
1901
+ interval: TimeSpan.fromMilliseconds(5),
1902
+ });
1903
+ const ownerB = "c";
1904
+ const lockB = lockProviderB.create(key, {
1905
+ owner: ownerB,
1906
+ });
1907
+ const resultB = await lockB.acquire();
1908
+ expect(resultA).toBe(true);
1909
+ expect(resultB).toBe(true);
1910
+ });
1494
1911
  test("method: acquireOrFail", async () => {
1495
1912
  const key = "a";
1496
1913
  const ownerA = "b";