UNPKG

1.33 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.default = parse;
7
8var _lodash = require('lodash');
9
10var _lodash2 = _interopRequireDefault(_lodash);
11
12var _errors = require('./errors');
13
14var _semver = require('semver');
15
16var _semver2 = _interopRequireDefault(_semver);
17
18function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
20function parse(input) {
21 var json = _lodash2.default.isObject(input) ? input : JSON.parse(input);
22 if (!_lodash2.default.isObject(json) || _lodash2.default.isArray(input)) {
23 throw new _errors.CraftAiDecisionError('Invalid decision tree format, the given json is not an object.');
24 }
25 if (_lodash2.default.isUndefined(json) || _lodash2.default.isUndefined(json._version)) {
26 throw new _errors.CraftAiDecisionError('Invalid decision tree format, unable to find the version informations.');
27 }
28
29 var version = json._version;
30 if (!_semver2.default.valid(version)) {
31 throw new _errors.CraftAiDecisionError('Invalid decision tree format, "' + version + '" is not a valid version.');
32 } else if (_semver2.default.satisfies(version, '>=1.0.0 <3.0.0')) {
33 return json;
34 } else {
35 throw new _errors.CraftAiDecisionError('Invalid decision tree format, "' + version + '" is not a supported version.');
36 }
37}
\No newline at end of file