diff --git a/schema.js b/schema.js new file mode 100644 index 0000000..c097475 --- /dev/null +++ b/schema.js @@ -0,0 +1,39 @@ +const Joi = require("joi"); + +const schema = Joi.object().keys({ + modelDir: Joi.string(), + modelName: Joi.string(), + certificates: Joi.object().keys({ + dir: Joi.string(), + wwdr: Joi.string(), + signerCert: Joi.string(), + signerKey: Joi.object().keys({ + keyFile: Joi.string(), + passphrase: Joi.string(), + }) + }), + handlers: Joi.object().keys({ + barcode: Joi.func(), + serialNumber: Joi.func() + }), + overrides: Joi.object() +}); + +const requiredSchema = schema.requiredKeys( + "", + "modelDir", + "certificates", + "certificates.dir", + "certificates.wwdr", + "certificates.signerCert", + "certificates.signerKey", + "certificates.signerKey.keyFile", + "certificates.signerKey.passphrase" +); + +module.exports = { + validate: (opts) => { + let validation = Joi.validate(opts, requiredSchema); + return !validation.error; + } +}; \ No newline at end of file