Files
passkit-generator/schema.js
alexandercerutti b74da4ba93 Added Barcode(s) correctness check with backward and forward compatibility check;
Added constants in schema.js to keep all the schemas against which validate;
Added schema for barcodes;
Renamed "settingSchema" in "schema";
Renamed schemas "validate" function in "isValid";
Edited "isValid" fn to accept both the schema and the object;
Added more error-catching conditions;
2018-07-22 23:21:17 +02:00

39 lines
984 B
JavaScript

const Joi = require("joi");
const CONSTANTS = {
instance: Joi.object().keys({
modelDir: Joi.string().required(),
modelName: Joi.string(),
certificates: Joi.object().keys({
dir: Joi.string().required(),
wwdr: Joi.string().required(),
signerCert: Joi.string().required(),
signerKey: Joi.object().keys({
keyFile: Joi.string().required(),
passphrase: Joi.string().required(),
}).required()
}).required(),
handlers: Joi.object().keys({
barcode: Joi.func(),
serialNumber: Joi.func()
}),
overrides: Joi.object()
}),
barcode: Joi.object().keys({
altText: Joi.string(),
messageEncoding: Joi.string(),
format: Joi.string().required().regex(/(PKBarcodeFormatQR|PKBarcodeFormatPDF417|PKBarcodeFormatAztec|PKBarcodeFormatCode128)/, "barcodeType"),
message: Joi.string().required()
}),
};
module.exports = {
CONSTANTS,
isValid: (opts, schemaName) => {
let validation = Joi.validate(opts, schemaName);
return !validation.error;
}
};