mirror of
https://github.com/marcogll/passkit-generator.git
synced 2026-03-15 18:25:24 +00:00
Edited schemas, moved outside the object all the schemas,
added schemas for structure and field
This commit is contained in:
38
schema.js
38
schema.js
@@ -1,7 +1,6 @@
|
|||||||
const Joi = require("joi");
|
const Joi = require("joi");
|
||||||
|
|
||||||
const CONSTANTS = {
|
let instance = Joi.object().keys({
|
||||||
instance: Joi.object().keys({
|
|
||||||
modelDir: Joi.string().required(),
|
modelDir: Joi.string().required(),
|
||||||
modelName: Joi.string(),
|
modelName: Joi.string(),
|
||||||
certificates: Joi.object().keys({
|
certificates: Joi.object().keys({
|
||||||
@@ -18,14 +17,16 @@ const CONSTANTS = {
|
|||||||
serialNumber: Joi.func()
|
serialNumber: Joi.func()
|
||||||
}),
|
}),
|
||||||
overrides: Joi.object()
|
overrides: Joi.object()
|
||||||
}),
|
});
|
||||||
barcode: Joi.object().keys({
|
|
||||||
|
let barcode = Joi.object().keys({
|
||||||
altText: Joi.string(),
|
altText: Joi.string(),
|
||||||
messageEncoding: Joi.string(),
|
messageEncoding: Joi.string(),
|
||||||
format: Joi.string().required().regex(/(PKBarcodeFormatQR|PKBarcodeFormatPDF417|PKBarcodeFormatAztec|PKBarcodeFormatCode128)/, "barcodeType"),
|
format: Joi.string().required().regex(/(PKBarcodeFormatQR|PKBarcodeFormatPDF417|PKBarcodeFormatAztec|PKBarcodeFormatCode128)/, "barcodeType"),
|
||||||
message: Joi.string().required()
|
message: Joi.string().required()
|
||||||
}),
|
});
|
||||||
field: Joi.object().keys({
|
|
||||||
|
let field = Joi.object().keys({
|
||||||
attributedValue: Joi.string(),
|
attributedValue: Joi.string(),
|
||||||
changeMessage: Joi.string(),
|
changeMessage: Joi.string(),
|
||||||
dataDetectorType: Joi.array().items(Joi.string().regex(/(PKDataDetectorTypePhoneNumber|PKDataDetectorTypeLink|PKDataDetectorTypeAddress|PKDataDetectorTypeCalendarEvent)/, "dataDetectorType")),
|
dataDetectorType: Joi.array().items(Joi.string().regex(/(PKDataDetectorTypePhoneNumber|PKDataDetectorTypeLink|PKDataDetectorTypeAddress|PKDataDetectorTypeCalendarEvent)/, "dataDetectorType")),
|
||||||
@@ -33,19 +34,24 @@ const CONSTANTS = {
|
|||||||
textAlignment: Joi.string().regex(/(PKTextAlignmentLeft|PKTextAlignmentCenter|PKTextAlignmentRight|PKTextAlignmentNatural)/, "graphic-alignment"),
|
textAlignment: Joi.string().regex(/(PKTextAlignmentLeft|PKTextAlignmentCenter|PKTextAlignmentRight|PKTextAlignmentNatural)/, "graphic-alignment"),
|
||||||
key: Joi.string().required(),
|
key: Joi.string().required(),
|
||||||
value: Joi.string().required()
|
value: Joi.string().required()
|
||||||
}),
|
})
|
||||||
structure: Joi.object().keys({
|
|
||||||
auxiliaryFields: Joi.array().items(this.field),
|
let structure = Joi.object().keys({
|
||||||
backFields: Joi.array().items(this.field),
|
auxiliaryFields: Joi.array().items(field),
|
||||||
headerFields: Joi.array().items(this.field),
|
backFields: Joi.array().items(field),
|
||||||
primaryFields: Joi.array().items(this.field),
|
headerFields: Joi.array().items(field),
|
||||||
secondaryFields: Joi.array().items(this.field),
|
primaryFields: Joi.array().items(field),
|
||||||
|
secondaryFields: Joi.array().items(field),
|
||||||
transitType: Joi.string().regex(/(PKTransitTypeAir|PKTransitTypeBoat|PKTransitTypeBus|PKTransitTypeGeneric|PKTransitTypeTrain)/)
|
transitType: Joi.string().regex(/(PKTransitTypeAir|PKTransitTypeBoat|PKTransitTypeBus|PKTransitTypeGeneric|PKTransitTypeTrain)/)
|
||||||
})
|
});
|
||||||
};
|
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
CONSTANTS,
|
constants: {
|
||||||
|
instance,
|
||||||
|
barcode,
|
||||||
|
field,
|
||||||
|
structure
|
||||||
|
},
|
||||||
isValid: (opts, schemaName) => {
|
isValid: (opts, schemaName) => {
|
||||||
let validation = Joi.validate(opts, schemaName);
|
let validation = Joi.validate(opts, schemaName);
|
||||||
return !validation.error;
|
return !validation.error;
|
||||||
|
|||||||
Reference in New Issue
Block a user