From 12a2dda2b801487ccb10690d19d9f28aed90c57c Mon Sep 17 00:00:00 2001 From: Evgeny Zinoviev Date: Tue, 2 Mar 2021 23:54:12 +0300 Subject: jobd-master: support run-manual(); improve data validation here and there --- src/lib/data-validator.js | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'src/lib/data-validator.js') diff --git a/src/lib/data-validator.js b/src/lib/data-validator.js index 276ea9b..6d1d8f0 100644 --- a/src/lib/data-validator.js +++ b/src/lib/data-validator.js @@ -36,8 +36,9 @@ function checkType(expectedType, value) { /** * @param {object} data * @param {array} schema + * @throws Error */ -function validateMessageData(data, schema) { +function validateObjectSchema(data, schema) { if (!isObject(data)) throw new Error(`data is not an object`) @@ -68,4 +69,21 @@ function validateMessageData(data, schema) { } } -module.exports = {validateMessageData} \ No newline at end of file +function validateTargetsList(targets) { + if (!Array.isArray(targets)) + throw new Error('targets must be array') + + if (!targets.length) + throw new Error('targets are empty') + + for (const t of targets) { + const type = typeof t + if (type !== 'string') + throw new Error(`all targets must be strings, ${type} given`) + } +} + +module.exports = { + validateObjectSchema, + validateTargetsList +} \ No newline at end of file -- cgit v1.2.3