UNPKG

mutants-appfx

Version:

appfx module

130 lines (100 loc) 3.72 kB
'use strict'; 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