Browse Source

Add server functionality

pull/2/head
Luke Childs 8 years ago
parent
commit
71e2403aad
  1. 240
      package-lock.json
  2. 6
      package.json
  3. 18
      src/index.js

240
package-lock.json

@ -41,6 +41,11 @@
"integrity": "sha1-0KV9Jeua6rlkO90aAwZCuRwSPig=", "integrity": "sha1-0KV9Jeua6rlkO90aAwZCuRwSPig=",
"dev": true "dev": true
}, },
"accepts": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz",
"integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo="
},
"acorn": { "acorn": {
"version": "5.0.3", "version": "5.0.3",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-5.0.3.tgz", "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.0.3.tgz",
@ -139,6 +144,11 @@
"integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
"dev": true "dev": true
}, },
"array-flatten": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
"integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
},
"array-union": { "array-union": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
@ -744,6 +754,16 @@
"integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=",
"dev": true "dev": true
}, },
"content-disposition": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz",
"integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ="
},
"content-type": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz",
"integrity": "sha1-t9ETrueo3Se9IRM8TcJSnfFyHu0="
},
"convert-source-map": { "convert-source-map": {
"version": "1.5.0", "version": "1.5.0",
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz",
@ -756,6 +776,16 @@
"integrity": "sha1-fj5Iu+bZl7FBfdyihoIEtNPYVxU=", "integrity": "sha1-fj5Iu+bZl7FBfdyihoIEtNPYVxU=",
"dev": true "dev": true
}, },
"cookie": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
"integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="
},
"cookie-signature": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
"integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
},
"core-assert": { "core-assert": {
"version": "0.2.1", "version": "0.2.1",
"resolved": "https://registry.npmjs.org/core-assert/-/core-assert-0.2.1.tgz", "resolved": "https://registry.npmjs.org/core-assert/-/core-assert-0.2.1.tgz",
@ -932,6 +962,16 @@
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
"dev": true "dev": true
}, },
"depd": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz",
"integrity": "sha1-4b2Cxqq2ztlluXuIsX7T5SjKGMM="
},
"destroy": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
"integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
},
"detect-indent": { "detect-indent": {
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz",
@ -975,12 +1015,22 @@
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
},
"empower-core": { "empower-core": {
"version": "0.6.1", "version": "0.6.1",
"resolved": "https://registry.npmjs.org/empower-core/-/empower-core-0.6.1.tgz", "resolved": "https://registry.npmjs.org/empower-core/-/empower-core-0.6.1.tgz",
"integrity": "sha1-bBh/UC/O91VNV5MzlqrGVUg3crE=", "integrity": "sha1-bBh/UC/O91VNV5MzlqrGVUg3crE=",
"dev": true "dev": true
}, },
"encodeurl": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz",
"integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA="
},
"enhance-visitors": { "enhance-visitors": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/enhance-visitors/-/enhance-visitors-1.0.0.tgz", "resolved": "https://registry.npmjs.org/enhance-visitors/-/enhance-visitors-1.0.0.tgz",
@ -1041,6 +1091,11 @@
"integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=",
"dev": true "dev": true
}, },
"escape-html": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
"integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
},
"escape-string-regexp": { "escape-string-regexp": {
"version": "1.0.5", "version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
@ -1197,6 +1252,11 @@
"integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
"dev": true "dev": true
}, },
"etag": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.0.tgz",
"integrity": "sha1-b2Ma7zNtbEY2K1F2QETOIWvjwFE="
},
"event-emitter": { "event-emitter": {
"version": "0.3.5", "version": "0.3.5",
"resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
@ -1227,6 +1287,28 @@
"integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
"dev": true "dev": true
}, },
"express": {
"version": "4.15.3",
"resolved": "https://registry.npmjs.org/express/-/express-4.15.3.tgz",
"integrity": "sha1-urZdDwOqgMNYQIly/HAPkWlEtmI=",
"dependencies": {
"debug": {
"version": "2.6.7",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz",
"integrity": "sha1-krrR9tBbu2u6Isyoi80OyJTChh4="
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
"qs": {
"version": "6.4.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz",
"integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM="
}
}
},
"extend": { "extend": {
"version": "3.0.1", "version": "3.0.1",
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
@ -1275,6 +1357,23 @@
"integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=",
"dev": true "dev": true
}, },
"finalhandler": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.3.tgz",
"integrity": "sha1-70fneVDpmXgOhgIqVg4yF+DQzIk=",
"dependencies": {
"debug": {
"version": "2.6.7",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz",
"integrity": "sha1-krrR9tBbu2u6Isyoi80OyJTChh4="
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
}
}
},
"find-cache-dir": { "find-cache-dir": {
"version": "0.1.1", "version": "0.1.1",
"resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz",
@ -1323,6 +1422,16 @@
"integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=",
"dev": true "dev": true
}, },
"forwarded": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz",
"integrity": "sha1-Ge+YdMSuHCl7zweP3mOgm2aoQ2M="
},
"fresh": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.0.tgz",
"integrity": "sha1-9HTKXmqSRtb9jglTz6m5yAWvp44="
},
"fs.realpath": { "fs.realpath": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
@ -2045,8 +2154,7 @@
"get-port": { "get-port": {
"version": "3.1.0", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/get-port/-/get-port-3.1.0.tgz", "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.1.0.tgz",
"integrity": "sha1-7wGxioTKZIaXD/meVERhQac//T4=", "integrity": "sha1-7wGxioTKZIaXD/meVERhQac//T4="
"dev": true
}, },
"get-set-props": { "get-set-props": {
"version": "0.1.0", "version": "0.1.0",
@ -2196,6 +2304,11 @@
"integrity": "sha1-AHa59GonBQbduq6lZJaJdGBhKmc=", "integrity": "sha1-AHa59GonBQbduq6lZJaJdGBhKmc=",
"dev": true "dev": true
}, },
"http-errors": {
"version": "1.6.1",
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.1.tgz",
"integrity": "sha1-X4uO2YrKVFZWv1cplzh/kEpyIlc="
},
"http-signature": { "http-signature": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
@ -2241,8 +2354,7 @@
"inherits": { "inherits": {
"version": "2.0.3", "version": "2.0.3",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
"dev": true
}, },
"ini": { "ini": {
"version": "1.3.4", "version": "1.3.4",
@ -2306,6 +2418,11 @@
"integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=",
"dev": true "dev": true
}, },
"ipaddr.js": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.3.0.tgz",
"integrity": "sha1-HgOlL9rYOou7KyXL9JmLTP/NPew="
},
"irregular-plurals": { "irregular-plurals": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-1.2.0.tgz", "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-1.2.0.tgz",
@ -2904,6 +3021,11 @@
"integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=", "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=",
"dev": true "dev": true
}, },
"media-typer": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
"integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
},
"meow": { "meow": {
"version": "3.7.0", "version": "3.7.0",
"resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
@ -2960,23 +3082,36 @@
} }
} }
}, },
"merge-descriptors": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
"integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
},
"methods": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
"integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
},
"micromatch": { "micromatch": {
"version": "2.3.11", "version": "2.3.11",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
"integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
"dev": true "dev": true
}, },
"mime": {
"version": "1.3.4",
"resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz",
"integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM="
},
"mime-db": { "mime-db": {
"version": "1.27.0", "version": "1.27.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz",
"integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=", "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE="
"dev": true
}, },
"mime-types": { "mime-types": {
"version": "2.1.15", "version": "2.1.15",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz",
"integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0="
"dev": true
}, },
"mimic-fn": { "mimic-fn": {
"version": "1.1.0", "version": "1.1.0",
@ -3033,6 +3168,11 @@
"integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
"dev": true "dev": true
}, },
"negotiator": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
"integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk="
},
"normalize-package-data": { "normalize-package-data": {
"version": "2.3.8", "version": "2.3.8",
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.8.tgz", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.8.tgz",
@ -4037,6 +4177,11 @@
} }
} }
}, },
"on-finished": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
"integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc="
},
"once": { "once": {
"version": "1.4.0", "version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
@ -4127,6 +4272,11 @@
"integrity": "sha1-VjRtR0nXjyNDDKDHE4UK75GqNh0=", "integrity": "sha1-VjRtR0nXjyNDDKDHE4UK75GqNh0=",
"dev": true "dev": true
}, },
"parseurl": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz",
"integrity": "sha1-yKuMkiO6NIiKpkopeyiFO+wY2lY="
},
"path-exists": { "path-exists": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
@ -4157,6 +4307,11 @@
"integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=",
"dev": true "dev": true
}, },
"path-to-regexp": {
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
"integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
},
"path-type": { "path-type": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
@ -4164,10 +4319,9 @@
"dev": true "dev": true
}, },
"pify": { "pify": {
"version": "2.3.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
"integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
"dev": true
}, },
"pinkie": { "pinkie": {
"version": "2.0.4", "version": "2.0.4",
@ -4309,6 +4463,11 @@
"integrity": "sha1-XgHcJnWg3pq/p255nfozTW9IP0s=", "integrity": "sha1-XgHcJnWg3pq/p255nfozTW9IP0s=",
"dev": true "dev": true
}, },
"proxy-addr": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.4.tgz",
"integrity": "sha1-J+VF9pYKRKYn2bREZ+NcG2tM4vM="
},
"pseudomap": { "pseudomap": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
@ -4333,6 +4492,11 @@
"integrity": "sha1-EQ3Kv/OX6dz/fAeJzMCkmt8exbs=", "integrity": "sha1-EQ3Kv/OX6dz/fAeJzMCkmt8exbs=",
"dev": true "dev": true
}, },
"range-parser": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
"integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4="
},
"rc": { "rc": {
"version": "1.2.1", "version": "1.2.1",
"resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz",
@ -4575,12 +4739,39 @@
"integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=",
"dev": true "dev": true
}, },
"send": {
"version": "0.15.3",
"resolved": "https://registry.npmjs.org/send/-/send-0.15.3.tgz",
"integrity": "sha1-UBP5+ZAj31DRvZiSwZ4979HVMwk=",
"dependencies": {
"debug": {
"version": "2.6.7",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz",
"integrity": "sha1-krrR9tBbu2u6Isyoi80OyJTChh4="
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
}
}
},
"serve-static": {
"version": "1.12.3",
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.12.3.tgz",
"integrity": "sha1-n0uhni8wMMVH+K+ZEHg47DjVseI="
},
"set-immediate-shim": { "set-immediate-shim": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz",
"integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=",
"dev": true "dev": true
}, },
"setprototypeof": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz",
"integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ="
},
"shelljs": { "shelljs": {
"version": "0.7.7", "version": "0.7.7",
"resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.7.tgz", "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.7.tgz",
@ -4679,6 +4870,11 @@
"integrity": "sha1-1PM6tU6OOHeLDKXP07OvsS22hiA=", "integrity": "sha1-1PM6tU6OOHeLDKXP07OvsS22hiA=",
"dev": true "dev": true
}, },
"statuses": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz",
"integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4="
},
"string_decoder": { "string_decoder": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz",
@ -4902,6 +5098,11 @@
"integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
"dev": true "dev": true
}, },
"type-is": {
"version": "1.6.15",
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz",
"integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA="
},
"typedarray": { "typedarray": {
"version": "0.0.6", "version": "0.0.6",
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
@ -4926,6 +5127,11 @@
"integrity": "sha1-bc6VsmgcoAPuv7MEpBX5y6vMU4U=", "integrity": "sha1-bc6VsmgcoAPuv7MEpBX5y6vMU4U=",
"dev": true "dev": true
}, },
"unpipe": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
"integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
},
"unzip-response": { "unzip-response": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz",
@ -4956,6 +5162,11 @@
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
"dev": true "dev": true
}, },
"utils-merge": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz",
"integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg="
},
"uuid": { "uuid": {
"version": "3.0.1", "version": "3.0.1",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz",
@ -4968,6 +5179,11 @@
"integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=",
"dev": true "dev": true
}, },
"vary": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.1.tgz",
"integrity": "sha1-Z1Neu2lMHVIldFeYRmUyP1h+jTc="
},
"verror": { "verror": {
"version": "1.3.6", "version": "1.3.6",
"resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz",

6
package.json

@ -28,7 +28,11 @@
"url": "https://github.com/lukechilds/create-test-server/issues" "url": "https://github.com/lukechilds/create-test-server/issues"
}, },
"homepage": "https://github.com/lukechilds/create-test-server", "homepage": "https://github.com/lukechilds/create-test-server",
"dependencies": {}, "dependencies": {
"express": "^4.15.3",
"get-port": "^3.1.0",
"pify": "^3.0.0"
},
"devDependencies": { "devDependencies": {
"ava": "^0.19.1", "ava": "^0.19.1",
"coveralls": "^2.13.1", "coveralls": "^2.13.1",

18
src/index.js

@ -1,7 +1,21 @@
'use strict'; 'use strict';
const createTestServer = () => { const http = require('http');
const express = require('express');
const getPort = require('get-port');
const pify = require('pify');
}; const createTestServer = () => getPort().then(port => {
const app = express();
const server = http.createServer(app);
app.host = 'localhost';
app.port = port;
app.url = `http://${app.host}:${app.port}`;
app.listen = pify(server.listen.bind(server, app.port));
app.close = pify(server.close.bind(server));
return app.listen().then(() => app);
});
module.exports = createTestServer; module.exports = createTestServer;

Loading…
Cancel
Save