diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..a79bc46 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,24 @@ +module.exports = { + "env": { + "node": true + }, + "extends": "eslint:recommended", + "rules": { + "indent": [ + "off", + 4 + ], + "linebreak-style": [ + "error", + "unix" + ], + "quotes": [ + "error", + "single" + ], + "semi": [ + "off", + "never" + ] + } +}; diff --git a/Dockerfile b/Dockerfile index e725cb7..0f07446 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,7 +7,7 @@ WORKDIR /usr/src/app ARG NODE_ENV ENV NODE_ENV $NODE_ENV COPY package.json yarn.lock /usr/src/app/ -RUN yarn install && yarn cache clean --force +RUN yarn install --production && yarn cache clean --force COPY . /usr/src/app CMD [ "yarn", "start" ] diff --git a/package.json b/package.json index 4c5ea23..a25a396 100644 --- a/package.json +++ b/package.json @@ -14,16 +14,13 @@ }, "main": "haste", "dependencies": { - "connect": "3.6.5", "cookie-parser": "^1.4.3", "dotenv": "^4.0.0", "express": "^4.14.0", "express-session": "^1.15.6", "jsonwebtoken": "^8.1.0", - "nodemon": "^1.11.0", "passport": "^0.4.0", "passport-google-oauth20": "^1.0.0", - "st": "^1.2.2", "uglify-js": "1.3.5", "winston": "2.4.0" }, @@ -31,6 +28,7 @@ "busboy": "0.2.14", "eslint": "^4.9.0", "mocha": "*", + "nodemon": "^1.11.0", "should": "*" }, "bundledDependencies": [], diff --git a/server.js b/server.js index aec5562..e93f570 100644 --- a/server.js +++ b/server.js @@ -1,9 +1,7 @@ var http = require('http'); -var url = require('url'); var fs = require('fs'); var winston = require('winston'); -var connect_st = require('st'); var passport = require('passport'); var express = require('express') var session = require('express-session') @@ -25,7 +23,9 @@ config.restrict_domain = process.env.RESTRICT_DOMAIN if (config.logging) { try { winston.remove(winston.transports.Console); - } catch(er) { } + } catch(err) { + console.log(err) + } var detail, type; for (var i = 0; i < config.logging.length; i++) { detail = config.logging[i]; @@ -208,27 +208,11 @@ function ensureAuthenticatedAPI(req, res, next) { res.sendStatus(401); } -// Otherwise, try to match static files -app.use(connect_st({ - path: __dirname + '/static', - content: { maxAge: config.staticMaxAge }, - passthrough: true, - index: false -})); - -// Then we can loop back - and everything else should be a token, -// so route it back to / -app.get('/:id', ensureAuthenticatedWeb, function(request, response, next) { - request.sturl = '/'; - next(); +app.use( express.static(__dirname + '/static' ) ) +// a request for a record returns the index +app.get('/:id', ensureAuthenticatedWeb, function(request, response) { + response.sendFile(__dirname + '/static/index.html') }); -// And match index -app.use(connect_st({ - path: __dirname + '/static', - content: { maxAge: config.staticMaxAge }, - index: 'index.html' -})); - http.createServer(app).listen(config.port, '0.0.0.0'); winston.info('listening on ' + config.host + ':' + config.port); diff --git a/yarn.lock b/yarn.lock index ec36ce2..48c9f68 100644 --- a/yarn.lock +++ b/yarn.lock @@ -143,12 +143,6 @@ assert-plus@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" -async-cache@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/async-cache/-/async-cache-1.1.0.tgz#4a9a5a89d065ec5d8e5254bd9ee96ba76c532b5a" - dependencies: - lru-cache "^4.0.0" - async-each@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" @@ -195,12 +189,6 @@ binary-extensions@^1.0.0: version "1.10.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.10.0.tgz#9aeb9a6c5e88638aad171e167f5900abe24835d0" -bl@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.1.tgz#cac328f7bee45730d404b692203fcb590e172d5e" - dependencies: - readable-stream "^2.0.5" - block-stream@*: version "0.0.9" resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" @@ -402,15 +390,6 @@ configstore@^3.0.0: write-file-atomic "^2.0.0" xdg-basedir "^3.0.0" -connect@3.6.5: - version "3.6.5" - resolved "https://registry.yarnpkg.com/connect/-/connect-3.6.5.tgz#fb8dde7ba0763877d0ec9df9dac0b4b40e72c7da" - dependencies: - debug "2.6.9" - finalhandler "1.0.6" - parseurl "~1.3.2" - utils-merge "1.0.1" - console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" @@ -801,10 +780,6 @@ fast-levenshtein@~2.0.4: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" -fd@~0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/fd/-/fd-0.0.2.tgz#e0edb2bd7a88cc86dd9f16391cba832418fd87ee" - figures@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" @@ -832,18 +807,6 @@ fill-range@^2.1.0: repeat-element "^1.1.2" repeat-string "^1.5.2" -finalhandler@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.0.6.tgz#007aea33d1a4d3e42017f624848ad58d212f814f" - dependencies: - debug "2.6.9" - encodeurl "~1.0.1" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.2" - statuses "~1.3.1" - unpipe "~1.0.0" - finalhandler@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5" @@ -1015,7 +978,7 @@ got@^6.7.1: unzip-response "^2.0.1" url-parse-lax "^1.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@~4.1.11: +graceful-fs@^4.1.11, graceful-fs@^4.1.2: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" @@ -1492,7 +1455,7 @@ lowercase-keys@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" -lru-cache@^4.0.0, lru-cache@^4.0.1: +lru-cache@^4.0.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55" dependencies: @@ -1549,7 +1512,7 @@ mime-types@^2.1.12, mime-types@~2.1.15, mime-types@~2.1.16, mime-types@~2.1.7: dependencies: mime-db "~1.30.0" -mime@1.4.1, mime@~1.4.1: +mime@1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" @@ -1608,7 +1571,7 @@ natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" -negotiator@0.6.1, negotiator@~0.6.1: +negotiator@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" @@ -1938,7 +1901,7 @@ readable-stream@1.1.x: isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.2: +readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.2: version "2.3.3" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" dependencies: @@ -2202,18 +2165,6 @@ sshpk@^1.7.0: jsbn "~0.1.0" tweetnacl "~0.14.0" -st@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/st/-/st-1.2.2.tgz#b95554f41b457bf0ed1c48f2bad8fccff894b14f" - dependencies: - async-cache "~1.1.0" - bl "~1.2.1" - fd "~0.0.2" - mime "~1.4.1" - negotiator "~0.6.1" - optionalDependencies: - graceful-fs "~4.1.11" - stack-trace@0.0.x: version "0.0.10" resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0"