no-cache.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. var Immutable = require("immutable");
  2. module.exports.init = function (ui, bs) {
  3. var optPath = ["remote-debug", "no-cache"];
  4. ui.setOptionIn(optPath, Immutable.Map({
  5. name: "no-cache",
  6. title: "No Cache",
  7. active: false,
  8. tagline: "Disable all Browser Caching"
  9. }));
  10. var methods = {
  11. toggle: function (value) {
  12. if (value !== true) {
  13. value = false;
  14. }
  15. if (value) {
  16. ui.setOptionIn(optPath.concat("active"), true);
  17. bs.addMiddleware("*", function (req, res, next) {
  18. res.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
  19. res.setHeader("Pragma", "no-cache");
  20. res.setHeader("Expires", "0");
  21. next();
  22. }, {id: "ui-no-cache", override: true});
  23. } else {
  24. ui.setOptionIn(optPath.concat("active"), false);
  25. bs.removeMiddleware("ui-no-cache");
  26. }
  27. },
  28. event: function (event) {
  29. methods[event.event](event.data);
  30. }
  31. };
  32. return methods;
  33. };