UNPKG

1.08 kBJavaScriptView Raw
1var ajv = require('ajv')();
2var sb2Defs = require('./sb2_definitions.json');
3var sb3Defs = require('./sb3_definitions.json');
4var sb2Schema = require('./sb2_schema.json');
5var sb3Schema = require('./sb3_schema.json');
6var sprite2Schema = require('./sprite2_schema.json');
7var sprite3Schema = require('./sprite3_schema.json');
8ajv.addSchema(sb2Defs).addSchema(sb3Defs);
9
10module.exports = function (isSprite, input, callback) {
11 var validateSb2 = ajv.compile(isSprite ? sprite2Schema : sb2Schema);
12 var validateSb3 = ajv.compile(isSprite ? sprite3Schema : sb3Schema);
13
14 var isValidSb2 = validateSb2(input);
15
16 if (isValidSb2) {
17 input.projectVersion = 2;
18 return callback(null, input);
19 }
20
21 var isValidSb3 = validateSb3(input);
22 if (isValidSb3) {
23 input.projectVersion = 3;
24 return callback(null, input);
25 }
26
27 var validationErrors = {
28 validationError: 'Could not parse as a valid SB2 or SB3 project.',
29 sb2Errors: validateSb2.errors,
30 sb3Errors: validateSb3.errors
31 };
32
33 callback(validationErrors);
34};