decoders 2.0.2 → 2.0.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/index.js CHANGED
@@ -2,13 +2,9 @@
2
2
 
3
3
  exports.__esModule = true
4
4
  exports.uuidv4 = exports.uuidv1 = exports.uuid = exports.url = exports.unknown = exports.undefined_ = exports.tuple = exports.truthy = exports.taggedUnion = exports.string = exports.set = exports.regex = exports.prep = exports.positiveNumber = exports.positiveInteger = exports.pojo = exports.poja = exports.optional = exports.oneOf = exports.object = exports.numericBoolean = exports.number = exports.nullable = exports.null_ = exports.nonEmptyString = exports.nonEmptyArray = exports.never = exports.mixed = exports.maybe = exports.mapping = exports.lazy = exports.jsonObject = exports.jsonArray = exports.json = exports.iso8601 = exports.integer = exports.instanceOf = exports.inexact = exports.httpsUrl = exports.hardcoded = exports.fail = exports.exact = exports.email = exports.either = exports.dict = exports.define = exports.date = exports.constant = exports['boolean'] = exports.array = exports.anyNumber = exports.always = void 0
5
-
6
5
  var _Decoder = require('./Decoder')
7
-
8
6
  exports.define = _Decoder.define
9
-
10
7
  var _basics = require('./lib/basics')
11
-
12
8
  exports.always = _basics.always
13
9
  exports.constant = _basics.constant
14
10
  exports.hardcoded = _basics.hardcoded
@@ -19,43 +15,31 @@ exports.null_ = _basics.null_
19
15
  exports.optional = _basics.optional
20
16
  exports.undefined_ = _basics.undefined_
21
17
  exports.unknown = _basics.unknown
22
-
23
18
  var _arrays = require('./lib/arrays')
24
-
25
19
  exports.array = _arrays.array
26
20
  exports.nonEmptyArray = _arrays.nonEmptyArray
27
21
  exports.poja = _arrays.poja
28
22
  exports.set = _arrays.set
29
23
  exports.tuple = _arrays.tuple
30
-
31
24
  var _booleans = require('./lib/booleans')
32
-
33
25
  exports['boolean'] = _booleans['boolean']
34
26
  exports.numericBoolean = _booleans.numericBoolean
35
27
  exports.truthy = _booleans.truthy
36
-
37
28
  var _dates = require('./lib/dates')
38
-
39
29
  exports.date = _dates.date
40
30
  exports.iso8601 = _dates.iso8601
41
-
42
31
  var _objects = require('./lib/objects')
43
-
44
32
  exports.dict = _objects.dict
45
33
  exports.exact = _objects.exact
46
34
  exports.inexact = _objects.inexact
47
35
  exports.mapping = _objects.mapping
48
36
  exports.object = _objects.object
49
37
  exports.pojo = _objects.pojo
50
-
51
38
  var _unions = require('./lib/unions')
52
-
53
39
  exports.either = _unions.either
54
40
  exports.oneOf = _unions.oneOf
55
41
  exports.taggedUnion = _unions.taggedUnion
56
-
57
42
  var _strings = require('./lib/strings')
58
-
59
43
  exports.email = _strings.email
60
44
  exports.httpsUrl = _strings.httpsUrl
61
45
  exports.nonEmptyString = _strings.nonEmptyString
@@ -65,25 +49,19 @@ exports.url = _strings.url
65
49
  exports.uuid = _strings.uuid
66
50
  exports.uuidv1 = _strings.uuidv1
67
51
  exports.uuidv4 = _strings.uuidv4
68
-
69
52
  var _utilities = require('./lib/utilities')
70
-
71
53
  exports.fail = _utilities.fail
72
54
  exports.instanceOf = _utilities.instanceOf
73
55
  exports.lazy = _utilities.lazy
74
56
  exports.never = _utilities.never
75
57
  exports.prep = _utilities.prep
76
-
77
58
  var _numbers = require('./lib/numbers')
78
-
79
59
  exports.anyNumber = _numbers.anyNumber
80
60
  exports.integer = _numbers.integer
81
61
  exports.number = _numbers.number
82
62
  exports.positiveInteger = _numbers.positiveInteger
83
63
  exports.positiveNumber = _numbers.positiveNumber
84
-
85
64
  var _json = require('./lib/json')
