mutants-appfx
Version:
appfx module
130 lines (100 loc) • 3.72 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = undefined;
var _regenerator = require('babel-runtime/regenerator');
var _regenerator2 = _interopRequireDefault(_regenerator);
var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
var _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray');
var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
var _nools = require('nools');
var _nools2 = _interopRequireDefault(_nools);
var _mutantsMicrofx = require('mutants-microfx');
var _DataProviderManager = require('../DataProviderManager');
var _DataProviderManager2 = _interopRequireDefault(_DataProviderManager);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var gid = 0;
// 分配全局id
var assignId = function assignId() {
// 每次加一
gid = gid + 1;
return gid;
};
var toArray = function toArray(val) {
return Array.isArray(val) ? val : [val];
};
var RuleSet = function () {
function RuleSet() {
var noolsSource = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
var define = arguments[1];
var scope = arguments[2];
(0, _classCallCheck3.default)(this, RuleSet);
this.name = 'RuleSet' + assignId();
this.flow = _nools2.default.compile(noolsSource, {
define: define,
scope: scope,
name: this.name
});
}
(0, _createClass3.default)(RuleSet, [{
key: 'execute',
value: function execute(facts) {
var _flow;
var session = (_flow = this.flow).getSession.apply(_flow, (0, _toConsumableArray3.default)(facts));
return session.match(function () {
session.dispose();
});
}
}, {
key: 'dispose',
value: function dispose() {
_nools2.default.deleteFlow(this.name);
this.flow = null;
}
}], [{
key: 'load',
value: function () {
var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(_ref2, define, scope) {
var sysid = _ref2.sysid,
mid = _ref2.mid;
var rules, src;
return _regenerator2.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return _DataProviderManager2.default.getRule({ sysid: sysid, mid: mid });
case 2:
rules = _context.sent.data.data;
src = rules.reduce(function (ret, it) {
if (typeof it === 'string') {
ret.push(it);
} else {
ret.push("rule '" + it.name + "' {" + "when {" + toArray(it.when).join(';') + "}" + "then {" + toArray(it.then).join(';') + "}" + "}");
}
return ret;
}, []);
return _context.abrupt('return', new RuleSet(src.join('\n'), define, scope));
case 5:
case 'end':
return _context.stop();
}
}
}, _callee, this);
}));
function load(_x2, _x3, _x4) {
return _ref.apply(this, arguments);
}
return load;
}()
}]);
return RuleSet;
}();
exports.default = RuleSet;
//# sourceMappingURL=index.js.map