ig-types 6.9.2 → 6.9.5

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/README.md CHANGED
@@ -87,6 +87,7 @@ Library of JavaScript type extensions, types and utilities.
87
87
  - [`<generator>.at(..)` / `<generator>.gat(..)`](#generatorat--generatorgat)
88
88
  - [`<generator>.flat(..)`](#generatorflat)
89
89
  - [`<generator>.shift()` / `<generator>.pop()` / `<generator>.gshift()` / `<generator>.gpop()`](#generatorshift--generatorpop--generatorgshift--generatorgpop)
90
+ - [`<generator>.unshift(..)` / `<generator>.push(..)`](#generatorunshift--generatorpush)
90
91
  - [`<generator>.promise()`](#generatorpromise)
91
92
  - [`<generator>.then(..)` / `<generator>.catch(..)` / `<generator>.finally(..)`](#generatorthen--generatorcatch--generatorfinally)
92
93
  - [`<generator>.toArray()`](#generatortoarray)
@@ -95,6 +96,7 @@ Library of JavaScript type extensions, types and utilities.
95
96
  - [`<Generator>.iter(..)`](#generatoriter-2)
96
97
  - [`<Generator>.at(..)` / `<Generator>.gat(..)`](#generatorat--generatorgat-1)
97
98
  - [`<Generator>.shift()` / `<Generator>.pop()` / `<Generator>.gshift()` / `<Generator>.gpop()`](#generatorshift--generatorpop--generatorgshift--generatorgpop-1)
99
+ - [`<generator>.unshift(..)` / `<generator>.push(..)`](#generatorunshift--generatorpush-1)
98
100
  - [`<Generator>.slice(..)`](#generatorslice-1)
99
101
  - [`<Generator>.map(..)` / `<Generator>.filter(..)` / `<Generator>.reduce(..)` / `<Generator>.flat()`](#generatormap--generatorfilter--generatorreduce--generatorflat)
100
102
  - [`<Generator>.toArray()`](#generatortoarray-1)
@@ -1861,6 +1863,18 @@ Note that `.shift()`/`.gshift()` will yield the item the generator is at at
1861
1863
  time of call, this may not be the _first_ item if the generator is partially
1862
1864
  depleted.
1863
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
+
1864
1878
 
1865
1879
  #### `<generator>.promise()`
1866
1880
 
@@ -2022,6 +2036,18 @@ Equivalents to [`<generator>`'s `.shift(..)`/`.pop(..)`/..](#generatorshift--gen
2022
2036
  but returning a reusable `<func>`/`<Generator>`.
2023
2037
 
2024
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
+
2025
2051
  #### `<Generator>.slice(..)`
2026
2052
 
2027
2053
  ```bnf
package/RegExp.js CHANGED
@@ -23,7 +23,48 @@ object.Mixin('RegExpMixin', 'soft', {
23
23
  })
24
24
 
25
25
 
26
+ var GROUP_PATERN =
27
+ //module.GROUP_PATERN = /(^\(|[^\\]\()/g
28
+ module.GROUP_PATERN = new RegExp([
29
+ '^\\(',
30
+ // non-escaped braces...
31
+ '[^\\\\]\\(',
32
+ // XXX ignore braces in ranges...
33
+ // XXX '\\[.*(.*\\]',
34
+ ].join('|'))
35
+
36
+ // Pattern group introspection...
37
+ var RegExpProtoMixin =
38
+ module.RegExpProtoMixin =
39
+ object.Mixin('RegExpProtoMixin', 'soft', {
40
+ // Format:
41
+ // [
42
+ // {
43
+ // index: <index>,
44
+ // name: <name>,
45
+ // pattern: <string>,
46
+ // offset: <offset>,
47
+ // },
48
+ // ...
49
+ // ]
50
+ // XXX cache this...
51
+ get groups(){
52
+ this.toString()
53
+ .matchAll(GROUP_PATERN)
54
+ },
55
+ get namedGroups(){
56
+ return this.groups
57
+ .reduce(function(res, e){
58
+ e.name
59
+ && (res[name] = e)
60
+ return res }, {}) },
61
+ get groupCount(){
62
+ return this.groups.length },
63
+ })
64
+
65
+
26
66
  RegExpMixin(RegExp)
67
+ RegExpProtoMixin(RegExp.prototype)
27
68
 
28
69
 
29
70
  var quoteRegExp =
package/generator.js CHANGED
@@ -231,6 +231,7 @@ object.Mixin('GeneratorMixin', 'soft', {
231
231
  { toString: function(){
232
232
  return that.toString()
233
233
  + '\n .gpop()'}, }) },
234
+ push: makeGenerator('push'),
234
235
  gshift: makeGenerator('gshift'),
235
236
  shift: function(){
236
237
  var that = this
@@ -241,6 +242,7 @@ object.Mixin('GeneratorMixin', 'soft', {
241
242
  { toString: function(){
242
243
  return that.toString()
243
244
  + '\n .gshift()'}, }) },
245
+ unshift: makeGenerator('unshift'),
244
246
 
245
247
  // promises...
246
248
  //
@@ -360,11 +362,17 @@ object.Mixin('GeneratorProtoMixin', 'soft', {
360
362
  // XXX this needs the value to be iterable...
361
363
  gpop: function*(){
362
364
  yield [...this].pop() },
365
+ push: function*(value){
366
+ yield* this
367
+ yield value },
363
368
  shift: function(){
364
369
  return this.next().value },
365
370
  // XXX this needs the value to be iterable...
366
371
  gshift: function*(){
367
372
  yield this.next().value },
373
+ unshift: function*(value){
374
+ yield value
375
+ yield* this },
368
376
 
369
377
  // non-generators...
370
378
  //
package/main.js CHANGED
@@ -29,8 +29,10 @@ module.runner = require('./runner')
29
29
 
30
30
  // Shorthands...
31
31
  module.STOP = object.STOP
32
- // NOTE: this is a generic enough type to be accessible at the root...
32
+
33
+ // frequently used stuff...
33
34
  module.Generator = module.generator.Generator
35
+ module.iter = module.generator.iter
34
36
 
35
37
 
36
38
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ig-types",
3
- "version": "6.9.2",
3
+ "version": "6.9.5",
4
4
  "description": "Generic JavaScript types and type extensions...",
5
5
  "main": "main.js",
6
6
  "scripts": {