mirror of
				https://github.com/fooflington/selfdefined.git
				synced 2025-11-04 07:39:03 +00:00 
			
		
		
		
	
		
			
	
	
		
			38 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			38 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								var Immutable = require("immutable");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								module.exports.init = function (ui, bs) {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    var optPath = ["remote-debug", "no-cache"];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    ui.setOptionIn(optPath, Immutable.Map({
							 | 
						||
| 
								 | 
							
								        name: "no-cache",
							 | 
						||
| 
								 | 
							
								        title: "No Cache",
							 | 
						||
| 
								 | 
							
								        active: false,
							 | 
						||
| 
								 | 
							
								        tagline: "Disable all Browser Caching"
							 | 
						||
| 
								 | 
							
								    }));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    var methods = {
							 | 
						||
| 
								 | 
							
								        toggle: function (value) {
							 | 
						||
| 
								 | 
							
								            if (value !== true) {
							 | 
						||
| 
								 | 
							
								                value = false;
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								            if (value) {
							 | 
						||
| 
								 | 
							
								                ui.setOptionIn(optPath.concat("active"), true);
							 | 
						||
| 
								 | 
							
								                bs.addMiddleware("*", function (req, res, next) {
							 | 
						||
| 
								 | 
							
								                    res.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
							 | 
						||
| 
								 | 
							
								                    res.setHeader("Pragma", "no-cache");
							 | 
						||
| 
								 | 
							
								                    res.setHeader("Expires", "0");
							 | 
						||
| 
								 | 
							
								                    next();
							 | 
						||
| 
								 | 
							
								                }, {id: "ui-no-cache", override: true});
							 | 
						||
| 
								 | 
							
								            } else {
							 | 
						||
| 
								 | 
							
								                ui.setOptionIn(optPath.concat("active"), false);
							 | 
						||
| 
								 | 
							
								                bs.removeMiddleware("ui-no-cache");
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        },
							 | 
						||
| 
								 | 
							
								        event: function (event) {
							 | 
						||
| 
								 | 
							
								            methods[event.event](event.data);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    return methods;
							 | 
						||
| 
								 | 
							
								};
							 |