86
-
87
65
  exports.json = _json.json
88
66
  exports.jsonObject = _json.jsonObject
89
67
  exports.jsonArray = _json.jsonArray
package/lib/arrays.js CHANGED
@@ -6,38 +6,30 @@ exports.nonEmptyArray = nonEmptyArray
6
6
  exports.poja = void 0
7
7
  exports.set = set
8
8
  exports.tuple = void 0
9
-
10
9
  var _annotate = require('../annotate')
11
-
12
10
  var _Decoder = require('../Decoder')
13
11
 
14
12
  var poja = (0, _Decoder.define)(function (blob, ok, err) {
15
13
  if (!Array.isArray(blob)) {
16
14
  return err('Must be an array')
17
15
  }
18
-
19
16
  return ok(blob.slice())
20
17
  })
21
18
 
22
19
  exports.poja = poja
23
-
24
20
  function all(items, blobs, ok, err) {
25
21
  var results = []
26
-
27
22
  for (var index = 0; index < items.length; ++index) {
28
23
  var result = items[index]
29
-
30
24
  if (result.ok) {
31
25
  results.push(result.value)
32
26
  } else {
33
27
  var ann = result.error
34
-
35
28
  var clone = [].concat(blobs)
36
29
  clone.splice(index, 1, (0, _annotate.annotate)(ann, ann.text ? ann.text + ' (at index ' + index + ')' : 'index ' + index))
37
30
  return err((0, _annotate.annotate)(clone))
38
31
  }
39
32
  }
40
-
41
33
  return ok(results)
42
34
  }
43
35
 
@@ -59,7 +51,6 @@ function set(decoder) {
59
51
  return new Set(items)
60
52
  })
61
53
  }
