@jonloucks/contracts-ts 1.0.3 → 1.0.4
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/auxiliary/AtomicBoolean.d.ts +7 -0
- package/auxiliary/AtomicBoolean.d.ts.map +1 -1
- package/auxiliary/AtomicBoolean.js +1 -1
- package/auxiliary/AtomicBoolean.js.map +1 -1
- package/auxiliary/AtomicInteger.d.ts +7 -0
- package/auxiliary/AtomicInteger.d.ts.map +1 -1
- package/auxiliary/AtomicInteger.js +1 -1
- package/auxiliary/AtomicInteger.js.map +1 -1
- package/auxiliary/AtomicReference.d.ts +14 -0
- package/auxiliary/AtomicReference.d.ts.map +1 -1
- package/auxiliary/AtomicReference.js +1 -1
- package/auxiliary/AtomicReference.js.map +1 -1
- package/impl/AtomicBoolean.impl.js +8 -0
- package/impl/AtomicBoolean.impl.js.map +1 -1
- package/impl/AtomicInteger.impl.js +6 -0
- package/impl/AtomicInteger.impl.js.map +1 -1
- package/impl/AtomicReference.impl.d.ts +4 -0
- package/impl/AtomicReference.impl.d.ts.map +1 -1
- package/impl/AtomicReference.impl.js +8 -0
- package/impl/AtomicReference.impl.js.map +1 -1
- package/package.json +1 -1
- package/version.js +1 -1
|
@@ -20,6 +20,13 @@ export interface AtomicBoolean {
|
|
|
20
20
|
* @return true if successful. False return indicates that the actual value was not equal to the expected value.
|
|
21
21
|
*/
|
|
22
22
|
compareAndSet(expectedValue: boolean, newValue: boolean): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Atomically sets to the given value and returns the previous value.
|
|
25
|
+
*
|
|
26
|
+
* @param newValue the new value
|
|
27
|
+
* @return the previous value
|
|
28
|
+
*/
|
|
29
|
+
getAndSet(newValue: boolean): boolean;
|
|
23
30
|
/**
|
|
24
31
|
* Helpful method for converting to primitive types.
|
|
25
32
|
* @param hint
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AtomicBoolean.d.ts","sourceRoot":"","sources":["../../src/auxiliary/AtomicBoolean.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAkB,MAAM,mCAAmC,CAAC;AAEjF;;GAEG;AACH,MAAM,WAAW,aAAa;IAE1B;;OAEG;IACH,GAAG,IAAI,OAAO,CAAC;IAEf;;;OAGG;IACH,GAAG,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IAE7B;;;;;;OAMG;IACH,aAAa,CAAC,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC;IAElE;;;OAGG;IACH,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;CACjE;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,YAAY,CAAC,aAAa,CAAC,CAEhF"}
|
|
1
|
+
{"version":3,"file":"AtomicBoolean.d.ts","sourceRoot":"","sources":["../../src/auxiliary/AtomicBoolean.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAkB,MAAM,mCAAmC,CAAC;AAEjF;;GAEG;AACH,MAAM,WAAW,aAAa;IAE1B;;OAEG;IACH,GAAG,IAAI,OAAO,CAAC;IAEf;;;OAGG;IACH,GAAG,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IAE7B;;;;;;OAMG;IACH,aAAa,CAAC,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC;IAElE;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC;IAEtC;;;OAGG;IACH,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;CACjE;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,YAAY,CAAC,aAAa,CAAC,CAEhF"}
|
|
@@ -9,6 +9,6 @@ const Types_1 = require("@jonloucks/contracts-ts/api/Types");
|
|
|
9
9
|
* @returns true if the instance implements AtomicBoolean
|
|
10
10
|
*/
|
|
11
11
|
function guard(instance) {
|
|
12
|
-
return (0, Types_1.guardFunctions)(instance, "compareAndSet", "get", "set");
|
|
12
|
+
return (0, Types_1.guardFunctions)(instance, "compareAndSet", "get", "set", "getAndSet");
|
|
13
13
|
}
|
|
14
14
|
//# sourceMappingURL=AtomicBoolean.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AtomicBoolean.js","sourceRoot":"","sources":["../../src/auxiliary/AtomicBoolean.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"AtomicBoolean.js","sourceRoot":"","sources":["../../src/auxiliary/AtomicBoolean.ts"],"names":[],"mappings":";;AAgDA,sBAEC;AAlDD,6DAAiF;AA0CjF;;;;;GAKG;AACH,SAAgB,KAAK,CAAC,QAAiB;IACnC,OAAO,IAAA,sBAAc,EAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;AAChF,CAAC"}
|
|
@@ -29,6 +29,13 @@ export interface AtomicInteger {
|
|
|
29
29
|
* @return the updated value
|
|
30
30
|
*/
|
|
31
31
|
decrementAndGet(): number;
|
|
32
|
+
/**
|
|
33
|
+
* Atomically sets to the given value and returns the previous value.
|
|
34
|
+
*
|
|
35
|
+
* @param newValue the new value
|
|
36
|
+
* @return the previous value
|
|
37
|
+
*/
|
|
38
|
+
getAndSet(newValue: number): number;
|
|
32
39
|
/**
|
|
33
40
|
* Helpful method for converting to primitive types.
|
|
34
41
|
* @param hint primitive hint
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AtomicInteger.d.ts","sourceRoot":"","sources":["../../src/auxiliary/AtomicInteger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAkB,MAAM,mCAAmC,CAAC;AAEjF;;GAEG;AACH,MAAM,WAAW,aAAa;IAE1B;;OAEG;IACH,GAAG,IAAI,MAAM,CAAC;IAEd;;;OAGG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB;;;;;OAKG;IACH,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAEhE;;;OAGG;IACH,eAAe,IAAI,MAAM,CAAC;IAE1B;;;OAGG;IACH,eAAe,IAAI,MAAM,CAAC;IAE1B;;;OAGG;IACH,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CACjE;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,YAAY,CAAC,aAAa,CAAC,CAEhF"}
|
|
1
|
+
{"version":3,"file":"AtomicInteger.d.ts","sourceRoot":"","sources":["../../src/auxiliary/AtomicInteger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAkB,MAAM,mCAAmC,CAAC;AAEjF;;GAEG;AACH,MAAM,WAAW,aAAa;IAE1B;;OAEG;IACH,GAAG,IAAI,MAAM,CAAC;IAEd;;;OAGG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB;;;;;OAKG;IACH,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAEhE;;;OAGG;IACH,eAAe,IAAI,MAAM,CAAC;IAE1B;;;OAGG;IACH,eAAe,IAAI,MAAM,CAAC;IAE1B;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAEpC;;;OAGG;IACH,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CACjE;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,YAAY,CAAC,aAAa,CAAC,CAEhF"}
|
|
@@ -9,6 +9,6 @@ const Types_1 = require("@jonloucks/contracts-ts/api/Types");
|
|
|
9
9
|
* @returns true if the instance implements AtomicInteger
|
|
10
10
|
*/
|
|
11
11
|
function guard(instance) {
|
|
12
|
-
return (0, Types_1.guardFunctions)(instance, "compareAndSet", "incrementAndGet", "decrementAndGet", "get", "set");
|
|
12
|
+
return (0, Types_1.guardFunctions)(instance, "compareAndSet", "incrementAndGet", "decrementAndGet", "getAndSet", "get", "set");
|
|
13
13
|
}
|
|
14
14
|
//# sourceMappingURL=AtomicInteger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AtomicInteger.js","sourceRoot":"","sources":["../../src/auxiliary/AtomicInteger.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"AtomicInteger.js","sourceRoot":"","sources":["../../src/auxiliary/AtomicInteger.ts"],"names":[],"mappings":";;AA2DA,sBAEC;AA7DD,6DAAiF;AAqDjF;;;;;GAKG;AACH,SAAgB,KAAK,CAAC,QAAiB;IACnC,OAAO,IAAA,sBAAc,EAAC,QAAQ,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AACtH,CAAC"}
|
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
import { OptionalType, RequiredType } from "@jonloucks/contracts-ts/api/Types";
|
|
2
|
+
/**
|
|
3
|
+
* @module auxiliary/AtomicReference
|
|
4
|
+
* @description
|
|
5
|
+
*
|
|
6
|
+
* AtomicReference is not truly atomic in this implementation due to JavaScript/TypeScript limitations.
|
|
7
|
+
* However, it provides a thread-safe interface for reference operations using standard object equality.
|
|
8
|
+
*/
|
|
2
9
|
/**
|
|
3
10
|
* Responsibility: An atomic reference interface for thread-safe reference operations.
|
|
4
11
|
* Note: typescript limitations prevent full atomicity guarantees.
|
|
@@ -20,6 +27,13 @@ export interface AtomicReference<T> {
|
|
|
20
27
|
* @return true if successful. False return indicates that the actual value was not equal to the expected value.
|
|
21
28
|
*/
|
|
22
29
|
compareAndSet(expectedValue: OptionalType<T>, newValue: OptionalType<T>): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Atomically sets to the given value and returns the previous value.
|
|
32
|
+
*
|
|
33
|
+
* @param newValue the new value
|
|
34
|
+
* @return the previous value
|
|
35
|
+
*/
|
|
36
|
+
getAndSet(newValue: OptionalType<T>): OptionalType<T>;
|
|
23
37
|
}
|
|
24
38
|
/**
|
|
25
39
|
* Type guard for AtomicReference interface.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AtomicReference.d.ts","sourceRoot":"","sources":["../../src/auxiliary/AtomicReference.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAkB,MAAM,mCAAmC,CAAC;AAE/F;;;GAGG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC;IAE9B;;OAEG;IACH,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;IAEvB;;;OAGG;IACH,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;IAEpC;;;;;OAKG;IACH,aAAa,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"AtomicReference.d.ts","sourceRoot":"","sources":["../../src/auxiliary/AtomicReference.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAkB,MAAM,mCAAmC,CAAC;AAE/F;;;;;;GAMG;AAEH;;;GAGG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC;IAE9B;;OAEG;IACH,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;IAEvB;;;OAGG;IACH,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;IAEpC;;;;;OAKG;IACH,aAAa,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;IAElF;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;CACzD;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAExF"}
|
|
@@ -9,6 +9,6 @@ const Types_1 = require("@jonloucks/contracts-ts/api/Types");
|
|
|
9
9
|
* @returns true if the instance implements AtomicReference
|
|
10
10
|
*/
|
|
11
11
|
function guard(instance) {
|
|
12
|
-
return (0, Types_1.guardFunctions)(instance, "compareAndSet", "get", "set");
|
|
12
|
+
return (0, Types_1.guardFunctions)(instance, "compareAndSet", "getAndSet", "get", "set");
|
|
13
13
|
}
|
|
14
14
|
//# sourceMappingURL=AtomicReference.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AtomicReference.js","sourceRoot":"","sources":["../../src/auxiliary/AtomicReference.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"AtomicReference.js","sourceRoot":"","sources":["../../src/auxiliary/AtomicReference.ts"],"names":[],"mappings":";;AAkDA,sBAEC;AApDD,6DAA+F;AA4C/F;;;;;GAKG;AACH,SAAgB,KAAK,CAAI,QAAiB;IACtC,OAAO,IAAA,sBAAc,EAAC,QAAQ,EAAE,eAAe,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAChF,CAAC"}
|
|
@@ -43,6 +43,14 @@ class AtomicBooleanImpl {
|
|
|
43
43
|
// Atomics.compareExchange checks value and sets it if it matches expectation
|
|
44
44
|
return Atomics.compareExchange(this.array, 0, expectedVal, newTargetVal) === expectedVal;
|
|
45
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* AtomicBoolean.getAndSet override
|
|
48
|
+
*/
|
|
49
|
+
getAndSet(newValue) {
|
|
50
|
+
const newTargetVal = booleanToNumber(newValue);
|
|
51
|
+
const previousVal = Atomics.exchange(this.array, 0, newTargetVal);
|
|
52
|
+
return previousVal === TRUE_AS_NUMBER;
|
|
53
|
+
}
|
|
46
54
|
/**
|
|
47
55
|
* [Symbol.toPrimitive] override
|
|
48
56
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AtomicBoolean.impl.js","sourceRoot":"","sources":["../../src/impl/AtomicBoolean.impl.ts"],"names":[],"mappings":";;AASA,wBAEC;AARD;;;;;GAKG;AACH,SAAgB,MAAM,CAAC,YAAsB;IAC3C,OAAO,iBAAiB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;AACxD,CAAC;AAED,yCAAyC;AAEzC,MAAM,eAAe,GAAW,CAAC,CAAC;AAClC,MAAM,cAAc,GAAW,CAAC,CAAC;AAEjC,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,MAAM,iBAAiB;IAErB;;OAEG;IACH,GAAG;QACD,2CAA2C;QAC3C,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,cAAc,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,KAAc;QAChB,4CAA4C;QAC5C,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;IACzE,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,QAAiB,EAAE,QAAiB;QAChD,MAAM,WAAW,GAAW,eAAe,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,YAAY,GAAW,eAAe,CAAC,QAAQ,CAAC,CAAC;QAEvD,6EAA6E;QAC7E,OAAO,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,YAAY,CAAC,KAAK,WAAW,CAAC;IAC3F,CAAC;IAED;;OAEG;IACH,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAY;QAC/B,MAAM,KAAK,GAAY,IAAI,CAAC,GAAG,EAAE,CAAC;QAClC,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,QAAQ;gBACX,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC1B,KAAK,QAAQ;gBACX,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;YAChC;gBACE,OAAO,KAAK,CAAC;QACjB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,YAAsB;QAC1C,OAAO,IAAI,iBAAiB,CAAC,YAAY,IAAI,KAAK,CAAC,CAAC;IACtD,CAAC;IAED,YAAoB,YAAqB;QAIxB,WAAM,GAAsB,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC;QACrD,UAAK,GAAe,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAJ/D,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACzB,CAAC;CAIF"}
|
|
1
|
+
{"version":3,"file":"AtomicBoolean.impl.js","sourceRoot":"","sources":["../../src/impl/AtomicBoolean.impl.ts"],"names":[],"mappings":";;AASA,wBAEC;AARD;;;;;GAKG;AACH,SAAgB,MAAM,CAAC,YAAsB;IAC3C,OAAO,iBAAiB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;AACxD,CAAC;AAED,yCAAyC;AAEzC,MAAM,eAAe,GAAW,CAAC,CAAC;AAClC,MAAM,cAAc,GAAW,CAAC,CAAC;AAEjC,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,MAAM,iBAAiB;IAErB;;OAEG;IACH,GAAG;QACD,2CAA2C;QAC3C,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,cAAc,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,KAAc;QAChB,4CAA4C;QAC5C,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;IACzE,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,QAAiB,EAAE,QAAiB;QAChD,MAAM,WAAW,GAAW,eAAe,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,YAAY,GAAW,eAAe,CAAC,QAAQ,CAAC,CAAC;QAEvD,6EAA6E;QAC7E,OAAO,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,YAAY,CAAC,KAAK,WAAW,CAAC;IAC3F,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,QAAiB;QACzB,MAAM,YAAY,GAAW,eAAe,CAAC,QAAQ,CAAC,CAAC;QACvD,MAAM,WAAW,GAAW,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;QAC1E,OAAO,WAAW,KAAK,cAAc,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAY;QAC/B,MAAM,KAAK,GAAY,IAAI,CAAC,GAAG,EAAE,CAAC;QAClC,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,QAAQ;gBACX,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC1B,KAAK,QAAQ;gBACX,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;YAChC;gBACE,OAAO,KAAK,CAAC;QACjB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,YAAsB;QAC1C,OAAO,IAAI,iBAAiB,CAAC,YAAY,IAAI,KAAK,CAAC,CAAC;IACtD,CAAC;IAED,YAAoB,YAAqB;QAIxB,WAAM,GAAsB,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC;QACrD,UAAK,GAAe,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAJ/D,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACzB,CAAC;CAIF"}
|
|
@@ -46,6 +46,12 @@ class AtomicIntegerImpl {
|
|
|
46
46
|
const current = Atomics.compareExchange(this.array, 0, expectedValue, newValue);
|
|
47
47
|
return current === expectedValue;
|
|
48
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* AtomicInteger.getAndSet override
|
|
51
|
+
*/
|
|
52
|
+
getAndSet(newValue) {
|
|
53
|
+
return Atomics.exchange(this.array, 0, newValue);
|
|
54
|
+
}
|
|
49
55
|
/**
|
|
50
56
|
* Object.toString override
|
|
51
57
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AtomicInteger.impl.js","sourceRoot":"","sources":["../../src/impl/AtomicInteger.impl.ts"],"names":[],"mappings":";;AASA,wBAEC;AARD;;;;;GAKG;AACH,SAAgB,MAAM,CAAC,YAAqB;IAC1C,OAAO,iBAAiB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;AACxD,CAAC;AAED,yCAAyC;AAEzC;;GAEG;AACH,MAAM,iBAAiB;IAErB;;OAEG;IACH,eAAe;QACb,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,GAAG;QACD,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,KAAa;QACf,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,aAAqB,EAAE,QAAgB;QACnD,MAAM,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;QAChF,OAAO,OAAO,KAAK,aAAa,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAY;QAC/B,MAAM,KAAK,GAAW,IAAI,CAAC,GAAG,EAAE,CAAC;QACjC,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,QAAQ;gBACX,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC1B,KAAK,SAAS;gBACZ,OAAO,KAAK,KAAK,CAAC,CAAC;YACrB;gBACE,OAAO,KAAK,CAAC;QACjB,CAAC;IACH,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,YAAqB;QACzC,OAAO,IAAI,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAC7C,CAAC;IAED,YAAoB,eAAuB,CAAC;QAI3B,WAAM,GAAsB,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC;QACrD,UAAK,GAAe,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAJ/D,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACzB,CAAC;CAIF"}
|
|
1
|
+
{"version":3,"file":"AtomicInteger.impl.js","sourceRoot":"","sources":["../../src/impl/AtomicInteger.impl.ts"],"names":[],"mappings":";;AASA,wBAEC;AARD;;;;;GAKG;AACH,SAAgB,MAAM,CAAC,YAAqB;IAC1C,OAAO,iBAAiB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;AACxD,CAAC;AAED,yCAAyC;AAEzC;;GAEG;AACH,MAAM,iBAAiB;IAErB;;OAEG;IACH,eAAe;QACb,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,GAAG;QACD,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,KAAa;QACf,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,aAAqB,EAAE,QAAgB;QACnD,MAAM,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;QAChF,OAAO,OAAO,KAAK,aAAa,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,QAAgB;QACxB,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAY;QAC/B,MAAM,KAAK,GAAW,IAAI,CAAC,GAAG,EAAE,CAAC;QACjC,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,QAAQ;gBACX,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC1B,KAAK,SAAS;gBACZ,OAAO,KAAK,KAAK,CAAC,CAAC;YACrB;gBACE,OAAO,KAAK,CAAC;QACjB,CAAC;IACH,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,YAAqB;QACzC,OAAO,IAAI,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAC7C,CAAC;IAED,YAAoB,eAAuB,CAAC;QAI3B,WAAM,GAAsB,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC;QACrD,UAAK,GAAe,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAJ/D,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACzB,CAAC;CAIF"}
|
|
@@ -23,6 +23,10 @@ export declare class AtomicReferenceImpl<T> implements AtomicReference<T> {
|
|
|
23
23
|
* AtomicReference.compareAndSet override
|
|
24
24
|
*/
|
|
25
25
|
compareAndSet(expectedValue: OptionalType<T>, newValue: OptionalType<T>): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* AtomicReference.getAndSet override
|
|
28
|
+
*/
|
|
29
|
+
getAndSet(newValue: OptionalType<T>): OptionalType<T>;
|
|
26
30
|
/**
|
|
27
31
|
* Object.toString override
|
|
28
32
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AtomicReference.impl.d.ts","sourceRoot":"","sources":["../../src/impl/AtomicReference.impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,mDAAmD,CAAC;AAEpF;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAE1F;AAID;;GAEG;AACH,qBAAa,mBAAmB,CAAC,CAAC,CAAE,YAAW,eAAe,CAAC,CAAC,CAAC;IAE/D;;OAEG;IACH,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC;IAItB;;OAEG;IACH,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI;IAIpC;;OAEG;IACH,aAAa,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO;IASjF;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAI5E,OAAO;IAIP,OAAO,CAAC,KAAK,CAAkB;CAChC"}
|
|
1
|
+
{"version":3,"file":"AtomicReference.impl.d.ts","sourceRoot":"","sources":["../../src/impl/AtomicReference.impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,mDAAmD,CAAC;AAEpF;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAE1F;AAID;;GAEG;AACH,qBAAa,mBAAmB,CAAC,CAAC,CAAE,YAAW,eAAe,CAAC,CAAC,CAAC;IAE/D;;OAEG;IACH,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC;IAItB;;OAEG;IACH,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI;IAIpC;;OAEG;IACH,aAAa,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO;IASjF;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;IAMrD;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAI5E,OAAO;IAIP,OAAO,CAAC,KAAK,CAAkB;CAChC"}
|
|
@@ -40,6 +40,14 @@ class AtomicReferenceImpl {
|
|
|
40
40
|
return false;
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* AtomicReference.getAndSet override
|
|
45
|
+
*/
|
|
46
|
+
getAndSet(newValue) {
|
|
47
|
+
const previousValue = this.value;
|
|
48
|
+
this.value = newValue;
|
|
49
|
+
return previousValue;
|
|
50
|
+
}
|
|
43
51
|
/**
|
|
44
52
|
* Object.toString override
|
|
45
53
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AtomicReference.impl.js","sourceRoot":"","sources":["../../src/impl/AtomicReference.impl.ts"],"names":[],"mappings":";;;AASA,wBAEC;AARD;;;;;GAKG;AACH,SAAgB,MAAM,CAAI,YAA8B;IACtD,OAAO,mBAAmB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;AAC1D,CAAC;AAED,yCAAyC;AAEzC;;GAEG;AACH,MAAa,mBAAmB;IAE9B;;OAEG;IACH,GAAG;QACD,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,QAAyB;QAC3B,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,aAA8B,EAAE,QAAyB;QACrE,IAAI,IAAI,CAAC,KAAK,KAAK,aAAa,EAAE,CAAC;YACjC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,aAAa,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC;IAC5C,CAAC;IAED,MAAM,CAAC,cAAc,CAAI,YAA8B;QACrD,OAAO,IAAI,mBAAmB,CAAI,YAAY,CAAC,CAAC;IAClD,CAAC;IAED,YAAoB,YAA8B;QAChD,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;IAC5B,CAAC;CAGF;
|
|
1
|
+
{"version":3,"file":"AtomicReference.impl.js","sourceRoot":"","sources":["../../src/impl/AtomicReference.impl.ts"],"names":[],"mappings":";;;AASA,wBAEC;AARD;;;;;GAKG;AACH,SAAgB,MAAM,CAAI,YAA8B;IACtD,OAAO,mBAAmB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;AAC1D,CAAC;AAED,yCAAyC;AAEzC;;GAEG;AACH,MAAa,mBAAmB;IAE9B;;OAEG;IACH,GAAG;QACD,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,QAAyB;QAC3B,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,aAA8B,EAAE,QAAyB;QACrE,IAAI,IAAI,CAAC,KAAK,KAAK,aAAa,EAAE,CAAC;YACjC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,QAAyB;QACjC,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QACtB,OAAO,aAAa,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,aAAa,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC;IAC5C,CAAC;IAED,MAAM,CAAC,cAAc,CAAI,YAA8B;QACrD,OAAO,IAAI,mBAAmB,CAAI,YAAY,CAAC,CAAC;IAClD,CAAC;IAED,YAAoB,YAA8B;QAChD,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;IAC5B,CAAC;CAGF;AArDD,kDAqDC"}
|
package/package.json
CHANGED
package/version.js
CHANGED
|
@@ -3,5 +3,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.VERSION = exports.NAME = void 0;
|
|
4
4
|
// generated file - do not edit
|
|
5
5
|
exports.NAME = "@jonloucks/contracts-ts";
|
|
6
|
-
exports.VERSION = "1.0.
|
|
6
|
+
exports.VERSION = "1.0.4";
|
|
7
7
|
//# sourceMappingURL=version.js.map
|