ig-types 6.18.0 → 6.19.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 +7 -0
- package/Set.js +24 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -49,6 +49,7 @@ Library of JavaScript type extensions, types and utilities.
|
|
|
49
49
|
- [`<set>.replace(..)`](#setreplace)
|
|
50
50
|
- [`<set>.replaceAt(..)`](#setreplaceat)
|
|
51
51
|
- [`<set>.sort(..)`](#setsort)
|
|
52
|
+
- [`<set>.filter(..)` / `<set>.map(..)` / `<set>.forEach(..)` / `<set>.reduce(..)` / `<set>.reduceRight(..)`](#setfilter--setmap--setforeach--setreduce--setreduceright)
|
|
52
53
|
- [`Date`](#date)
|
|
53
54
|
- [`Date.timeStamp(..)`](#datetimestamp)
|
|
54
55
|
- [`Date.fromTimeStamp(..)`](#datefromtimestamp)
|
|
@@ -1094,6 +1095,12 @@ This is similar to [`<map>.sort(..)`](#mapsort) and [`Object.sort(..)`](#objects
|
|
|
1094
1095
|
see the later for more info.
|
|
1095
1096
|
|
|
1096
1097
|
|
|
1098
|
+
### `<set>.filter(..)` / `<set>.map(..)` / `<set>.forEach(..)` / `<set>.reduce(..)` / `<set>.reduceRight(..)`
|
|
1099
|
+
|
|
1100
|
+
For more info see corresponding stoppable methods in
|
|
1101
|
+
[`Array`'s section](#arraysmap--arraysfilter--arraysreduce--arraysforeach).
|
|
1102
|
+
|
|
1103
|
+
|
|
1097
1104
|
|
|
1098
1105
|
## `Date`
|
|
1099
1106
|
|
package/Set.js
CHANGED
|
@@ -8,11 +8,29 @@
|
|
|
8
8
|
/*********************************************************************/
|
|
9
9
|
|
|
10
10
|
var object = require('ig-object')
|
|
11
|
+
var stoppable = require('ig-stoppable')
|
|
11
12
|
|
|
12
13
|
|
|
13
14
|
|
|
14
15
|
/*********************************************************************/
|
|
15
16
|
|
|
17
|
+
// Wrap .map(..) / .filter(..) / .reduce(..) / .. to support STOP...
|
|
18
|
+
//
|
|
19
|
+
// NOTE: internally these are implemented as for-of loops (./generator.js)
|
|
20
|
+
var stoppableSet = function(iter){
|
|
21
|
+
return function(func){
|
|
22
|
+
return new Set([...this][iter](...arguments)) } }
|
|
23
|
+
var stoppableValue = function(iter, no_return=false){
|
|
24
|
+
return function(func){
|
|
25
|
+
var res = [...this][iter](...arguments)
|
|
26
|
+
return no_return ?
|
|
27
|
+
undefined
|
|
28
|
+
: res } }
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
//---------------------------------------------------------------------
|
|
33
|
+
|
|
16
34
|
var SetProtoMixin =
|
|
17
35
|
module.SetProtoMixin =
|
|
18
36
|
object.Mixin('SetMixin', 'soft', {
|
|
@@ -110,6 +128,12 @@ object.Mixin('SetMixin', 'soft', {
|
|
|
110
128
|
this.sort(order)
|
|
111
129
|
|
|
112
130
|
return removed },
|
|
131
|
+
|
|
132
|
+
filter: stoppableSet('filter'),
|
|
133
|
+
map: stoppableSet('map'),
|
|
134
|
+
reduce: stoppableValue('reduce'),
|
|
135
|
+
reduceRight: stoppableValue('reduceRight'),
|
|
136
|
+
forEach: stoppableValue('map', true),
|
|
113
137
|
})
|
|
114
138
|
|
|
115
139
|
|