62
-
63
54
  var ntuple = function ntuple(n) {
64
55
  return poja.refine(function (arr) {
65
56
  return arr.length === n
@@ -70,13 +61,11 @@ function _tuple() {
70
61
  for (var _len = arguments.length, decoders = new Array(_len), _key = 0; _key < _len; _key++) {
71
62
  decoders[_key] = arguments[_key]
72
63
  }
73
-
74
64
  return ntuple(decoders.length).then(function (blobs, ok, err) {
75
65
  var allOk = true
76
66
  var rvs = decoders.map(function (decoder, i) {
77
67
  var blob = blobs[i]
78
68
  var result = decoder.decode(blob)
79
-
80
69
  if (result.ok) {
81
70
  return result.value
82
71
  } else {
@@ -84,7 +73,6 @@ function _tuple() {
84
73
  return result.error
85
74
  }
86
75
  })
87
-
88
76
  if (allOk) {
89
77
  return ok(rvs)
90
78
  } else {
package/lib/arrays.mjs CHANGED
@@ -5,27 +5,22 @@ export var poja = define(function (blob, ok, err) {
5
5
  if (!Array.isArray(blob)) {
6
6
  return err('Must be an array')
7
7
  }
8
-
9
8
  return ok(blob.slice())
10
9
  })
11
10
 
12
11
  function all(items, blobs, ok, err) {
13
12
  var results = []
14
-
15
13
  for (var index = 0; index < items.length; ++index) {
16
14
  var result = items[index]
17
-
18
15
  if (result.ok) {
19
16
  results.push(result.value)
20
17
  } else {
21
18
  var ann = result.error
22
-
23
19
  var clone = [].concat(blobs)
24
20
  clone.splice(index, 1, annotate(ann, ann.text ? ann.text + ' (at index ' + index + ')' : 'index ' + index))
25
21
  return err(annotate(clone))
26
22
  }
27
23
  }
28
-
29
24
  return ok(results)
30
25
  }
31
26
 
@@ -47,7 +42,6 @@ export function set(decoder) {
47
42
  return new Set(items)
48
43
  })
49
44
  }
50
-
51
45
  var ntuple = function ntuple(n) {
52
46
  return poja.refine(function (arr) {
53
47
  return arr.length === n
@@ -58,13 +52,11 @@ function _tuple() {
58
52
  for (var _len = arguments.length, decoders = new Array(_len), _key = 0; _key < _len; _key++) {
59
53
  decoders[_key] = arguments[_key]
60
54
  }
61
-
62
55
  return ntuple(decoders.length).then(function (blobs, ok, err) {
63
56
  var allOk = true
64
57
  var rvs = decoders.map(function (decoder, i) {
65
58
  var blob = blobs[i]
66
59
  var result = decoder.decode(blob)
67
-
68
60
  if (result.ok) {
69
61
  return result.value
70
62
  } else {
@@ -72,7 +64,6 @@ function _tuple() {
72
64
  return result.error
73
65
  }
74
66
  })
75
-
76
67
  if (allOk) {
77
68
  return ok(rvs)
78
69
  } else {
package/lib/basics.js CHANGED
@@ -4,9 +4,7 @@ exports.__esModule = true
4
4
  exports.always = always
5
5
  exports.constant = constant
6
6
  exports.unknown = exports.undefined_ = exports.optional = exports.nullable = exports.null_ = exports.mixed = exports.maybe = exports.hardcoded = void 0
7
-
8
7
  var _Decoder = require('../Decoder')
9
-
10
8
  var _unions = require('./unions')
11
9
 
12
10
  var null_ = (0, _Decoder.define)(function (blob, ok, err) {
@@ -21,16 +19,12 @@ exports.undefined_ = undefined_
21
19
  var undefined_or_null = (0, _Decoder.define)(function (blob, ok, err) {
22
20
  return blob === undefined || blob === null ? ok(blob) : err('Must be undefined or null')
23
21
  })
24
-
25
22
  function _maybeish(emptyCase) {
26
23
  function _inner(decoder) {
27
24
  var rv = (0, _unions.either)(emptyCase, decoder)
28
-
29
25
  if (arguments.length >= 2) {
30
26
  var _defaultValue = arguments[1]
31
-
32
27
  var _defaultValue2 = typeof _defaultValue === 'function' ? _defaultValue() : _defaultValue
33
-
34
28
  return rv.transform(function (value) {
35
29
  return value != null ? value : _defaultValue2
36
30
  })
@@ -38,22 +32,18 @@ function _maybeish(emptyCase) {
38
32
  return rv
39
33
  }
40
34
  }
41
-
42
35
  return _inner
43
36
  }
44
37
 
45
38
  var nullable = _maybeish(null_)
46
39
 
47
40
  exports.nullable = nullable
48
-
49
41
  var optional = _maybeish(undefined_)
50
42
 
51
43
  exports.optional = optional
52
-
53
44
  var maybe = _maybeish(undefined_or_null)
54
45
 
55
46
  exports.maybe = maybe
56
-
57
47
  function constant(value) {
58
48
  return (0, _Decoder.define)(function (blob, ok, err) {
59
49
  return blob === value ? ok(value) : err('Must be constant ' + String(value))
@@ -63,20 +53,10 @@ function constant(value) {
63
53
  function always(value) {
64
54
  return (0, _Decoder.define)(
65
55
  typeof value === 'function'
66
- ? function (
67
- blob,
68
-
69
- ok,
70
- _
71
- ) {
56
+ ? function (blob, ok, _) {
72
57
  return ok(value())
73
58
  }
74
- : function (
75
- blob,
76
-
77
- ok,
78
- _
79
- ) {
59
+ : function (blob, ok, _) {
80
60
  return ok(value)
81
61
  }
82
62
  )
package/lib/basics.mjs CHANGED
@@ -11,16 +11,12 @@ export var undefined_ = define(function (blob, ok, err) {
11
11
  var undefined_or_null = define(function (blob, ok, err) {
12
12
  return blob === undefined || blob === null ? ok(blob) : err('Must be undefined or null')
13
13
  })
14
-
15
14
  function _maybeish(emptyCase) {
16
15
  function _inner(decoder) {
17
16
  var rv = either(emptyCase, decoder)
18
-
19
17
  if (arguments.length >= 2) {
20
18
  var _defaultValue = arguments[1]
21
-
22
19
  var _defaultValue2 = typeof _defaultValue === 'function' ? _defaultValue() : _defaultValue
23
-
24
20
  return rv.transform(function (value) {
25
21
  return value != null ? value : _defaultValue2
26
22
  })
@@ -28,7 +24,6 @@ function _maybeish(emptyCase) {
28
24
  return rv
29
25
  }
30
26
  }
31
-
32
27
  return _inner
33
28
  }
34
29
 
@@ -47,20 +42,10 @@ export function constant(value) {
47
42
  export function always(value) {
48
43
  return define(
49
44
  typeof value === 'function'
50
- ? function (
51
- blob,
52
-
53
- ok,
54
- _
55
- ) {
45
+ ? function (blob, ok, _) {
56
46
  return ok(value())
57
47
  }
58
- : function (
59
- blob,
60
-
61
- ok,
62
- _
63
- ) {
48
+ : function (blob, ok, _) {
64
49
  return ok(value)
65
50
  }
66
51
  )
package/lib/booleans.js CHANGED
@@ -2,9 +2,7 @@
2
2
 
3
3
  exports.__esModule = true
4
4
  exports.truthy = exports.numericBoolean = exports['boolean'] = void 0
5
-
6
5
  var _Decoder = require('../Decoder')
7
-
8
6
  var _numbers = require('./numbers')
9
7
 
10
8
  var _boolean = (0, _Decoder.define)(function (blob, ok, err) {
@@ -17,9 +15,7 @@ var truthy = (0, _Decoder.define)(function (blob, ok, _) {
17
15
  })
18
16
 
19
17
  exports.truthy = truthy
20
-
21
18
  var numericBoolean = _numbers.number.transform(function (n) {
22
19
  return !!n
23
20
  })
24
-
25
21
  exports.numericBoolean = numericBoolean
package/lib/dates.js CHANGED
@@ -2,11 +2,8 @@
2
2
 
3
3
  exports.__esModule = true
4
4
  exports.iso8601 = exports.date = void 0
5
-
6
5
  var _utils = require('../_utils')
7
-
8
6
  var _Decoder = require('../Decoder')
9
-
10
7
  var _strings = require('./strings')
11
8
  var iso8601_re = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:[.]\d+)?(?:Z|[+-]\d{2}:?\d{2})$/
12
9
 
@@ -18,11 +15,9 @@ var date = (0, _Decoder.define)(function (blob, ok, err) {
18
15
  exports.date = date
19
16
  var iso8601 = (0, _strings.regex)(iso8601_re, 'Must be ISO8601 format').transform(function (value) {
20
17
  var date = new Date(value)
21
-
22
18
  if (isNaN(date.getTime())) {
23
19
  throw new Error('Must be valid date/time value')
24
20
  }
25
-
26
21
  return date
27
22
  })
28
23
  exports.iso8601 = iso8601
package/lib/dates.mjs CHANGED
@@ -10,10 +10,8 @@ export var date = define(function (blob, ok, err) {
10
10
 
11
11
  export var iso8601 = regex(iso8601_re, 'Must be ISO8601 format').transform(function (value) {
12
12
  var date = new Date(value)
13
-
14
13
  if (isNaN(date.getTime())) {
15
14
  throw new Error('Must be valid date/time value')
16
15
  }
17
-
18
16
  return date
19
17
  })
package/lib/json.js CHANGED
@@ -2,21 +2,13 @@
2
2
 
3
3
  exports.__esModule = true
4
4
  exports.jsonObject = exports.jsonArray = exports.json = void 0
5
-
6
5
  var _arrays = require('./arrays')
7
-
8
6
  var _booleans = require('./booleans')
9
-
10
7
  var _objects = require('./objects')
11
-
12
8
  var _unions = require('./unions')
13
-
14
9
  var _utilities = require('./utilities')
15
-
16
10
  var _basics = require('./basics')
17
-
18
11
  var _numbers = require('./numbers')
19
-
20
12
  var _strings = require('./strings')
21
13
 
22
14
  var jsonObject = (0, _utilities.lazy)(function () {
package/lib/numbers.js CHANGED
@@ -2,7 +2,6 @@
2
2
 
3
3
  exports.__esModule = true
4
4
  exports.positiveNumber = exports.positiveInteger = exports.number = exports.integer = exports.anyNumber = void 0
5
-
6
5
  var _Decoder = require('../Decoder')
7
6
 
8
7
  var anyNumber = (0, _Decoder.define)(function (blob, ok, err) {
package/lib/objects.js CHANGED
@@ -7,11 +7,8 @@ exports.inexact = inexact
7
7
  exports.mapping = mapping
8
8
  exports.object = object
9
9
  exports.pojo = void 0
10
-
11
10
  var _annotate = require('../annotate')
12
-
13
11
  var _Decoder = require('../Decoder')
14
-
15
12
  var _utils = require('../_utils')
16
13
 
17
14
  var pojo = (0, _Decoder.define)(function (blob, ok, err) {
@@ -19,12 +16,10 @@ var pojo = (0, _Decoder.define)(function (blob, ok, err) {
19
16
  })
20
17
 
21
18
  exports.pojo = pojo
22
-
23
19
  function object(decodersByKey) {
24
20
  var knownKeys = new Set(Object.keys(decodersByKey))
25
21
  return pojo.then(function (plainObj, ok, err) {
26
22
  var actualKeys = new Set(Object.keys(plainObj))
27
-
28
23
  var missingKeys = (0, _utils.subtract)(knownKeys, actualKeys)
29
24
  var record = {}
30
25
  var errors = null
@@ -32,37 +27,29 @@ function object(decodersByKey) {
32
27
  var decoder = decodersByKey[key]
33
28
  var rawValue = plainObj[key]
34
29
  var result = decoder.decode(rawValue)
35
-
36
30
  if (result.ok) {
37
31
  var value = result.value
38
-
39
32
  if (value !== undefined) {
40
33
  record[key] = value
41
34
  }
42
-
43
35
  missingKeys['delete'](key)
44
36
  } else {
45
37
  var ann = result.error
46
-
47
38
  if (rawValue === undefined) {
48
39
  missingKeys.add(key)
49
40
  } else {
50
41
  if (errors === null) {
51
42
  errors = {}
52
43
  }
53
-
54
44
  errors[key] = ann
55
45
  }
56
46
  }
57
47
  })
58
-
59
48
  if (errors || missingKeys.size > 0) {
60
49
  var objAnn = (0, _annotate.annotateObject)(plainObj)
61
-
62
50
  if (errors) {
63
51
  objAnn = (0, _annotate.merge)(objAnn, errors)
64
52
  }
65
-
66
53
  if (missingKeys.size > 0) {
67
54
  var errMsg = Array.from(missingKeys)
68
55
  .map(function (key) {
@@ -72,23 +59,19 @@ function object(decodersByKey) {
72
59
  var pluralized = missingKeys.size > 1 ? 'keys' : 'key'
73
60
  objAnn = (0, _annotate.updateText)(objAnn, 'Missing ' + pluralized + ': ' + errMsg)
74
61
  }
75
-
76
62
  return err(objAnn)
77
63
  }
78
-
79
64
  return ok(record)
80
65
  })
81
66
  }
82
67
 
83
68
  function exact(decodersByKey) {
84
69
  var allowedKeys = new Set(Object.keys(decodersByKey))
85
-
86
70
  var checked = pojo.reject(function (plainObj) {
87
71
  var actualKeys = new Set(Object.keys(plainObj))
88
72
  var extraKeys = (0, _utils.subtract)(actualKeys, allowedKeys)
89
73
  return extraKeys.size > 0 ? 'Unexpected extra keys: ' + Array.from(extraKeys).join(', ') : null
90
74
  })
91
-
92
75
  return checked.then(object(decodersByKey).decode)
93
76
  }
94
77
 
@@ -97,7 +80,6 @@ function inexact(decodersByKey) {
97
80
  var allkeys = new Set(Object.keys(plainObj))
98
81
  var decoder = object(decodersByKey).transform(function (safepart) {
99
82
  var safekeys = new Set(Object.keys(decodersByKey))
100
-
101
83
  safekeys.forEach(function (k) {
102
84
  return allkeys.add(k)
103
85
  })
@@ -105,7 +87,6 @@ function inexact(decodersByKey) {
105
87
  allkeys.forEach(function (k) {
106
88
  if (safekeys.has(k)) {
107
89
  var value = safepart[k]
108
-
109
90
  if (value !== undefined) {
110
91
  rv[k] = value
111
92
  }
@@ -126,22 +107,18 @@ function dict(decoder) {
126
107
  Object.keys(plainObj).forEach(function (key) {
127
108
  var value = plainObj[key]
128
109
  var result = decoder.decode(value)
129
-
130
110
  if (result.ok) {
131
111
  if (errors === null) {
132
112
  rv[key] = result.value
133
113
  }
134
114
  } else {
135
115
  rv = {}
136
-
137
116
  if (errors === null) {
138
117
  errors = {}
139
118
  }
140
-
141
119
  errors[key] = result.error
142
120
  }
143
121
  })
144
-
145
122
  if (errors !== null) {
146
123
  return err((0, _annotate.merge)((0, _annotate.annotateObject)(plainObj), errors))
147
124
  } else {
package/lib/objects.mjs CHANGED
@@ -10,7 +10,6 @@ export function object(decodersByKey) {
10
10
  var knownKeys = new Set(Object.keys(decodersByKey))
11
11
  return pojo.then(function (plainObj, ok, err) {
12
12
  var actualKeys = new Set(Object.keys(plainObj))
13
-
14
13
  var missingKeys = subtract(knownKeys, actualKeys)
15
14
  var record = {}
16
15
  var errors = null
@@ -18,37 +17,29 @@ export function object(decodersByKey) {
18
17
  var decoder = decodersByKey[key]
19
18
  var rawValue = plainObj[key]
20
19
  var result = decoder.decode(rawValue)
21
-
22
20
  if (result.ok) {
23
21
  var value = result.value
24
-
25
22
  if (value !== undefined) {
26
23
  record[key] = value
27
24
  }
28
-
29
25
  missingKeys['delete'](key)
30
26
  } else {
31
27
  var ann = result.error
32
-
33
28
  if (rawValue === undefined) {
34
29
  missingKeys.add(key)
35
30
  } else {
36
31
  if (errors === null) {
37
32
  errors = {}
38
33
  }
39
-
40
34
  errors[key] = ann
41
35
  }
42
36
  }
43
37
  })
44
-
45
38
  if (errors || missingKeys.size > 0) {
46
39
  var objAnn = annotateObject(plainObj)
47
-
48
40
  if (errors) {
49
41
  objAnn = merge(objAnn, errors)
50
42
  }
51
-
52
43
  if (missingKeys.size > 0) {
53
44
  var errMsg = Array.from(missingKeys)
54
45
  .map(function (key) {
@@ -58,23 +49,19 @@ export function object(decodersByKey) {
58
49
  var pluralized = missingKeys.size > 1 ? 'keys' : 'key'
59
50
  objAnn = updateText(objAnn, 'Missing ' + pluralized + ': ' + errMsg)
60
51
  }
61
-
62
52
  return err(objAnn)
63
53
  }
64
-
65
54
  return ok(record)
66
55
  })
67
56
  }
68
57
 
69
58
  export function exact(decodersByKey) {
70
59
  var allowedKeys = new Set(Object.keys(decodersByKey))
71
-
72
60
  var checked = pojo.reject(function (plainObj) {
73
61
  var actualKeys = new Set(Object.keys(plainObj))
74
62
  var extraKeys = subtract(actualKeys, allowedKeys)
75
63
  return extraKeys.size > 0 ? 'Unexpected extra keys: ' + Array.from(extraKeys).join(', ') : null
76
64
  })
77
-
78
65
  return checked.then(object(decodersByKey).decode)
79
66
  }
80
67
 
@@ -83,7 +70,6 @@ export function inexact(decodersByKey) {
83
70
  var allkeys = new Set(Object.keys(plainObj))
84
71
  var decoder = object(decodersByKey).transform(function (safepart) {
85
72
  var safekeys = new Set(Object.keys(decodersByKey))
86
-
87
73
  safekeys.forEach(function (k) {
88
74
  return allkeys.add(k)
89
75
  })
@@ -91,7 +77,6 @@ export function inexact(decodersByKey) {
91
77
  allkeys.forEach(function (k) {
92
78
  if (safekeys.has(k)) {
93
79
  var value = safepart[k]
94
-
95
80
  if (value !== undefined) {
96
81
  rv[k] = value
97
82
  }
@@ -112,22 +97,18 @@ export function dict(decoder) {
112
97
  Object.keys(plainObj).forEach(function (key) {
113
98
  var value = plainObj[key]
114
99
  var result = decoder.decode(value)
115
-
116
100
  if (result.ok) {
117
101
  if (errors === null) {
118
102
  rv[key] = result.value
119
103
  }
120
104
  } else {
121
105
  rv = {}
122
-
123
106
  if (errors === null) {
124
107
  errors = {}
125
108
  }
126
-
127
109
  errors[key] = result.error
128
110
  }
129
111
  })
130
-
131
112
  if (errors !== null) {
132
113
  return err(merge(annotateObject(plainObj), errors))
133
114
  } else {
package/lib/strings.js CHANGED
@@ -4,14 +4,11 @@ exports.__esModule = true
4
4
  exports.nonEmptyString = exports.httpsUrl = exports.email = void 0
5
5
  exports.regex = regex
6
6
  exports.uuidv4 = exports.uuidv1 = exports.uuid = exports.url = exports.string = void 0
7
-
8
7
  var _Decoder = require('../Decoder')
9
-
10
8
  var _unions = require('./unions')
11
-
12
9
  var _utilities = require('./utilities')
13
10
 
14
- var url_re = /^([A-Za-z]{3,9}(?:[+][A-Za-z]{3,9})?):\/\/(?:([-;:&=+$,\w]+)@)?(?:([A-Za-z0-9.-]+)(?::([0-9]{2,5}))?)(\/(?:[-+~%/.,\w]*)?(?:\?[-+=&;%@.,\w]*)?(?:#[.,!/\w]*)?)?$/
11
+ var url_re = /^([A-Za-z]{3,9}(?:[+][A-Za-z]{3,9})?):\/\/(?:([-;:&=+$,\w]+)@)?(?:([A-Za-z0-9.-]+)(?::([0-9]{2,5}))?)(\/(?:[-+~%/.,\w]*)?(?:\?[-+=&;%@.,/\w]*)?(?:#[.,!/\w]*)?)?$/
15
12
 
16
13
  var string = (0, _Decoder.define)(function (blob, ok, err) {
17
14
  return typeof blob === 'string' ? ok(blob) : err('Must be string')
@@ -21,7 +18,6 @@ exports.string = string
21
18
  var nonEmptyString = regex(/\S/, 'Must be non-empty string')
22
19
 
23
20
  exports.nonEmptyString = nonEmptyString
24
-
25
21
  function regex(regex, msg) {
26
22
  return string.refine(function (s) {
27
23
  return regex.test(s)
@@ -13,7 +13,7 @@ import type { Decoder } from '../Decoder';
13
13
  * \5 - the path (optional)
14
14
  */
15
15
  const url_re =
16
- /^([A-Za-z]{3,9}(?:[+][A-Za-z]{3,9})?):\/\/(?:([-;:&=+$,\w]+)@)?(?:([A-Za-z0-9.-]+)(?::([0-9]{2,5}))?)(\/(?:[-+~%/.,\w]*)?(?:\?[-+=&;%@.,\w]*)?(?:#[.,!/\w]*)?)?$/;
16
+ /^([A-Za-z]{3,9}(?:[+][A-Za-z]{3,9})?):\/\/(?:([-;:&=+$,\w]+)@)?(?:([A-Za-z0-9.-]+)(?::([0-9]{2,5}))?)(\/(?:[-+~%/.,\w]*)?(?:\?[-+=&;%@.,/\w]*)?(?:#[.,!/\w]*)?)?$/;
17
17
 
18
18
  /**
19
19
  * Accepts and returns strings.
package/lib/strings.mjs CHANGED
@@ -2,7 +2,7 @@ import { define } from '../Decoder.mjs'
2
2
  import { either } from './unions.mjs'
3
3
  import { instanceOf } from './utilities.mjs'
4
4
 
5
- var url_re = /^([A-Za-z]{3,9}(?:[+][A-Za-z]{3,9})?):\/\/(?:([-;:&=+$,\w]+)@)?(?:([A-Za-z0-9.-]+)(?::([0-9]{2,5}))?)(\/(?:[-+~%/.,\w]*)?(?:\?[-+=&;%@.,\w]*)?(?:#[.,!/\w]*)?)?$/
5
+ var url_re = /^([A-Za-z]{3,9}(?:[+][A-Za-z]{3,9})?):\/\/(?:([-;:&=+$,\w]+)@)?(?:([A-Za-z0-9.-]+)(?::([0-9]{2,5}))?)(\/(?:[-+~%/.,\w]*)?(?:\?[-+=&;%@.,/\w]*)?(?:#[.,!/\w]*)?)?$/
6
6
 
7
7
  export var string = define(function (blob, ok, err) {
8
8
  return typeof blob === 'string' ? ok(blob) : err('Must be string')