@haskou/value-objects 2.4.0 → 2.5.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 +10 -0
- package/dist/value-objects/UniqueObjectArray.d.ts +15 -0
- package/dist/value-objects/UniqueObjectArray.d.ts.map +1 -0
- package/dist/value-objects/UniqueObjectArray.js +42 -0
- package/dist/value-objects/UniqueObjectArray.js.map +1 -0
- package/dist/value-objects/index.d.ts +1 -0
- package/dist/value-objects/index.d.ts.map +1 -1
- package/dist/value-objects/index.js +1 -0
- package/dist/value-objects/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -101,6 +101,7 @@ your application.
|
|
|
101
101
|
|
|
102
102
|
### 📝 Other
|
|
103
103
|
- **`Enum`** - Base class for typed enumerations
|
|
104
|
+
- **`UniqueObjectArray`** - Iterable collection that keeps comparable items unique
|
|
104
105
|
|
|
105
106
|
## 💡 Basic Examples
|
|
106
107
|
|
|
@@ -157,6 +158,15 @@ const media = new Media('hello world');
|
|
|
157
158
|
console.log(media.getSize()); // 11
|
|
158
159
|
console.log(media.getBase64()); // 'aGVsbG8gd29ybGQ='
|
|
159
160
|
console.log(media.getBuffer()); // <Buffer 68 65 6c 6c 6f ...>
|
|
161
|
+
|
|
162
|
+
// Unique collections
|
|
163
|
+
const weekdays = UniqueObjectArray.fromArray([
|
|
164
|
+
new DayOfWeek(EDaysOfWeek.MONDAY),
|
|
165
|
+
new DayOfWeek(EDaysOfWeek.TUESDAY),
|
|
166
|
+
new DayOfWeek(EDaysOfWeek.MONDAY),
|
|
167
|
+
]);
|
|
168
|
+
console.log(weekdays.length()); // 2
|
|
169
|
+
console.log(weekdays.toArray().map((day) => day.toString())); // ['monday', 'tuesday']
|
|
160
170
|
```
|
|
161
171
|
|
|
162
172
|
## 📚 Technical Documentation
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
interface ComparableItem {
|
|
2
|
+
isEqual(item: unknown): boolean;
|
|
3
|
+
}
|
|
4
|
+
export declare class UniqueObjectArray<T extends ComparableItem> implements Iterable<T> {
|
|
5
|
+
private items;
|
|
6
|
+
static fromArray<T extends ComparableItem>(array: T[]): UniqueObjectArray<T>;
|
|
7
|
+
includes(item: T): boolean;
|
|
8
|
+
push(item: T): boolean;
|
|
9
|
+
remove(item: T): boolean;
|
|
10
|
+
[Symbol.iterator](): Iterator<T>;
|
|
11
|
+
length(): number;
|
|
12
|
+
toArray(): T[];
|
|
13
|
+
}
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=UniqueObjectArray.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UniqueObjectArray.d.ts","sourceRoot":"","sources":["../../src/value-objects/UniqueObjectArray.ts"],"names":[],"mappings":"AAAA,UAAU,cAAc;IACtB,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;CACjC;AACD,qBAAa,iBAAiB,CAAC,CAAC,SAAS,cAAc,CACrD,YAAW,QAAQ,CAAC,CAAC,CAAC;IAEtB,OAAO,CAAC,KAAK,CAAW;WAEV,SAAS,CAAC,CAAC,SAAS,cAAc,EAC9C,KAAK,EAAE,CAAC,EAAE,GACT,iBAAiB,CAAC,CAAC,CAAC;IAShB,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO;IAI1B,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO;IAUtB,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO;IAYxB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC;IAIhC,MAAM,IAAI,MAAM;IAIhB,OAAO,IAAI,CAAC,EAAE;CAGtB"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UniqueObjectArray = void 0;
|
|
4
|
+
class UniqueObjectArray {
|
|
5
|
+
items = [];
|
|
6
|
+
static fromArray(array) {
|
|
7
|
+
const uniqueArray = new UniqueObjectArray();
|
|
8
|
+
for (const item of array) {
|
|
9
|
+
uniqueArray.push(item);
|
|
10
|
+
}
|
|
11
|
+
return uniqueArray;
|
|
12
|
+
}
|
|
13
|
+
includes(item) {
|
|
14
|
+
return this.items.some((one) => one.isEqual(item));
|
|
15
|
+
}
|
|
16
|
+
push(item) {
|
|
17
|
+
if (!this.includes(item)) {
|
|
18
|
+
this.items.push(item);
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
remove(item) {
|
|
24
|
+
const index = this.items.findIndex((one) => one.isEqual(item));
|
|
25
|
+
if (index !== -1) {
|
|
26
|
+
this.items.splice(index, 1);
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
[Symbol.iterator]() {
|
|
32
|
+
return this.items[Symbol.iterator]();
|
|
33
|
+
}
|
|
34
|
+
length() {
|
|
35
|
+
return this.items.length;
|
|
36
|
+
}
|
|
37
|
+
toArray() {
|
|
38
|
+
return Array.from(this.items);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.UniqueObjectArray = UniqueObjectArray;
|
|
42
|
+
//# sourceMappingURL=UniqueObjectArray.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UniqueObjectArray.js","sourceRoot":"","sources":["../../src/value-objects/UniqueObjectArray.ts"],"names":[],"mappings":";;;AAGA,MAAa,iBAAiB;IAGpB,KAAK,GAAQ,EAAE,CAAC;IAEjB,MAAM,CAAC,SAAS,CACrB,KAAU;QAEV,MAAM,WAAW,GAAG,IAAI,iBAAiB,EAAK,CAAC;QAC/C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAEM,QAAQ,CAAC,IAAO;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACrD,CAAC;IAEM,IAAI,CAAC,IAAO;QACjB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEtB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,MAAM,CAAC,IAAO;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAE/D,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAE5B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,CAAC,MAAM,CAAC,QAAQ,CAAC;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IACvC,CAAC;IAEM,MAAM;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;IAEM,OAAO;QACZ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;CACF;AArDD,8CAqDC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/value-objects/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/value-objects/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC"}
|
|
@@ -15,5 +15,6 @@ tslib_1.__exportStar(require("./NumberValueObject"), exports);
|
|
|
15
15
|
tslib_1.__exportStar(require("./PositiveNumber"), exports);
|
|
16
16
|
tslib_1.__exportStar(require("./StringValueObject"), exports);
|
|
17
17
|
tslib_1.__exportStar(require("./NullObject"), exports);
|
|
18
|
+
tslib_1.__exportStar(require("./UniqueObjectArray"), exports);
|
|
18
19
|
tslib_1.__exportStar(require("./ValueObject"), exports);
|
|
19
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/value-objects/index.ts"],"names":[],"mappings":";;;AAAA,wDAA8B;AAC9B,mDAAyB;AACzB,mDAAyB;AACzB,gDAAsB;AACtB,kDAAwB;AACxB,iDAAuB;AACvB,kDAAwB;AACxB,kDAAwB;AACxB,iDAAuB;AACvB,oDAA0B;AAC1B,8DAAoC;AACpC,2DAAiC;AACjC,8DAAoC;AACpC,uDAA6B;AAC7B,wDAA8B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/value-objects/index.ts"],"names":[],"mappings":";;;AAAA,wDAA8B;AAC9B,mDAAyB;AACzB,mDAAyB;AACzB,gDAAsB;AACtB,kDAAwB;AACxB,iDAAuB;AACvB,kDAAwB;AACxB,kDAAwB;AACxB,iDAAuB;AACvB,oDAA0B;AAC1B,8DAAoC;AACpC,2DAAiC;AACjC,8DAAoC;AACpC,uDAA6B;AAC7B,8DAAoC;AACpC,wDAA8B"}
|