ig-types 6.9.1 → 6.9.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/Date.js CHANGED
@@ -57,7 +57,7 @@ object.Mixin('DateMixin', 'soft', {
57
57
  str = ' '+str
58
58
  var c =
59
59
  (/[^a-z](m(illi)?(-)?s(ec(ond(s)?)?)?)$/i.test(str)
60
- || /^[0-9]*(\.[0-9]+)?$/.test(str) ) ?
60
+ || /^([0-9]*\.)?[0-9]+$/.test(str) ) ?
61
61
  1
62
62
  : /[^a-z]s(ec(ond(s)?)?)?$/i.test(str) ?
63
63
  1000
@@ -75,6 +75,8 @@ object.Mixin('DateMixin', 'soft', {
75
75
 
76
76
  isPeriod: function(str){
77
77
  return !isNaN(this.str2ms(str)) },
78
+ isDateStr: function(str){
79
+ return !isNaN(new Date(str).valueOf()) },
78
80
  })
79
81
 
80
82
 
package/Map.js CHANGED
@@ -16,6 +16,10 @@ var object = require('ig-object')
16
16
  var MapProtoMixin =
17
17
  module.MapProtoMixin =
18
18
  object.Mixin('MapProtoMixin', 'soft', {
19
+ iter: function*(){
20
+ for(var e of this){
21
+ yield e } },
22
+
19
23
  // NOTE: we do not touch .__keys here as no renaming is ever done...
20
24
  //
21
25
  // XXX this essentially rewrites the whole map, is there a faster/better
package/Promise.js CHANGED
@@ -117,6 +117,9 @@ object.Constructor('IterablePromise', Promise, {
117
117
  return (e && e.flat) ?
118
118
  e.flat(depth)
119
119
  : e }) },
120
+ // XXX do we need this???
121
+ //iter: function(){
122
+ // return this },
120
123
 
121
124
 
122
125
  // XXX do we need:
package/README.md CHANGED
@@ -80,19 +80,23 @@ Library of JavaScript type extensions, types and utilities.
80
80
  - [`generator.iter(..)`](#generatoriter)
81
81
  - [`generator.STOP`](#generatorstop)
82
82
  - [Generator instance iteration](#generator-instance-iteration)
83
+ - [`<generator>.iter()`](#generatoriter-1)
83
84
  - [`<generator>.map(..)` / `<generator>.filter(..)`](#generatormap--generatorfilter)
84
85
  - [`<generator>.reduce(..)` / `<generator>.greduce(..)`](#generatorreduce--generatorgreduce)
85
86
  - [`<generator>.slice(..)`](#generatorslice)
86
87
  - [`<generator>.at(..)` / `<generator>.gat(..)`](#generatorat--generatorgat)
87
88
  - [`<generator>.flat(..)`](#generatorflat)
88
89
  - [`<generator>.shift()` / `<generator>.pop()` / `<generator>.gshift()` / `<generator>.gpop()`](#generatorshift--generatorpop--generatorgshift--generatorgpop)
90
+ - [`<generator>.unshift(..)` / `<generator>.push(..)`](#generatorunshift--generatorpush)
89
91
  - [`<generator>.promise()`](#generatorpromise)
90
92
  - [`<generator>.then(..)` / `<generator>.catch(..)` / `<generator>.finally(..)`](#generatorthen--generatorcatch--generatorfinally)
91
93
  - [`<generator>.toArray()`](#generatortoarray)
92
94
  - [Treating iterators the same as generators](#treating-iterators-the-same-as-generators)
93
95
  - [Generator constructor iteration](#generator-constructor-iteration)
96
+ - [`<Generator>.iter(..)`](#generatoriter-2)
94
97
  - [`<Generator>.at(..)` / `<Generator>.gat(..)`](#generatorat--generatorgat-1)
95
98
  - [`<Generator>.shift()` / `<Generator>.pop()` / `<Generator>.gshift()` / `<Generator>.gpop()`](#generatorshift--generatorpop--generatorgshift--generatorgpop-1)
99
+ - [`<generator>.unshift(..)` / `<generator>.push(..)`](#generatorunshift--generatorpush-1)
96
100
  - [`<Generator>.slice(..)`](#generatorslice-1)
97
101
  - [`<Generator>.map(..)` / `<Generator>.filter(..)` / `<Generator>.reduce(..)` / `<Generator>.flat()`](#generatormap--generatorfilter--generatorreduce--generatorflat)
98
102
  - [`<Generator>.toArray()`](#generatortoarray-1)
@@ -1739,6 +1743,17 @@ Chained generators handle items depth-first, i.e. the items are passed as they
1739
1743
  are yielded down the generator chain.
1740
1744
 
1741
1745
 
1746
+ #### `<generator>.iter()`
1747
+
1748
+ Iterate over the generator.
1749
+ ```bnf
1750
+ <generator>.iter()
1751
+ -> <generator>
1752
+ ```
1753
+
1754
+ This is here mainly for compatibility with [`<array>`'s `.iter()`](#arrayiter--arrayiter).
1755
+
1756
+
1742
1757
  #### `<generator>.map(..)` / `<generator>.filter(..)`
1743
1758
 
1744
1759
  Equivalents to `Array`'s `.map(..)`, `.filter(..)` and `.reduce(..)` but return
@@ -1848,6 +1863,18 @@ Note that `.shift()`/`.gshift()` will yield the item the generator is at at
1848
1863
  time of call, this may not be the _first_ item if the generator is partially
1849
1864
  depleted.
1850
1865
 
1866
+ #### `<generator>.unshift(..)` / `<generator>.push(..)`
1867
+
1868
+ Add a value to the generator sequence at start/end.
1869
+ ```bnf
1870
+ <generator>.unshift(<value>)
1871
+ <generator>.push(<value>)
1872
+ -> <generator>
1873
+ ```
1874
+
1875
+ Value added by `.unshift(..)` will be yielded by `<generator>` "first", i.e. on
1876
+ _next_ call to `.next()`, regardless of the current generator state.
1877
+
1851
1878
 
1852
1879
  #### `<generator>.promise()`
1853
1880
 
@@ -1969,6 +1996,13 @@ XXX list the differences...
1969
1996
  -->
1970
1997
 
1971
1998
 
1999
+ #### `<Generator>.iter(..)`
2000
+
2001
+ This is a shorthand to [`iter(..)`](#generatoriter).
2002
+
2003
+ This is here mainly for compatibility with
2004
+ [`Array`'s `.iter(..)`](#arrayiter--arrayiter).
2005
+
1972
2006
  #### `<Generator>.at(..)` / `<Generator>.gat(..)`
1973
2007
 
1974
2008
  ```bnf
@@ -2002,6 +2036,18 @@ Equivalents to [`<generator>`'s `.shift(..)`/`.pop(..)`/..](#generatorshift--gen
2002
2036
  but returning a reusable `<func>`/`<Generator>`.
2003
2037
 
2004
2038
 
2039
+ #### `<generator>.unshift(..)` / `<generator>.push(..)`
2040
+
2041
+ ```bnf
2042
+ <Generator>.unshift(<value>)
2043
+ <Generator>.push(<value>)
2044
+ -> <Generator>
2045
+ ```
2046
+
2047
+ Equivalents to [`<generator>`'s `.unshift(..)`/`.push(..)`](#generatorunshift--generatorpush)
2048
+ but returning a reusable `<Generator>`.
2049
+
2050
+
2005
2051
  #### `<Generator>.slice(..)`
2006
2052
 
2007
2053
  ```bnf
package/Set.js CHANGED
@@ -16,6 +16,10 @@ var object = require('ig-object')
16
16
  var SetProtoMixin =
17
17
  module.SetProtoMixin =
18
18
  object.Mixin('SetMixin', 'soft', {
19
+ iter: function*(){
20
+ for(var e of this){
21
+ yield e } },
22
+
19
23
  // Set set operation shorthands...
20
24
  unite: function(other=[]){
21
25
  return new Set([...this, ...other]) },
package/generator.js CHANGED
@@ -190,6 +190,10 @@ module.GeneratorMixin =
190
190
  object.Mixin('GeneratorMixin', 'soft', {
191
191
  STOP: object.STOP,
192
192
 
193
+ // NOTE: this is here for compatibility with Array.iter(..)
194
+ iter: function*(lst=[]){
195
+ yield* module.iter(lst) },
196
+
193
197
  gat: makeGenerator('gat'),
194
198
  at: function(i){
195
199
  var that = this
@@ -227,6 +231,7 @@ object.Mixin('GeneratorMixin', 'soft', {
227
231
  { toString: function(){
228
232
  return that.toString()
229
233
  + '\n .gpop()'}, }) },
234
+ push: makeGenerator('push'),
230
235
  gshift: makeGenerator('gshift'),
231
236
  shift: function(){
232
237
  var that = this
@@ -237,6 +242,7 @@ object.Mixin('GeneratorMixin', 'soft', {
237
242
  { toString: function(){
238
243
  return that.toString()
239
244
  + '\n .gshift()'}, }) },
245
+ unshift: makeGenerator('unshift'),
240
246
 
241
247
  // promises...
242
248
  //
@@ -263,6 +269,10 @@ object.Mixin('GeneratorMixin', 'soft', {
263
269
  var GeneratorProtoMixin =
264
270
  module.GeneratorProtoMixin =
265
271
  object.Mixin('GeneratorProtoMixin', 'soft', {
272
+ // NOTE: this is here for compatibility with [..].iter()
273
+ iter: function*(){
274
+ yield* this },
275
+
266
276
  at: function(i){
267
277
  return this.gat(i).next().value },
268
278
  // XXX this needs the value to be iterable... why???
@@ -352,11 +362,17 @@ object.Mixin('GeneratorProtoMixin', 'soft', {
352
362
  // XXX this needs the value to be iterable...
353
363
  gpop: function*(){
354
364
  yield [...this].pop() },
365
+ push: function*(value){
366
+ yield* this
367
+ yield value },
355
368
  shift: function(){
356
369
  return this.next().value },
357
370
  // XXX this needs the value to be iterable...
358
371
  gshift: function*(){
359
372
  yield this.next().value },
373
+ unshift: function*(value){
374
+ yield value
375
+ yield* this },
360
376
 
361
377
  // non-generators...
362
378
  //
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ig-types",
3
- "version": "6.9.1",
3
+ "version": "6.9.4",
4
4
  "description": "Generic JavaScript types and type extensions...",
5
5
  "main": "main.js",
6
6
  "scripts": {