Browse Source

deps, readme, remove API docs

master
Lloyd Brookes 5 years ago
parent
commit
69c2def2ff
  1. 63
      README.md
  2. 51
      doc/api.md
  3. 27
      index.js
  4. 38
      package-lock.json
  5. 15
      package.json

63
README.md

@ -4,7 +4,6 @@
[![Coverage Status](https://coveralls.io/repos/github/lwsjs/local-web-server/badge.svg?branch=master)](https://coveralls.io/github/lwsjs/local-web-server?branch=master)
[![Dependency Status](https://badgen.net/david/dep/lwsjs/local-web-server)](https://david-dm.org/lwsjs/local-web-server)
[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](https://github.com/feross/standard)
[![Join the chat at https://gitter.im/lwsjs/local-web-server](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/lwsjs/local-web-server?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
**Requires node v8 or above. Upgraders, please read the [release notes](https://github.com/lwsjs/local-web-server/releases)**.
@ -87,68 +86,6 @@ $ ws --http2
Serving at https://mbp.local:8000, https://127.0.0.1:8000, https://192.168.0.100:8000
```
### Mock responses
Imagine the network is down or you're working offline, proxied requests to `https://internal-service.local/api/users/1` would fail. In this case, Mock Responses can fill the gap. Mocks are defined in a module which can be reused between projects.
Trivial example - respond to a request for `/rivers` with some JSON. Save the following Javascript in a file named `example-mocks.js`.
```js
module.exports = MockBase => class MockRivers extends MockBase {
mocks () {
return {
route: '/rivers',
responses: [
{
response: {
type: 'json',
body: [
{ name: 'Volga', drainsInto: 'Caspian Sea' },
{ name: 'Danube', drainsInto: 'Black Sea' },
{ name: 'Ural', drainsInto: 'Caspian Sea' },
{ name: 'Dnieper', drainsInto: 'Black Sea' }
]
}
}
]
}
}
}
```
Launch `ws` passing in your mocks module.
```sh
$ ws --mocks example-mocks.js
Serving at http://mbp.local:8000, http://127.0.0.1:8000, http://192.168.0.100:8000
```
GET your rivers.
```sh
$ curl http://127.0.0.1:8000/rivers
[
{
"name": "Volga",
"drainsInto": "Caspian Sea"
},
{
"name": "Danube",
"drainsInto": "Black Sea"
},
{
"name": "Ural",
"drainsInto": "Caspian Sea"
},
{
"name": "Dnieper",
"drainsInto": "Black Sea"
}
]
```
See [the tutorials](https://github.com/lwsjs/local-web-server/wiki#tutorials) for more information and examples about mock responses.
## Further Documentation
[See the wiki for plenty more documentation and tutorials](https://github.com/lwsjs/local-web-server/wiki).

51
doc/api.md

@ -1,51 +0,0 @@
<a name="module_local-web-server"></a>
## local-web-server
**Emits**: <code>module:local-web-server#event:verbose</code>
**Example**
```js
const LocalWebServer = require('local-web-server')
const localWebServer = new LocalWebServer()
const server = localWebServer.listen({
port: 8050,
https: true,
directory: 'src',
spa: 'index.html',
websocket: 'src/websocket-server.js'
})
// secure, SPA server with listening websocket now ready on port 8050
```
* [local-web-server](#module_local-web-server)
* [LocalWebServer](#exp_module_local-web-server--LocalWebServer) ⏏
* [.listen([options])](#module_local-web-server--LocalWebServer+listen) ⇒ <code>Server</code>
<a name="exp_module_local-web-server--LocalWebServer"></a>
### LocalWebServer ⏏
**Kind**: Exported class
<a name="module_local-web-server--LocalWebServer+listen"></a>
#### localWebServer.listen([options]) ⇒ <code>Server</code>
Returns a listening HTTP/HTTPS server.
**Kind**: instance method of [<code>LocalWebServer</code>](#exp_module_local-web-server--LocalWebServer)
**Params**
- [options] <code>object</code> - Server options
- [.port] <code>number</code> - Port
- [.hostname] <code>string</code> - The hostname (or IP address) to listen on. Defaults to 0.0.0.0.
- [.maxConnections] <code>number</code> - The maximum number of concurrent connections supported by the server.
- [.keepAliveTimeout] <code>number</code> - The period (in milliseconds) of inactivity a connection will remain open before being destroyed. Set to `0` to keep connections open indefinitely.
- [.configFile] <code>string</code> - Config file path, defaults to 'lws.config.js'.
- [.https] <code>boolean</code> - Enable HTTPS using a built-in key and cert registered to the domain 127.0.0.1.
- [.key] <code>string</code> - SSL key file path. Supply along with --cert to launch a https server.
- [.cert] <code>string</code> - SSL cert file path. Supply along with --key to launch a https server.
- [.pfx] <code>string</code> - Path to an PFX or PKCS12 encoded private key and certificate chain. An alternative to providing --key and --cert.
- [.ciphers] <code>string</code> - Optional cipher suite specification, replacing the default.
- [.secureProtocol] <code>string</code> - Optional SSL method to use, default is "SSLv23_method".
- [.stack] <code>Array.&lt;string&gt;</code> | <code>Array.&lt;Middlewares&gt;</code> - Array of feature classes, or filenames of modules exporting a feature class.
- [.server] <code>string</code> | <code>ServerFactory</code> - Custom server factory, e.g. lws-http2.
- [.websocket] <code>string</code> | <code>Websocket</code> - Path to a websocket module
- [.moduleDir] <code>Array.&lt;string&gt;</code> - One or more directories to search for modules.

27
index.js

@ -23,25 +23,6 @@ const Lws = require('lws')
* @alias module:local-web-server
*/
class LocalWebServer extends Lws {
/**
* Returns a listening HTTP/HTTPS server.
* @param [options] {object} - Server options
* @param [options.port] {number} - Port
* @param [options.hostname] {string} -The hostname (or IP address) to listen on. Defaults to 0.0.0.0.
* @param [options.maxConnections] {number} - The maximum number of concurrent connections supported by the server.
* @param [options.keepAliveTimeout] {number} - The period (in milliseconds) of inactivity a connection will remain open before being destroyed. Set to `0` to keep connections open indefinitely.
* @param [options.configFile] {string} - Config file path, defaults to 'lws.config.js'.
* @param [options.https] {boolean} - Enable HTTPS using a built-in key and cert registered to the domain 127.0.0.1.
* @param [options.key] {string} - SSL key file path. Supply along with --cert to launch a https server.
* @param [options.cert] {string} - SSL cert file path. Supply along with --key to launch a https server.
* @param [options.pfx] {string} - Path to an PFX or PKCS12 encoded private key and certificate chain. An alternative to providing --key and --cert.
* @param [options.ciphers] {string} - Optional cipher suite specification, replacing the default.
* @param [options.secureProtocol] {string} - Optional SSL method to use, default is "SSLv23_method".
* @param [options.stack] {string[]|Middlewares[]} - Array of feature classes, or filenames of modules exporting a feature class.
* @param [options.moduleDir] {string[]} - One or more directories to search for modules.
* @returns {Server}
*/
getDefaultConfig () {
return Object.assign(super.getDefaultConfig(), {
moduleDir: [ __dirname, '.' ],
@ -50,12 +31,4 @@ class LocalWebServer extends Lws {
}
}
/**
* Highly-verbose debug information event stream.
*
* @event module:local-web-server#verbose
* @param key {string} - An identifying string, e.g. `server.socket.data`.
* @param value {*} - The value, e.g. `{ socketId: 1, bytesRead: '3 Kb' }`.
*/
module.exports = LocalWebServer

38
package-lock.json

@ -645,9 +645,9 @@
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
},
"coveralls": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.0.3.tgz",
"integrity": "sha512-viNfeGlda2zJr8Gj1zqXpDMRjw9uM54p7wzZdvLRyOgnAfCe974Dq4veZkjJdxQXbmdppu6flEajFYseHYaUhg==",
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.0.4.tgz",
"integrity": "sha512-eyqUWA/7RT0JagiL0tThVhjbIjoiEUyWCjtUJoOPcWoeofP5WK/jb2OJYoBFrR6DvplR+AxOyuBqk4JHkk5ykA==",
"dev": true,
"requires": {
"growl": "~> 1.10.0",
@ -1731,9 +1731,9 @@
}
},
"load-module": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/load-module/-/load-module-2.0.0.tgz",
"integrity": "sha512-1cWxQTYoB77vrMj6feNV3kMb6PZtH8vUgLhSQow7RE8OgQCLjSUuScyYABbw5duPViIuEXfaVEte1LZ3t4rJAg==",
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/load-module/-/load-module-2.0.1.tgz",
"integrity": "sha512-uPi6sDp/7rcX5hP8jRncyBa63++qOJxczYAoq58DpoAnQmLJ+e7zz8qmRS+zfkOGEhqj10SFwuZrZuen8Ep5zQ==",
"requires": {
"array-back": "^3.1.0"
}
@ -1809,15 +1809,16 @@
}
},
"lws": {
"version": "2.0.0-8",
"resolved": "https://registry.npmjs.org/lws/-/lws-2.0.0-8.tgz",
"integrity": "sha512-uG5+n+gk0j6txsxm6bkxJX0EcI3frOQdDaNjt8P0oHVLcBNIAf1H6fDm3YcHBEKwWS1A3EgZec7d4upIUfy43g==",
"version": "2.0.0-9",
"resolved": "https://registry.npmjs.org/lws/-/lws-2.0.0-9.tgz",
"integrity": "sha512-E4fBFt/uIQzoVIIzXK5FVCGfffAY+Z75pVjVWBVQjJRvd67+FfhtoKsiIkBKCq8K9QhUjUWu26hVTVsJKQk6TA==",
"requires": {
"ansi-escape-sequences": "^4.1.0",
"array-back": "^3.1.0",
"byte-size": "^5.0.1",
"command-line-args": "^5.1.1",
"command-line-usage": "^5.0.5",
"create-mixin": "^2.0.1",
"koa": "^2.7.0",
"load-module": "^2.0.0",
"lodash.assignwith": "^4.2.0",
@ -1826,6 +1827,13 @@
"reduce-flatten": "^2.0.0",
"typical": "^5.0.0",
"walk-back": "^3.0.1"
},
"dependencies": {
"create-mixin": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/create-mixin/-/create-mixin-2.0.1.tgz",
"integrity": "sha512-r11aTk2z5x2C9ZI85oxuZ0EzgjBH0BdGacnXeuA+9d59xV2Hsy+ZpRmU+LUjJT9KdnLgzaxZoCbqrJ5qjl0bAA=="
}
}
},
"lws-basic-auth": {
@ -1879,9 +1887,9 @@
}
},
"lws-index": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/lws-index/-/lws-index-1.0.1.tgz",
"integrity": "sha512-j9ba7EfMtNl2Ejm3jAtK999+R7zpZlq/eWGbJi2sBww28ZNZkNHEt1Dqhf9d59RyINjVozcwRAqJ9JHzQ0jGVQ==",
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/lws-index/-/lws-index-1.0.2.tgz",
"integrity": "sha512-cU0UohkIFnI1mHhs/fn3VuBTBWKl9soOnPXR8zUBoaYBfnNepFsVmnhpEmQIdDXXOtWZedIXFV5JH+aNWwLlmg==",
"requires": {
"serve-index": "^1.9.1"
}
@ -1917,9 +1925,9 @@
}
},
"lws-request-monitor": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/lws-request-monitor/-/lws-request-monitor-1.0.1.tgz",
"integrity": "sha512-POyRl0Dbq6smsjKT0b9vb/GCYbCnfGHj91tdTga1P7qz1rpgaLEqmqPxvYUq3iGu49n16YdGBdSZ1rUUE5Eqdw==",
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/lws-request-monitor/-/lws-request-monitor-1.0.3.tgz",
"integrity": "sha512-g0McT3GV8Gm9nCnlEXUJ5vTOgpiBgA2O0nxOQFzzpW0aDR5fxh2MoFYKxjpkOX09YaSdgpAaXdQV2ts/Ixk8Lw==",
"requires": {
"byte-size": "^5.0.1"
}

15
package.json

@ -20,14 +20,17 @@
"rest",
"mock",
"api",
"proxy"
"proxy",
"lws",
"backend",
"frontend",
"full-stack"
],
"engines": {
"node": ">=8"
},
"scripts": {
"test": "test-runner test/*.js",
"docs": "jsdoc2md -p list index.js lib/*.js > doc/api.md; echo",
"cover": "nyc npm test && nyc report --reporter=text-lcov | coveralls"
},
"files": [
@ -36,26 +39,26 @@
"index.js"
],
"dependencies": {
"lws": "2.0.0-8",
"lws": "2.0.0-9",
"lws-basic-auth": "^1.0.2",
"lws-blacklist": "^2.0.1",
"lws-body-parser": "^1.0.1",
"lws-compress": "^1.0.1",
"lws-conditional-get": "^1.0.0",
"lws-cors": "^2.0.0",
"lws-index": "^1.0.1",
"lws-index": "^1.0.2",
"lws-json": "^1.0.0",
"lws-log": "^1.0.0",
"lws-mime": "^1.0.0",
"lws-range": "^2.0.0",
"lws-request-monitor": "^1.0.1",
"lws-request-monitor": "^1.0.3",
"lws-rewrite": "^2.0.0",
"lws-spa": "^2.0.0",
"lws-static": "^1.1.0",
"node-version-matches": "^1.0.1"
},
"devDependencies": {
"coveralls": "^3.0.3",
"coveralls": "^3.0.4",
"jsdoc-to-markdown": "^5.0.0",
"node-fetch": "^2.6.0",
"nyc": "^14.1.1",

Loading…
Cancel
Save