@jonloucks/concurrency-ts 0.4.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 (174) hide show
  1. package/README.md +248 -0
  2. package/api/Completable.d.ts +51 -0
  3. package/api/Completable.d.ts.map +1 -0
  4. package/api/Completable.js +11 -0
  5. package/api/Completable.js.map +1 -0
  6. package/api/CompletableFactory.d.ts +29 -0
  7. package/api/CompletableFactory.d.ts.map +1 -0
  8. package/api/CompletableFactory.js +19 -0
  9. package/api/CompletableFactory.js.map +1 -0
  10. package/api/Completion.d.ts +18 -0
  11. package/api/Completion.d.ts.map +1 -0
  12. package/api/Completion.js +2 -0
  13. package/api/Completion.js.map +1 -0
  14. package/api/CompletionNotify.d.ts +23 -0
  15. package/api/CompletionNotify.d.ts.map +1 -0
  16. package/api/CompletionNotify.js +11 -0
  17. package/api/CompletionNotify.js.map +1 -0
  18. package/api/CompletionState.d.ts +35 -0
  19. package/api/CompletionState.d.ts.map +1 -0
  20. package/api/CompletionState.js +64 -0
  21. package/api/CompletionState.js.map +1 -0
  22. package/api/Concurrency.d.ts +90 -0
  23. package/api/Concurrency.d.ts.map +1 -0
  24. package/api/Concurrency.js +19 -0
  25. package/api/Concurrency.js.map +1 -0
  26. package/api/ConcurrencyException.d.ts +27 -0
  27. package/api/ConcurrencyException.d.ts.map +1 -0
  28. package/api/ConcurrencyException.js +53 -0
  29. package/api/ConcurrencyException.js.map +1 -0
  30. package/api/ConcurrencyFactory.d.ts +41 -0
  31. package/api/ConcurrencyFactory.d.ts.map +1 -0
  32. package/api/ConcurrencyFactory.js +19 -0
  33. package/api/ConcurrencyFactory.js.map +1 -0
  34. package/api/IsCompleted.d.ts +20 -0
  35. package/api/IsCompleted.d.ts.map +1 -0
  36. package/api/IsCompleted.js +11 -0
  37. package/api/IsCompleted.js.map +1 -0
  38. package/api/OnCompletion.d.ts +23 -0
  39. package/api/OnCompletion.d.ts.map +1 -0
  40. package/api/OnCompletion.js +12 -0
  41. package/api/OnCompletion.js.map +1 -0
  42. package/api/Rule.d.ts +28 -0
  43. package/api/Rule.d.ts.map +1 -0
  44. package/api/Rule.js +11 -0
  45. package/api/Rule.js.map +1 -0
  46. package/api/StateMachine.d.ts +95 -0
  47. package/api/StateMachine.d.ts.map +1 -0
  48. package/api/StateMachine.js +13 -0
  49. package/api/StateMachine.js.map +1 -0
  50. package/api/StateMachineFactory.d.ts +29 -0
  51. package/api/StateMachineFactory.d.ts.map +1 -0
  52. package/api/StateMachineFactory.js +19 -0
  53. package/api/StateMachineFactory.js.map +1 -0
  54. package/api/TimeoutException.d.ts +21 -0
  55. package/api/TimeoutException.d.ts.map +1 -0
  56. package/api/TimeoutException.js +27 -0
  57. package/api/TimeoutException.js.map +1 -0
  58. package/api/Transition.d.ts +44 -0
  59. package/api/Transition.d.ts.map +1 -0
  60. package/api/Transition.js +11 -0
  61. package/api/Transition.js.map +1 -0
  62. package/api/Types.d.ts +27 -0
  63. package/api/Types.d.ts.map +1 -0
  64. package/api/Types.js +28 -0
  65. package/api/Types.js.map +1 -0
  66. package/api/Waitable.d.ts +39 -0
  67. package/api/Waitable.d.ts.map +1 -0
  68. package/api/Waitable.js +17 -0
  69. package/api/Waitable.js.map +1 -0
  70. package/api/WaitableConsumer.d.ts +54 -0
  71. package/api/WaitableConsumer.d.ts.map +1 -0
  72. package/api/WaitableConsumer.js +11 -0
  73. package/api/WaitableConsumer.js.map +1 -0
  74. package/api/WaitableFactory.d.ts +29 -0
  75. package/api/WaitableFactory.d.ts.map +1 -0
  76. package/api/WaitableFactory.js +19 -0
  77. package/api/WaitableFactory.js.map +1 -0
  78. package/api/WaitableNotify.d.ts +31 -0
  79. package/api/WaitableNotify.d.ts.map +1 -0
  80. package/api/WaitableNotify.js +12 -0
  81. package/api/WaitableNotify.js.map +1 -0
  82. package/api/WaitableSupplier.d.ts +53 -0
  83. package/api/WaitableSupplier.d.ts.map +1 -0
  84. package/api/WaitableSupplier.js +11 -0
  85. package/api/WaitableSupplier.js.map +1 -0
  86. package/auxiliary/Checks.d.ts +116 -0
  87. package/auxiliary/Checks.d.ts.map +1 -0
  88. package/auxiliary/Checks.js +145 -0
  89. package/auxiliary/Checks.js.map +1 -0
  90. package/auxiliary/Consumer.d.ts +45 -0
  91. package/auxiliary/Consumer.d.ts.map +1 -0
  92. package/auxiliary/Consumer.js +45 -0
  93. package/auxiliary/Consumer.js.map +1 -0
  94. package/auxiliary/Predicate.d.ts +55 -0
  95. package/auxiliary/Predicate.d.ts.map +1 -0
  96. package/auxiliary/Predicate.js +73 -0
  97. package/auxiliary/Predicate.js.map +1 -0
  98. package/auxiliary/Supplier.d.ts +52 -0
  99. package/auxiliary/Supplier.d.ts.map +1 -0
  100. package/auxiliary/Supplier.js +67 -0
  101. package/auxiliary/Supplier.js.map +1 -0
  102. package/impl/Completable.impl.d.ts +10 -0
  103. package/impl/Completable.impl.d.ts.map +1 -0
  104. package/impl/Completable.impl.js +136 -0
  105. package/impl/Completable.impl.js.map +1 -0
  106. package/impl/CompletableFactory.impl.d.ts +9 -0
  107. package/impl/CompletableFactory.impl.d.ts.map +1 -0
  108. package/impl/CompletableFactory.impl.js +42 -0
  109. package/impl/CompletableFactory.impl.js.map +1 -0
  110. package/impl/CompleteLater.impl.d.ts +12 -0
  111. package/impl/CompleteLater.impl.d.ts.map +1 -0
  112. package/impl/CompleteLater.impl.js +31 -0
  113. package/impl/CompleteLater.impl.js.map +1 -0
  114. package/impl/CompleteNow.impl.d.ts +14 -0
  115. package/impl/CompleteNow.impl.d.ts.map +1 -0
  116. package/impl/CompleteNow.impl.js +33 -0
  117. package/impl/CompleteNow.impl.js.map +1 -0
  118. package/impl/Concurrency.impl.d.ts +9 -0
  119. package/impl/Concurrency.impl.d.ts.map +1 -0
  120. package/impl/Concurrency.impl.js +84 -0
  121. package/impl/Concurrency.impl.js.map +1 -0
  122. package/impl/ConcurrencyFactory.impl.d.ts +10 -0
  123. package/impl/ConcurrencyFactory.impl.d.ts.map +1 -0
  124. package/impl/ConcurrencyFactory.impl.js +74 -0
  125. package/impl/ConcurrencyFactory.impl.js.map +1 -0
  126. package/impl/ConcurrencyWrapper.impl.d.ts +13 -0
  127. package/impl/ConcurrencyWrapper.impl.d.ts.map +1 -0
  128. package/impl/ConcurrencyWrapper.impl.js +85 -0
  129. package/impl/ConcurrencyWrapper.impl.js.map +1 -0
  130. package/impl/Events.d.ts +25 -0
  131. package/impl/Events.d.ts.map +1 -0
  132. package/impl/Events.impl.d.ts +11 -0
  133. package/impl/Events.impl.d.ts.map +1 -0
  134. package/impl/Events.impl.js +63 -0
  135. package/impl/Events.impl.js.map +1 -0
  136. package/impl/Events.js +3 -0
  137. package/impl/Events.js.map +1 -0
  138. package/impl/ExposedPromise.d.ts +26 -0
  139. package/impl/ExposedPromise.d.ts.map +1 -0
  140. package/impl/ExposedPromise.impl.d.ts +9 -0
  141. package/impl/ExposedPromise.impl.d.ts.map +1 -0
  142. package/impl/ExposedPromise.impl.js +41 -0
  143. package/impl/ExposedPromise.impl.js.map +1 -0
  144. package/impl/ExposedPromise.js +2 -0
  145. package/impl/ExposedPromise.js.map +1 -0
  146. package/impl/Internal.impl.d.ts +35 -0
  147. package/impl/Internal.impl.d.ts.map +1 -0
  148. package/impl/Internal.impl.js +90 -0
  149. package/impl/Internal.impl.js.map +1 -0
  150. package/impl/StateMachine.impl.d.ts +9 -0
  151. package/impl/StateMachine.impl.d.ts.map +1 -0
  152. package/impl/StateMachine.impl.js +184 -0
  153. package/impl/StateMachine.impl.js.map +1 -0
  154. package/impl/StateMachineFactory.impl.d.ts +9 -0
  155. package/impl/StateMachineFactory.impl.d.ts.map +1 -0
  156. package/impl/StateMachineFactory.impl.js +43 -0
  157. package/impl/StateMachineFactory.impl.js.map +1 -0
  158. package/impl/Waitable.impl.d.ts +8 -0
  159. package/impl/Waitable.impl.d.ts.map +1 -0
  160. package/impl/Waitable.impl.js +212 -0
  161. package/impl/Waitable.impl.js.map +1 -0
  162. package/impl/WaitableFactory.impl.d.ts +9 -0
  163. package/impl/WaitableFactory.impl.d.ts.map +1 -0
  164. package/impl/WaitableFactory.impl.js +42 -0
  165. package/impl/WaitableFactory.impl.js.map +1 -0
  166. package/index.d.ts +25 -0
  167. package/index.d.ts.map +1 -0
  168. package/index.js +33 -0
  169. package/index.js.map +1 -0
  170. package/package.json +88 -0
  171. package/version.d.ts +3 -0
  172. package/version.d.ts.map +1 -0
  173. package/version.js +4 -0
  174. package/version.js.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Completable.impl.js","sourceRoot":"","sources":["../../src/impl/Completable.impl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { CompletableFactory } from "@jonloucks/concurrency-ts/api/CompletableFactory";
