fixed refresh-rate issue, readme updated
This commit is contained in:
		
							
								
								
									
										41
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										41
									
								
								README.md
									
									
									
									
									
								
							| @ -28,17 +28,18 @@ $ ws --config | ||||
| $ ws --help | ||||
|  | ||||
| Server | ||||
| -p, --port <number>         Web server port | ||||
| -f, --log-format <string>   If a format is supplied an access log is written to stdout. If not, | ||||
|                             a statistics view is displayed. Format options: 'none', 'dev', | ||||
|                             'default', 'short', 'tiny' or 'logstalgia'. | ||||
| -d, --directory <string>    Root directory, defaults to the current directory | ||||
| -c, --compress              Enables compression | ||||
| -r, --refreshRate <number>  Statistics view refresh rate in ms. Defaults to 500. | ||||
| -p, --port <number>          Web server port | ||||
| -f, --log-format <string>    If a format is supplied an access log is written to stdout. If not, | ||||
|                              a statistics view is displayed. Use a preset ('none', 'dev', | ||||
|                              'default', 'short', 'tiny' or 'logstalgia') or supply a custom format | ||||
|                              (e.g. ':method -> :url'). | ||||
| -d, --directory <string>     Root directory, defaults to the current directory | ||||
| -c, --compress               Enables compression | ||||
| -r, --refresh-rate <number>  Statistics view refresh rate in ms. Defaults to 500. | ||||
|  | ||||
| Misc | ||||
| -h, --help                  Print these usage instructions | ||||
| --config                    Print the stored config | ||||
| -h, --help                   Print these usage instructions | ||||
| --config                     Print the stored config | ||||
| ``` | ||||
|  | ||||
| From the folder you wish to serve, run: | ||||
| @ -59,14 +60,27 @@ $ ws --port 9000 | ||||
| serving at http://localhost:9000 | ||||
| ``` | ||||
|  | ||||
| Use a built-in or custom [Connect logger format](http://www.senchalabs.org/connect/logger.html) with `--log-format`: | ||||
| To add compression, reducing bandwidth, increasing page load time (by 10-15% on my Macbook Air) | ||||
| ```sh | ||||
| $ ws --compress | ||||
| ``` | ||||
|  | ||||
| ###Logging | ||||
| Passing a value to `--log-format` will write an access log to `stdout`. | ||||
|  | ||||
| Either use a built-in [morgan](https://github.com/expressjs/morgan) logger preset: | ||||
| ```sh | ||||
| $ ws --log-format short | ||||
| ``` | ||||
|  | ||||
| To add compression, reducing bandwidth, increasing page load time (by 10-15% on my Macbook Air) | ||||
| Or a custom [morgan](https://github.com/expressjs/morgan) log format: | ||||
| ```sh | ||||
| $ ws --compress | ||||
| $ ws -f ':method -> :url' | ||||
| ``` | ||||
|  | ||||
| Or silence:  | ||||
| ```sh | ||||
| $ ws -f none | ||||
| ``` | ||||
|  | ||||
| Storing default options | ||||
| @ -93,7 +107,8 @@ Or in a `.local-web-server.json` file stored in the directory you want to serve | ||||
| Or store global defaults in a `.local-web-server.json` file in your home directory. | ||||
| ```json | ||||
| { | ||||
|   "port": 3000 | ||||
|   "port": 3000, | ||||
|   "refresh-rate": 1000 | ||||
| } | ||||
| ``` | ||||
|  | ||||
|  | ||||
							
								
								
									
										12
									
								
								bin/ws.js
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								bin/ws.js
									
									
									
									
									
								
							| @ -4,6 +4,7 @@ var dope = require("console-dope"), | ||||
|     http = require("http"), | ||||
|     cliArgs = require("command-line-args"), | ||||
|     o = require("object-tools"), | ||||
|     t = require("typical"), | ||||
|     path = require("path"), | ||||
|     loadConfig = require("config-master"), | ||||
|     homePath = require("home-path"), | ||||
| @ -46,12 +47,18 @@ var storedConfig = loadConfig( | ||||
| var builtInDefaults = { | ||||
|     port: 8000, | ||||
|     directory: process.cwd(), | ||||
|     refreshRate: 500 | ||||
|     "refresh-rate": 500 | ||||
| }; | ||||
|  | ||||
| /* override built-in defaults with stored config and then command line args */ | ||||
| argv.Server = o.extend(builtInDefaults, storedConfig, argv.Server); | ||||
|  | ||||
| /* user input validation */ | ||||
| var logFormat = argv.Server["log-format"]; | ||||
| if (!t.isNumber(argv.Server.port)) { | ||||
|     halt("please supply a numeric port value"); | ||||
| } | ||||
|  | ||||
| if (argv.Misc.config){ | ||||
|     dope.log("Stored config: "); | ||||
|     dope.log(storedConfig); | ||||
| @ -76,7 +83,6 @@ if (argv.Misc.config){ | ||||
|     }); | ||||
|  | ||||
|     /* log using --log-format (if supplied) */ | ||||
|     var logFormat = argv.Server["log-format"]; | ||||
|     if(logFormat) { | ||||
|         if (logFormat === "none"){ | ||||
|             // do nothing, no logging required | ||||
| @ -98,7 +104,7 @@ if (argv.Misc.config){ | ||||
|     into `log-stats`, which prints statistics to the console */ | ||||
|     } else { | ||||
|         dope.hideCursor(); | ||||
|         app.use(morgan({ stream: logStats({ refreshRate: argv.Server.refreshRate }) })); | ||||
|         app.use(morgan({ stream: logStats({ refreshRate: argv.Server["refresh-rate"] }) })); | ||||
|     } | ||||
|  | ||||
|     /* --compress enables compression */ | ||||
|  | ||||
| @ -8,7 +8,7 @@ module.exports = [ | ||||
|             }, | ||||
|             { | ||||
|                 name: "log-format", alias: "f", type: String, | ||||
|                 description: "If a format is supplied an access log is written to stdout. If not, \na statistics view is displayed. Format options: 'none', 'dev',\n'default', 'short', 'tiny' or 'logstalgia'." | ||||
|                 description: "If a format is supplied an access log is written to stdout. If not, \na statistics view is displayed. Use a preset ('none', 'dev',\n'default', 'short', 'tiny' or 'logstalgia') or supply a custom format\n(e.g. ':method -> :url')." | ||||
|             }, | ||||
|             { | ||||
|                 name: "directory", alias: "d", type: String, | ||||
| @ -19,7 +19,7 @@ module.exports = [ | ||||
|                 description: "Enables compression" | ||||
|             }, | ||||
|             { | ||||
|                 name: "refreshRate", alias: "r", type: Number, | ||||
|                 name: "refresh-rate", alias: "r", type: Number, | ||||
|                 description: "Statistics view refresh rate in ms. Defaults to 500." | ||||
|             } | ||||
|         ] | ||||
|  | ||||
| @ -24,6 +24,7 @@ | ||||
|     "object-tools": "^1.0.3", | ||||
|     "serve-index": "^1.0.2", | ||||
|     "serve-static": "^1.2.2", | ||||
|     "stream-log-stats": "^0.1.0" | ||||
|     "stream-log-stats": "^0.1.0", | ||||
|     "typical": "^1.0.0" | ||||
|   } | ||||
| } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user