-
Notifications
You must be signed in to change notification settings - Fork 0
/
utils.js
37 lines (30 loc) · 920 Bytes
/
utils.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
module.exports = {
/**
* return unix epoch in seconds
*/
nowSec: () => Math.ceil((new Date()).getTime() / 1000),
/**
*
* @param {*} args
* @param {*} rules for each args.key
*/
assertArgs: async function (args, rules) {
if (rules instanceof RegExp) {
if (!args.toString().match(rules)) {
throw new Error(`Argument malformed: ${key}`)
}
return
}
for (let [key, regexp] of Object.entries(rules)) {
if (typeof args[key] === 'object') {
await this.assertArgs(args[key], regexp)
}
if (typeof args[key] == 'undefined') {
throw new Error(`Argument missing: ${key}`)
}
if (!args[key].toString().match(regexp)) {
throw new Error(`Argument malformed: ${key}`)
}
}
}
}