2
+ import { Config as ConcurrencyConfig } from "@jonloucks/concurrency-ts/api/Concurrency";
3
+ /**
4
+ * Create a new CompletableFactory
5
+ *
6
+ * @return the new CompletableFactory
7
+ */
8
+ export declare function create(config?: ConcurrencyConfig): CompletableFactory;
9
+ //# sourceMappingURL=CompletableFactory.impl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CompletableFactory.impl.d.ts","sourceRoot":"","sources":["../../src/impl/CompletableFactory.impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AAEtF,OAAO,EAAE,MAAM,IAAI,iBAAiB,EAAa,MAAM,2CAA2C,CAAC;AAKnG;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,MAAM,CAAC,EAAE,iBAAiB,GAAG,kBAAkB,CAErE"}
@@ -0,0 +1,42 @@
1
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
+ };
6
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
7
+ if (kind === "m") throw new TypeError("Private method is not writable");
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
10
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
11
+ };
12
+ var _CompletableFactoryImpl_concurrencyConfig;
13
+ import { create as createCompletableImpl } from "./Completable.impl.js";
14
+ import { Internal } from "./Internal.impl.js";
15
+ /**
16
+ * Create a new CompletableFactory
17
+ *
18
+ * @return the new CompletableFactory
19
+ */
20
+ export function create(config) {
21
+ return CompletableFactoryImpl.internalCreate(config);
22
+ }
23
+ // ---- Implementation details below ----
24
+ class CompletableFactoryImpl {
25
+ createCompletable(config) {
26
+ const validConfig = config ?? {};
27
+ const contracts = Internal.resolveContracts(validConfig, __classPrivateFieldGet(this, _CompletableFactoryImpl_concurrencyConfig, "f"));
28
+ const finalConfig = { ...__classPrivateFieldGet(this, _CompletableFactoryImpl_concurrencyConfig, "f"), ...validConfig, contracts: contracts };
29
+ return createCompletableImpl(finalConfig);
30
+ }
31
+ static internalCreate(config) {
32
+ return new CompletableFactoryImpl(config);
33
+ }
34
+ constructor(config) {
35
+ _CompletableFactoryImpl_concurrencyConfig.set(this, void 0);
36
+ const contracts = Internal.resolveContracts(config);
37
+ __classPrivateFieldSet(this, _CompletableFactoryImpl_concurrencyConfig, { ...config, contracts: contracts }, "f");
38
+ }
39
+ }
40
+ _CompletableFactoryImpl_concurrencyConfig = new WeakMap();
41
+ ;
42
+ //# sourceMappingURL=CompletableFactory.impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CompletableFactory.impl.js","sourceRoot":"","sources":["../../src/impl/CompletableFactory.impl.ts"],"names":[],"mappings":";;;;;;;;;;;;AAIA,OAAO,EAAE,MAAM,IAAI,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C;;;;GAIG;AACH,MAAM,UAAU,MAAM,CAAC,MAA0B;IAC/C,OAAO,sBAAsB,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AACvD,CAAC;AAED,yCAAyC;AAEzC,MAAM,sBAAsB;IAE1B,iBAAiB,CAAI,MAA6B;QAChD,MAAM,WAAW,GAAG,MAAM,IAAI,EAAE,CAAC;QACjC,MAAM,SAAS,GAAc,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,uBAAA,IAAI,iDAAmB,CAAC,CAAC;QAC7F,MAAM,WAAW,GAAsB,EAAE,GAAG,uBAAA,IAAI,iDAAmB,EAAE,GAAG,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;QAC5G,OAAO,qBAAqB,CAAI,WAAW,CAAC,CAAA;IAC9C,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,MAA0B;QAC9C,OAAO,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED,YAAoB,MAA0B;QAKrC,4DAAsC;QAJ7C,MAAM,SAAS,GAAc,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC/D,uBAAA,IAAI,6CAAsB,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAA,CAAC;IAChE,CAAC;CAGF;;AAAA,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { Type as ConsumerType } from "@jonloucks/concurrency-ts/auxiliary/Consumer";
2
+ import { OnCompletion } from "@jonloucks/concurrency-ts/api/OnCompletion";
3
+ import { RequiredType } from "@jonloucks/concurrency-ts/api/Types";
4
+ /**
5
+ * Completes the given OnCompletion later by delegating to the provided delegate.
6
+ * If the delegate throws, the OnCompletion is completed with FAILED state.
7
+ *
8
+ * @param onCompletion The OnCompletion to complete
9
+ * @param delegate The delegate to which completion is delegated
10
+ */
11
+ export declare function completeLater<T>(onCompletion: RequiredType<OnCompletion<T>>, delegate: RequiredType<ConsumerType<OnCompletion<T>>>): void;
12
+ //# sourceMappingURL=CompleteLater.impl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CompleteLater.impl.d.ts","sourceRoot":"","sources":["../../src/impl/CompleteLater.impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,IAAI,IAAI,YAAY,EAAkC,MAAM,8CAA8C,CAAC;AAC9H,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC1E,OAAO,EAAE,YAAY,EAA2B,MAAM,qCAAqC,CAAC;AAI5F;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,YAAY,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAmBzI"}
@@ -0,0 +1,31 @@
1
+ import { fromType as fromTypeToConsumer } from "@jonloucks/concurrency-ts/auxiliary/Consumer";
2
+ import { onCompletionCheck } from "@jonloucks/concurrency-ts/auxiliary/Checks";
3
+ /**
4
+ * Completes the given OnCompletion later by delegating to the provided delegate.
5
+ * If the delegate throws, the OnCompletion is completed with FAILED state.
6
+ *
7
+ * @param onCompletion The OnCompletion to complete
8
+ * @param delegate The delegate to which completion is delegated
9
+ */
10
+ export function completeLater(onCompletion, delegate) {
11
+ const validOnCompletion = onCompletionCheck(onCompletion); // only validate onCompletion here
12
+ let state = 'PENDING';
13
+ let thrown = undefined;
14
+ let delegated = false;
15
+ try {
16
+ const validDelegate = fromTypeToConsumer(delegate);
17
+ validDelegate.consume(onCompletion); // ownership transferred
18
+ delegated = true;
19
+ }
20
+ catch (caught) {
21
+ thrown = caught;
22
+ state = 'FAILED';
23
+ throw thrown;
24
+ }
25
+ finally {
26
+ if (!delegated) {
27
+ validOnCompletion.onCompletion({ state, thrown });
28
+ }
29
+ }
30
+ }
31
+ //# sourceMappingURL=CompleteLater.impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CompleteLater.impl.js","sourceRoot":"","sources":["../../src/impl/CompleteLater.impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,QAAQ,IAAI,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAG9H,OAAO,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAG/E;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAI,YAA2C,EAAE,QAAqD;IACjI,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,kCAAkC;IAC7F,IAAI,KAAK,GAAoB,SAAS,CAAC;IACvC,IAAI,MAAM,GAAqC,SAAS,CAAC;IACzD,IAAI,SAAS,GAAY,KAAK,CAAC;IAE/B,IAAI,CAAC;QACH,MAAM,aAAa,GAA8B,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAC9E,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,wBAAwB;QAC7D,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,MAAM,GAAG,MAAM,CAAC;QAChB,KAAK,GAAG,QAAQ,CAAC;QACjB,MAAM,MAAM,CAAC;IACf,CAAC;YAAS,CAAC;QACT,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,iBAAiB,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { Type as SupplierType } from "@jonloucks/concurrency-ts/auxiliary/Supplier";
2
+ import { RequiredType, OptionalType } from "@jonloucks/concurrency-ts/api/Types";
3
+ import { OnCompletion } from "@jonloucks/concurrency-ts/api/OnCompletion";
4
+ /**
5
+ * Completes the given OnCompletion immediately with the result of the successBlock.
6
+ * If the successBlock throws, the OnCompletion is completed with FAILED state.
7
+ *
8
+ * @param onCompletion The OnCompletion to complete
9
+ * @param successBlock The block to execute to obtain the success value
10
+ * @returns The value returned by the successBlock if successful, otherwise undefined
11
+ * @throws Rethrows any exception thrown by the successBlock
12
+ */
13
+ export declare function completeNow<T>(onCompletion: RequiredType<OnCompletion<T>>, successBlock: RequiredType<SupplierType<T>>): OptionalType<T>;
14
+ //# sourceMappingURL=CompleteNow.impl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CompleteNow.impl.d.ts","sourceRoot":"","sources":["../../src/impl/CompleteNow.impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,IAAI,IAAI,YAAY,EAAkC,MAAM,8CAA8C,CAAC;AAC9H,OAAO,EAAE,YAAY,EAAE,YAAY,EAAa,MAAM,qCAAqC,CAAC;AAC5F,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAI1E;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,YAAY,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAmBxI"}
@@ -0,0 +1,33 @@
1
+ import { fromType as fromTypeToSupplier } from "@jonloucks/concurrency-ts/auxiliary/Supplier";
2
+ import { onCompletionCheck } from "@jonloucks/concurrency-ts/auxiliary/Checks";
3
+ /**
4
+ * Completes the given OnCompletion immediately with the result of the successBlock.
5
+ * If the successBlock throws, the OnCompletion is completed with FAILED state.
6
+ *
7
+ * @param onCompletion The OnCompletion to complete
8
+ * @param successBlock The block to execute to obtain the success value
9
+ * @returns The value returned by the successBlock if successful, otherwise undefined
10
+ * @throws Rethrows any exception thrown by the successBlock
11
+ */
12
+ export function completeNow(onCompletion, successBlock) {
13
+ const validOnCompletion = onCompletionCheck(onCompletion); // only validate onCompletion here
14
+ let state;
15
+ let thrown = undefined;
16
+ let value = undefined;
17
+ try {
18
+ // validate and execute successBlock
19
+ const validSupplier = fromTypeToSupplier(successBlock);
20
+ value = validSupplier.supply();
21
+ state = 'SUCCEEDED';
22
+ return value;
23
+ }
24
+ catch (caught) {
25
+ thrown = caught;
26
+ state = 'FAILED';
27
+ throw thrown;
28
+ }
29
+ finally {
30
+ validOnCompletion.onCompletion({ state, thrown, value });
31
+ }
32
+ }
33
+ //# sourceMappingURL=CompleteNow.impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CompleteNow.impl.js","sourceRoot":"","sources":["../../src/impl/CompleteNow.impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,QAAQ,IAAI,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAG9H,OAAO,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAG/E;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CAAI,YAA2C,EAAE,YAA2C;IACrH,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,kCAAkC;IAC7F,IAAI,KAAuB,CAAC;IAC5B,IAAI,MAAM,GAAqC,SAAS,CAAC;IACzD,IAAI,KAAK,GAAoB,SAAS,CAAC;IAEvC,IAAI,CAAC;QACH,oCAAoC;QACpC,MAAM,aAAa,GAAgB,kBAAkB,CAAC,YAAY,CAAC,CAAC;QACpE,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC;QAC/B,KAAK,GAAG,WAAW,CAAC;QACpB,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,MAAM,GAAG,MAAM,CAAC;QAChB,KAAK,GAAG,QAAQ,CAAC;QACjB,MAAM,MAAM,CAAC;IACf,CAAC;YAAS,CAAC;QACT,iBAAiB,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { Concurrency, ConcurrencyConfig } from "@jonloucks/concurrency-ts/api/Concurrency";
2
+ /**
3
+ * Create a new Concurrency
4
+ *
5
+ * @param config the concurrency configuration
6
+ * @return the new Concurrency
7
+ */
8
+ export declare function create(config: ConcurrencyConfig): Concurrency;
9
+ //# sourceMappingURL=Concurrency.impl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Concurrency.impl.d.ts","sourceRoot":"","sources":["../../src/impl/Concurrency.impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,WAAW,EACX,iBAAiB,EAMlB,MAAM,2CAA2C,CAAC;AAiBnD;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,WAAW,CAE7D"}
@@ -0,0 +1,84 @@
1
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
+ };
6
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
7
+ if (kind === "m") throw new TypeError("Private method is not writable");
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
10
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
11
+ };
12
+ var _ConcurrencyImpl_contracts, _ConcurrencyImpl_config, _ConcurrencyImpl_closeMany, _ConcurrencyImpl_idempotent;
13
+ import { CONTRACT as COMPLETABLE_FACTORY } from "@jonloucks/concurrency-ts/api/CompletableFactory";
14
+ import { CONTRACT as STATE_MACHINE_FACTORY } from "@jonloucks/concurrency-ts/api/StateMachineFactory";
15
+ import { CONTRACT as WAITABLE_FACTORY } from "@jonloucks/concurrency-ts/api/WaitableFactory";
16
+ import { CONTRACT as AUTO_CLOSE_FACTORY } from "@jonloucks/contracts-ts/api/AutoCloseFactory";
17
+ import { CONTRACT as IDEMPOTENT_FACTORY } from "@jonloucks/contracts-ts/auxiliary/IdempotentFactory";
18
+ import { completeLater as completeLaterImpl } from "./CompleteLater.impl.js";
19
+ import { completeNow as completeNowImpl } from "./CompleteNow.impl.js";
20
+ import { create as createEvents } from "./Events.impl.js";
21
+ import { Internal } from "./Internal.impl.js";
22
+ /**
23
+ * Create a new Concurrency
24
+ *
25
+ * @param config the concurrency configuration
26
+ * @return the new Concurrency
27
+ */
28
+ export function create(config) {
29
+ return ConcurrencyImpl.internalCreate(config);
30
+ }
31
+ // ---- Implementation details below ----
32
+ class ConcurrencyImpl {
33
+ open() {
34
+ return __classPrivateFieldGet(this, _ConcurrencyImpl_idempotent, "f").open();
35
+ }
36
+ createWaitable(config) {
37
+ return __classPrivateFieldGet(this, _ConcurrencyImpl_contracts, "f").enforce(WAITABLE_FACTORY).createWaitable(config);
38
+ }
39
+ createStateMachine(config) {
40
+ return __classPrivateFieldGet(this, _ConcurrencyImpl_contracts, "f").enforce(STATE_MACHINE_FACTORY).createStateMachine(config);
41
+ }
42
+ createCompletable(config) {
43
+ return __classPrivateFieldGet(this, _ConcurrencyImpl_contracts, "f").enforce(COMPLETABLE_FACTORY).createCompletable(config);
44
+ }
45
+ completeLater(onCompletion, delegate) {
46
+ completeLaterImpl(onCompletion, delegate);
47
+ }
48
+ completeNow(onCompletion, successBlock) {
49
+ return completeNowImpl(onCompletion, successBlock);
50
+ }
51
+ static internalCreate(config) {
52
+ return new ConcurrencyImpl(config);
53
+ }
54
+ firstOpen() {
55
+ // register shutdown events last to avoid potential for events firing before everything is ready
56
+ __classPrivateFieldGet(this, _ConcurrencyImpl_closeMany, "f").add(this.registerEvents());
57
+ return __classPrivateFieldGet(this, _ConcurrencyImpl_closeMany, "f");
58
+ }
59
+ firstClose() {
60
+ __classPrivateFieldGet(this, _ConcurrencyImpl_closeMany, "f").close();
61
+ }
62
+ registerEvents() {
63
+ const events = createEvents({
64
+ contracts: __classPrivateFieldGet(this, _ConcurrencyImpl_contracts, "f"),
65
+ names: __classPrivateFieldGet(this, _ConcurrencyImpl_config, "f").shutdownEvents ?? [],
66
+ callback: () => this.firstClose()
67
+ });
68
+ return events.open();
69
+ }
70
+ constructor(config) {
71
+ _ConcurrencyImpl_contracts.set(this, void 0);
72
+ _ConcurrencyImpl_config.set(this, void 0);
73
+ _ConcurrencyImpl_closeMany.set(this, void 0);
74
+ _ConcurrencyImpl_idempotent.set(this, void 0);
75
+ __classPrivateFieldSet(this, _ConcurrencyImpl_contracts, Internal.resolveContracts(config), "f");
76
+ __classPrivateFieldSet(this, _ConcurrencyImpl_config, { ...config, contracts: __classPrivateFieldGet(this, _ConcurrencyImpl_contracts, "f") }, "f");
77
+ __classPrivateFieldSet(this, _ConcurrencyImpl_closeMany, __classPrivateFieldGet(this, _ConcurrencyImpl_contracts, "f").enforce(AUTO_CLOSE_FACTORY).createAutoCloseMany(), "f");
78
+ __classPrivateFieldSet(this, _ConcurrencyImpl_idempotent, __classPrivateFieldGet(this, _ConcurrencyImpl_contracts, "f").enforce(IDEMPOTENT_FACTORY).createIdempotent({
79
+ open: () => this.firstOpen()
80
+ }), "f");
81
+ }
82
+ }
83
+ _ConcurrencyImpl_contracts = new WeakMap(), _ConcurrencyImpl_config = new WeakMap(), _ConcurrencyImpl_closeMany = new WeakMap(), _ConcurrencyImpl_idempotent = new WeakMap();
84
+ //# sourceMappingURL=Concurrency.impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Concurrency.impl.js","sourceRoot":"","sources":["../../src/impl/Concurrency.impl.ts"],"names":[],"mappings":";;;;;;;;;;;;AAYA,OAAO,EAAE,QAAQ,IAAI,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AACnG,OAAO,EAAE,QAAQ,IAAI,qBAAqB,EAAE,MAAM,mDAAmD,CAAC;AAEtG,OAAO,EAAE,QAAQ,IAAI,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AAG7F,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAC9F,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,qDAAqD,CAAC;AAErG,OAAO,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,MAAM,IAAI,YAAY,EAAU,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG9C;;;;;GAKG;AACH,MAAM,UAAU,MAAM,CAAC,MAAyB;IAC9C,OAAO,eAAe,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AAChD,CAAC;AAED,yCAAyC;AAEzC,MAAM,eAAe;IAEnB,IAAI;QACF,OAAO,uBAAA,IAAI,mCAAY,CAAC,IAAI,EAAE,CAAC;IACjC,CAAC;IAED,cAAc,CAAI,MAAyB;QACzC,OAAO,uBAAA,IAAI,kCAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,cAAc,CAAI,MAAM,CAAC,CAAC;IAC7E,CAAC;IAED,kBAAkB,CAAI,MAA6B;QACjD,OAAO,uBAAA,IAAI,kCAAW,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,kBAAkB,CAAI,MAAM,CAAC,CAAC;IACtF,CAAC;IAED,iBAAiB,CAAI,MAA4B;QAC/C,OAAO,uBAAA,IAAI,kCAAW,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,iBAAiB,CAAI,MAAM,CAAC,CAAC;IACnF,CAAC;IAED,aAAa,CAAI,YAA2C,EAAE,QAAqD;QACjH,iBAAiB,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED,WAAW,CAAI,YAA2C,EAAE,YAA2C;QACrG,OAAO,eAAe,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,MAAyB;QAC7C,OAAO,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAEO,SAAS;QACf,gGAAgG;QAChG,uBAAA,IAAI,kCAAW,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QAC3C,OAAO,uBAAA,IAAI,kCAAW,CAAC;IACzB,CAAC;IAEO,UAAU;QAChB,uBAAA,IAAI,kCAAW,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAEO,cAAc;QACpB,MAAM,MAAM,GAAW,YAAY,CAAC;YAClC,SAAS,EAAE,uBAAA,IAAI,kCAAW;YAC1B,KAAK,EAAE,uBAAA,IAAI,+BAAQ,CAAC,cAAc,IAAI,EAAE;YACxC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE;SAClC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IAED,YAAoB,MAAyB;QASpC,6CAAsB;QACtB,0CAA2B;QAC3B,6CAA0B;QAC1B,8CAAwB;QAX/B,uBAAA,IAAI,8BAAc,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAA,CAAC;QACpD,uBAAA,IAAI,2BAAW,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,uBAAA,IAAI,kCAAW,EAAE,MAAA,CAAC;QACzD,uBAAA,IAAI,8BAAc,uBAAA,IAAI,kCAAW,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,mBAAmB,EAAE,MAAA,CAAC;QACpF,uBAAA,IAAI,+BAAe,uBAAA,IAAI,kCAAW,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,gBAAgB,CAAC;YAC9E,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;SAC7B,CAAC,MAAA,CAAC;IACL,CAAC;CAMF"}
@@ -0,0 +1,10 @@
1
+ import { Config as ConcurrencyConfig } from "@jonloucks/concurrency-ts/api/Concurrency";
2
+ import { ConcurrencyFactory } from "@jonloucks/concurrency-ts/api/ConcurrencyFactory";
3
+ /**
4
+ * Create a new ConcurrencyFactory
5
+ * @param config the Concurrency Config
6
+ *
7
+ * @return the new ConcurrencyFactory
8
+ */
9
+ export declare function create(config?: ConcurrencyConfig): ConcurrencyFactory;
10
+ //# sourceMappingURL=ConcurrencyFactory.impl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConcurrencyFactory.impl.d.ts","sourceRoot":"","sources":["../../src/impl/ConcurrencyFactory.impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiD,MAAM,IAAI,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AACvI,OAAO,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AAmBtF;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,MAAM,CAAC,EAAE,iBAAiB,GAAG,kBAAkB,CAErE"}
@@ -0,0 +1,74 @@
1
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
+ };
6
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
7
+ if (kind === "m") throw new TypeError("Private method is not writable");
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
10
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
11
+ };
12
+ var _ConcurrencyFactoryImpl_concurrencyConfig;
13
+ import { CONTRACT as CONCURRENCY_CONTRACT } from "@jonloucks/concurrency-ts/api/Concurrency";
14
+ import { CONTRACT as COMPLETABLE_FACTORY } from "@jonloucks/concurrency-ts/api/CompletableFactory";
15
+ import { CONTRACT as STATE_MACHINE_FACTORY } from "@jonloucks/concurrency-ts/api/StateMachineFactory";
16
+ import { CONTRACT as WAITABLE_FACTORY } from "@jonloucks/concurrency-ts/api/WaitableFactory";
17
+ import { presentCheck } from "@jonloucks/contracts-ts/auxiliary/Checks";
18
+ import { CONTRACT as PROMISOR_FACTORY_CONTRACT } from "@jonloucks/contracts-ts/api/PromisorFactory";
19
+ import { CONTRACT as REPOSITORY_FACTORY_CONTRACT } from "@jonloucks/contracts-ts/api/RepositoryFactory";
20
+ import { create as createCompletableFactoryImpl } from "./CompletableFactory.impl.js";
21
+ import { create as createConcurrencyImpl } from "./Concurrency.impl.js";
22
+ import { wrap as wrapConcurrency } from "./ConcurrencyWrapper.impl.js";
23
+ import { Internal } from "./Internal.impl.js";
24
+ import { create as createStateMachineFactoryImpl } from "./StateMachineFactory.impl.js";
25
+ import { create as createWaitableFactoryImpl } from "./WaitableFactory.impl.js";
26
+ /**
27
+ * Create a new ConcurrencyFactory
28
+ * @param config the Concurrency Config
29
+ *
30
+ * @return the new ConcurrencyFactory
31
+ */
32
+ export function create(config) {
33
+ return ConcurrencyFactoryImpl.internalCreate(config ?? {});
34
+ }
35
+ // ---- Implementation details below ----
36
+ class ConcurrencyFactoryImpl {
37
+ createConcurrency(config) {
38
+ const validConfig = config ?? {};
39
+ const contracts = Internal.resolveContracts(validConfig, __classPrivateFieldGet(this, _ConcurrencyFactoryImpl_concurrencyConfig, "f"));
40
+ const finalConfig = { ...__classPrivateFieldGet(this, _ConcurrencyFactoryImpl_concurrencyConfig, "f"), ...validConfig, contracts: contracts };
41
+ const repositoryFactory = contracts.enforce(REPOSITORY_FACTORY_CONTRACT);
42
+ const repository = repositoryFactory.createRepository();
43
+ this.installKernel(repository, finalConfig);
44
+ // how to bind promisors before creation?
45
+ // if we open the repository before creation, we risk unexpected behavior.
46
+ // for example, if open is never called, there will be residual bindings.
47
+ return wrapConcurrency(createConcurrencyImpl(finalConfig), repository);
48
+ }
49
+ install(repository, config) {
50
+ // potential unexpected behavior might occur when merging configs
51
+ const validConfig = config ?? {};
52
+ const contracts = Internal.resolveContracts(validConfig, __classPrivateFieldGet(this, _ConcurrencyFactoryImpl_concurrencyConfig, "f"));
53
+ const finalConfig = { ...__classPrivateFieldGet(this, _ConcurrencyFactoryImpl_concurrencyConfig, "f"), ...validConfig, contracts: contracts };
54
+ const validRepository = presentCheck(repository, "Repository must be present.");
55
+ const promisorFactory = contracts.enforce(PROMISOR_FACTORY_CONTRACT);
56
+ this.installKernel(validRepository, finalConfig);
57
+ validRepository.keep(CONCURRENCY_CONTRACT, promisorFactory.createLifeCycle(() => createConcurrencyImpl(finalConfig)));
58
+ }
59
+ static internalCreate(config) {
60
+ return new ConcurrencyFactoryImpl(config);
61
+ }
62
+ constructor(config) {
63
+ _ConcurrencyFactoryImpl_concurrencyConfig.set(this, void 0);
64
+ const contracts = Internal.resolveContracts(config);
65
+ __classPrivateFieldSet(this, _ConcurrencyFactoryImpl_concurrencyConfig, { ...config, contracts: contracts }, "f");
66
+ }
67
+ installKernel(repository, config) {
68
+ repository.keep(WAITABLE_FACTORY, createWaitableFactoryImpl(config));
69
+ repository.keep(STATE_MACHINE_FACTORY, createStateMachineFactoryImpl(config));
70
+ repository.keep(COMPLETABLE_FACTORY, createCompletableFactoryImpl(config));
71
+ }
72
+ }
73
+ _ConcurrencyFactoryImpl_concurrencyConfig = new WeakMap();
74
+ //# sourceMappingURL=ConcurrencyFactory.impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConcurrencyFactory.impl.js","sourceRoot":"","sources":["../../src/impl/ConcurrencyFactory.impl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { Concurrency } from "@jonloucks/concurrency-ts/api/Concurrency";
2
+ import { Repository } from "@jonloucks/contracts-ts/api/Repository";
3
+ import { RequiredType } from "@jonloucks/concurrency-ts/api/Types";
4
+ /**
5
+ * Wrapper method to create a Concurrency wrapper which is responsible for managing
6
+ * the lifecycle of the underlying Repository and Concurrency instances.
7
+ *
8
+ * @param concurrency the underlying Concurrency instance
9
+ * @param repository the underlying Repository instance
10
+ * @returns the Concurrency implementation
11
+ */
12
+ export declare function wrap(concurrency: RequiredType<Concurrency>, repository: RequiredType<Repository>): Concurrency;
13
+ //# sourceMappingURL=ConcurrencyWrapper.impl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConcurrencyWrapper.impl.d.ts","sourceRoot":"","sources":["../../src/impl/ConcurrencyWrapper.impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,WAAW,EAA4E,MAAM,2CAA2C,CAAC;AAElL,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AACpE,OAAO,EAA8B,YAAY,EAAgB,MAAM,qCAAqC,CAAC;AAE7G;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,YAAY,CAAC,UAAU,CAAC,GAAG,WAAW,CAE9G"}
@@ -0,0 +1,85 @@
1
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
+ };
6
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
7
+ if (kind === "m") throw new TypeError("Private method is not writable");
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
10
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
11
+ };
12
+ var _ConcurrencyWrapper_concurrency, _ConcurrencyWrapper_repository;
13
+ import { inlineAutoClose } from "@jonloucks/contracts-ts/api/AutoClose";
14
+ /**
15
+ * Wrapper method to create a Concurrency wrapper which is responsible for managing
16
+ * the lifecycle of the underlying Repository and Concurrency instances.
17
+ *
18
+ * @param concurrency the underlying Concurrency instance
19
+ * @param repository the underlying Repository instance
20
+ * @returns the Concurrency implementation
21
+ */
22
+ export function wrap(concurrency, repository) {
23
+ return ConcurrencyWrapper.internalCreate(concurrency, repository);
24
+ }
25
+ // ---- Implementation details below ----
26
+ /**
27
+ * The Concurrency wrapper implementation
28
+ * Concurrency wrapper which is responsible for managing
29
+ * the lifecycle of the underlying Repository and Concurrency instances.
30
+ */
31
+ class ConcurrencyWrapper {
32
+ static internalCreate(concurrency, repository) {
33
+ return new ConcurrencyWrapper(concurrency, repository);
34
+ }
35
+ autoOpen() {
36
+ // what if referrent also has autoOpen?
37
+ // maybe we detect that and chain them?
38
+ return this.open();
39
+ }
40
+ open() {
41
+ const closeRepository = __classPrivateFieldGet(this, _ConcurrencyWrapper_repository, "f").open();
42
+ try {
43
+ const closeConcurrency = __classPrivateFieldGet(this, _ConcurrencyWrapper_concurrency, "f").open();
44
+ return inlineAutoClose(() => {
45
+ try {
46
+ closeConcurrency.close();
47
+ }
48
+ finally {
49
+ closeRepository.close(); // ensure repository is closed
50
+ }
51
+ });
52
+ }
53
+ catch (thrown) {
54
+ closeRepository.close();
55
+ throw thrown;
56
+ }
57
+ }
58
+ createWaitable(config) {
59
+ return __classPrivateFieldGet(this, _ConcurrencyWrapper_concurrency, "f").createWaitable(config);
60
+ }
61
+ createStateMachine(config) {
62
+ return __classPrivateFieldGet(this, _ConcurrencyWrapper_concurrency, "f").createStateMachine(config);
63
+ }
64
+ createCompletable(config) {
65
+ return __classPrivateFieldGet(this, _ConcurrencyWrapper_concurrency, "f").createCompletable(config);
66
+ }
67
+ completeLater(onCompletion, delegate) {
68
+ return __classPrivateFieldGet(this, _ConcurrencyWrapper_concurrency, "f").completeLater(onCompletion, delegate);
69
+ }
70
+ completeNow(onCompletion, successBlock) {
71
+ return __classPrivateFieldGet(this, _ConcurrencyWrapper_concurrency, "f").completeNow(onCompletion, successBlock);
72
+ }
73
+ toString() {
74
+ return __classPrivateFieldGet(this, _ConcurrencyWrapper_concurrency, "f").toString();
75
+ }
76
+ constructor(concurrency, repository) {
77
+ _ConcurrencyWrapper_concurrency.set(this, void 0);
78
+ _ConcurrencyWrapper_repository.set(this, void 0);
79
+ __classPrivateFieldSet(this, _ConcurrencyWrapper_concurrency, concurrency, "f");
80
+ __classPrivateFieldSet(this, _ConcurrencyWrapper_repository, repository, "f");
81
+ }
82
+ }
83
+ _ConcurrencyWrapper_concurrency = new WeakMap(), _ConcurrencyWrapper_repository = new WeakMap();
84
+ ;
85
+ //# sourceMappingURL=ConcurrencyWrapper.impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConcurrencyWrapper.impl.js","sourceRoot":"","sources":["../../src/impl/ConcurrencyWrapper.impl.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,OAAO,EAAa,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAInF;;;;;;;GAOG;AACH,MAAM,UAAU,IAAI,CAAC,WAAsC,EAAE,UAAoC;IAC/F,OAAO,kBAAkB,CAAC,cAAc,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;AACpE,CAAC;AAED,yCAAyC;AAEzC;;;;GAIG;AACH,MAAM,kBAAkB;IAEtB,MAAM,CAAC,cAAc,CAAC,WAAsC,EAAE,UAAoC;QAChG,OAAO,IAAI,kBAAkB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACzD,CAAC;IAED,QAAQ;QACN,uCAAuC;QACvC,uCAAuC;QACvC,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAED,IAAI;QACF,MAAM,eAAe,GAAc,uBAAA,IAAI,sCAAY,CAAC,IAAI,EAAE,CAAC;QAC3D,IAAI,CAAC;YACH,MAAM,gBAAgB,GAAc,uBAAA,IAAI,uCAAa,CAAC,IAAI,EAAE,CAAC;YAC7D,OAAO,eAAe,CAAC,GAAG,EAAE;gBAC1B,IAAI,CAAC;oBACH,gBAAgB,CAAC,KAAK,EAAE,CAAC;gBAC3B,CAAC;wBAAS,CAAC;oBACT,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC,8BAA8B;gBACzD,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,eAAe,CAAC,KAAK,EAAE,CAAC;YACxB,MAAM,MAAM,CAAA;QACd,CAAC;IACH,CAAC;IAED,cAAc,CAAI,MAAyB;QACzC,OAAO,uBAAA,IAAI,uCAAa,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;IAED,kBAAkB,CAAI,MAA6B;QACjD,OAAO,uBAAA,IAAI,uCAAa,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACtD,CAAC;IAED,iBAAiB,CAAI,MAA4B;QAC/C,OAAO,uBAAA,IAAI,uCAAa,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC;IAED,aAAa,CAAI,YAA2C,EAAE,QAAqD;QACjH,OAAO,uBAAA,IAAI,uCAAa,CAAC,aAAa,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACjE,CAAC;IAED,WAAW,CAAI,YAA2C,EAAE,YAA2C;QACrG,OAAO,uBAAA,IAAI,uCAAa,CAAC,WAAW,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IACnE,CAAC;IAED,QAAQ;QACN,OAAO,uBAAA,IAAI,uCAAa,CAAC,QAAQ,EAAE,CAAC;IACtC,CAAC;IAED,YAAoB,WAAsC,EAAE,UAAoC;QAKvF,kDAAwC;QACxC,iDAAsC;QAL7C,uBAAA,IAAI,mCAAgB,WAAW,MAAA,CAAC;QAChC,uBAAA,IAAI,kCAAe,UAAU,MAAA,CAAC;IAChC,CAAC;CAIF;;AAAA,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { Contracts } from "@jonloucks/contracts-ts/api/Contracts";
2
+ import { Open } from "@jonloucks/contracts-ts/api/Open";
3
+ /**
4
+ * Configuration for Events implementation
5
+ */
6
+ export interface Config {
7
+ contracts?: Contracts;
8
+ names?: string[];
9
+ callback: (...args: unknown[]) => void;
10
+ }
11
+ /**
12
+ * Event listener management interface for process-level events.
13
+ *
14
+ * Implementations manage the open/close lifecycle for registering and
15
+ * deregistering listeners on the Node.js process object.
16
+ */
17
+ export interface Events extends Open {
18
+ /**
19
+ * Check if the event listeners are currently open.
20
+ *
21
+ * @returns true if the event listeners are open, false otherwise
22
+ */
23
+ isOpen(): boolean;
24
+ }
25
+ //# sourceMappingURL=Events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Events.d.ts","sourceRoot":"","sources":["../../src/impl/Events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,kCAAkC,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,MAAM;IAErB,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAEjB,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CACxC;AAED;;;;;GAKG;AACH,MAAM,WAAW,MAAO,SAAQ,IAAI;IAElC;;;;OAIG;IACH,MAAM,IAAI,OAAO,CAAC;CACnB"}
@@ -0,0 +1,11 @@
1
+ import { RequiredType } from "@jonloucks/contracts-ts/api/Types";
2
+ import { Config, Events } from "./Events.js";
3
+ export { type Config, type Events };
4
+ /**
5
+ * Factory method to create Events instance.
6
+ *
7
+ * @param config the configuration for the Events implementation
8
+ * @returns the new Events implementation
9
+ */
10
+ export declare function create(config?: Config): RequiredType<Events>;
11
+ //# sourceMappingURL=Events.impl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Events.impl.d.ts","sourceRoot":"","sources":["../../src/impl/Events.impl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAEjE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG7C,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,CAAC;AAEpC;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAE5D"}
@@ -0,0 +1,63 @@
1
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
+ };
6
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
7
+ if (kind === "m") throw new TypeError("Private method is not writable");
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
10
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
11
+ };
12
+ var _EventsImpl_names, _EventsImpl_callback, _EventsImpl_idempotent;
13
+ import { CONTRACT as IDEMPOTENT_FACTORY } from "@jonloucks/contracts-ts/auxiliary/IdempotentFactory";
14
+ import { inlineAutoClose } from "@jonloucks/contracts-ts/api/AutoClose";
15
+ import { configCheck, contractsCheck, presentCheck } from "@jonloucks/contracts-ts/auxiliary/Checks";
16
+ /**
17
+ * Factory method to create Events instance.
18
+ *
19
+ * @param config the configuration for the Events implementation
20
+ * @returns the new Events implementation
21
+ */
22
+ export function create(config) {
23
+ return EventsImpl.internalCreate(config);
24
+ }
25
+ // ---- Implementation details below ----
26
+ /**
27
+ * The Events implementation
28
+ */
29
+ class EventsImpl {
30
+ open() {
31
+ return __classPrivateFieldGet(this, _EventsImpl_idempotent, "f").open();
32
+ }
33
+ isOpen() {
34
+ return __classPrivateFieldGet(this, _EventsImpl_idempotent, "f").getState() === 'OPENED';
35
+ }
36
+ static internalCreate(config) {
37
+ return new EventsImpl(config);
38
+ }
39
+ firstOpen() {
40
+ __classPrivateFieldGet(this, _EventsImpl_names, "f").forEach(name => {
41
+ process.on(name, __classPrivateFieldGet(this, _EventsImpl_callback, "f"));
42
+ });
43
+ return inlineAutoClose(() => {
44
+ __classPrivateFieldGet(this, _EventsImpl_names, "f").forEach(name => {
45
+ process.off(name, __classPrivateFieldGet(this, _EventsImpl_callback, "f"));
46
+ });
47
+ });
48
+ }
49
+ constructor(config) {
50
+ _EventsImpl_names.set(this, void 0);
51
+ _EventsImpl_callback.set(this, void 0);
52
+ _EventsImpl_idempotent.set(this, void 0);
53
+ const validConfig = configCheck(config);
54
+ __classPrivateFieldSet(this, _EventsImpl_callback, presentCheck(validConfig?.callback, "Callback must be present."), "f");
55
+ __classPrivateFieldSet(this, _EventsImpl_names, validConfig?.names ?? [], "f");
56
+ const contracts = contractsCheck(validConfig.contracts);
57
+ __classPrivateFieldSet(this, _EventsImpl_idempotent, contracts.enforce(IDEMPOTENT_FACTORY).createIdempotent({
58
+ open: () => this.firstOpen()
59
+ }), "f");
60
+ }
61
+ }
62
+ _EventsImpl_names = new WeakMap(), _EventsImpl_callback = new WeakMap(), _EventsImpl_idempotent = new WeakMap();
63
+ //# sourceMappingURL=Events.impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Events.impl.js","sourceRoot":"","sources":["../../src/impl/Events.impl.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,qDAAqD,CAAC;AACrG,OAAO,EAAa,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAEnF,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AAMrG;;;;;GAKG;AACH,MAAM,UAAU,MAAM,CAAC,MAAe;IACpC,OAAO,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AAC3C,CAAC;AAED,yCAAyC;AAEzC;;GAEG;AACH,MAAM,UAAU;IAEd,IAAI;QACF,OAAO,uBAAA,IAAI,8BAAY,CAAC,IAAI,EAAE,CAAC;IACjC,CAAC;IAED,MAAM;QACJ,OAAO,uBAAA,IAAI,8BAAY,CAAC,QAAQ,EAAE,KAAK,QAAQ,CAAA;IACjD,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,MAAe;QACnC,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAEO,SAAS;QACf,uBAAA,IAAI,yBAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACzB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,uBAAA,IAAI,4BAAU,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,OAAO,eAAe,CAAC,GAAG,EAAE;YAC1B,uBAAA,IAAI,yBAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACzB,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,uBAAA,IAAI,4BAAU,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAoB,MAAe;QAU1B,oCAAiB;QACjB,uCAAwC;QACxC,yCAAwB;QAX/B,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QACxC,uBAAA,IAAI,wBAAa,YAAY,CAAC,WAAW,EAAE,QAAQ,EAAE,2BAA2B,CAAC,MAAA,CAAC;QAClF,uBAAA,IAAI,qBAAU,WAAW,EAAE,KAAK,IAAI,EAAE,MAAA,CAAC;QACvC,MAAM,SAAS,GAAe,cAAc,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACpE,uBAAA,IAAI,0BAAe,SAAS,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,gBAAgB,CAAC;YACxE,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;SAC7B,CAAC,MAAA,CAAC;IACL,CAAC;CAKF"}
package/impl/Events.js ADDED
@@ -0,0 +1,3 @@
1
+ ;
2
+ export {};
3
+ //# sourceMappingURL=Events.js.map