blob: 173c401b0a8970ce143518914b7f7ed36f01d264 [file] [log] [blame]
const Validator = require('jsonschema').Validator;
const animationSchema = require('./docs/json/animation.json');
const booleanSchema = require('./docs/json/helpers/boolean.json');
const transformSchema = require('./docs/json/helpers/transform.json');
const blendModeSchema = require('./docs/json/helpers/blendMode.json');
const lineCapSchema = require('./docs/json/helpers/lineCap.json');
const lineJoinSchema = require('./docs/json/helpers/lineJoin.json');
const compositeSchema = require('./docs/json/helpers/composite.json');
const textCapsSchema = require('./docs/json/helpers/textCaps.json');
const textJustificationSchema = require('./docs/json/helpers/textJustification.json');
const layerShapeSchema = require('./docs/json/layers/shape.json');
const layerImageSchema = require('./docs/json/layers/image.json');
const layerNullSchema = require('./docs/json/layers/null.json');
const layerPreCompSchema = require('./docs/json/layers/preComp.json');
const layerSolidSchema = require('./docs/json/layers/solid.json');
const layerTextSchema = require('./docs/json/layers/text.json');
const shapeEllipseSchema = require('./docs/json/shapes/ellipse.json');
const shapeFillSchema = require('./docs/json/shapes/fill.json');
const shapeGFillSchema = require('./docs/json/shapes/gFill.json');
const shapeGroupSchema = require('./docs/json/shapes/group.json');
const shapeGStrokeSchema = require('./docs/json/shapes/gStroke.json');
const shapeMergeSchema = require('./docs/json/shapes/merge.json');
const shapeRectSchema = require('./docs/json/shapes/rect.json');
const shapeRepeaterSchema = require('./docs/json/shapes/repeater.json');
const shapeRoundSchema = require('./docs/json/shapes/round.json');
const shapeShapeSchema = require('./docs/json/shapes/shape.json');
const shapeStarSchema = require('./docs/json/shapes/star.json');
const shapeStrokeSchema = require('./docs/json/shapes/stroke.json');
const shapeTransformSchema = require('./docs/json/shapes/transform.json');
const shapeTrimSchema = require('./docs/json/shapes/trim.json');
const doubleKeyframeSchema = require('./docs/json/properties/doubleKeyframe.json');
const multiDimensionalSchema = require('./docs/json/properties/multiDimensional.json');
const multiDimensionalKeyframedSchema = require('./docs/json/properties/multiDimensionalKeyframed.json');
const multiDimensionalSpatialKeyframedSchema = require('./docs/json/properties/multiDimensionalSpatialKeyframed.json');
const offsetKeyframeSchema = require('./docs/json/properties/offsetKeyframe.json');
const offsetSpatialKeyframeSchema = require('./docs/json/properties/offsetSpatialKeyframe.json');
const shapeSchema = require('./docs/json/properties/shape.json');
const shapeKeyframedSchema = require('./docs/json/properties/shapeKeyframed.json');
const shapePropSchema = require('./docs/json/properties/shapeProp.json');
const shapePropKeyframeSchema = require('./docs/json/properties/shapePropKeyframe.json');
const valueSchema = require('./docs/json/properties/value.json');
const valueKeyframeSchema = require('./docs/json/properties/valueKeyframe.json');
const valueKeyframedSchema = require('./docs/json/properties/valueKeyframed.json');
const gradientSchema = require('./docs/json/properties/gradient.json');
const imageSourceSchema = require('./docs/json/sources/image.json');
const preCompSourceSchema = require('./docs/json/sources/precomp.json');
const charSourceSchema = require('./docs/json/sources/chars.json');
var v = new Validator();
v.addSchema(booleanSchema, '/#/helpers/boolean');
v.addSchema(lineCapSchema, '/#/helpers/lineCap');
v.addSchema(lineJoinSchema, '/#/helpers/lineJoin');
v.addSchema(compositeSchema, '/#/helpers/composite');
v.addSchema(transformSchema, '/#/helpers/transform');
v.addSchema(blendModeSchema, '/#/helpers/blendMode');
v.addSchema(textCapsSchema, '/#/helpers/textCaps');
v.addSchema(textJustificationSchema, '/#/helpers/textJustification');
v.addSchema(layerShapeSchema, '/#/layers/shape');
v.addSchema(layerImageSchema, '/#/layers/image');
v.addSchema(layerNullSchema, '/#/layers/null');
v.addSchema(layerPreCompSchema, '/#/layers/preComp');
v.addSchema(layerSolidSchema, '/#/layers/solid');
v.addSchema(layerTextSchema, '/#/layers/text');
v.addSchema(shapeEllipseSchema, '/#/shapes/ellipse');
v.addSchema(shapeFillSchema, '/#/shapes/fill');
v.addSchema(shapeGFillSchema, '/#/shapes/gFill');
v.addSchema(shapeGroupSchema, '/#/shapes/group');
v.addSchema(shapeGStrokeSchema, '/#/shapes/gStroke');
v.addSchema(shapeMergeSchema, '/#/shapes/merge');
v.addSchema(shapeRectSchema, '/#/shapes/rect');
v.addSchema(shapeRepeaterSchema, '/#/shapes/repeater');
v.addSchema(shapeRoundSchema, '/#/shapes/round');
v.addSchema(shapeShapeSchema, '/#/shapes/shape');
v.addSchema(shapeStarSchema, '/#/shapes/star');
v.addSchema(shapeStrokeSchema, '/#/shapes/stroke');
v.addSchema(shapeTransformSchema, '/#/shapes/transform');
v.addSchema(shapeTrimSchema, '/#/shapes/trim');
v.addSchema(doubleKeyframeSchema, '/#/properties/a');
v.addSchema(multiDimensionalSchema, '/#/properties/multiDimensional');
v.addSchema(multiDimensionalKeyframedSchema, '/#/properties/multiDimensionalKeyframed');
v.addSchema(multiDimensionalSpatialKeyframedSchema, '/#/properties/multiDimensionalSpatialKeyframed');
v.addSchema(offsetKeyframeSchema, '/#/properties/offsetKeyframe');
v.addSchema(offsetSpatialKeyframeSchema, '/#/properties/offsetSpatialKeyframe');
v.addSchema(shapeSchema, '/#/properties/shape');
v.addSchema(shapeKeyframedSchema, '/#/properties/shapeKeyframed');
v.addSchema(shapePropSchema, '/#/properties/shapeProp');
v.addSchema(shapePropKeyframeSchema, '/#/properties/shapePropKeyframe');
v.addSchema(valueSchema, '/#/properties/value');
v.addSchema(valueKeyframeSchema, '/#/properties/valueKeyframe');
v.addSchema(valueKeyframedSchema, '/#/properties/valueKeyframed');
v.addSchema(gradientSchema, '/#/properties/gradient');
v.addSchema(imageSourceSchema, '/#/sources/image');
v.addSchema(preCompSourceSchema, '/#/sources/precomp');
v.addSchema(charSourceSchema, '/#/sources/chars');
function validate(animation) {
return v.validate(animation, animationSchema, {nestedErrors: true});
}
module.exports = validate;