1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 | 1 1 39 1 1 1 39 39 39 39 69 69 39 1 5 5 17 17 44 44 130 69 69 69 69 28 24 28 28 7 7 21 28 69 69 69 21 20 19 1 1 21 7 6 1 1 1 1 1 1 28 | "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _prototypeProperties = function (child, staticProps, instanceProps) { Iif (staticProps) Object.defineProperties(child, staticProps); Eif (instanceProps) Object.defineProperties(child.prototype, instanceProps); }; var _classCallCheck = function (instance, Constructor) { Iif (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }; /** * Actions * * Instances of the Actions class represent a set of actions. (In Flux parlance, * these might be more accurately denoted as Action Creators, while Action * refers to the payload sent to the dispatcher, but this is... confusing. We * will use Action to mean the function you call to trigger a dispatch.) * * Create actions by extending from the base Actions class and adding methods. * All methods on the prototype (except the constructor) will be * converted into actions. The return value of an action is used as the body * of the payload sent to the dispatcher. */ var uniqueId = _interopRequire(require("uniqueid")); var Actions = (function () { function Actions() { _classCallCheck(this, Actions); this._baseId = uniqueId(); var methodNames = this._getActionMethodNames(); for (var i = 0; i < methodNames.length; i++) { var methodName = methodNames[i]; this._wrapAction(methodName); } this.getConstants = this.getActionIds; } _prototypeProperties(Actions, null, { getActionIds: { value: function getActionIds() { var _this = this; return this._getActionMethodNames().reduce(function (result, actionName) { result[actionName] = _this[actionName]._id; return result; }, {}); }, writable: true, configurable: true }, _getActionMethodNames: { value: function _getActionMethodNames(instance) { var _this = this; return Object.getOwnPropertyNames(this.constructor.prototype).filter(function (name) { return name !== "constructor" && typeof _this[name] === "function"; }); }, writable: true, configurable: true }, _wrapAction: { value: function _wrapAction(methodName) { var _this = this; var originalMethod = this[methodName]; var actionId = this._createActionId(methodName); var action = function () { for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } var body = originalMethod.apply(_this, args); if (isPromise(body)) { var promise = body; _this._dispatchAsync(actionId, promise, args, methodName); } else { _this._dispatch(actionId, body, args, methodName); } // Return original method's return value to caller return body; }; action._id = actionId; this[methodName] = action; }, writable: true, configurable: true }, _createActionId: { /** * Create unique string constant for an action method, using * @param {string} methodName - Name of the action method */ value: function _createActionId(methodName) { return "" + this._baseId + "-" + methodName; }, writable: true, configurable: true }, _dispatch: { value: function _dispatch(actionId, body, args, methodName) { if (typeof this.dispatch === "function") { if (typeof body !== "undefined") { this.dispatch(actionId, body, args); } } else { Eif (process.env.NODE_ENV !== "production") { console.warn("You've attempted to perform the action " + ("" + this.constructor.name + "#" + methodName + ", but it hasn't been added ") + "to a Flux instance."); } } return body; }, writable: true, configurable: true }, _dispatchAsync: { value: function _dispatchAsync(actionId, promise, args, methodName) { if (typeof this.dispatchAsync === "function") { return this.dispatchAsync(actionId, promise, args); } else { Eif (process.env.NODE_ENV !== "production") { console.warn("You've attempted to perform the asynchronous action " + ("" + this.constructor.name + "#" + methodName + ", but it hasn't been added ") + "to a Flux instance."); } return promise; } }, writable: true, configurable: true } }); return Actions; })(); module.exports = Actions; function isPromise(value) { return value && typeof value.then === "function"; } //# sourceMappingURL=data:application/json;base64,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QUFDLEdBQUcsQ0FBQyxRQUFRLEtBQUssWUFBWSxFQUFFO0FBQ3pDLG1CQUFPLENBQUMsSUFBSSxDQUNWLGtEQUNHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxTQUFJLFVBQVUsaUNBQTZCLHdCQUM5QyxDQUN0QixDQUFDO1dBQ0g7U0FDRjs7QUFFRCxlQUFPLElBQUksQ0FBQztPQUNiOzs7O0FBRUQsa0JBQWM7YUFBQSx3QkFBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7QUFDbEQsWUFBSSxPQUFPLElBQUksQ0FBQyxhQUFhLEtBQUssVUFBVSxFQUFFO0FBQzVDLGlCQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztTQUNwRCxNQUFNO0FBQ0wsY0FBSSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsS0FBSyxZQUFZLEVBQUU7QUFDekMsbUJBQU8sQ0FBQyxJQUFJLENBQ1YsK0RBQ0csSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLFNBQUksVUFBVSxpQ0FBNkIsd0JBQzlDLENBQ3RCLENBQUM7V0FDSDs7QUFFRCxpQkFBTyxPQUFPLENBQUM7U0FDaEI7T0FFRjs7Ozs7O1NBOUZrQixPQUFPOzs7aUJBQVAsT0FBTzs7O0FBa0c1QixTQUFTLFNBQVMsQ0FBQyxLQUFLLEVBQUU7QUFDeEIsU0FBTyxLQUFLLElBQUksT0FBTyxLQUFLLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQztDQUNsRCIsImZpbGUiOiJzcmMvQWN0aW9ucy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQWN0aW9uc1xuICpcbiAqIEluc3RhbmNlcyBvZiB0aGUgQWN0aW9ucyBjbGFzcyByZXByZXNlbnQgYSBzZXQgb2YgYWN0aW9ucy4gKEluIEZsdXggcGFybGFuY2UsXG4gKiB0aGVzZSBtaWdodCBiZSBtb3JlIGFjY3VyYXRlbHkgZGVub3RlZCBhcyBBY3Rpb24gQ3JlYXRvcnMsIHdoaWxlIEFjdGlvblxuICogcmVmZXJzIHRvIHRoZSBwYXlsb2FkIHNlbnQgdG8gdGhlIGRpc3BhdGNoZXIsIGJ1dCB0aGlzIGlzLi4uIGNvbmZ1c2luZy4gV2VcbiAqIHdpbGwgdXNlIEFjdGlvbiB0byBtZWFuIHRoZSBmdW5jdGlvbiB5b3UgY2FsbCB0byB0cmlnZ2VyIGEgZGlzcGF0Y2guKVxuICpcbiAqIENyZWF0ZSBhY3Rpb25zIGJ5IGV4dGVuZGluZyBmcm9tIHRoZSBiYXNlIEFjdGlvbnMgY2xhc3MgYW5kIGFkZGluZyBtZXRob2RzLlxuICogQWxsIG1ldGhvZHMgb24gdGhlIHByb3RvdHlwZSAoZXhjZXB0IHRoZSBjb25zdHJ1Y3Rvcikgd2lsbCBiZVxuICogY29udmVydGVkIGludG8gYWN0aW9ucy4gVGhlIHJldHVybiB2YWx1ZSBvZiBhbiBhY3Rpb24gaXMgdXNlZCBhcyB0aGUgYm9keVxuICogb2YgdGhlIHBheWxvYWQgc2VudCB0byB0aGUgZGlzcGF0Y2hlci5cbiAqL1xuXG5pbXBvcnQgdW5pcXVlSWQgZnJvbSAndW5pcXVlaWQnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBY3Rpb25zIHtcblxuICBjb25zdHJ1Y3RvcigpIHtcblxuICAgIHRoaXMuX2Jhc2VJZCA9IHVuaXF1ZUlkKCk7XG5cbiAgICBsZXQgbWV0aG9kTmFtZXMgPSB0aGlzLl9nZXRBY3Rpb25NZXRob2ROYW1lcygpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWV0aG9kTmFtZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGxldCBtZXRob2ROYW1lID0gbWV0aG9kTmFtZXNbaV07XG4gICAgICB0aGlzLl93cmFwQWN0aW9uKG1ldGhvZE5hbWUpO1xuICAgIH1cblxuICAgIHRoaXMuZ2V0Q29uc3RhbnRzID0gdGhpcy5nZXRBY3Rpb25JZHM7XG4gIH1cblxuICBnZXRBY3Rpb25JZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2dldEFjdGlvbk1ldGhvZE5hbWVzKCkucmVkdWNlKChyZXN1bHQsIGFjdGlvbk5hbWUpID0+IHtcbiAgICAgIHJlc3VsdFthY3Rpb25OYW1lXSA9IHRoaXNbYWN0aW9uTmFtZV0uX2lkO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9LCB7fSk7XG4gIH1cblxuICBfZ2V0QWN0aW9uTWV0aG9kTmFtZXMoaW5zdGFuY2UpIHtcbiAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUpXG4gICAgICAuZmlsdGVyKG5hbWUgPT5cbiAgICAgICAgbmFtZSAhPT0gJ2NvbnN0cnVjdG9yJyAmJlxuICAgICAgICB0eXBlb2YgdGhpc1tuYW1lXSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgKTtcbiAgfVxuXG4gIF93cmFwQWN0aW9uKG1ldGhvZE5hbWUpIHtcbiAgICBsZXQgb3JpZ2luYWxNZXRob2QgPSB0aGlzW21ldGhvZE5hbWVdO1xuICAgIGxldCBhY3Rpb25JZCA9IHRoaXMuX2NyZWF0ZUFjdGlvbklkKG1ldGhvZE5hbWUpO1xuXG4gICAgbGV0IGFjdGlvbiA9ICguLi5hcmdzKSA9PiB7XG4gICAgICBsZXQgYm9keSA9IG9yaWdpbmFsTWV0aG9kLmFwcGx5KHRoaXMsIGFyZ3MpO1xuXG4gICAgICBpZiAoaXNQcm9taXNlKGJvZHkpKSB7XG4gICAgICAgIGxldCBwcm9taXNlID0gYm9keTtcbiAgICAgICAgdGhpcy5fZGlzcGF0Y2hBc3luYyhhY3Rpb25JZCwgcHJvbWlzZSwgYXJncywgbWV0aG9kTmFtZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9kaXNwYXRjaChhY3Rpb25JZCwgYm9keSwgYXJncywgbWV0aG9kTmFtZSk7XG4gICAgICB9XG5cbiAgICAgIC8vIFJldHVybiBvcmlnaW5hbCBtZXRob2QncyByZXR1cm4gdmFsdWUgdG8gY2FsbGVyXG4gICAgICByZXR1cm4gYm9keTtcbiAgICB9O1xuXG4gICAgYWN0aW9uLl9pZCA9IGFjdGlvbklkO1xuXG4gICAgdGhpc1ttZXRob2ROYW1lXSA9IGFjdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgdW5pcXVlIHN0cmluZyBjb25zdGFudCBmb3IgYW4gYWN0aW9uIG1ldGhvZCwgdXNpbmdcbiAgICogQHBhcmFtIHtzdHJpbmd9IG1ldGhvZE5hbWUgLSBOYW1lIG9mIHRoZSBhY3Rpb24gbWV0aG9kXG4gICAqL1xuICBfY3JlYXRlQWN0aW9uSWQobWV0aG9kTmFtZSkge1xuICAgIHJldHVybiBgJHt0aGlzLl9iYXNlSWR9LSR7bWV0aG9kTmFtZX1gO1xuICB9XG5cbiAgX2Rpc3BhdGNoKGFjdGlvbklkLCBib2R5LCBhcmdzLCBtZXRob2ROYW1lKSB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLmRpc3BhdGNoID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBpZiAodHlwZW9mIGJvZHkgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2goYWN0aW9uSWQsIGJvZHksIGFyZ3MpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgYFlvdSd2ZSBhdHRlbXB0ZWQgdG8gcGVyZm9ybSB0aGUgYWN0aW9uIGBcbiAgICAgICAgKyBgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9IyR7bWV0aG9kTmFtZX0sIGJ1dCBpdCBoYXNuJ3QgYmVlbiBhZGRlZCBgXG4gICAgICAgICsgYHRvIGEgRmx1eCBpbnN0YW5jZS5gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGJvZHk7XG4gIH1cblxuICBfZGlzcGF0Y2hBc3luYyhhY3Rpb25JZCwgcHJvbWlzZSwgYXJncywgbWV0aG9kTmFtZSkge1xuICAgIGlmICh0eXBlb2YgdGhpcy5kaXNwYXRjaEFzeW5jID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaEFzeW5jKGFjdGlvbklkLCBwcm9taXNlLCBhcmdzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgIGBZb3UndmUgYXR0ZW1wdGVkIHRvIHBlcmZvcm0gdGhlIGFzeW5jaHJvbm91cyBhY3Rpb24gYFxuICAgICAgICArIGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0jJHttZXRob2ROYW1lfSwgYnV0IGl0IGhhc24ndCBiZWVuIGFkZGVkIGBcbiAgICAgICAgKyBgdG8gYSBGbHV4IGluc3RhbmNlLmBcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHByb21pc2U7XG4gICAgfVxuXG4gIH1cblxufVxuXG5mdW5jdGlvbiBpc1Byb21pc2UodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICYmIHR5cGVvZiB2YWx1ZS50aGVuID09PSAnZnVuY3Rpb24nO1xufVxuIl19 |