UNPKG

4.93 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.state = undefined;
7
8var _extends2 = require("babel-runtime/helpers/extends");
9
10var _extends3 = _interopRequireDefault(_extends2);
11
12var _slicedToArray2 = require("babel-runtime/helpers/slicedToArray");
13
14var _slicedToArray3 = _interopRequireDefault(_slicedToArray2);
15
16var _getIterator2 = require("babel-runtime/core-js/get-iterator");
17
18var _getIterator3 = _interopRequireDefault(_getIterator2);
19
20var _getPrototypeOf = require("babel-runtime/core-js/object/get-prototype-of");
21
22var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
23
24var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck");
25
26var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
27
28var _createClass2 = require("babel-runtime/helpers/createClass");
29
30var _createClass3 = _interopRequireDefault(_createClass2);
31
32var _possibleConstructorReturn2 = require("babel-runtime/helpers/possibleConstructorReturn");
33
34var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
35
36var _get3 = require("babel-runtime/helpers/get");
37
38var _get4 = _interopRequireDefault(_get3);
39
40var _inherits2 = require("babel-runtime/helpers/inherits");
41
42var _inherits3 = _interopRequireDefault(_inherits2);
43
44var _args = require("./args");
45
46function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
47
48var state = exports.state = function state(Class) {
49 return function (_Class) {
50 (0, _inherits3.default)(_class, _Class);
51
52 function _class() {
53 var _Object$getPrototypeO;
54
55 (0, _classCallCheck3.default)(this, _class);
56
57 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
58 args[_key] = arguments[_key];
59 }
60
61 return (0, _possibleConstructorReturn3.default)(this, (_Object$getPrototypeO = (0, _getPrototypeOf2.default)(_class)).call.apply(_Object$getPrototypeO, [this].concat(args)));
62 }
63
64 (0, _createClass3.default)(_class, [{
65 key: "state",
66 value: function state() {
67 for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
68 args[_key2] = arguments[_key2];
69 }
70
71 this._state = (0, _args.merge)((0, _args.toObjects)(args), this._state);
72
73 if ((0, _get4.default)((0, _getPrototypeOf2.default)(_class.prototype), "state", this)) {
74 return (0, _get4.default)((0, _getPrototypeOf2.default)(_class.prototype), "state", this).call(this, this._state.toJS());
75 } else {
76 return this._state.toJS();
77 }
78 }
79 }, {
80 key: "stateful",
81 value: function stateful() {
82 var _this2 = this;
83
84 var ignore = arguments.length <= 0 || arguments[0] === undefined ? [] : arguments[0];
85
86 ignore = ignore.concat(["functions", "state"]);
87
88 var _iteratorNormalCompletion = true;
89 var _didIteratorError = false;
90 var _iteratorError = undefined;
91
92 try {
93 var _loop = function _loop() {
94 var _step$value = (0, _slicedToArray3.default)(_step.value, 2);
95
96 var name = _step$value[0];
97 var fn = _step$value[1];
98
99 if (ignore.indexOf(name) == -1) {
100 _this2[name] = function () {
101 for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
102 args[_key3] = arguments[_key3];
103 }
104
105 return fn.bind(_this2)((0, _extends3.default)({}, args, { state: _this2.state() }));
106 };
107 }
108 };
109
110 for (var _iterator = (0, _getIterator3.default)(this.functions().entries()), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
111 _loop();
112 }
113 } catch (err) {
114 _didIteratorError = true;
115 _iteratorError = err;
116 } finally {
117 try {
118 if (!_iteratorNormalCompletion && _iterator.return) {
119 _iterator.return();
120 }
121 } finally {
122 if (_didIteratorError) {
123 throw _iteratorError;
124 }
125 }
126 }
127 }
128 }], [{
129 key: "factory",
130 value: function factory() {
131 if ((0, _get4.default)((0, _getPrototypeOf2.default)(_class), "factory", this)) {
132 var _get2;
133
134 for (var _len4 = arguments.length, args = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
135 args[_key4] = arguments[_key4];
136 }
137
138 var instance = (_get2 = (0, _get4.default)((0, _getPrototypeOf2.default)(_class), "factory", this)).call.apply(_get2, [this].concat(args));
139 instance._state = (0, _args.merge)((0, _args.toObjects)(args), instance._state);
140 return instance;
141 }
142 }
143 }]);
144 return _class;
145 }(Class);
146};
147//# sourceMappingURL=industry-state.js.map
\No newline at end of file