presidium 1.4.10 → 2.0.1
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/OptionalValidator.js +5 -5
- package/StrictValidator.js +14 -16
- package/package.json +2 -2
package/OptionalValidator.js
CHANGED
|
@@ -66,11 +66,11 @@ const OptionalValidator = function (parsers) {
|
|
|
66
66
|
|
|
67
67
|
return function optionalValidator(object) {
|
|
68
68
|
const result = {}
|
|
69
|
-
for (const
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
result[
|
|
69
|
+
for (const field in parsers) {
|
|
70
|
+
if (field in object) {
|
|
71
|
+
const parser = parsers[field]
|
|
72
|
+
const value = object[field]
|
|
73
|
+
result[field] = parser(value)
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
76
|
return result
|
package/StrictValidator.js
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* ) -> strictValidator Validator
|
|
15
15
|
* ```
|
|
16
16
|
*
|
|
17
|
-
* Creates a strict validator. A strict validator validates each field of a `data` object with the corresponding `parserValidator` function. A strict validator throws an error if any of the required fields specified by the `parserValidatorSchema` are missing.
|
|
17
|
+
* Creates a strict validator. A strict validator validates each field of a `data` object with the corresponding `parserValidator` function. A strict validator throws an error if any of the required fields specified by the `parserValidatorSchema` are missing (not in the data object).
|
|
18
18
|
*
|
|
19
19
|
* Arguments:
|
|
20
20
|
* * `parserValidatorSchema` - an object of parser validator functions.
|
|
@@ -62,30 +62,28 @@
|
|
|
62
62
|
*/
|
|
63
63
|
const StrictValidator = function (parsers, options = {}) {
|
|
64
64
|
const {
|
|
65
|
-
onMissing
|
|
66
|
-
const error = new Error(`missing field ${field}`)
|
|
67
|
-
error.code = 400
|
|
68
|
-
throw error
|
|
69
|
-
},
|
|
65
|
+
onMissing
|
|
70
66
|
} = options
|
|
71
67
|
|
|
72
68
|
const requiredFields = Object.keys(parsers)
|
|
73
69
|
|
|
74
70
|
return function strictValidator(object) {
|
|
75
|
-
|
|
76
|
-
|
|
71
|
+
const result = {}
|
|
72
|
+
for (const field in parsers) {
|
|
73
|
+
if (field in object) {
|
|
74
|
+
const parser = parsers[field]
|
|
75
|
+
const value = object[field]
|
|
76
|
+
result[field] = parser(value)
|
|
77
|
+
|
|
78
|
+
} else if (typeof onMissing == 'function') {
|
|
77
79
|
onMissing(field)
|
|
80
|
+
} else {
|
|
81
|
+
const error = new Error(`Missing field ${field}`)
|
|
82
|
+
error.code = 400
|
|
83
|
+
throw error
|
|
78
84
|
}
|
|
79
85
|
}
|
|
80
86
|
|
|
81
|
-
const result = {}
|
|
82
|
-
for (const key in parsers) {
|
|
83
|
-
const parser = parsers[key],
|
|
84
|
-
value = object[key]
|
|
85
|
-
if (value != null) {
|
|
86
|
-
result[key] = parser(value)
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
87
|
return result
|
|
90
88
|
}
|
|
91
89
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "presidium",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.1",
|
|
4
4
|
"description": "A library for creating web services",
|
|
5
5
|
"author": "Richard Tong",
|
|
6
6
|
"license": "MIT",
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"dependencies": {
|
|
62
62
|
"bcrypt": "^5.1.0",
|
|
63
63
|
"minimatch": "^9.0.3",
|
|
64
|
-
"presidium-websocket": ">=
|
|
64
|
+
"presidium-websocket": ">=2.0.1",
|
|
65
65
|
"rubico": "^2.7.7",
|
|
66
66
|
"tar-stream": "^2.1.4"
|
|
67
67
|
},
|