@jonloucks/contracts-ts 1.3.0 → 2.0.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.
- package/README.md +69 -21
- package/api/AutoClose.d.ts +2 -2
- package/api/AutoClose.d.ts.map +1 -1
- package/api/AutoClose.js +15 -23
- package/api/AutoClose.js.map +1 -1
- package/api/AutoCloseFactory.d.ts +3 -3
- package/api/AutoCloseFactory.d.ts.map +1 -1
- package/api/AutoCloseFactory.js +5 -9
- package/api/AutoCloseFactory.js.map +1 -1
- package/api/AutoOpen.js +3 -6
- package/api/AutoOpen.js.map +1 -1
- package/api/BasicContract.js +6 -11
- package/api/BasicContract.js.map +1 -1
- package/api/BindStrategy.js +4 -9
- package/api/BindStrategy.js.map +1 -1
- package/api/Contract.js +3 -6
- package/api/Contract.js.map +1 -1
- package/api/ContractException.js +5 -10
- package/api/ContractException.js.map +1 -1
- package/api/ContractFactory.js +3 -6
- package/api/ContractFactory.js.map +1 -1
- package/api/Contracts.d.ts +1 -1
- package/api/Contracts.d.ts.map +1 -1
- package/api/Contracts.js +4 -7
- package/api/Contracts.js.map +1 -1
- package/api/ContractsFactory.js +3 -6
- package/api/ContractsFactory.js.map +1 -1
- package/api/Convenience.d.ts +21 -16
- package/api/Convenience.d.ts.map +1 -1
- package/api/Convenience.js +17 -35
- package/api/Convenience.js.map +1 -1
- package/api/Open.d.ts.map +1 -1
- package/api/Open.js +9 -13
- package/api/Open.js.map +1 -1
- package/api/Promisor.d.ts +9 -5
- package/api/Promisor.d.ts.map +1 -1
- package/api/Promisor.js +18 -23
- package/api/Promisor.js.map +1 -1
- package/api/PromisorFactory.d.ts +3 -2
- package/api/PromisorFactory.d.ts.map +1 -1
- package/api/PromisorFactory.js +5 -9
- package/api/PromisorFactory.js.map +1 -1
- package/api/RatifiedContract.js +11 -16
- package/api/RatifiedContract.js.map +1 -1
- package/api/Repository.d.ts +2 -2
- package/api/Repository.d.ts.map +1 -1
- package/api/Repository.js +4 -7
- package/api/Repository.js.map +1 -1
- package/api/RepositoryFactory.js +5 -9
- package/api/RepositoryFactory.js.map +1 -1
- package/api/Types.d.ts +0 -24
- package/api/Types.d.ts.map +1 -1
- package/api/Types.js +13 -62
- package/api/Types.js.map +1 -1
- package/auxiliary/AtomicBoolean.js +3 -6
- package/auxiliary/AtomicBoolean.js.map +1 -1
- package/auxiliary/AtomicBooleanFactory.js +5 -9
- package/auxiliary/AtomicBooleanFactory.js.map +1 -1
- package/auxiliary/AtomicInteger.js +3 -6
- package/auxiliary/AtomicInteger.js.map +1 -1
- package/auxiliary/AtomicIntegerFactory.js +5 -9
- package/auxiliary/AtomicIntegerFactory.js.map +1 -1
- package/auxiliary/AtomicReference.js +3 -6
- package/auxiliary/AtomicReference.js.map +1 -1
- package/auxiliary/AtomicReferenceFactory.js +5 -9
- package/auxiliary/AtomicReferenceFactory.js.map +1 -1
- package/auxiliary/Checks.js +23 -36
- package/auxiliary/Checks.js.map +1 -1
- package/auxiliary/Consumer.js +7 -12
- package/auxiliary/Consumer.js.map +1 -1
- package/auxiliary/Convenience.d.ts +10 -6
- package/auxiliary/Convenience.d.ts.map +1 -1
- package/auxiliary/Convenience.js +17 -19
- package/auxiliary/Convenience.js.map +1 -1
- package/auxiliary/IdempotenState.d.ts +1 -1
- package/auxiliary/IdempotenState.d.ts.map +1 -1
- package/auxiliary/IdempotenState.js +2 -5
- package/auxiliary/IdempotenState.js.map +1 -1
- package/auxiliary/Idempotent.js +3 -6
- package/auxiliary/Idempotent.js.map +1 -1
- package/auxiliary/IdempotentFactory.js +5 -9
- package/auxiliary/IdempotentFactory.js.map +1 -1
- package/auxiliary/IllegalArgumentException.js +4 -8
- package/auxiliary/IllegalArgumentException.js.map +1 -1
- package/auxiliary/IllegalStateException.js +4 -8
- package/auxiliary/IllegalStateException.js.map +1 -1
- package/auxiliary/Predicate.js +9 -15
- package/auxiliary/Predicate.js.map +1 -1
- package/auxiliary/Supplier.js +10 -16
- package/auxiliary/Supplier.js.map +1 -1
- package/auxiliary/Transform.js +11 -18
- package/auxiliary/Transform.js.map +1 -1
- package/auxiliary/Validate.js +12 -15
- package/auxiliary/Validate.js.map +1 -1
- package/impl/AtomicBoolean.impl.js +1 -4
- package/impl/AtomicBoolean.impl.js.map +1 -1
- package/impl/AtomicBooleanFactory.impl.js +3 -6
- package/impl/AtomicBooleanFactory.impl.js.map +1 -1
- package/impl/AtomicInteger.impl.js +1 -4
- package/impl/AtomicInteger.impl.js.map +1 -1
- package/impl/AtomicIntegerFactory.impl.js +3 -6
- package/impl/AtomicIntegerFactory.impl.js.map +1 -1
- package/impl/AtomicReference.impl.js +2 -7
- package/impl/AtomicReference.impl.js.map +1 -1
- package/impl/AtomicReferenceFactory.impl.js +3 -6
- package/impl/AtomicReferenceFactory.impl.js.map +1 -1
- package/impl/AutoCloseFactory.impl.d.ts +0 -3
- package/impl/AutoCloseFactory.impl.d.ts.map +1 -1
- package/impl/AutoCloseFactory.impl.js +7 -10
- package/impl/AutoCloseFactory.impl.js.map +1 -1
- package/impl/AutoCloseMany.impl.d.ts +0 -2
- package/impl/AutoCloseMany.impl.d.ts.map +1 -1
- package/impl/AutoCloseMany.impl.js +5 -8
- package/impl/AutoCloseMany.impl.js.map +1 -1
- package/impl/AutoCloseOne.impl.d.ts.map +1 -1
- package/impl/AutoCloseOne.impl.js +8 -11
- package/impl/AutoCloseOne.impl.js.map +1 -1
- package/impl/ContractFactory.impl.js +7 -11
- package/impl/ContractFactory.impl.js.map +1 -1
- package/impl/Contracts.impl.d.ts.map +1 -1
- package/impl/Contracts.impl.js +38 -41
- package/impl/Contracts.impl.js.map +1 -1
- package/impl/ContractsFactory.impl.js +28 -32
- package/impl/ContractsFactory.impl.js.map +1 -1
- package/impl/ContractsWrapper.impl.js +3 -6
- package/impl/ContractsWrapper.impl.js.map +1 -1
- package/impl/Events.d.ts +1 -2
- package/impl/Events.d.ts.map +1 -1
- package/impl/Events.impl.d.ts +1 -2
- package/impl/Events.impl.d.ts.map +1 -1
- package/impl/Events.impl.js +6 -9
- package/impl/Events.impl.js.map +1 -1
- package/impl/Events.js +1 -2
- package/impl/Events.js.map +1 -1
- package/impl/ExtractorPromisor.impl.d.ts +2 -1
- package/impl/ExtractorPromisor.impl.d.ts.map +1 -1
- package/impl/ExtractorPromisor.impl.js +6 -9
- package/impl/ExtractorPromisor.impl.js.map +1 -1
- package/impl/Idempotent.impl.js +10 -13
- package/impl/Idempotent.impl.js.map +1 -1
- package/impl/IdempotentFactory.impl.js +5 -8
- package/impl/IdempotentFactory.impl.js.map +1 -1
- package/impl/Internal.impl.js +5 -8
- package/impl/Internal.impl.js.map +1 -1
- package/impl/LifeCyclePromisor.impl.js +19 -22
- package/impl/LifeCyclePromisor.impl.js.map +1 -1
- package/impl/Policy.d.ts +0 -1
- package/impl/Policy.d.ts.map +1 -1
- package/impl/Policy.impl.d.ts +1 -3
- package/impl/Policy.impl.d.ts.map +1 -1
- package/impl/Policy.impl.js +7 -10
- package/impl/Policy.impl.js.map +1 -1
- package/impl/Policy.js +1 -2
- package/impl/PromisorFactory.impl.d.ts.map +1 -1
- package/impl/PromisorFactory.impl.js +11 -14
- package/impl/PromisorFactory.impl.js.map +1 -1
- package/impl/Repository.impl.d.ts.map +1 -1
- package/impl/Repository.impl.js +19 -22
- package/impl/Repository.impl.js.map +1 -1
- package/impl/RepositoryFactory.impl.js +3 -6
- package/impl/RepositoryFactory.impl.js.map +1 -1
- package/impl/SingletonPromisor.impl.js +7 -10
- package/impl/SingletonPromisor.impl.js.map +1 -1
- package/impl/Storage.impl.js +3 -7
- package/impl/Storage.impl.js.map +1 -1
- package/impl/ValuePromisor.impl.js +1 -4
- package/impl/ValuePromisor.impl.js.map +1 -1
- package/index.d.ts +8 -20
- package/index.d.ts.map +1 -1
- package/index.js +10 -38
- package/index.js.map +1 -1
- package/package.json +10 -14
- package/version.js +2 -5
- package/version.js.map +1 -1
- package/auxiliary/Functional.d.ts +0 -9
- package/auxiliary/Functional.d.ts.map +0 -1
- package/auxiliary/Functional.js +0 -23
- package/auxiliary/Functional.js.map +0 -1
package/impl/Contracts.impl.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
3
2
|
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
4
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");
|
|
@@ -11,27 +10,25 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
|
|
|
11
10
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
12
11
|
};
|
|
13
12
|
var _ContractsImpl_closeMany, _ContractsImpl_idempotent, _ContractsImpl_promisorMap, _ContractsImpl_partners, _ContractsImpl_policy, _ContractsImpl_events;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
const Internal_impl_1 = require("./Internal.impl");
|
|
27
|
-
const Policy_impl_1 = require("./Policy.impl");
|
|
13
|
+
import { AUTO_CLOSE_NONE, inlineAutoClose } from "@jonloucks/contracts-ts/api/AutoClose";
|
|
14
|
+
import { resolveBindStrategy } from "@jonloucks/contracts-ts/api/BindStrategy";
|
|
15
|
+
import { ContractException } from "@jonloucks/contracts-ts/api/ContractException";
|
|
16
|
+
import { fromType } from "@jonloucks/contracts-ts/api/Promisor";
|
|
17
|
+
import { isPresent } from "@jonloucks/contracts-ts/api/Types";
|
|
18
|
+
import { configCheck, contractCheck, presentCheck } from "@jonloucks/contracts-ts/auxiliary/Checks";
|
|
19
|
+
import { create as createAtomicBoolean } from "./AtomicBoolean.impl.js";
|
|
20
|
+
import { create as createAutoCloseMany } from "./AutoCloseMany.impl.js";
|
|
21
|
+
import { create as createEvents } from "./Events.impl.js";
|
|
22
|
+
import { create as createIdempotent } from "./Idempotent.impl.js";
|
|
23
|
+
import { Internal } from "./Internal.impl.js";
|
|
24
|
+
import { create as createPolicy } from "./Policy.impl.js";
|
|
28
25
|
/**
|
|
29
26
|
* Factory method to create Contracts instance.
|
|
30
27
|
*
|
|
31
28
|
* @param config the configuration for the Contracts instance
|
|
32
29
|
* @returns the Contracts implementation
|
|
33
30
|
*/
|
|
34
|
-
function create(config) {
|
|
31
|
+
export function create(config) {
|
|
35
32
|
return ContractsImpl.internalCreate(config);
|
|
36
33
|
}
|
|
37
34
|
// ---- Implementation details below ----
|
|
@@ -55,10 +52,10 @@ class ContractsImpl {
|
|
|
55
52
|
* Contracts.claim override.
|
|
56
53
|
*/
|
|
57
54
|
claim(contract) {
|
|
58
|
-
const validContract =
|
|
55
|
+
const validContract = contractCheck(contract);
|
|
59
56
|
__classPrivateFieldGet(this, _ContractsImpl_policy, "f").checkContract(validContract);
|
|
60
57
|
const promisor = this.getFromPromisorMap(validContract);
|
|
61
|
-
if (
|
|
58
|
+
if (isPresent(promisor)) {
|
|
62
59
|
return validContract.cast(promisor.demand());
|
|
63
60
|
}
|
|
64
61
|
else {
|
|
@@ -70,28 +67,28 @@ class ContractsImpl {
|
|
|
70
67
|
*/
|
|
71
68
|
enforce(contract) {
|
|
72
69
|
const deliverable = this.claim(contract);
|
|
73
|
-
if (
|
|
70
|
+
if (isPresent(deliverable)) {
|
|
74
71
|
return deliverable;
|
|
75
72
|
}
|
|
76
|
-
throw new
|
|
73
|
+
throw new ContractException("Contract " + contract + " enforcement failed: No value present.");
|
|
77
74
|
}
|
|
78
75
|
/**
|
|
79
76
|
* Contracts.isBound override.
|
|
80
77
|
*/
|
|
81
78
|
isBound(contract) {
|
|
82
|
-
const validContract =
|
|
79
|
+
const validContract = contractCheck(contract);
|
|
83
80
|
__classPrivateFieldGet(this, _ContractsImpl_policy, "f").checkContract(validContract);
|
|
84
81
|
const promisor = this.getFromPromisorMap(validContract);
|
|
85
|
-
return
|
|
82
|
+
return isPresent(promisor) || this.isAnyPartnerBound(contract);
|
|
86
83
|
}
|
|
87
84
|
/**
|
|
88
85
|
* Contracts.bind override.
|
|
89
86
|
*/
|
|
90
87
|
bind(contract, promisor, bindStrategy) {
|
|
91
|
-
const validContract =
|
|
88
|
+
const validContract = contractCheck(contract);
|
|
92
89
|
__classPrivateFieldGet(this, _ContractsImpl_policy, "f").checkContract(validContract);
|
|
93
|
-
const validPromisor = (
|
|
94
|
-
const validBindStrategy =
|
|
90
|
+
const validPromisor = fromType(promisor);
|
|
91
|
+
const validBindStrategy = resolveBindStrategy(bindStrategy);
|
|
95
92
|
return this.maybeBind(validContract, validPromisor, validBindStrategy);
|
|
96
93
|
}
|
|
97
94
|
/**
|
|
@@ -124,7 +121,7 @@ class ContractsImpl {
|
|
|
124
121
|
while (this.breakAllBindings() > 0) {
|
|
125
122
|
iterations++;
|
|
126
123
|
if (iterations >= MAX_RETRIES) {
|
|
127
|
-
throw new
|
|
124
|
+
throw new ContractException(`Failed to break all bindings after ${MAX_RETRIES} attempts`);
|
|
128
125
|
}
|
|
129
126
|
}
|
|
130
127
|
}
|
|
@@ -133,12 +130,12 @@ class ContractsImpl {
|
|
|
133
130
|
return this.doBind(contract, newPromisor);
|
|
134
131
|
}
|
|
135
132
|
else {
|
|
136
|
-
return
|
|
133
|
+
return AUTO_CLOSE_NONE;
|
|
137
134
|
}
|
|
138
135
|
}
|
|
139
136
|
checkBind(contract, newPromisor, bindStrategy) {
|
|
140
137
|
const optionalCurrent = this.getFromPromisorMap(contract);
|
|
141
|
-
if (
|
|
138
|
+
if (isPresent(optionalCurrent)) {
|
|
142
139
|
return this.checkReplacement(contract, newPromisor, bindStrategy, optionalCurrent);
|
|
143
140
|
}
|
|
144
141
|
else {
|
|
@@ -171,11 +168,11 @@ class ContractsImpl {
|
|
|
171
168
|
promisor.incrementUsage();
|
|
172
169
|
const previousPromisor = this.getFromPromisorMap(contract);
|
|
173
170
|
__classPrivateFieldGet(this, _ContractsImpl_promisorMap, "f").set(contract, promisor);
|
|
174
|
-
if (
|
|
171
|
+
if (isPresent(previousPromisor)) {
|
|
175
172
|
previousPromisor.decrementUsage();
|
|
176
173
|
}
|
|
177
|
-
const breakBindingOnce = (
|
|
178
|
-
return
|
|
174
|
+
const breakBindingOnce = createAtomicBoolean(true);
|
|
175
|
+
return inlineAutoClose(() => {
|
|
179
176
|
if (breakBindingOnce.compareAndSet(true, false)) {
|
|
180
177
|
this.breakBinding(contract, promisor);
|
|
181
178
|
}
|
|
@@ -204,7 +201,7 @@ class ContractsImpl {
|
|
|
204
201
|
}
|
|
205
202
|
breakAllBindings() {
|
|
206
203
|
let contractCount = 0;
|
|
207
|
-
|
|
204
|
+
Internal.mapForEachReversed(__classPrivateFieldGet(this, _ContractsImpl_promisorMap, "f"), (contract, promisor) => {
|
|
208
205
|
this.breakBinding(contract, promisor);
|
|
209
206
|
contractCount++;
|
|
210
207
|
});
|
|
@@ -230,26 +227,26 @@ class ContractsImpl {
|
|
|
230
227
|
return false;
|
|
231
228
|
}
|
|
232
229
|
throwContractNotPromisedException(contract) {
|
|
233
|
-
throw new
|
|
230
|
+
throw new ContractException("Contract " + contract + " was not promised.");
|
|
234
231
|
}
|
|
235
232
|
throwContractNotReplaceableException(contract) {
|
|
236
|
-
throw new
|
|
233
|
+
throw new ContractException("Contract " + contract + " is not replaceable.");
|
|
237
234
|
}
|
|
238
235
|
constructor(config) {
|
|
239
|
-
_ContractsImpl_closeMany.set(this, (
|
|
240
|
-
_ContractsImpl_idempotent.set(this, (
|
|
236
|
+
_ContractsImpl_closeMany.set(this, createAutoCloseMany());
|
|
237
|
+
_ContractsImpl_idempotent.set(this, createIdempotent({ open: () => this.firstOpen() }));
|
|
241
238
|
_ContractsImpl_promisorMap.set(this, new Map());
|
|
242
239
|
_ContractsImpl_partners.set(this, []);
|
|
243
240
|
_ContractsImpl_policy.set(this, void 0);
|
|
244
241
|
_ContractsImpl_events.set(this, void 0);
|
|
245
|
-
const validConfig =
|
|
246
|
-
const validPartners =
|
|
247
|
-
__classPrivateFieldSet(this, _ContractsImpl_policy, (
|
|
248
|
-
__classPrivateFieldSet(this, _ContractsImpl_events, (
|
|
242
|
+
const validConfig = configCheck(config);
|
|
243
|
+
const validPartners = presentCheck(validConfig?.partners ?? [], "Partners must be present.");
|
|
244
|
+
__classPrivateFieldSet(this, _ContractsImpl_policy, createPolicy(validConfig), "f");
|
|
245
|
+
__classPrivateFieldSet(this, _ContractsImpl_events, createEvents({
|
|
249
246
|
names: validConfig?.shutdownEvents ?? [],
|
|
250
247
|
callback: () => this.shutdown()
|
|
251
248
|
}), "f");
|
|
252
|
-
if (
|
|
249
|
+
if (isPresent(validPartners)) {
|
|
253
250
|
__classPrivateFieldGet(this, _ContractsImpl_partners, "f").push(...validPartners);
|
|
254
251
|
}
|
|
255
252
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Contracts.impl.js","sourceRoot":"","sources":["../../src/impl/Contracts.impl.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Contracts.impl.js","sourceRoot":"","sources":["../../src/impl/Contracts.impl.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,35 +1,31 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
3
2
|
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
4
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");
|
|
5
4
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
6
5
|
};
|
|
7
6
|
var _ContractsFactoryImpl_defaultConfig;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
const PromisorFactory_impl_1 = require("./PromisorFactory.impl");
|
|
25
|
-
const RepositoryFactory_impl_1 = require("./RepositoryFactory.impl");
|
|
26
|
-
const IdempotentFactory_impl_1 = require("./IdempotentFactory.impl");
|
|
7
|
+
import { CONTRACT as AUTO_CLOSE_FACTORY } from "@jonloucks/contracts-ts/api/AutoCloseFactory";
|
|
8
|
+
import { CONTRACT as PROMISOR_FACTORY } from "@jonloucks/contracts-ts/api/PromisorFactory";
|
|
9
|
+
import { CONTRACT as REPOSITORY_FACTORY } from "@jonloucks/contracts-ts/api/RepositoryFactory";
|
|
10
|
+
import { CONTRACT as ATOMIC_BOOLEAN_FACTORY } from "@jonloucks/contracts-ts/auxiliary/AtomicBooleanFactory";
|
|
11
|
+
import { CONTRACT as ATOMIC_INTEGER_FACTORY } from "@jonloucks/contracts-ts/auxiliary/AtomicIntegerFactory";
|
|
12
|
+
import { CONTRACT as ATOMIC_REFERENCE_FACTORY } from "@jonloucks/contracts-ts/auxiliary/AtomicReferenceFactory";
|
|
13
|
+
import { CONTRACT as IDEMPOTENT_FACTORY } from "@jonloucks/contracts-ts/auxiliary/IdempotentFactory";
|
|
14
|
+
import { create as createAtomicBooleanFactoryImpl } from "./AtomicBooleanFactory.impl.js";
|
|
15
|
+
import { create as createAtomicIntegerFactoryImpl } from "./AtomicIntegerFactory.impl.js";
|
|
16
|
+
import { create as createAtomicReferenceFactoryImpl } from "./AtomicReferenceFactory.impl.js";
|
|
17
|
+
import { create as createAutoCloseFactoryImpl } from "./AutoCloseFactory.impl.js";
|
|
18
|
+
import { create as createContractsImpl } from "./Contracts.impl.js";
|
|
19
|
+
import { wrap as wrapContracts } from "./ContractsWrapper.impl.js";
|
|
20
|
+
import { create as createPromisorFactoryImpl } from "./PromisorFactory.impl.js";
|
|
21
|
+
import { create as createRepositoryFactoryImpl } from "./RepositoryFactory.impl.js";
|
|
22
|
+
import { create as createIdempotentFactoryImpl } from "./IdempotentFactory.impl.js";
|
|
27
23
|
/**
|
|
28
24
|
* Factory method to create a ContractsFactory
|
|
29
25
|
*
|
|
30
26
|
* @returns the ContractsFactory implementation
|
|
31
27
|
*/
|
|
32
|
-
function create() {
|
|
28
|
+
export function create() {
|
|
33
29
|
return ContractsFactoryImpl.internalCreate();
|
|
34
30
|
}
|
|
35
31
|
/**
|
|
@@ -38,7 +34,7 @@ function create() {
|
|
|
38
34
|
* @param config the configuration for the Contracts instance
|
|
39
35
|
* @returns the Contracts implementation
|
|
40
36
|
*/
|
|
41
|
-
function createContracts(config) {
|
|
37
|
+
export function createContracts(config) {
|
|
42
38
|
return create().createContracts(config);
|
|
43
39
|
}
|
|
44
40
|
// ---- Implementation details below ----
|
|
@@ -51,23 +47,23 @@ class ContractsFactoryImpl {
|
|
|
51
47
|
*/
|
|
52
48
|
createContracts(config) {
|
|
53
49
|
const actualConfig = config ?? __classPrivateFieldGet(this, _ContractsFactoryImpl_defaultConfig, "f");
|
|
54
|
-
const contracts = (
|
|
50
|
+
const contracts = createContractsImpl(actualConfig);
|
|
55
51
|
const repository = this.createKernelRepository(contracts);
|
|
56
|
-
return (
|
|
52
|
+
return wrapContracts(contracts, repository);
|
|
57
53
|
}
|
|
58
54
|
static internalCreate() {
|
|
59
55
|
return new ContractsFactoryImpl();
|
|
60
56
|
}
|
|
61
57
|
createKernelRepository(contracts) {
|
|
62
|
-
const repositoryFactory = (
|
|
58
|
+
const repositoryFactory = createRepositoryFactoryImpl(contracts);
|
|
63
59
|
const repository = repositoryFactory.createRepository();
|
|
64
|
-
repository.keep(
|
|
65
|
-
repository.keep(
|
|
66
|
-
repository.keep(
|
|
67
|
-
repository.keep(
|
|
68
|
-
repository.keep(
|
|
69
|
-
repository.keep(
|
|
70
|
-
repository.keep(
|
|
60
|
+
repository.keep(IDEMPOTENT_FACTORY, createIdempotentFactoryImpl);
|
|
61
|
+
repository.keep(PROMISOR_FACTORY, createPromisorFactoryImpl);
|
|
62
|
+
repository.keep(REPOSITORY_FACTORY, () => repositoryFactory);
|
|
63
|
+
repository.keep(ATOMIC_BOOLEAN_FACTORY, createAtomicBooleanFactoryImpl);
|
|
64
|
+
repository.keep(ATOMIC_INTEGER_FACTORY, createAtomicIntegerFactoryImpl);
|
|
65
|
+
repository.keep(ATOMIC_REFERENCE_FACTORY, createAtomicReferenceFactoryImpl);
|
|
66
|
+
repository.keep(AUTO_CLOSE_FACTORY, createAutoCloseFactoryImpl);
|
|
71
67
|
return repository;
|
|
72
68
|
}
|
|
73
69
|
constructor() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContractsFactory.impl.js","sourceRoot":"","sources":["../../src/impl/ContractsFactory.impl.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ContractsFactory.impl.js","sourceRoot":"","sources":["../../src/impl/ContractsFactory.impl.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
3
2
|
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
4
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");
|
|
@@ -11,9 +10,7 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
|
|
|
11
10
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
12
11
|
};
|
|
13
12
|
var _ContractsWrapper_contracts, _ContractsWrapper_repository;
|
|
14
|
-
|
|
15
|
-
exports.wrap = wrap;
|
|
16
|
-
const AutoClose_1 = require("@jonloucks/contracts-ts/api/AutoClose");
|
|
13
|
+
import { inlineAutoClose } from "@jonloucks/contracts-ts/api/AutoClose";
|
|
17
14
|
/**
|
|
18
15
|
* Wrapper method to create a Contracts wrapper which is responsible for managing
|
|
19
16
|
* the lifecycle of the underlying Repository and Contracts instances.
|
|
@@ -22,7 +19,7 @@ const AutoClose_1 = require("@jonloucks/contracts-ts/api/AutoClose");
|
|
|
22
19
|
* @param repository the underlying Repository instance
|
|
23
20
|
* @returns the Contracts implementation
|
|
24
21
|
*/
|
|
25
|
-
function wrap(contracts, repository) {
|
|
22
|
+
export function wrap(contracts, repository) {
|
|
26
23
|
return ContractsWrapper.internalCreate(contracts, repository);
|
|
27
24
|
}
|
|
28
25
|
// ---- Implementation details below ----
|
|
@@ -54,7 +51,7 @@ class ContractsWrapper {
|
|
|
54
51
|
const closeRepository = __classPrivateFieldGet(this, _ContractsWrapper_repository, "f").open();
|
|
55
52
|
try {
|
|
56
53
|
const closeConcurrency = __classPrivateFieldGet(this, _ContractsWrapper_contracts, "f").open();
|
|
57
|
-
return
|
|
54
|
+
return inlineAutoClose(() => {
|
|
58
55
|
try {
|
|
59
56
|
closeConcurrency.close();
|
|
60
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContractsWrapper.impl.js","sourceRoot":"","sources":["../../src/impl/ContractsWrapper.impl.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ContractsWrapper.impl.js","sourceRoot":"","sources":["../../src/impl/ContractsWrapper.impl.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAa,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAQnF;;;;;;;GAOG;AACH,MAAM,UAAU,IAAI,CAAC,SAAkC,EAAE,UAAoC;IAC3F,OAAO,gBAAgB,CAAC,cAAc,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AAChE,CAAC;AAED,yCAAyC;AAEzC;;;;GAIG;AACH,MAAM,gBAAgB;IAEpB,MAAM,CAAC,cAAc,CAAC,SAAkC,EAAE,UAAoC;QAC5F,OAAO,IAAI,gBAAgB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAI,QAAqB;QAC5B,OAAO,uBAAA,IAAI,mCAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,CAAI,QAAqB;QAC9B,OAAO,uBAAA,IAAI,mCAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,CAAI,QAAqB;QAC9B,OAAO,uBAAA,IAAI,mCAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,CAAI,QAAqB,EAAE,QAAyB,EAAE,YAA+B;QACvF,OAAO,uBAAA,IAAI,mCAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;IAChE,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAED,IAAI;QACF,MAAM,eAAe,GAAc,uBAAA,IAAI,oCAAY,CAAC,IAAI,EAAE,CAAC;QAC3D,IAAI,CAAC;YACH,MAAM,gBAAgB,GAAc,uBAAA,IAAI,mCAAW,CAAC,IAAI,EAAE,CAAC;YAC3D,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,QAAQ;QACN,OAAO,uBAAA,IAAI,mCAAW,CAAC,QAAQ,EAAE,CAAC;IACpC,CAAC;IAED,YAAoB,SAAkC,EAAE,UAAoC;QAKnF,8CAAoC;QACpC,+CAAsC;QAL7C,uBAAA,IAAI,+BAAc,SAAS,MAAA,CAAC;QAC5B,uBAAA,IAAI,gCAAe,UAAU,MAAA,CAAC;IAChC,CAAC;CAIF;;AAAA,CAAC"}
|
package/impl/Events.d.ts
CHANGED
package/impl/Events.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Events.d.ts","sourceRoot":"","sources":["../../src/impl/Events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"Events.d.ts","sourceRoot":"","sources":["../../src/impl/Events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kCAAkC,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,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"}
|
package/impl/Events.impl.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Events.impl.d.ts","sourceRoot":"","sources":["../../src/impl/Events.impl.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Events.impl.d.ts","sourceRoot":"","sources":["../../src/impl/Events.impl.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAKjE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE7C;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAE5D"}
|
package/impl/Events.impl.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
3
2
|
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
4
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");
|
|
@@ -11,17 +10,15 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
|
|
|
11
10
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
12
11
|
};
|
|
13
12
|
var _EventsImpl_names, _EventsImpl_callback, _EventsImpl_idempotent;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const Checks_1 = require("@jonloucks/contracts-ts/auxiliary/Checks");
|
|
17
|
-
const Idempotent_impl_1 = require("./Idempotent.impl");
|
|
13
|
+
import { configCheck, presentCheck } from "@jonloucks/contracts-ts/auxiliary/Checks";
|
|
14
|
+
import { create as createIdempotent } from "./Idempotent.impl.js";
|
|
18
15
|
/**
|
|
19
16
|
* Factory method to create Events instance.
|
|
20
17
|
*
|
|
21
18
|
* @param config the configuration for the Events implementation
|
|
22
19
|
* @returns the new Events implementation
|
|
23
20
|
*/
|
|
24
|
-
function create(config) {
|
|
21
|
+
export function create(config) {
|
|
25
22
|
return EventsImpl.internalCreate(config);
|
|
26
23
|
}
|
|
27
24
|
// ---- Implementation details below ----
|
|
@@ -54,10 +51,10 @@ class EventsImpl {
|
|
|
54
51
|
constructor(config) {
|
|
55
52
|
_EventsImpl_names.set(this, void 0);
|
|
56
53
|
_EventsImpl_callback.set(this, void 0);
|
|
57
|
-
_EventsImpl_idempotent.set(this, (
|
|
58
|
-
const validConfig =
|
|
54
|
+
_EventsImpl_idempotent.set(this, createIdempotent({ open: () => this.firstOpen() }));
|
|
55
|
+
const validConfig = configCheck(config);
|
|
59
56
|
__classPrivateFieldSet(this, _EventsImpl_names, validConfig?.names ?? [], "f");
|
|
60
|
-
__classPrivateFieldSet(this, _EventsImpl_callback,
|
|
57
|
+
__classPrivateFieldSet(this, _EventsImpl_callback, presentCheck(validConfig?.callback, "Callback must be present."), "f");
|
|
61
58
|
}
|
|
62
59
|
}
|
|
63
60
|
_EventsImpl_names = new WeakMap(), _EventsImpl_callback = new WeakMap(), _EventsImpl_idempotent = new WeakMap();
|
package/impl/Events.impl.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Events.impl.js","sourceRoot":"","sources":["../../src/impl/Events.impl.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Events.impl.js","sourceRoot":"","sources":["../../src/impl/Events.impl.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AAGrF,OAAO,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGlE;;;;;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,QAAQ;QACN,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAED,IAAI;QACF,OAAO,uBAAA,IAAI,8BAAY,CAAC,IAAI,EAAE,CAAC;IACjC,CAAC;IAED,MAAM;QACJ,OAAO,uBAAA,IAAI,8BAAY,CAAC,MAAM,EAAE,CAAC;IACnC,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,GAAG,EAAE;YACV,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;IACJ,CAAC;IAED,YAAoB,MAAe;QAM1B,oCAAiB;QACjB,uCAAwC;QACxC,iCAA0B,gBAAgB,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,EAAC,CAAC,EAAC;QAPnF,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QACxC,uBAAA,IAAI,qBAAU,WAAW,EAAE,KAAK,IAAI,EAAE,MAAA,CAAC;QACvC,uBAAA,IAAI,wBAAa,YAAY,CAAC,WAAW,EAAE,QAAQ,EAAE,2BAA2B,CAAC,MAAA,CAAA;IACnF,CAAC;CAKF"}
|
package/impl/Events.js
CHANGED
package/impl/Events.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Events.js","sourceRoot":"","sources":["../../src/impl/Events.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Events.js","sourceRoot":"","sources":["../../src/impl/Events.ts"],"names":[],"mappings":"AAyBC,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Promisor } from "@jonloucks/contracts-ts/api/Promisor";
|
|
2
|
-
import { RequiredType
|
|
2
|
+
import { RequiredType } from "@jonloucks/contracts-ts/api/Types";
|
|
3
|
+
import { Transform } from "@jonloucks/contracts-ts/auxiliary/Transform";
|
|
3
4
|
/**
|
|
4
5
|
* Factory method to create an ExtractPromisorImpl which is extraction promisor
|
|
5
6
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExtractorPromisor.impl.d.ts","sourceRoot":"","sources":["../../src/impl/ExtractorPromisor.impl.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAChE,OAAO,EAA8B,YAAY,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"ExtractorPromisor.impl.d.ts","sourceRoot":"","sources":["../../src/impl/ExtractorPromisor.impl.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAChE,OAAO,EAA8B,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,6CAA6C,CAAC;AACxE;;;;;;;;GAQG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAEzG"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
3
2
|
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
4
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");
|
|
@@ -11,10 +10,8 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
|
|
|
11
10
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
12
11
|
};
|
|
13
12
|
var _ExtractorPromisorImpl_referent, _ExtractorPromisorImpl_transform;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const Checks_1 = require("@jonloucks/contracts-ts/auxiliary/Checks");
|
|
17
|
-
const Types_1 = require("@jonloucks/contracts-ts/api/Types");
|
|
13
|
+
import { presentCheck, promisorCheck } from "@jonloucks/contracts-ts/auxiliary/Checks";
|
|
14
|
+
import { isNotPresent } from "@jonloucks/contracts-ts/api/Types";
|
|
18
15
|
/**
|
|
19
16
|
* Factory method to create an ExtractPromisorImpl which is extraction promisor
|
|
20
17
|
*
|
|
@@ -24,7 +21,7 @@ const Types_1 = require("@jonloucks/contracts-ts/api/Types");
|
|
|
24
21
|
* @param <R> the output deliverable type
|
|
25
22
|
* @returns the new Extract Promisor implementation
|
|
26
23
|
*/
|
|
27
|
-
function create(referent, transform) {
|
|
24
|
+
export function create(referent, transform) {
|
|
28
25
|
return ExtractorPromisorImpl.internalCreate(referent, transform);
|
|
29
26
|
}
|
|
30
27
|
// ---- Implementation details below ----
|
|
@@ -39,7 +36,7 @@ class ExtractorPromisorImpl {
|
|
|
39
36
|
*/
|
|
40
37
|
demand() {
|
|
41
38
|
const referentValue = __classPrivateFieldGet(this, _ExtractorPromisorImpl_referent, "f").demand();
|
|
42
|
-
if (
|
|
39
|
+
if (isNotPresent(referentValue)) {
|
|
43
40
|
return referentValue;
|
|
44
41
|
}
|
|
45
42
|
else {
|
|
@@ -64,8 +61,8 @@ class ExtractorPromisorImpl {
|
|
|
64
61
|
constructor(referent, transform) {
|
|
65
62
|
_ExtractorPromisorImpl_referent.set(this, void 0);
|
|
66
63
|
_ExtractorPromisorImpl_transform.set(this, void 0);
|
|
67
|
-
__classPrivateFieldSet(this, _ExtractorPromisorImpl_referent,
|
|
68
|
-
__classPrivateFieldSet(this, _ExtractorPromisorImpl_transform,
|
|
64
|
+
__classPrivateFieldSet(this, _ExtractorPromisorImpl_referent, promisorCheck(referent), "f");
|
|
65
|
+
__classPrivateFieldSet(this, _ExtractorPromisorImpl_transform, presentCheck(transform, "Transform must be present."), "f");
|
|
69
66
|
}
|
|
70
67
|
}
|
|
71
68
|
_ExtractorPromisorImpl_referent = new WeakMap(), _ExtractorPromisorImpl_transform = new WeakMap();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExtractorPromisor.impl.js","sourceRoot":"","sources":["../../src/impl/ExtractorPromisor.impl.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ExtractorPromisor.impl.js","sourceRoot":"","sources":["../../src/impl/ExtractorPromisor.impl.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAEvF,OAAO,EAAE,YAAY,EAA8B,MAAM,mCAAmC,CAAC;AAE7F;;;;;;;;GAQG;AACH,MAAM,UAAU,MAAM,CAAO,QAAqB,EAAE,SAA0B;IAC5E,OAAO,qBAAqB,CAAC,cAAc,CAAO,QAAQ,EAAE,SAAS,CAAC,CAAC;AACzE,CAAC;AAED,yCAAyC;AAEzC;;;;GAIG;AACH,MAAM,qBAAqB;IAEzB;;OAEG;IACH,MAAM;QACJ,MAAM,aAAa,GAAG,uBAAA,IAAI,uCAAU,CAAC,MAAM,EAAE,CAAC;QAC9C,IAAI,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC;YAChC,OAAO,aAAa,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,OAAO,uBAAA,IAAI,wCAAW,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,uBAAA,IAAI,uCAAU,CAAC,cAAc,EAAE,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,uBAAA,IAAI,uCAAU,CAAC,cAAc,EAAE,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,cAAc,CAAO,QAAqB,EAAE,SAA0B;QAC3E,OAAO,IAAI,qBAAqB,CAAO,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC9D,CAAC;IAED,YAAoB,QAAqB,EAAE,SAA0B;QAK5D,kDAAuB;QACvB,mDAA4B;QALnC,uBAAA,IAAI,mCAAa,aAAa,CAAC,QAAQ,CAAC,MAAA,CAAC;QACzC,uBAAA,IAAI,oCAAc,YAAY,CAAC,SAAS,EAAE,4BAA4B,CAAC,MAAA,CAAC;IAC1E,CAAC;CAIF"}
|
package/impl/Idempotent.impl.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
3
2
|
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
4
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");
|
|
@@ -11,19 +10,17 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
|
|
|
11
10
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
12
11
|
};
|
|
13
12
|
var _IdempotentImpl_delegate, _IdempotentImpl_firstClose, _IdempotentImpl_flag, _IdempotentImpl_closeDelegate, _IdempotentImpl_idempotentState;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const Checks_1 = require("@jonloucks/contracts-ts/auxiliary/Checks");
|
|
19
|
-
const AtomicBoolean_impl_1 = require("./AtomicBoolean.impl");
|
|
13
|
+
import { AUTO_CLOSE_NONE, inlineAutoClose } from "@jonloucks/contracts-ts/api/AutoClose";
|
|
14
|
+
import { typeToOpen } from "@jonloucks/contracts-ts/api/Open";
|
|
15
|
+
import { presentCheck } from "@jonloucks/contracts-ts/auxiliary/Checks";
|
|
16
|
+
import { create as createAtomicBoolean } from "./AtomicBoolean.impl.js";
|
|
20
17
|
/**
|
|
21
18
|
* Create a new Idempotent
|
|
22
19
|
*
|
|
23
20
|
* @param config the idempotent configuration
|
|
24
21
|
* @return the new Idempotent
|
|
25
22
|
*/
|
|
26
|
-
function create(config) {
|
|
23
|
+
export function create(config) {
|
|
27
24
|
return IdempotentImpl.internalCreate(config);
|
|
28
25
|
}
|
|
29
26
|
// ---- Implementation details below ----
|
|
@@ -40,7 +37,7 @@ class IdempotentImpl {
|
|
|
40
37
|
return this.firstOpen();
|
|
41
38
|
}
|
|
42
39
|
else {
|
|
43
|
-
return
|
|
40
|
+
return AUTO_CLOSE_NONE;
|
|
44
41
|
}
|
|
45
42
|
}
|
|
46
43
|
// Idempotent.isOpen
|
|
@@ -64,7 +61,7 @@ class IdempotentImpl {
|
|
|
64
61
|
return __classPrivateFieldGet(this, _IdempotentImpl_firstClose, "f");
|
|
65
62
|
}
|
|
66
63
|
openDelegate() {
|
|
67
|
-
return
|
|
64
|
+
return presentCheck(__classPrivateFieldGet(this, _IdempotentImpl_delegate, "f").open(), "Close must be present.");
|
|
68
65
|
}
|
|
69
66
|
transitionToOpen() {
|
|
70
67
|
return __classPrivateFieldGet(this, _IdempotentImpl_flag, "f").compareAndSet(IS_CLOSED, IS_OPEN);
|
|
@@ -75,11 +72,11 @@ class IdempotentImpl {
|
|
|
75
72
|
constructor(config) {
|
|
76
73
|
_IdempotentImpl_delegate.set(this, void 0);
|
|
77
74
|
_IdempotentImpl_firstClose.set(this, void 0);
|
|
78
|
-
_IdempotentImpl_flag.set(this, (
|
|
75
|
+
_IdempotentImpl_flag.set(this, createAtomicBoolean(IS_CLOSED));
|
|
79
76
|
_IdempotentImpl_closeDelegate.set(this, undefined);
|
|
80
77
|
_IdempotentImpl_idempotentState.set(this, "OPENABLE");
|
|
81
|
-
__classPrivateFieldSet(this, _IdempotentImpl_delegate,
|
|
82
|
-
__classPrivateFieldSet(this, _IdempotentImpl_firstClose,
|
|
78
|
+
__classPrivateFieldSet(this, _IdempotentImpl_delegate, typeToOpen(config.open), "f");
|
|
79
|
+
__classPrivateFieldSet(this, _IdempotentImpl_firstClose, inlineAutoClose(() => {
|
|
83
80
|
if (this.transitionToClosed()) {
|
|
84
81
|
__classPrivateFieldSet(this, _IdempotentImpl_idempotentState, "CLOSING", "f");
|
|
85
82
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Idempotent.impl.js","sourceRoot":"","sources":["../../src/impl/Idempotent.impl.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Idempotent.impl.js","sourceRoot":"","sources":["../../src/impl/Idempotent.impl.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,OAAO,EAAE,eAAe,EAAa,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACpG,OAAO,EAAQ,UAAU,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AAGxE,OAAO,EAAE,MAAM,IAAI,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAExE;;;;;GAKG;AACH,MAAM,UAAU,MAAM,CAAC,MAAc;IACnC,OAAO,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AAC/C,CAAC;AAED,yCAAyC;AAEzC,MAAM,SAAS,GAAY,KAAK,CAAC;AACjC,MAAM,OAAO,GAAY,IAAI,CAAC;AAE9B,MAAM,cAAc;IAElB,sBAAsB;IACtB,QAAQ;QACN,OAAO,uBAAA,IAAI,uCAAiB,CAAC;IAC/B,CAAC;IAED,kBAAkB;IAClB,IAAI;QACF,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,OAAO,eAAe,CAAC;QACzB,CAAC;IACH,CAAC;IAED,oBAAoB;IACpB,MAAM;QACJ,OAAO,uBAAA,IAAI,4BAAM,CAAC,GAAG,EAAE,KAAK,OAAO,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,MAAc;QAClC,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAEO,SAAS;QACf,uBAAA,IAAI,mCAAoB,SAAS,MAAA,CAAC;QAClC,IAAI,CAAC;YACH,uBAAA,IAAI,iCAAkB,IAAI,CAAC,YAAY,EAAE,MAAA,CAAC;YAC1C,uBAAA,IAAI,mCAAoB,QAAQ,MAAA,CAAC;QACnC,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,uBAAA,IAAI,4BAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC1B,uBAAA,IAAI,mCAAoB,UAAU,MAAA,CAAC;YACnC,MAAM,MAAM,CAAC;QACf,CAAC;QACD,OAAO,uBAAA,IAAI,kCAAY,CAAC;IAC1B,CAAC;IAEO,YAAY;QAClB,OAAO,YAAY,CAAC,uBAAA,IAAI,gCAAU,CAAC,IAAI,EAAE,EAAE,wBAAwB,CAAC,CAAC;IACvE,CAAC;IAEO,gBAAgB;QACtB,OAAO,uBAAA,IAAI,4BAAM,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAEO,kBAAkB;QACxB,OAAO,uBAAA,IAAI,4BAAM,CAAC,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACtD,CAAC;IAED,YAAoB,MAAc;QAezB,2CAAgB;QAChB,6CAAuB;QACvB,+BAAuB,mBAAmB,CAAC,SAAS,CAAC,EAAC;QAC/D,wCAAwC,SAAS,EAAC;QAClD,0CAAoC,UAAU,EAAC;QAlB7C,uBAAA,IAAI,4BAAa,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,MAAA,CAAC;QACzC,uBAAA,IAAI,8BAAe,eAAe,CAAC,GAAG,EAAE;YACtC,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;gBAC9B,uBAAA,IAAI,mCAAoB,SAAS,MAAA,CAAC;gBAClC,IAAI,CAAC;oBACA,uBAAA,IAAI,qCAAe,EAAE,KAAK,EAAE,CAAC;gBAClC,CAAC;wBAAS,CAAC;oBACT,uBAAA,IAAI,iCAAkB,SAAS,MAAA,CAAC;oBAChC,uBAAA,IAAI,mCAAoB,QAAQ,MAAA,CAAC;gBACnC,CAAC;YACH,CAAC;QACH,CAAC,CAAC,MAAA,CAAC;IACL,CAAC;CAOF"}
|