validate(cube, errorReporter) { Joi.validate(cube, cubeSchema, (err) => { if (err) { errorReporter.error(err.message); } else { this.validCubes[cube.name] = true; } }); }
validateAndCompile(dashboardTemplate, errorReporter) { Joi.validate(dashboardTemplate, dashboardTemplateSchema, (err) => { if (err) { errorReporter.error(err.message); } else { this.compiledTemplates.push(this.compileTemplate(dashboardTemplate, errorReporter)); } }); }
Joi.object().keys({ title: Joi.string(), description: Joi.string(), measures: Joi.func(), dimensions: Joi.func(), segments: Joi.func(), order: Joi.array().items(Joi.object().keys({ member: Joi.func().required(), direction: Joi.any().valid('asc', 'desc').required() })), filters: Joi.array().items(Joi.object().keys({ member: Joi.func().required(), operator: Joi.any().valid('contains', 'notContains', 'equals', 'set', 'notSet', 'gt', 'gte', 'lt', 'lte'), params: Joi.array().items(Joi.string().allow('').optional()) })), timeDimension: Joi.object().keys({ dimension: Joi.func().required(), dateRange: Joi.string().required(), granularity: Joi.any().valid('hour', 'day', 'week', 'month', 'year', null) }), visualization: Joi.object().keys({ type: Joi.any().valid('bar', 'line', 'table', 'area', 'singleValue', 'pie').required(), autoScale: Joi.boolean(), showTotal: Joi.boolean(), y2Axis: Joi.boolean(), showLegend: Joi.boolean(), axisRotated: Joi.boolean(), showYLabel: Joi.boolean(), showY2Label: Joi.boolean(), showTrendline: Joi.boolean(),
const normalizeQuery = (query) => { const { error } = Joi.validate(query, querySchema); if (error) { throw new UserError(`Invalid query format: ${error.message || error.toString()}`);
/** * Get the component configuration schema. * Can be overriden by the component implementation class * @returns {*} */ getConfigurationSchema() { return this.joi.object(); }
joi.array() .items(bootstrapServers, bootstrapCloudBackend) .unique((a, b) => { if (a.default === undefined || a.default === false) { return false; } // Cannot have multiple default endpoints truthy return a.default === b.default; })
_.curry((schema, payload) => { const { error, value } = Joi.validate(payload, schema, joiOptions); return { errors: parseJoiErrors(error), value, }; })
static validateWithSchema(value, schema) { const validatorOptions = { abortEarly: false, } const { error } = Joi.validate(value, schema, validatorOptions) if (error !== null && error.details) { return error.details.map(item => new ValidatorError(item.message, item.context.key)) } return null }
lab.before(async () => { DummyModel = class extends MongoModels {}; DummyModel.schema = Joi.object().keys({ _id: Joi.object(), count: Joi.number(), group: Joi.string(), isCool: Joi.boolean(), name: Joi.string().required() }); DummyModel.collectionName = 'dummies'; await MongoModels.connect(config.connection, config.options); });