diff --git a/.travis.yml b/.travis.yml index 9042222..4d2b4af 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,7 +9,7 @@ node_js: - "5.12" - "6.11" - "7.10" - - "8.0" + - "8.2" sudo: false cache: directories: diff --git a/README.md b/README.md index 6b1075a..22d7e14 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,8 @@ $ npm install proxy-addr ## API + + ```js var proxyaddr = require('proxy-addr') ``` @@ -32,15 +34,19 @@ The `trust` argument is a function that returns `true` if you trust the address, `false` if you don't. The closest untrusted address is returned. + + ```js -proxyaddr(req, function(addr){ return addr === '127.0.0.1' }) -proxyaddr(req, function(addr, i){ return i < 1 }) +proxyaddr(req, function (addr) { return addr === '127.0.0.1' }) +proxyaddr(req, function (addr, i) { return i < 1 }) ``` The `trust` arugment may also be a single IP address string or an array of trusted addresses, as plain IP addresses, CIDR-formatted strings, or IP/netmask strings. + + ```js proxyaddr(req, '127.0.0.1') proxyaddr(req, ['127.0.0.0/8', '10.0.0.0/8']) @@ -50,6 +56,8 @@ proxyaddr(req, ['127.0.0.0/255.0.0.0', '192.168.0.0/255.255.0.0']) This module also supports IPv6. Your IPv6 addresses will be normalized automatically (i.e. `fe80::00ed:1` equals `fe80:0:0:0:0:0:ed:1`). + + ```js proxyaddr(req, '::1') proxyaddr(req, ['::1/128', 'fe80::/10']) @@ -62,6 +70,8 @@ not have to specify both `::ffff:a00:1` and `10.0.0.1`. As a convenience, this module also takes certain pre-defined names in addition to IP addresses, which expand into IP addresses: + + ```js proxyaddr(req, 'loopback') proxyaddr(req, ['loopback', 'fc00:ac:1ab5:fff::1/64']) @@ -86,6 +96,8 @@ Return all the addresses of the request, optionally stopping at the first untrusted. This array is ordered from closest to furthest (i.e. `arr[0] === req.connection.remoteAddress`). + + ```js proxyaddr.all(req) ``` @@ -93,6 +105,8 @@ proxyaddr.all(req) The optional `trust` argument takes the same arguments as `trust` does in `proxyaddr(req, trust)`. + + ```js proxyaddr.all(req, 'loopback') ``` @@ -103,9 +117,11 @@ Compiles argument `val` into a `trust` function. This function takes the same arguments as `trust` does in `proxyaddr(req, trust)` and returns a function suitable for `proxyaddr(req, trust)`. + + ```js var trust = proxyaddr.compile('localhost') -var addr = proxyaddr(req, trust) +var addr = proxyaddr(req, trust) ``` This function is meant to be optimized for use against every request. diff --git a/package.json b/package.json index 380f058..d888e31 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "eslint": "3.19.0", "eslint-config-standard": "10.2.1", "eslint-plugin-import": "2.7.0", + "eslint-plugin-markdown": "1.0.0-beta.6", "eslint-plugin-node": "5.1.1", "eslint-plugin-promise": "3.5.0", "eslint-plugin-standard": "3.0.1", @@ -37,7 +38,7 @@ }, "scripts": { "bench": "node benchmark/index.js", - "lint": "eslint .", + "lint": "eslint --plugin markdown --ext js,md .", "test": "mocha --reporter spec --bail --check-leaks test/", "test-cov": "nyc --reporter=text npm test", "test-travis": "nyc --reporter=html --reporter=text npm test"