From 22e0f160f95f6b13686fe5a7991d98770b3e48eb Mon Sep 17 00:00:00 2001 From: Francesc Rosas Date: Fri, 28 Dec 2018 18:34:45 +0100 Subject: [PATCH] Remove server-side logic --- .env-example | 4 - .gitignore | 3 +- README.md | 3 +- netlify.toml | 5 ++ package-lock.json | 149 ++++++++++++++++++++++++++++++++++-- package.json | 11 +-- src/browser/DocumentIcon.ts | 4 +- src/server/webServer.js | 26 ------- 8 files changed, 157 insertions(+), 48 deletions(-) delete mode 100644 .env-example create mode 100644 netlify.toml delete mode 100644 src/server/webServer.js diff --git a/.env-example b/.env-example deleted file mode 100644 index 6aab9663..00000000 --- a/.env-example +++ /dev/null @@ -1,4 +0,0 @@ -PORT=5000 -DEBUG=app:* -DEBUG_COLORS=true -DEBUG_HIDE_DATE=true \ No newline at end of file diff --git a/.gitignore b/.gitignore index 143a0196..b2d59d1f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,2 @@ /node_modules -/dist -/.env \ No newline at end of file +/dist \ No newline at end of file diff --git a/README.md b/README.md index 05d823ff..181bb975 100644 --- a/README.md +++ b/README.md @@ -7,9 +7,10 @@ Copy `.env-example` to `.env` and edit it as needed. ```bash $ npm i $ npm run watch -$ npm run browser ``` +Open http://localhost:8080 + # Enabling debugging In the browser console: diff --git a/netlify.toml b/netlify.toml new file mode 100644 index 00000000..130c3ee2 --- /dev/null +++ b/netlify.toml @@ -0,0 +1,5 @@ +[[headers]] + for = "/scripts/service-worker.js" + [headers.values] + Cache-Control = "max-age=0" + Service-Worker-Allowed = "/" # See https://developers.google.com/web/updates/2018/06/fresher-sw \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index a957953d..f0fcdc19 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2763,6 +2763,11 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, + "corser": { + "version": "2.0.1", + "resolved": "http://registry.npmjs.org/corser/-/corser-2.0.1.tgz", + "integrity": "sha1-jtolLsqrWEDc2XXOuQ2TcMgZ/4c=" + }, "cosmiconfig": { "version": "5.0.5", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.5.tgz", @@ -3564,11 +3569,6 @@ "is-obj": "^1.0.0" } }, - "dotenv": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz", - "integrity": "sha1-hk7xN5rO1Vzm+V3r7NzhefegzR0=" - }, "duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", @@ -3586,6 +3586,29 @@ "stream-shift": "^1.0.0" } }, + "ecstatic": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/ecstatic/-/ecstatic-3.3.0.tgz", + "integrity": "sha512-EblWYTd+wPIAMQ0U4oYJZ7QBypT9ZUIwpqli0bKDjeIIQnXDBK2dXtZ9yzRCOlkW1HkO8gn7/FxLK1yPIW17pw==", + "requires": { + "he": "^1.1.1", + "mime": "^1.6.0", + "minimist": "^1.1.0", + "url-join": "^2.0.5" + }, + "dependencies": { + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "minimist": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + } + } + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -3936,6 +3959,11 @@ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" }, + "eventemitter3": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.0.tgz", + "integrity": "sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA==" + }, "events": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", @@ -4323,6 +4351,14 @@ "readable-stream": "^2.0.4" } }, + "follow-redirects": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.6.0.tgz", + "integrity": "sha512-4Oh4eI3S9OueVV41AgJ1oLjpaJUhbJ7JDGOMhe0AFqoSejl5Q2nn3eGglAzRUKVKZE8jG5MNn66TjCJMAnpsWA==", + "requires": { + "debug": "=3.1.0" + } + }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", @@ -5201,6 +5237,38 @@ "statuses": ">= 1.4.0 < 2" } }, + "http-proxy": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz", + "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==", + "requires": { + "eventemitter3": "^3.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-server": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/http-server/-/http-server-0.11.1.tgz", + "integrity": "sha512-6JeGDGoujJLmhjiRGlt8yK8Z9Kl0vnl/dQoQZlc4oeqaUoAKQg94NILLfrY3oWzSyFaQCVNTcKE5PZ3cH8VP9w==", + "requires": { + "colors": "1.0.3", + "corser": "~2.0.0", + "ecstatic": "^3.0.0", + "http-proxy": "^1.8.1", + "opener": "~1.4.0", + "optimist": "0.6.x", + "portfinder": "^1.0.13", + "union": "~0.4.3" + }, + "dependencies": { + "colors": { + "version": "1.0.3", + "resolved": "http://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" + } + } + }, "https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", @@ -6616,6 +6684,11 @@ "mimic-fn": "^1.0.0" } }, + "opener": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.4.3.tgz", + "integrity": "sha1-XG2ixdflgx6P+jlklQ+NZnSskLg=" + }, "opn": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz", @@ -6625,6 +6698,22 @@ "is-wsl": "^1.1.0" } }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" + } + } + }, "optionator": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", @@ -6910,6 +6999,31 @@ "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==" }, + "portfinder": { + "version": "1.0.20", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.20.tgz", + "integrity": "sha512-Yxe4mTyDzTd59PZJY4ojZR8F+E5e97iq2ZOHPz3HDgSvYC5siNad2tLooQ5y5QHyQhc3xVqvyk/eNA3wuoa7Sw==", + "requires": { + "async": "^1.5.2", + "debug": "^2.2.0", + "mkdirp": "0.5.x" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "http://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + } + } + }, "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", @@ -7917,6 +8031,11 @@ "resolve-from": "^1.0.0" } }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" + }, "resolve": { "version": "1.7.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", @@ -9008,6 +9127,21 @@ } } }, + "union": { + "version": "0.4.6", + "resolved": "http://registry.npmjs.org/union/-/union-0.4.6.tgz", + "integrity": "sha1-GY+9rrolTniLDvy2MLwR8kopWeA=", + "requires": { + "qs": "~2.3.3" + }, + "dependencies": { + "qs": { + "version": "2.3.3", + "resolved": "http://registry.npmjs.org/qs/-/qs-2.3.3.tgz", + "integrity": "sha1-6eha2+ddoLvkyOBHaghikPhjtAQ=" + } + } + }, "union-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", @@ -9221,6 +9355,11 @@ } } }, + "url-join": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-2.0.5.tgz", + "integrity": "sha1-WvIvGMBSoACkjXuCxenC4v7tpyg=" + }, "url-parse-lax": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", diff --git a/package.json b/package.json index 468b8237..fca69cad 100644 --- a/package.json +++ b/package.json @@ -2,19 +2,16 @@ "name": "lag", "version": "0.0.0", "private": true, - "main": "src/server/webServer", "scripts": { "build": "webpack -p", "test": "mocha 'test/**/*.js'", - "watch": "concurrently --kill-others --names webpack,lint,mocha,web-server \"npm run watch-webpack\" \"npm run watch-lint\" \"npm run watch-mocha\" \"npm run watch-web-server\"", "watch-webpack": "onchange -i webpack.config.js 'src/{server,universal}/**/*.{js,ts}' -- webpack --watch", + "watch": "concurrently --kill-others --names webpack,lint,mocha,web-server \"npm run watch-webpack\" \"npm run watch-lint\" \"npm run watch-mocha\" \"npm run web-server\"", "watch-lint": "concurrently -k -n eslint,tslint \"npm run watch-eslint\" \"npm run watch-tslint\"", "watch-eslint": "onchange -i '{src,test}/**/*.js' -- eslint . --fix", "watch-tslint": "onchange -i 'src/**/*.ts' -- tslint 'src/**/*.ts' --fix", "watch-mocha": "onchange -i '{src,test}/**/*.js' -- npm t", - "watch-web-server": "onchange -i 'src/{server,universal}/**/*.js' -- npm start", - "start": "node -r dotenv/config .", - "browser": "source .env && open http://localhost:$PORT" + "web-server": "http-server dist/browser" }, "babel": { "presets": [ @@ -43,13 +40,13 @@ "css-loader": "^0.28.11", "d3": "^4.12.2", "debug": "^3.1.0", - "dotenv": "^4.0.0", "eslint": "^4.19.1", "eslint-plugin-prettier": "^2.6.0", "eslint-plugin-react": "^7.9.1", "express": "^4.16.3", "extract-text-webpack-plugin": "^4.0.0-beta.0", "html-webpack-plugin": "^3.2.0", + "http-server": "^0.11.1", "lodash-es": "^4.17.10", "mocha": "^5.2.0", "onchange": "^4.0.0", @@ -66,4 +63,4 @@ "devDependencies": { "webpack-command": "^0.2.0" } -} +} \ No newline at end of file diff --git a/src/browser/DocumentIcon.ts b/src/browser/DocumentIcon.ts index 6e5f6d64..3344e2ec 100644 --- a/src/browser/DocumentIcon.ts +++ b/src/browser/DocumentIcon.ts @@ -1,10 +1,8 @@ -declare var BUILD_ID: any; - import Pings from "./Pings"; import User from "./User"; const getBulletUrl = (color: string) => { - return `images/bullet_${color}.png?v=${BUILD_ID}`; + return `images/bullet_${color}.png`; }; const getColor = (lag: number) => { diff --git a/src/server/webServer.js b/src/server/webServer.js deleted file mode 100644 index 88bf3f92..00000000 --- a/src/server/webServer.js +++ /dev/null @@ -1,26 +0,0 @@ -const express = require("express"); -const compression = require("compression"); -const debug = require("debug")("app:http"); - -const A_LONG_TIME = 1 /* year */ * 365 * 24 * 60 * 60; - -const app = express(); - -app.use(compression()); - -app.use((req, res, next) => { - if (req.query.v) { - res.append("Cache-Control", `max-age=${A_LONG_TIME}`); - } - if (req.path == "/scripts/service-worker.js") { - res.append("Service-Worker-Allowed", "/"); - res.append("Cache-Control", "max-age=0"); // See https://developers.google.com/web/updates/2018/06/fresher-sw - } - next(); -}); - -app.use(express.static(`${__dirname}/../../dist/browser`)); - -const httpPort = process.env.PORT || 80; -app.listen(httpPort); -debug(`Listening on http://localhost:${httpPort}`);