| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- var Immutable = require("immutable");
- module.exports.init = function (ui, bs) {
- var timeout = 0;
- var optPath = ["remote-debug", "latency"];
- ui.setOptionIn(optPath, Immutable.Map({
- name: "latency",
- title: "Latency",
- active: false,
- tagline: "Simulate slower connections by throttling the response time of each request.",
- rate: 0
- }));
- var methods = {
- toggle: function (value) {
- if (value !== true) {
- value = false;
- }
- if (value) {
- ui.setOptionIn(optPath.concat("active"), true);
- bs.addMiddleware("*", function (req, res, next) {
- setTimeout(next, timeout);
- }, {id: "cp-latency", override: true});
- } else {
- ui.setOptionIn(optPath.concat("active"), false);
- bs.removeMiddleware("cp-latency");
- }
- },
- adjust: function (data) {
- timeout = parseFloat(data.rate) * 1000;
- var saved = ui.options.getIn(optPath.concat("rate"));
- if (saved !== data.rate) {
- ui.setOptionIn(optPath.concat("rate"), timeout/1000);
- }
- },
- event: function (event) {
- methods[event.event](event.data);
- }
- };
- return methods;
- };
|