presidium 4.10.0 → 4.11.0

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.
@@ -0,0 +1,3 @@
1
+ const DatabaseServer = require("presidium-db-client-server/DatabaseServer")
2
+
3
+ module.exports = DatabaseServer
package/Validator.js ADDED
@@ -0,0 +1,196 @@
1
+ const Validator = {
2
+
3
+ /**
4
+ * @name Validator.Object
5
+ *
6
+ * @docs
7
+ * ```specscript
8
+ * Validator.Object(validators Object<function>) -> objectValidator function
9
+ *
10
+ * objectValidator(data any) -> result Object
11
+ * ```
12
+ */
13
+ Object(validators) {
14
+ return function _Object(data) {
15
+ if (typeof data == "object") {
16
+ const result = {}
17
+ for (const key in validators) {
18
+ const validator = validators[key]
19
+ const value = data[key]
20
+ try {
21
+ const validated = validator(value)
22
+ if (validated != Validator.Optional) {
23
+ result[key] = validator(value)
24
+ }
25
+ } catch (error) {
26
+ error.key = key
27
+ throw error
28
+ }
29
+ }
30
+ return result
31
+ }
32
+ const error = new Error("BadObject")
33
+ error.data = data
34
+ throw error
35
+ }
36
+ },
37
+
38
+ /**
39
+ * @name Validator.Array
40
+ *
41
+ * @docs
42
+ * ```specscript
43
+ * Validator.Array(data) -> Array
44
+ *
45
+ * Validator.Array(validator function) -> arrayValidator
46
+ *
47
+ * arrayValidator(data any) -> result Array
48
+ * ```
49
+ */
50
+ Array(data) {
51
+ if (typeof data == "function") {
52
+ const validator = data
53
+ return function _ArrayOf(_data) {
54
+ if (Array.isArray(_data)) {
55
+ const result = []
56
+ for (let i = 0; i < _data.length; i++) {
57
+ try {
58
+ result.push(validator(_data[i]))
59
+ } catch (error) {
60
+ error.index = i
61
+ throw error
62
+ }
63
+ }
64
+ return result
65
+ }
66
+ const error = new Error("BadArray")
67
+ error.data = _data
68
+ throw error
69
+ }
70
+ }
71
+ if (Array.isArray(data)) {
72
+ return data
73
+ }
74
+ const error = new Error("BadArray")
75
+ error.data = data
76
+ throw error
77
+ },
78
+
79
+ /**
80
+ * @name Validator.Number
81
+ *
82
+ * @docs
83
+ * ```specscript
84
+ * Validator.Number(data any) -> number
85
+ * ```
86
+ */
87
+ Number(data) {
88
+ if (typeof data == "number") {
89
+ return data
90
+ }
91
+ const error = new Error("BadNumber")
92
+ error.data = data
93
+ throw error
94
+ },
95
+
96
+ /**
97
+ * @name Validator.String
98
+ *
99
+ * @docs
100
+ * ```specscript
101
+ * Validator.String(data any) -> string
102
+ * ```
103
+ */
104
+ String(data) {
105
+ if (typeof data == "string") {
106
+ return data
107
+ }
108
+ const error = new Error("BadString")
109
+ error.data = data
110
+ throw error
111
+ },
112
+
113
+ /**
114
+ * @name Validator.Email
115
+ *
116
+ * @docs
117
+ * ```specscript
118
+ * Validator.Email(data any) -> email string
119
+ * ```
120
+ */
121
+ Email(data) {
122
+ if (
123
+ data.includes("@")
124
+ && data.includes(".")
125
+ && !data.startsWith("@")
126
+ && !data.endsWith("@")
127
+ && !data.startsWith(".")
128
+ && !data.endsWith(".")
129
+ ) {
130
+ return data
131
+ }
132
+ const error = new Error("BadEmail")
133
+ error.data = data
134
+ throw error
135
+ },
136
+
137
+ /**
138
+ * @name Validator.Boolean
139
+ *
140
+ * @docs
141
+ * ```specscript
142
+ * Validator.Boolean(data any) -> boolean
143
+ * ```
144
+ */
145
+ Boolean(data) {
146
+ if (typeof data == "boolean") {
147
+ return data
148
+ }
149
+ const error = new Error("BadBoolean")
150
+ error.data = data
151
+ throw error
152
+ },
153
+
154
+ /**
155
+ * @name Validator.OneOf
156
+ *
157
+ * @docs
158
+ * ```specscript
159
+ * Validator.OneOf(...values Arguments) -> oneOfValidator
160
+ *
161
+ * oneOfValidator(data any) -> result string|number
162
+ * ```
163
+ */
164
+ OneOf(...values) {
165
+ return function _OneOf(data) {
166
+ if (values.includes(data)) {
167
+ return data
168
+ }
169
+ const error = new Error("NotOneOf")
170
+ error.data = data
171
+ throw error
172
+ }
173
+ },
174
+
175
+ /**
176
+ * @name Validator.Optional
177
+ *
178
+ * @docs
179
+ * ```specscript
180
+ * Validator.Optional(validator function) -> optionalValidator
181
+ *
182
+ * optionalValidator(data any) -> result any
183
+ * ```
184
+ */
185
+ Optional(validator) {
186
+ return function _Optional(data) {
187
+ if (data == null) {
188
+ return Validator.Optional
189
+ }
190
+ return validator(data)
191
+ }
192
+ },
193
+
194
+ }
195
+
196
+ module.exports = Validator
package/index.js CHANGED
@@ -3,33 +3,35 @@
3
3
  */
