UNPKG

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