MCPcopy
hub / github.com/breejs/bree / validate

Function validate

src/job-validator.js:207–317  ·  view source on GitHub ↗
(job, i, names, config)

Source from the content-addressed store, hash-verified

205
206// eslint-disable-next-line complexity
207const validate = async (job, i, names, config) => {
208 const errors = validateJobName(job, i, names);
209
210 if (errors.length > 0) {
211 throw combineErrors(errors);
212 }
213
214 // Support a simple string which we will transform to have a path
215 if (isSANB(job)) {
216 return validateStringJob(job, i, config);
217 }
218
219 // Job is a function
220 if (typeof job === 'function') {
221 return validateFunctionJob(job, i);
222 }
223
224 // Use a prefix for errors
225 const prefix = `Job #${i + 1} named "${job.name}"`;
226
227 errors.push(...(await validateJobPath(job, prefix, config)));
228
229 // Don't allow users to mix interval AND cron
230 if (job.interval !== undefined && job.cron !== undefined) {
231 errors.push(
232 new Error(`${prefix} cannot have both interval and cron configuration`)
233 );
234 }
235
236 // Don't allow users to mix timeout AND date
237 if (job.timeout !== undefined && job.date !== undefined) {
238 errors.push(new Error(`${prefix} cannot have both timeout and date`));
239 }
240
241 const jobNameError = validateReservedJobName(job.name);
242 if (jobNameError) {
243 errors.push(jobNameError);
244 }
245
246 // Validate date
247 if (job.date !== undefined && !(job.date instanceof Date)) {
248 errors.push(new Error(`${prefix} had an invalid Date of ${job.date}`));
249 }
250
251 for (const prop of ['timeout', 'interval']) {
252 if (job[prop] !== undefined) {
253 try {
254 parseValue(job[prop]);
255 } catch (err) {
256 errors.push(
257 combineErrors([
258 new Error(`${prefix} had an invalid ${prop} of ${job.timeout}`),
259 err
260 ])
261 );
262 }
263 }
264 }

Callers

nothing calls this directly

Calls 8

validateJobNameFunction · 0.85
isSANBFunction · 0.85
validateStringJobFunction · 0.85
validateFunctionJobFunction · 0.85
validateJobPathFunction · 0.85
validateReservedJobNameFunction · 0.85
parseValueFunction · 0.85
validateCronFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…