diff options
author | Jason <jason.daurus@gmail.com> | 2016-06-16 16:46:13 +0800 |
---|---|---|
committer | Jason <jason.daurus@gmail.com> | 2016-06-17 05:08:05 +0800 |
commit | 7fb0836bfedefd851403ba440e88bc04548cf7b0 (patch) | |
tree | aeb2426ce9325c0f55fcaecadfd4e54f1910ed6f | |
parent | b88937f1e039e306f95a760ea181fcdcc6fec1fa (diff) | |
download | mitmproxy-7fb0836bfedefd851403ba440e88bc04548cf7b0.tar.gz mitmproxy-7fb0836bfedefd851403ba440e88bc04548cf7b0.tar.bz2 mitmproxy-7fb0836bfedefd851403ba440e88bc04548cf7b0.zip |
[web] remove store
-rw-r--r-- | mitmproxy/web/static/app.js | 2 | ||||
-rw-r--r-- | web/src/js/ducks/settings.js | 14 | ||||
-rw-r--r-- | web/src/js/store/store.js | 91 | ||||
-rw-r--r-- | web/src/js/store/view.js | 0 |
4 files changed, 8 insertions, 99 deletions
diff --git a/mitmproxy/web/static/app.js b/mitmproxy/web/static/app.js index e0c7bd3e..572ea373 100644 --- a/mitmproxy/web/static/app.js +++ b/mitmproxy/web/static/app.js @@ -101,7 +101,7 @@ "use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(exports,"__esModule",{value:!0});var _redux=require("redux"),_eventLog=require("./eventLog"),_eventLog2=_interopRequireDefault(_eventLog),_websocket=require("./websocket"),_websocket2=_interopRequireDefault(_websocket),_flows=require("./flows"),_flows2=_interopRequireDefault(_flows),_settings=require("./settings"),_settings2=_interopRequireDefault(_settings),_ui=require("./ui"),_ui2=_interopRequireDefault(_ui),rootReducer=(0,_redux.combineReducers)({eventLog:_eventLog2["default"],websocket:_websocket2["default"],flows:_flows2["default"],settings:_settings2["default"],ui:_ui2["default"]});exports["default"]=rootReducer; },{"./eventLog":32,"./flows":33,"./settings":35,"./ui":36,"./websocket":39,"redux":"redux"}],35:[function(require,module,exports){ -"use strict";function reduceData(e,t){switch(t.cmd){case WS_MSG_CMD_RESET:return t.data||{};case WS_MSG_CMD_UPDATE:return _.merge({},e.settings,t.data);default:return e}}function reduce(){var e=arguments.length<=0||void 0===arguments[0]?defaultState:arguments[0],t=arguments[1];switch(t.type){case BEGIN_FETCH:return _extends({},e,{pendings:[],req:t.req});case FETCH_SETTINGS:var r=e.pendings||[];return _extends({},e,{pendings:null,settings:r.reduce(reduceData,data)});case RECV_WS_MSG:return e.pendings?_extends({},e,{pendings:e.pendings.concat(t)}):_extends({},e,{settings:reduceData(e.settings,t)});default:return e}}function fetch(){var e=this;return function(t){var r=$.getJSON("/"+e.type).done(function(e){return t(reset(e.data))}).fail(function(e){return t(handleFetchError(e))});return t({type:BEGIN_FETCH,req:r}),r}}function handleWsMsg(e){return function(t,r){if(e.cmd===STORE_CMDS_RESET){var n=r().settings.req;return n&&n.abort(),t(reset(e.data))}t({type:RECV_WS_MSG,cmd:e.cmd,data:e.data})}}function reset(e){return{type:FETCH_SETTINGS,data:e}}function handleFetchError(e){return console.error(e),{type:FETCH_ERROR,error:e}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.RECV_WS_MSG=exports.FETCH_ERROR=exports.FETCH_SETTINGS=exports.BEGIN_FETCH=exports.WS_MSG_CMD_UPDATE=exports.WS_MSG_CMD_RESET=exports.WS_MSG_TYPE=void 0;var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e};exports["default"]=reduce,exports.fetch=fetch,exports.handleWsMsg=handleWsMsg,exports.reset=reset,exports.handleFetchError=handleFetchError;var _actions=require("../actions"),WS_MSG_TYPE=exports.WS_MSG_TYPE="settings",WS_MSG_CMD_RESET=exports.WS_MSG_CMD_RESET="reset",WS_MSG_CMD_UPDATE=exports.WS_MSG_CMD_UPDATE="update",BEGIN_FETCH=exports.BEGIN_FETCH="SETTINGS_BEGIN_FETCH",FETCH_SETTINGS=exports.FETCH_SETTINGS="SETTINGS_FETCH_SETTINGS",FETCH_ERROR=exports.FETCH_ERROR="SETTINGS_FETCH_ERROR",RECV_WS_MSG=exports.RECV_WS_MSG="SETTINGS_RECV_WS_MSG",defaultState={settings:{},pendings:null,req:null}; +"use strict";function reduceData(e,t){switch(t.cmd){case WS_MSG_CMD_RESET:return t.data||{};case WS_MSG_CMD_UPDATE:return _.merge({},e.settings,t.data);default:return e}}function reduce(){var e=arguments.length<=0||void 0===arguments[0]?defaultState:arguments[0],t=arguments[1];switch(t.type){case BEGIN_FETCH:return _extends({},e,{pendings:[],req:t.req});case FETCH_SETTINGS:var r=e.pendings||[];return _extends({},e,{pendings:null,settings:r.reduce(reduceData,data)});case RECV_WS_MSG:return e.pendings?_extends({},e,{pendings:e.pendings.concat(t)}):_extends({},e,{settings:reduceData(e.settings,t)});default:return e}}function fetch(){var e=this;return function(t){var r=$.getJSON("/"+e.type).done(function(e){return t(reset(e.data))}).fail(function(e){return t(handleFetchError(e))});return t({type:BEGIN_FETCH,req:r}),r}}function handleWsMsg(e){return function(t,r){if(e.cmd!==STORE_CMDS_RESET)return t({type:RECV_WS_MSG,cmd:e.cmd,data:e.data});var n=r().settings.req;n&&n.abort(),t(reset(e.data))}}function reset(e){return{type:FETCH_SETTINGS,data:e}}function handleFetchError(e){return console.error(e),{type:FETCH_ERROR,error:e}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.RECV_WS_MSG=exports.FETCH_ERROR=exports.FETCH_SETTINGS=exports.BEGIN_FETCH=exports.WS_MSG_CMD_UPDATE=exports.WS_MSG_CMD_RESET=exports.WS_MSG_TYPE=void 0;var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e};exports["default"]=reduce,exports.fetch=fetch,exports.handleWsMsg=handleWsMsg,exports.reset=reset,exports.handleFetchError=handleFetchError;var _actions=require("../actions"),WS_MSG_TYPE=exports.WS_MSG_TYPE="settings",WS_MSG_CMD_RESET=exports.WS_MSG_CMD_RESET="reset",WS_MSG_CMD_UPDATE=exports.WS_MSG_CMD_UPDATE="update",BEGIN_FETCH=exports.BEGIN_FETCH="SETTINGS_BEGIN_FETCH",FETCH_SETTINGS=exports.FETCH_SETTINGS="SETTINGS_FETCH_SETTINGS",FETCH_ERROR=exports.FETCH_ERROR="SETTINGS_FETCH_ERROR",RECV_WS_MSG=exports.RECV_WS_MSG="SETTINGS_RECV_WS_MSG",defaultState={settings:{},pendings:null,req:null}; },{"../actions":1}],36:[function(require,module,exports){ "use strict";function reducer(){var e=arguments.length<=0||void 0===arguments[0]?defaultState:arguments[0],t=arguments[1];switch(t.type){case SET_ACTIVE_MENU:return _extends({},e,{activeMenu:t.activeMenu});case _flows.SELECT_FLOW:var r=t.flowId&&!t.currentSelection,n=!t.flowId&&t.currentSelection;return r?_extends({},e,{activeMenu:"Flow"}):n&&"Flow"===e.activeMenu?_extends({},e,{activeMenu:"Start"}):e;default:return e}}function setActiveMenu(e){return{type:SET_ACTIVE_MENU,activeMenu:e}}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e};exports["default"]=reducer,exports.setActiveMenu=setActiveMenu;var _flows=require("./flows"),SET_ACTIVE_MENU="SET_ACTIVE_MENU",defaultState={activeMenu:"Start"}; diff --git a/web/src/js/ducks/settings.js b/web/src/js/ducks/settings.js index 8513c2f1..05499da5 100644 --- a/web/src/js/ducks/settings.js +++ b/web/src/js/ducks/settings.js @@ -60,14 +60,14 @@ export function fetch() { export function handleWsMsg(msg) { return (dispatch, getState) => { - if (msg.cmd === STORE_CMDS_RESET) { - const req = getState().settings.req - if (req) { - req.abort() - } - return dispatch(reset(msg.data)) + if (msg.cmd !== STORE_CMDS_RESET) { + return dispatch({ type: RECV_WS_MSG, cmd: msg.cmd, data: msg.data }) + } + const req = getState().settings.req + if (req) { + req.abort() } - dispatch({ type: RECV_WS_MSG, cmd: msg.cmd, data: msg.data }) + dispatch(reset(msg.data)) } } diff --git a/web/src/js/store/store.js b/web/src/js/store/store.js deleted file mode 100644 index df3a23ab..00000000 --- a/web/src/js/store/store.js +++ /dev/null @@ -1,91 +0,0 @@ - -import _ from "lodash"; -import $ from "jquery"; -import {EventEmitter} from 'events'; -import {ActionTypes, StoreCmds} from "../actions.js"; -import {AppDispatcher} from "../dispatcher.js"; - - -function DictStore() { - EventEmitter.call(this); - this.reset(); -} -_.extend(DictStore.prototype, EventEmitter.prototype, { - update: function (dict) { - _.merge(this.dict, dict); - this.emit("recalculate"); - }, - reset: function (dict) { - this.dict = dict || {}; - this.emit("recalculate"); - } -}); - -function LiveStoreMixin(type) { - this.type = type; - - this._updates_before_fetch = undefined; - this._fetchxhr = false; - - this.handle = this.handle.bind(this); - AppDispatcher.register(this.handle); - - // Avoid double-fetch on startup. - if (!(window.ws && window.ws.readyState === WebSocket.CONNECTING)) { - this.fetch(); - } -} -_.extend(LiveStoreMixin.prototype, { - handle: function (event) { - if (event.type === ActionTypes.CONNECTION_OPEN) { - return this.fetch(); - } - if (event.type === this.type) { - if (event.cmd === StoreCmds.RESET) { - this.fetch(event.data); - } else if (this._updates_before_fetch) { - console.log("defer update", event); - this._updates_before_fetch.push(event); - } else { - this[event.cmd](event.data); - } - } - }, - close: function () { - AppDispatcher.unregister(this.handle); - }, - fetch: function (data) { - console.log("fetch " + this.type); - if (this._fetchxhr) { - this._fetchxhr.abort(); - } - this._updates_before_fetch = []; // (JS: empty array is true) - if (data) { - this.handle_fetch(data); - } else { - this._fetchxhr = $.getJSON("/" + this.type) - .done(function (message) { - this.handle_fetch(message.data); - }.bind(this)) - .fail(function () { - console.error("Could not fetch " + this.type) - }.bind(this)); - } - }, - handle_fetch: function (data) { - this._fetchxhr = false; - console.log(this.type + " fetched.", this._updates_before_fetch); - this.reset(data); - var updates = this._updates_before_fetch; - this._updates_before_fetch = false; - for (var i = 0; i < updates.length; i++) { - this.handle(updates[i]); - } - }, -}); - -function LiveDictStore(type) { - DictStore.call(this); - LiveStoreMixin.call(this, type); -} -_.extend(LiveDictStore.prototype, DictStore.prototype, LiveStoreMixin.prototype); diff --git a/web/src/js/store/view.js b/web/src/js/store/view.js deleted file mode 100644 index e69de29b..00000000 --- a/web/src/js/store/view.js +++ /dev/null |