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 +3 -1
- package/README.md +26 -0
- package/RegExp.js +41 -0
- package/generator.js +8 -0
- package/main.js +3 -1
- package/package.json +1 -1
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]
|
|
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
|
-
|
|
32
|
+
|
|
33
|
+
// frequently used stuff...
|
|
33
34
|
module.Generator = module.generator.Generator
|
|
35
|
+
module.iter = module.generator.iter
|
|
34
36
|
|
|
35
37
|
|
|
36
38
|
|