@blackglory/structures 0.6.3 → 0.6.6
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 +29 -1
- package/dist/es2015/index.min.mjs +2 -2
- package/dist/es2015/index.min.mjs.map +1 -1
- package/dist/es2015/index.mjs +890 -385
- package/dist/es2015/index.mjs.map +1 -1
- package/dist/es2015/index.umd.js +890 -384
- package/dist/es2015/index.umd.js.map +1 -1
- package/dist/es2015/index.umd.min.js +2 -2
- package/dist/es2015/index.umd.min.js.map +1 -1
- package/dist/es2018/index.min.mjs +2 -2
- package/dist/es2018/index.min.mjs.map +1 -1
- package/dist/es2018/index.mjs +890 -385
- package/dist/es2018/index.mjs.map +1 -1
- package/dist/es2018/index.umd.js +890 -384
- package/dist/es2018/index.umd.js.map +1 -1
- package/dist/es2018/index.umd.min.js +2 -2
- package/dist/es2018/index.umd.min.js.map +1 -1
- package/lib/es2015/box.d.ts +1 -0
- package/lib/es2015/box.js +3 -0
- package/lib/es2015/box.js.map +1 -1
- package/lib/es2015/cons.js +6 -2
- package/lib/es2015/cons.js.map +1 -1
- package/lib/es2015/dynamic-typed-array.d.ts +22 -0
- package/lib/es2015/dynamic-typed-array.js +111 -0
- package/lib/es2015/dynamic-typed-array.js.map +1 -0
- package/lib/es2015/finite-state-machine.d.ts +1 -0
- package/lib/es2015/finite-state-machine.js +3 -0
- package/lib/es2015/finite-state-machine.js.map +1 -1
- package/lib/es2015/index.d.ts +1 -0
- package/lib/es2015/index.js +3 -0
- package/lib/es2015/index.js.map +1 -1
- package/lib/es2015/observable-finite-state-machine.d.ts +1 -0
- package/lib/es2015/observable-finite-state-machine.js +3 -0
- package/lib/es2015/observable-finite-state-machine.js.map +1 -1
- package/lib/es2015/sparse-set.d.ts +3 -2
- package/lib/es2015/sparse-set.js +5 -1
- package/lib/es2015/sparse-set.js.map +1 -1
- package/lib/es2018/box.d.ts +1 -0
- package/lib/es2018/box.js +3 -0
- package/lib/es2018/box.js.map +1 -1
- package/lib/es2018/cons.js +6 -2
- package/lib/es2018/cons.js.map +1 -1
- package/lib/es2018/dynamic-typed-array.d.ts +22 -0
- package/lib/es2018/dynamic-typed-array.js +111 -0
- package/lib/es2018/dynamic-typed-array.js.map +1 -0
- package/lib/es2018/finite-state-machine.d.ts +1 -0
- package/lib/es2018/finite-state-machine.js +3 -0
- package/lib/es2018/finite-state-machine.js.map +1 -1
- package/lib/es2018/index.d.ts +1 -0
- package/lib/es2018/index.js +3 -0
- package/lib/es2018/index.js.map +1 -1
- package/lib/es2018/observable-finite-state-machine.d.ts +1 -0
- package/lib/es2018/observable-finite-state-machine.js +3 -0
- package/lib/es2018/observable-finite-state-machine.js.map +1 -1
- package/lib/es2018/sparse-set.d.ts +3 -2
- package/lib/es2018/sparse-set.js +5 -1
- package/lib/es2018/sparse-set.js.map +1 -1
- package/package.json +3 -3
package/lib/es2015/box.d.ts
CHANGED
package/lib/es2015/box.js
CHANGED
package/lib/es2015/box.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"box.js","sourceRoot":"","sources":["../../src/box.ts"],"names":[],"mappings":";;;AAAA,MAAa,GAAG;
|
|
1
|
+
{"version":3,"file":"box.js","sourceRoot":"","sources":["../../src/box.ts"],"names":[],"mappings":";;;AAAA,MAAa,GAAG;IAKd,YAAoB,KAAQ;QAAR,UAAK,GAAL,KAAK,CAAG;IAAG,CAAC;IAJhC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAID,GAAG,CAAC,KAAQ;QACV,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAED,GAAG;QACD,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;CACF;AAdD,kBAcC"}
|
package/lib/es2015/cons.js
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.convertArrayToCons = exports.convertConsToArray = void 0;
|
|
4
|
+
const types_1 = require("@blackglory/types");
|
|
4
5
|
function convertConsToArray([value, next]) {
|
|
5
|
-
if (next
|
|
6
|
+
if ((0, types_1.isNull)(next)) {
|
|
6
7
|
return [value];
|
|
7
|
-
|
|
8
|
+
}
|
|
9
|
+
else {
|
|
10
|
+
return [value, ...convertConsToArray(next)];
|
|
11
|
+
}
|
|
8
12
|
}
|
|
9
13
|
exports.convertConsToArray = convertConsToArray;
|
|
10
14
|
function convertArrayToCons([value, ...next]) {
|
package/lib/es2015/cons.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cons.js","sourceRoot":"","sources":["../../src/cons.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"cons.js","sourceRoot":"","sources":["../../src/cons.ts"],"names":[],"mappings":";;;AAAA,6CAA0C;AAI1C,SAAgB,kBAAkB,CAAI,CAAC,KAAK,EAAE,IAAI,CAAU;IAC1D,IAAI,IAAA,cAAM,EAAC,IAAI,CAAC,EAAE;QAChB,OAAO,CAAC,KAAK,CAAC,CAAA;KACf;SAAM;QACL,OAAO,CAAC,KAAK,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAA;KAC5C;AACH,CAAC;AAND,gDAMC;AAED,SAAgB,kBAAkB,CAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAM;IACzD,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;AAC/D,CAAC;AAFD,gDAEC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { TypedArrayConstructor } from 'justypes';
|
|
2
|
+
interface IDynamicTypedArrayOptions {
|
|
3
|
+
capacity?: number;
|
|
4
|
+
growthFactor?: number;
|
|
5
|
+
}
|
|
6
|
+
export declare class DynamicTypedArray<T extends TypedArrayConstructor> {
|
|
7
|
+
private typedArrayConstructor;
|
|
8
|
+
private array;
|
|
9
|
+
private _length;
|
|
10
|
+
private growthFactor;
|
|
11
|
+
get [Symbol.toStringTag](): string;
|
|
12
|
+
get capacity(): number;
|
|
13
|
+
get length(): number;
|
|
14
|
+
constructor(typedArrayConstructor: T, { capacity, growthFactor }?: IDynamicTypedArrayOptions);
|
|
15
|
+
set(index: number, value: number): void;
|
|
16
|
+
get(index: number): number | undefined;
|
|
17
|
+
push(...values: number[]): void;
|
|
18
|
+
pop(): number | undefined;
|
|
19
|
+
private resize;
|
|
20
|
+
}
|
|
21
|
+
export declare function computeNewCapacity(oldCapacity: number, targetLength: number, growthFactor: number): number;
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.computeNewCapacity = exports.DynamicTypedArray = void 0;
|
|
4
|
+
const errors_1 = require("@blackglory/errors");
|
|
5
|
+
class DynamicTypedArray {
|
|
6
|
+
constructor(typedArrayConstructor, { capacity = 0, growthFactor = 1.5 } = {}) {
|
|
7
|
+
this.typedArrayConstructor = typedArrayConstructor;
|
|
8
|
+
this._length = 0;
|
|
9
|
+
(0, errors_1.assert)(Number.isInteger(capacity), 'capacity must be an integer');
|
|
10
|
+
(0, errors_1.assert)(capacity >= 0, 'capacity must be greater than or equal to 0');
|
|
11
|
+
(0, errors_1.assert)(growthFactor > 1, 'growthFactory must be greater than or equal to 1');
|
|
12
|
+
this.array = new typedArrayConstructor(capacity);
|
|
13
|
+
this.growthFactor = growthFactor;
|
|
14
|
+
}
|
|
15
|
+
get [Symbol.toStringTag]() {
|
|
16
|
+
return this.constructor.name;
|
|
17
|
+
}
|
|
18
|
+
get capacity() {
|
|
19
|
+
return this.array.length;
|
|
20
|
+
}
|
|
21
|
+
get length() {
|
|
22
|
+
return this._length;
|
|
23
|
+
}
|
|
24
|
+
set(index, value) {
|
|
25
|
+
if (index >= this.capacity) {
|
|
26
|
+
const newCapacity = computeNewCapacity(this.capacity, index + 1, this.growthFactor);
|
|
27
|
+
this.resize(newCapacity);
|
|
28
|
+
}
|
|
29
|
+
if (index >= this._length) {
|
|
30
|
+
this._length = index + 1;
|
|
31
|
+
}
|
|
32
|
+
this.array[index] = value;
|
|
33
|
+
}
|
|
34
|
+
get(index) {
|
|
35
|
+
return index < this._length
|
|
36
|
+
? this.array[index]
|
|
37
|
+
: undefined;
|
|
38
|
+
}
|
|
39
|
+
push(...values) {
|
|
40
|
+
const newLength = this._length + values.length;
|
|
41
|
+
if (newLength > this.capacity) {
|
|
42
|
+
const newCapacity = computeNewCapacity(this.capacity, newLength, this.growthFactor);
|
|
43
|
+
this.resize(newCapacity);
|
|
44
|
+
}
|
|
45
|
+
for (const value of values) {
|
|
46
|
+
this.array[this._length++] = value;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
pop() {
|
|
50
|
+
if (this._length > 0) {
|
|
51
|
+
const value = this.array[this._length - 1];
|
|
52
|
+
this._length--;
|
|
53
|
+
const newCapacity = computeNewCapacity(this.capacity, this.length, this.growthFactor);
|
|
54
|
+
this.resize(newCapacity);
|
|
55
|
+
return value;
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
resize(newCapacity) {
|
|
62
|
+
if (this.array.length === newCapacity) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
else if (this.array.length < newCapacity) {
|
|
66
|
+
const newArray = new this.typedArrayConstructor(newCapacity);
|
|
67
|
+
newArray.set(this.array);
|
|
68
|
+
this.array = newArray;
|
|
69
|
+
}
|
|
70
|
+
else if (this.array.length > newCapacity) {
|
|
71
|
+
const newArray = new this.typedArrayConstructor(newCapacity);
|
|
72
|
+
for (let i = newCapacity; i--;) {
|
|
73
|
+
newArray[i] = this.array[i];
|
|
74
|
+
}
|
|
75
|
+
this.array = newArray;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
exports.DynamicTypedArray = DynamicTypedArray;
|
|
80
|
+
function computeNewCapacity(oldCapacity, targetLength, growthFactor) {
|
|
81
|
+
if (oldCapacity === targetLength) {
|
|
82
|
+
return targetLength;
|
|
83
|
+
}
|
|
84
|
+
else if (oldCapacity < targetLength) {
|
|
85
|
+
let newCapacity = Math.max(oldCapacity, 1);
|
|
86
|
+
while (newCapacity < targetLength) {
|
|
87
|
+
newCapacity *= growthFactor;
|
|
88
|
+
}
|
|
89
|
+
return Math.floor(newCapacity);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
if (targetLength === 0) {
|
|
93
|
+
return 0;
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
let newCapacity = oldCapacity;
|
|
97
|
+
while (true) {
|
|
98
|
+
const temp = newCapacity / growthFactor;
|
|
99
|
+
if (temp < targetLength) {
|
|
100
|
+
break;
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
newCapacity = temp;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return Math.floor(newCapacity);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
exports.computeNewCapacity = computeNewCapacity;
|
|
111
|
+
//# sourceMappingURL=dynamic-typed-array.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynamic-typed-array.js","sourceRoot":"","sources":["../../src/dynamic-typed-array.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ export declare type IFiniteStateMachineSchema<State extends string, Event extend
|
|
|
3
3
|
export declare class FiniteStateMachine<State extends string, Event extends string> {
|
|
4
4
|
protected schema: IFiniteStateMachineSchema<State, Event>;
|
|
5
5
|
private _state;
|
|
6
|
+
get [Symbol.toStringTag](): string;
|
|
6
7
|
get state(): State;
|
|
7
8
|
constructor(schema: IFiniteStateMachineSchema<State, Event>, initialState: State);
|
|
8
9
|
matches(state: State): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"finite-state-machine.js","sourceRoot":"","sources":["../../src/finite-state-machine.ts"],"names":[],"mappings":";;;AAAA,+CAAgD;AAKhD,MAAa,kBAAkB;
|
|
1
|
+
{"version":3,"file":"finite-state-machine.js","sourceRoot":"","sources":["../../src/finite-state-machine.ts"],"names":[],"mappings":";;;AAAA,+CAAgD;AAKhD,MAAa,kBAAkB;IAW7B,YACY,MAA+C,EACzD,YAAmB;QADT,WAAM,GAAN,MAAM,CAAyC;QAGzD,IAAI,CAAC,MAAM,GAAG,YAAY,CAAA;IAC5B,CAAC;IAbD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IASD,OAAO,CAAC,KAAY;QAClB,OAAO,IAAI,CAAC,MAAM,KAAK,KAAK,CAAA;IAC9B,CAAC;IAED,GAAG,CAAC,KAAY;QACd,OAAO,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACzC,CAAC;IAKD,IAAI,CAAC,KAAY;QACf,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACnB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAE,CAAA;SAC9C;aAAM;YACL,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;SAC3C;IACH,CAAC;CACF;AApCD,gDAoCC;AAED,MAAa,aAAc,SAAQ,oBAAW;IAC5C,YAAY,KAAa,EAAE,KAAa;QACtC,KAAK,CAAC,SAAS,KAAK,0BAA0B,KAAK,EAAE,CAAC,CAAA;IACxD,CAAC;CACF;AAJD,sCAIC"}
|
package/lib/es2015/index.d.ts
CHANGED
package/lib/es2015/index.js
CHANGED
|
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.DynamicTypedArray = void 0;
|
|
17
18
|
__exportStar(require("./box"), exports);
|
|
18
19
|
__exportStar(require("./cons"), exports);
|
|
19
20
|
__exportStar(require("./emitter"), exports);
|
|
@@ -27,4 +28,6 @@ __exportStar(require("./trie-map"), exports);
|
|
|
27
28
|
__exportStar(require("./finite-state-machine"), exports);
|
|
28
29
|
__exportStar(require("./observable-finite-state-machine"), exports);
|
|
29
30
|
__exportStar(require("./sparse-set"), exports);
|
|
31
|
+
var dynamic_typed_array_1 = require("./dynamic-typed-array");
|
|
32
|
+
Object.defineProperty(exports, "DynamicTypedArray", { enumerable: true, get: function () { return dynamic_typed_array_1.DynamicTypedArray; } });
|
|
30
33
|
//# sourceMappingURL=index.js.map
|
package/lib/es2015/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,wCAAqB;AACrB,yCAAsB;AACtB,4CAAyB;AACzB,6CAA0B;AAC1B,6CAA0B;AAC1B,0CAAuB;AACvB,4CAAyB;AACzB,kDAA+B;AAC/B,6CAA0B;AAC1B,6CAA0B;AAC1B,yDAAsC;AACtC,oEAAiD;AACjD,+CAA4B;AAC5B,6DAAyD;AAAhD,wHAAA,iBAAiB,OAAA"}
|
|
@@ -7,6 +7,7 @@ export interface IFiniteStateMachineStateChange<State extends string, Event exte
|
|
|
7
7
|
}
|
|
8
8
|
export declare class ObservableFiniteStateMachine<State extends string, Event extends string> extends FiniteStateMachine<State, Event> {
|
|
9
9
|
private stateChanges;
|
|
10
|
+
get [Symbol.toStringTag](): string;
|
|
10
11
|
observeStateChanges(): Observable<IFiniteStateMachineStateChange<State, Event>>;
|
|
11
12
|
send(event: Event): void;
|
|
12
13
|
}
|
|
@@ -9,6 +9,9 @@ class ObservableFiniteStateMachine extends finite_state_machine_1.FiniteStateMac
|
|
|
9
9
|
super(...arguments);
|
|
10
10
|
this.stateChanges = new rxjs_1.Subject();
|
|
11
11
|
}
|
|
12
|
+
get [Symbol.toStringTag]() {
|
|
13
|
+
return this.constructor.name;
|
|
14
|
+
}
|
|
12
15
|
observeStateChanges() {
|
|
13
16
|
return this.stateChanges;
|
|
14
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observable-finite-state-machine.js","sourceRoot":"","sources":["../../src/observable-finite-state-machine.ts"],"names":[],"mappings":";;;AAAA,iEAA2D;AAC3D,+BAA0C;AAC1C,6CAAiD;AAWjD,MAAa,4BAGX,SAAQ,yCAAgC;IAH1C;;QAIU,iBAAY,GAAG,IAAI,cAAO,EAAgD,CAAA;
|
|
1
|
+
{"version":3,"file":"observable-finite-state-machine.js","sourceRoot":"","sources":["../../src/observable-finite-state-machine.ts"],"names":[],"mappings":";;;AAAA,iEAA2D;AAC3D,+BAA0C;AAC1C,6CAAiD;AAWjD,MAAa,4BAGX,SAAQ,yCAAgC;IAH1C;;QAIU,iBAAY,GAAG,IAAI,cAAO,EAAgD,CAAA;IAuBpF,CAAC;IArBC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,mBAAmB;QACjB,OAAO,IAAI,CAAC,YAAY,CAAA;IAC1B,CAAC;IAKD,IAAI,CAAC,KAAY;QACf,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAA;QAC3B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAA;QAE3B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAA;QACrD,IAAI,IAAA,qBAAa,EAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE;YACxC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAA;SAC7B;IACH,CAAC;CACF;AA3BD,oEA2BC;AAED,+DAAsD;AAA7C,qHAAA,aAAa,OAAA"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
export declare class SparseSet {
|
|
1
|
+
export declare class SparseSet implements Iterable<number> {
|
|
2
2
|
private values;
|
|
3
3
|
private valueToValueIndex;
|
|
4
|
-
[Symbol.
|
|
4
|
+
get [Symbol.toStringTag](): string;
|
|
5
|
+
[Symbol.iterator](): IterableIterator<number>;
|
|
5
6
|
has(value: number): boolean;
|
|
6
7
|
add(value: number): void;
|
|
7
8
|
remove(value: number): void;
|
package/lib/es2015/sparse-set.js
CHANGED
|
@@ -1,18 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SparseSet = void 0;
|
|
4
|
+
const types_1 = require("@blackglory/types");
|
|
4
5
|
class SparseSet {
|
|
5
6
|
constructor() {
|
|
6
7
|
this.values = [];
|
|
7
8
|
this.valueToValueIndex = [];
|
|
8
9
|
}
|
|
10
|
+
get [Symbol.toStringTag]() {
|
|
11
|
+
return this.constructor.name;
|
|
12
|
+
}
|
|
9
13
|
*[Symbol.iterator]() {
|
|
10
14
|
for (const value of this.values) {
|
|
11
15
|
yield value;
|
|
12
16
|
}
|
|
13
17
|
}
|
|
14
18
|
has(value) {
|
|
15
|
-
return this.valueToValueIndex[value]
|
|
19
|
+
return (0, types_1.isntUndefined)(this.valueToValueIndex[value]);
|
|
16
20
|
}
|
|
17
21
|
add(value) {
|
|
18
22
|
if (!this.has(value)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sparse-set.js","sourceRoot":"","sources":["../../src/sparse-set.ts"],"names":[],"mappings":";;;AAAA,MAAa,SAAS;IAAtB;QACU,WAAM,GAAa,EAAE,CAAA;QACrB,sBAAiB,GAA8B,EAAE,
|
|
1
|
+
{"version":3,"file":"sparse-set.js","sourceRoot":"","sources":["../../src/sparse-set.ts"],"names":[],"mappings":";;;AAAA,6CAAiD;AAEjD,MAAa,SAAS;IAAtB;QACU,WAAM,GAAa,EAAE,CAAA;QACrB,sBAAiB,GAA8B,EAAE,CAAA;IAqC3D,CAAC;IAnCC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;YAC/B,MAAM,KAAK,CAAA;SACZ;IACH,CAAC;IAED,GAAG,CAAC,KAAa;QAEf,OAAO,IAAA,qBAAa,EAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAA;IACrD,CAAC;IAED,GAAG,CAAC,KAAa;QACf,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACpB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAA;YAChC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACvB,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;SACtC;IACH,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACnB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAG,CAAA;YACpC,IAAI,KAAK,KAAK,SAAS,EAAE;gBACvB,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAE,CAAA;gBACnD,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,SAAS,CAAA;gBACrC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,GAAG,YAAY,CAAA;gBAEhD,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,SAAS,CAAA;aAC1C;SACF;IACH,CAAC;CACF;AAvCD,8BAuCC"}
|
package/lib/es2018/box.d.ts
CHANGED
package/lib/es2018/box.js
CHANGED
package/lib/es2018/box.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"box.js","sourceRoot":"","sources":["../../src/box.ts"],"names":[],"mappings":";;;AAAA,MAAa,GAAG;
|
|
1
|
+
{"version":3,"file":"box.js","sourceRoot":"","sources":["../../src/box.ts"],"names":[],"mappings":";;;AAAA,MAAa,GAAG;IAKd,YAAoB,KAAQ;QAAR,UAAK,GAAL,KAAK,CAAG;IAAG,CAAC;IAJhC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAID,GAAG,CAAC,KAAQ;QACV,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAED,GAAG;QACD,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;CACF;AAdD,kBAcC"}
|
package/lib/es2018/cons.js
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.convertArrayToCons = exports.convertConsToArray = void 0;
|
|
4
|
+
const types_1 = require("@blackglory/types");
|
|
4
5
|
function convertConsToArray([value, next]) {
|
|
5
|
-
if (next
|
|
6
|
+
if ((0, types_1.isNull)(next)) {
|
|
6
7
|
return [value];
|
|
7
|
-
|
|
8
|
+
}
|
|
9
|
+
else {
|
|
10
|
+
return [value, ...convertConsToArray(next)];
|
|
11
|
+
}
|
|
8
12
|
}
|
|
9
13
|
exports.convertConsToArray = convertConsToArray;
|
|
10
14
|
function convertArrayToCons([value, ...next]) {
|
package/lib/es2018/cons.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cons.js","sourceRoot":"","sources":["../../src/cons.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"cons.js","sourceRoot":"","sources":["../../src/cons.ts"],"names":[],"mappings":";;;AAAA,6CAA0C;AAI1C,SAAgB,kBAAkB,CAAI,CAAC,KAAK,EAAE,IAAI,CAAU;IAC1D,IAAI,IAAA,cAAM,EAAC,IAAI,CAAC,EAAE;QAChB,OAAO,CAAC,KAAK,CAAC,CAAA;KACf;SAAM;QACL,OAAO,CAAC,KAAK,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAA;KAC5C;AACH,CAAC;AAND,gDAMC;AAED,SAAgB,kBAAkB,CAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAM;IACzD,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;AAC/D,CAAC;AAFD,gDAEC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { TypedArrayConstructor } from 'justypes';
|
|
2
|
+
interface IDynamicTypedArrayOptions {
|
|
3
|
+
capacity?: number;
|
|
4
|
+
growthFactor?: number;
|
|
5
|
+
}
|
|
6
|
+
export declare class DynamicTypedArray<T extends TypedArrayConstructor> {
|
|
7
|
+
private typedArrayConstructor;
|
|
8
|
+
private array;
|
|
9
|
+
private _length;
|
|
10
|
+
private growthFactor;
|
|
11
|
+
get [Symbol.toStringTag](): string;
|
|
12
|
+
get capacity(): number;
|
|
13
|
+
get length(): number;
|
|
14
|
+
constructor(typedArrayConstructor: T, { capacity, growthFactor }?: IDynamicTypedArrayOptions);
|
|
15
|
+
set(index: number, value: number): void;
|
|
16
|
+
get(index: number): number | undefined;
|
|
17
|
+
push(...values: number[]): void;
|
|
18
|
+
pop(): number | undefined;
|
|
19
|
+
private resize;
|
|
20
|
+
}
|
|
21
|
+
export declare function computeNewCapacity(oldCapacity: number, targetLength: number, growthFactor: number): number;
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.computeNewCapacity = exports.DynamicTypedArray = void 0;
|
|
4
|
+
const errors_1 = require("@blackglory/errors");
|
|
5
|
+
class DynamicTypedArray {
|
|
6
|
+
constructor(typedArrayConstructor, { capacity = 0, growthFactor = 1.5 } = {}) {
|
|
7
|
+
this.typedArrayConstructor = typedArrayConstructor;
|
|
8
|
+
this._length = 0;
|
|
9
|
+
(0, errors_1.assert)(Number.isInteger(capacity), 'capacity must be an integer');
|
|
10
|
+
(0, errors_1.assert)(capacity >= 0, 'capacity must be greater than or equal to 0');
|
|
11
|
+
(0, errors_1.assert)(growthFactor > 1, 'growthFactory must be greater than or equal to 1');
|
|
12
|
+
this.array = new typedArrayConstructor(capacity);
|
|
13
|
+
this.growthFactor = growthFactor;
|
|
14
|
+
}
|
|
15
|
+
get [Symbol.toStringTag]() {
|
|
16
|
+
return this.constructor.name;
|
|
17
|
+
}
|
|
18
|
+
get capacity() {
|
|
19
|
+
return this.array.length;
|
|
20
|
+
}
|
|
21
|
+
get length() {
|
|
22
|
+
return this._length;
|
|
23
|
+
}
|
|
24
|
+
set(index, value) {
|
|
25
|
+
if (index >= this.capacity) {
|
|
26
|
+
const newCapacity = computeNewCapacity(this.capacity, index + 1, this.growthFactor);
|
|
27
|
+
this.resize(newCapacity);
|
|
28
|
+
}
|
|
29
|
+
if (index >= this._length) {
|
|
30
|
+
this._length = index + 1;
|
|
31
|
+
}
|
|
32
|
+
this.array[index] = value;
|
|
33
|
+
}
|
|
34
|
+
get(index) {
|
|
35
|
+
return index < this._length
|
|
36
|
+
? this.array[index]
|
|
37
|
+
: undefined;
|
|
38
|
+
}
|
|
39
|
+
push(...values) {
|
|
40
|
+
const newLength = this._length + values.length;
|
|
41
|
+
if (newLength > this.capacity) {
|
|
42
|
+
const newCapacity = computeNewCapacity(this.capacity, newLength, this.growthFactor);
|
|
43
|
+
this.resize(newCapacity);
|
|
44
|
+
}
|
|
45
|
+
for (const value of values) {
|
|
46
|
+
this.array[this._length++] = value;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
pop() {
|
|
50
|
+
if (this._length > 0) {
|
|
51
|
+
const value = this.array[this._length - 1];
|
|
52
|
+
this._length--;
|
|
53
|
+
const newCapacity = computeNewCapacity(this.capacity, this.length, this.growthFactor);
|
|
54
|
+
this.resize(newCapacity);
|
|
55
|
+
return value;
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
resize(newCapacity) {
|
|
62
|
+
if (this.array.length === newCapacity) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
else if (this.array.length < newCapacity) {
|
|
66
|
+
const newArray = new this.typedArrayConstructor(newCapacity);
|
|
67
|
+
newArray.set(this.array);
|
|
68
|
+
this.array = newArray;
|
|
69
|
+
}
|
|
70
|
+
else if (this.array.length > newCapacity) {
|
|
71
|
+
const newArray = new this.typedArrayConstructor(newCapacity);
|
|
72
|
+
for (let i = newCapacity; i--;) {
|
|
73
|
+
newArray[i] = this.array[i];
|
|
74
|
+
}
|
|
75
|
+
this.array = newArray;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
exports.DynamicTypedArray = DynamicTypedArray;
|
|
80
|
+
function computeNewCapacity(oldCapacity, targetLength, growthFactor) {
|
|
81
|
+
if (oldCapacity === targetLength) {
|
|
82
|
+
return targetLength;
|
|
83
|
+
}
|
|
84
|
+
else if (oldCapacity < targetLength) {
|
|
85
|
+
let newCapacity = Math.max(oldCapacity, 1);
|
|
86
|
+
while (newCapacity < targetLength) {
|
|
87
|
+
newCapacity *= growthFactor;
|
|
88
|
+
}
|
|
89
|
+
return Math.floor(newCapacity);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
if (targetLength === 0) {
|
|
93
|
+
return 0;
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
let newCapacity = oldCapacity;
|
|
97
|
+
while (true) {
|
|
98
|
+
const temp = newCapacity / growthFactor;
|
|
99
|
+
if (temp < targetLength) {
|
|
100
|
+
break;
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
newCapacity = temp;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return Math.floor(newCapacity);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
exports.computeNewCapacity = computeNewCapacity;
|
|
111
|
+
//# sourceMappingURL=dynamic-typed-array.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynamic-typed-array.js","sourceRoot":"","sources":["../../src/dynamic-typed-array.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ export declare type IFiniteStateMachineSchema<State extends string, Event extend
|
|
|
3
3
|
export declare class FiniteStateMachine<State extends string, Event extends string> {
|
|
4
4
|
protected schema: IFiniteStateMachineSchema<State, Event>;
|
|
5
5
|
private _state;
|
|
6
|
+
get [Symbol.toStringTag](): string;
|
|
6
7
|
get state(): State;
|
|
7
8
|
constructor(schema: IFiniteStateMachineSchema<State, Event>, initialState: State);
|
|
8
9
|
matches(state: State): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"finite-state-machine.js","sourceRoot":"","sources":["../../src/finite-state-machine.ts"],"names":[],"mappings":";;;AAAA,+CAAgD;AAKhD,MAAa,kBAAkB;
|
|
1
|
+
{"version":3,"file":"finite-state-machine.js","sourceRoot":"","sources":["../../src/finite-state-machine.ts"],"names":[],"mappings":";;;AAAA,+CAAgD;AAKhD,MAAa,kBAAkB;IAW7B,YACY,MAA+C,EACzD,YAAmB;QADT,WAAM,GAAN,MAAM,CAAyC;QAGzD,IAAI,CAAC,MAAM,GAAG,YAAY,CAAA;IAC5B,CAAC;IAbD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IASD,OAAO,CAAC,KAAY;QAClB,OAAO,IAAI,CAAC,MAAM,KAAK,KAAK,CAAA;IAC9B,CAAC;IAED,GAAG,CAAC,KAAY;QACd,OAAO,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACzC,CAAC;IAKD,IAAI,CAAC,KAAY;QACf,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACnB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAE,CAAA;SAC9C;aAAM;YACL,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;SAC3C;IACH,CAAC;CACF;AApCD,gDAoCC;AAED,MAAa,aAAc,SAAQ,oBAAW;IAC5C,YAAY,KAAa,EAAE,KAAa;QACtC,KAAK,CAAC,SAAS,KAAK,0BAA0B,KAAK,EAAE,CAAC,CAAA;IACxD,CAAC;CACF;AAJD,sCAIC"}
|
package/lib/es2018/index.d.ts
CHANGED
package/lib/es2018/index.js
CHANGED
|
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.DynamicTypedArray = void 0;
|
|
17
18
|
__exportStar(require("./box"), exports);
|
|
18
19
|
__exportStar(require("./cons"), exports);
|
|
19
20
|
__exportStar(require("./emitter"), exports);
|
|
@@ -27,4 +28,6 @@ __exportStar(require("./trie-map"), exports);
|
|
|
27
28
|
__exportStar(require("./finite-state-machine"), exports);
|
|
28
29
|
__exportStar(require("./observable-finite-state-machine"), exports);
|
|
29
30
|
__exportStar(require("./sparse-set"), exports);
|
|
31
|
+
var dynamic_typed_array_1 = require("./dynamic-typed-array");
|
|
32
|
+
Object.defineProperty(exports, "DynamicTypedArray", { enumerable: true, get: function () { return dynamic_typed_array_1.DynamicTypedArray; } });
|
|
30
33
|
//# sourceMappingURL=index.js.map
|
package/lib/es2018/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,wCAAqB;AACrB,yCAAsB;AACtB,4CAAyB;AACzB,6CAA0B;AAC1B,6CAA0B;AAC1B,0CAAuB;AACvB,4CAAyB;AACzB,kDAA+B;AAC/B,6CAA0B;AAC1B,6CAA0B;AAC1B,yDAAsC;AACtC,oEAAiD;AACjD,+CAA4B;AAC5B,6DAAyD;AAAhD,wHAAA,iBAAiB,OAAA"}
|
|
@@ -7,6 +7,7 @@ export interface IFiniteStateMachineStateChange<State extends string, Event exte
|
|
|
7
7
|
}
|
|
8
8
|
export declare class ObservableFiniteStateMachine<State extends string, Event extends string> extends FiniteStateMachine<State, Event> {
|
|
9
9
|
private stateChanges;
|
|
10
|
+
get [Symbol.toStringTag](): string;
|
|
10
11
|
observeStateChanges(): Observable<IFiniteStateMachineStateChange<State, Event>>;
|
|
11
12
|
send(event: Event): void;
|
|
12
13
|
}
|
|
@@ -9,6 +9,9 @@ class ObservableFiniteStateMachine extends finite_state_machine_1.FiniteStateMac
|
|
|
9
9
|
super(...arguments);
|
|
10
10
|
this.stateChanges = new rxjs_1.Subject();
|
|
11
11
|
}
|
|
12
|
+
get [Symbol.toStringTag]() {
|
|
13
|
+
return this.constructor.name;
|
|
14
|
+
}
|
|
12
15
|
observeStateChanges() {
|
|
13
16
|
return this.stateChanges;
|
|
14
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observable-finite-state-machine.js","sourceRoot":"","sources":["../../src/observable-finite-state-machine.ts"],"names":[],"mappings":";;;AAAA,iEAA2D;AAC3D,+BAA0C;AAC1C,6CAAiD;AAWjD,MAAa,4BAGX,SAAQ,yCAAgC;IAH1C;;QAIU,iBAAY,GAAG,IAAI,cAAO,EAAgD,CAAA;
|
|
1
|
+
{"version":3,"file":"observable-finite-state-machine.js","sourceRoot":"","sources":["../../src/observable-finite-state-machine.ts"],"names":[],"mappings":";;;AAAA,iEAA2D;AAC3D,+BAA0C;AAC1C,6CAAiD;AAWjD,MAAa,4BAGX,SAAQ,yCAAgC;IAH1C;;QAIU,iBAAY,GAAG,IAAI,cAAO,EAAgD,CAAA;IAuBpF,CAAC;IArBC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,mBAAmB;QACjB,OAAO,IAAI,CAAC,YAAY,CAAA;IAC1B,CAAC;IAKD,IAAI,CAAC,KAAY;QACf,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAA;QAC3B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAA;QAE3B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAA;QACrD,IAAI,IAAA,qBAAa,EAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE;YACxC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAA;SAC7B;IACH,CAAC;CACF;AA3BD,oEA2BC;AAED,+DAAsD;AAA7C,qHAAA,aAAa,OAAA"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
export declare class SparseSet {
|
|
1
|
+
export declare class SparseSet implements Iterable<number> {
|
|
2
2
|
private values;
|
|
3
3
|
private valueToValueIndex;
|
|
4
|
-
[Symbol.
|
|
4
|
+
get [Symbol.toStringTag](): string;
|
|
5
|
+
[Symbol.iterator](): IterableIterator<number>;
|
|
5
6
|
has(value: number): boolean;
|
|
6
7
|
add(value: number): void;
|
|
7
8
|
remove(value: number): void;
|
package/lib/es2018/sparse-set.js
CHANGED
|
@@ -1,18 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SparseSet = void 0;
|
|
4
|
+
const types_1 = require("@blackglory/types");
|
|
4
5
|
class SparseSet {
|
|
5
6
|
constructor() {
|
|
6
7
|
this.values = [];
|
|
7
8
|
this.valueToValueIndex = [];
|
|
8
9
|
}
|
|
10
|
+
get [Symbol.toStringTag]() {
|
|
11
|
+
return this.constructor.name;
|
|
12
|
+
}
|
|
9
13
|
*[Symbol.iterator]() {
|
|
10
14
|
for (const value of this.values) {
|
|
11
15
|
yield value;
|
|
12
16
|
}
|
|
13
17
|
}
|
|
14
18
|
has(value) {
|
|
15
|
-
return this.valueToValueIndex[value]
|
|
19
|
+
return (0, types_1.isntUndefined)(this.valueToValueIndex[value]);
|
|
16
20
|
}
|
|
17
21
|
add(value) {
|
|
18
22
|
if (!this.has(value)) {
|