1 | var ajv = require('ajv')();
|
2 | var sb2Defs = require('./sb2_definitions.json');
|
3 | var sb3Defs = require('./sb3_definitions.json');
|
4 | var sb2Schema = require('./sb2_schema.json');
|
5 | var sb3Schema = require('./sb3_schema.json');
|
6 | var sprite2Schema = require('./sprite2_schema.json');
|
7 | var sprite3Schema = require('./sprite3_schema.json');
|
8 | ajv.addSchema(sb2Defs).addSchema(sb3Defs);
|
9 |
|
10 | module.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 | };
|