1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.default = parse;
|
7 |
|
8 | var _lodash = require('lodash');
|
9 |
|
10 | var _lodash2 = _interopRequireDefault(_lodash);
|
11 |
|
12 | var _errors = require('./errors');
|
13 |
|
14 | var _semver = require('semver');
|
15 |
|
16 | var _semver2 = _interopRequireDefault(_semver);
|
17 |
|
18 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
19 |
|
20 | function 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 |