4
4
 
5
5
  module.exports = {
6
- AwsCredentials: require('./AwsCredentials.js'),
7
- DatabaseServer: require('./DatabaseServer.js'),
8
- DiskHashTable: require('./DiskHashTable.js'),
9
- DiskHashTableClient: require('./DiskHashTableClient.js'),
10
- DiskSortedHashTable: require('./DiskSortedHashTable.js'),
11
- DiskSortedHashTableClient: require('./DiskSortedHashTableClient.js'),
12
- Docker: require('./Docker.js'),
13
- DynamoDBGlobalSecondaryIndex: require('./DynamoDBGlobalSecondaryIndex.js'),
14
- DynamoDBStream: require('./DynamoDBStream.js'),
15
- DynamoDBTable: require('./DynamoDBTable.js'),
16
- ECR: require('./ECR.js'),
17
- GoogleChromeDevTools: require('./GoogleChromeDevTools.js'),
18
- GoogleChromeForTesting: require('./GoogleChromeForTesting.js'),
19
- HTTP: require('./HTTP.js'),
20
- NpmToken: require('./NpmToken.js'),
21
- OptionalValidator: require('./OptionalValidator.js'),
22
- Password: require('./Password.js'),
23
- Readable: require('./Readable.js'),
24
- S3Bucket: require('./S3Bucket.js'),
25
- Secrets: require('./Secrets.js'),
26
- SecretsManager: require('./SecretsManager.js'),
27
- StrictValidator: require('./StrictValidator.js'),
28
- TranscribeStream: require('./TranscribeStream.js'),
29
- userAgent: require('./userAgent.js'),
30
- WebSocket: require('./WebSocket.js'),
31
- WebSocketServer: require('./WebSocketServer.js'),
32
- WebSocketSecureServer: require('./WebSocketSecureServer.js'),
33
- ServerWebSocket: require('./ServerWebSocket.js'),
34
- XML: require('./XML.js'),
6
+ AwsCredentials: require("./AwsCredentials.js"),
7
+ DatabaseLoadBalancer: require("./DatabaseLoadBalancer.js"),
8
+ DatabaseServer: require("./DatabaseServer.js"),
9
+ DiskHashTable: require("./DiskHashTable.js"),
10
+ DiskHashTableClient: require("./DiskHashTableClient.js"),
11
+ DiskSortedHashTable: require("./DiskSortedHashTable.js"),
12
+ DiskSortedHashTableClient: require("./DiskSortedHashTableClient.js"),
13
+ Docker: require("./Docker.js"),
14
+ DynamoDBGlobalSecondaryIndex: require("./DynamoDBGlobalSecondaryIndex.js"),
15
+ DynamoDBStream: require("./DynamoDBStream.js"),
16
+ DynamoDBTable: require("./DynamoDBTable.js"),
17
+ ECR: require("./ECR.js"),
18
+ GoogleChromeDevTools: require("./GoogleChromeDevTools.js"),
19
+ GoogleChromeForTesting: require("./GoogleChromeForTesting.js"),
20
+ HTTP: require("./HTTP.js"),
21
+ NpmToken: require("./NpmToken.js"),
22
+ OptionalValidator: require("./OptionalValidator.js"),
23
+ Password: require("./Password.js"),
24
+ Readable: require("./Readable.js"),
25
+ S3Bucket: require("./S3Bucket.js"),
26
+ Secrets: require("./Secrets.js"),
27
+ SecretsManager: require("./SecretsManager.js"),
28
+ StrictValidator: require("./StrictValidator.js"),
29
+ TranscribeStream: require("./TranscribeStream.js"),
30
+ userAgent: require("./userAgent.js"),
31
+ WebSocket: require("./WebSocket.js"),
32
+ WebSocketServer: require("./WebSocketServer.js"),
33
+ WebSocketSecureServer: require("./WebSocketSecureServer.js"),
34
+ ServerWebSocket: require("./ServerWebSocket.js"),
35
+ Validator: require("./Validator.js"),
36
+ XML: require("./XML.js"),
35
37
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "presidium",
3
- "version": "4.10.0",
3
+ "version": "4.11.0",
4
4
  "description": "The Presidium library.",
5
5
  "author": "Richard Tong",
6
6
  "license": "CFOSS",
@@ -13,6 +13,7 @@
13
13
  "files": [
14
14
  "internal",
15
15
  "AwsCredentials.js",
16
+ "DatabaseLoadBalancer.js",
16
17
  "DatabaseServer.js",
17
18
  "DiskHashTable.js",
18
19
  "DiskHashTableClient.js",
@@ -41,6 +42,7 @@
41
42
  "WebSocketServer.js",
42
43
  "WebSocketSecureServer.js",
43
44
  "ServerWebSocket.js",
45
+ "Validator.js",
44
46
  "XML.js",
45
47
  "LICENSE"
46
48
  ],