@@ -9,8 +9,9 @@ a structure for set that refresh element if same id of element is exists
9
9
npm install refresh-set
10
10
```
11
11
## Usage
12
+ 1 . using refresh set to hold elements, and update it last time
12
13
``` typescript
13
- import RefreshSet from ' refresh-set' ;
14
+ import { RefreshSet } from ' refresh-set' ;
14
15
15
16
type Element = {
16
17
id: string ;
@@ -26,6 +27,50 @@ set.add({ id: '1', value: 3 });
26
27
console .log (set .toArray ()); // [{ id: '1', value: 3 }, { id: '2', value: 2 }
27
28
```
28
29
30
+ 2 . change identifier of element
31
+ ``` typescript
32
+ import { RefreshSet } from ' refresh-set' ;
33
+
34
+ type Element = {
35
+ key: string ;
36
+ value: number ;
37
+ };
38
+
39
+ // default id supplier is element.id
40
+ const set = new RefreshSet <Element >({
41
+ idSupplier : (element ) => element .key ,
42
+ });
43
+
44
+ set .add ({ key: ' 1' , value: 1 });
45
+ set .add ({ key: ' 2' , value: 2 });
46
+ set .add ({ key: ' 1' , value: 3 });
47
+
48
+ console .log (set .toArray ()); // [{ key: '1', value: 3 }, { key: '2', value: 2 }
49
+ ```
50
+
51
+ 3 . custom refresh method
52
+ ``` typescript
53
+ import { RefreshSet , RefreshPolicy } from ' refresh-set' ;
54
+
55
+ type Element = {
56
+ id: string ;
57
+ value: number ;
58
+ };
59
+
60
+ const set = new RefreshSet <Element >({
61
+ policy: RefreshPolicy .MERGER ,
62
+ merger : (oldElement , newElement ) => {
63
+ newElement .value = oldElement .value + 1 ;
64
+ },
65
+ });
66
+
67
+ set .add ({ id: ' 1' , value: 1 });
68
+ set .add ({ id: ' 2' , value: 2 });
69
+ set .add ({ id: ' 1' , value: 3 });
70
+
71
+ console .log (set .toArray ()); // [{ id: '1', value: 4 }, { id: '2', value: 2 }
72
+ ```
73
+
29
74
## contributing
30
75
1 . Fork it
31
76
2 . Create your feature branch (` git checkout -b my-new-feature ` )
0 commit comments