From bd3ecf49172f6e561c4acedb787e775421fb70ef Mon Sep 17 00:00:00 2001 From: Richie Bendall Date: Fri, 3 Jan 2020 16:12:18 +1300 Subject: [PATCH] refactor: Update deps, proper temp-dir retrieval, simplify filesystem actions with fs-extra and fix user files Signed-off-by: Richie Bendall --- licenses/ISC.ejs | 4 ++-- licenses/MIT.ejs | 4 ++-- middleware/load-options.js | 4 ++-- middleware/load-user.js | 5 ++--- package.json | 26 ++++++++++---------------- routes/post.js | 25 ++++++------------------- server.js | 2 +- test.js | 26 ++++++++++---------------- users/deneme-deneme.json | 4 ++-- users/deneme-denemk.json | 4 ++-- users/deneme-denemkh.json | 4 ++-- users/deneme.json | 4 ++-- users/emre-atal.json | 4 ++-- yarn.lock | Bin 217374 -> 188408 bytes 14 files changed, 45 insertions(+), 71 deletions(-) diff --git a/licenses/ISC.ejs b/licenses/ISC.ejs index 44fc3094..4f433020 100644 --- a/licenses/ISC.ejs +++ b/licenses/ISC.ejs @@ -1,6 +1,6 @@ -<% include components/header %> +<%- include('components/header') %>
<%- gravatar %> @@ -20,7 +20,7 @@ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

-<% include components/footer %> +<%- include('components/footer') %> diff --git a/licenses/MIT.ejs b/licenses/MIT.ejs index cb50611c..9823d05f 100644 --- a/licenses/MIT.ejs +++ b/licenses/MIT.ejs @@ -1,6 +1,6 @@ -<% include components/header %> +<%- include('components/header') %>
<%- gravatar %> @@ -26,7 +26,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-<% include components/footer %> +<%- include('components/footer') %> diff --git a/middleware/load-options.js b/middleware/load-options.js index 08dfe04c..5879c25e 100644 --- a/middleware/load-options.js +++ b/middleware/load-options.js @@ -1,4 +1,4 @@ -const thisYear = new Date().getFullYear(); +const currentYear = new Date().getFullYear(); module.exports = (req, res, next) => { const parts = req.url.split('/'); @@ -47,7 +47,7 @@ module.exports = (req, res, next) => { { format: 'html', startYear: null, - endYear: thisYear, + endYear: currentYear, sha: null, } ); diff --git a/middleware/load-user.js b/middleware/load-user.js index e9ffbaea..eb4f9424 100644 --- a/middleware/load-user.js +++ b/middleware/load-user.js @@ -1,5 +1,4 @@ -const { promisify } = require('util'); -const readFile = promisify(require('fs').readFile); +const fs = require('fs-extra'); const path = require('path'); module.exports = async (req, res, next) => { @@ -16,7 +15,7 @@ module.exports = async (req, res, next) => { }; try { - const data = await readFile( + const data = await fs.readFile( path.join(__dirname, '..', 'users', `${id}.json`), 'utf8' ); diff --git a/package.json b/package.json index eb7dbf11..c51cd738 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "url": "git@github.com:remy/mit-license.git" }, "engines": { - "node": ">=10.x.x" + "node": ">=10" }, "husky": { "hooks": { @@ -30,34 +30,28 @@ }, "license": "MIT", "dependencies": { - "@octokit/rest": "^16.34.1", + "@octokit/rest": "^16.36.0", "btoa": "^1.2.1", - "ejs": "^2.7.1", + "ejs": "^3.0.1", "express": "^4.17.1", "express-minify": "^1.0.0", + "fs-extra": "^8.1.0", "lodash": "^4.17.15", "md5": "^2.2.1", "postcss-middleware": "^1.1.4", "postcss-preset-env": "^6.7.0", - "serve-favicon": "^2.5.0" + "serve-favicon": "^2.5.0", + "temp-dir": "^2.0.0" }, "devDependencies": { "@remy/eslint": "^3.2.2", - "@types/btoa": "^1.2.3", - "@types/css": "^0.0.31", - "@types/ejs": "^2.6.3", - "@types/express": "^4.17.2", - "@types/express-minify": "^0.1.34", - "@types/lodash": "^4.14.144", - "@types/md5": "^2.1.33", - "@types/node": "^12.12.6", "babel-eslint": "^10.0.3", "css": "^2.2.4", - "eslint": "^6.6.0", - "eslint-plugin-node": "^10.0.0", + "eslint": "^6.8.0", + "eslint-plugin-node": "^11.0.0", "has-flag": "^4.0.0", - "husky": "^3.0.9", - "nodemon": "^1.19.4" + "husky": "^3.1.0", + "nodemon": "^2.0.2" }, "resolutions": { "postcss-middleware/vinyl-fs/glob-stream/micromatch/braces": "^3.0.2" diff --git a/routes/post.js b/routes/post.js index 986cd408..dae92717 100644 --- a/routes/post.js +++ b/routes/post.js @@ -1,8 +1,5 @@ -const fs = require('fs'); +const fs = require('fs-extra'); const path = require('path'); -const { promisify } = require('util'); -const access = promisify(fs.access); -const writeFile = promisify(fs.writeFile); const btoa = require('btoa'); const { version } = require(path.join(__dirname, '..', 'package.json')); const _ = require('lodash'); @@ -18,8 +15,7 @@ function getUserData({ query, body }) { // If query parameters provided if (_.size(query) > 0) return query; // If the data parsed as {'{data: "value"}': ''} - if (_.size(body) === 1 && !_.first(_.values(body))) - return JSON.parse(_.first(_.keys(body))); + if (_.size(body) === 1 && !_.first(_.values(body))) return JSON.parse(_.first(_.keys(body))); // Fallback return body; } @@ -53,24 +49,15 @@ module.exports = async (req, res) => { return; } - try { - // Check if the user file exists in the users directory - await access(path.join(__dirname, '..', 'users', `${id}.json`)); + // Check if the user file exists in the users directory + const exists = await fs.pathExists(path.join(__dirname, '..', 'users', `${id}.json`)); + if (exists) { res .status(409) .send( 'User already exists - to update values, please send a pull request on https://github.com/remy/mit-license' ); return; - } catch ({ code, message }) { - if (code !== 'ENOENT') { - res - .code(500) - .send( - `An internal error occurred - open an issue on https://github.com/remy/mit-license with the following information: ${message}` - ); - return; - } } // File doesn't exist @@ -95,7 +82,7 @@ module.exports = async (req, res) => { }, }); - writeFile(path.join(__dirname, '..', 'users', `${id}.json`), fileContent); + await fs.writeFile(path.join(__dirname, '..', 'users', `${id}.json`), fileContent); res.status(201).send(`MIT license page created: https://${hostname}`); } catch (err) { diff --git a/server.js b/server.js index 25432b3b..8f4c5c1d 100644 --- a/server.js +++ b/server.js @@ -9,7 +9,7 @@ const express = require('express'); const minify = require('express-minify'); const favicon = require('serve-favicon'); const postcssMiddleware = require('postcss-middleware'); -const tmpdir = require('os').tmpdir(); +const tmpdir = require('temp-dir'); const path = require('path'); // Server diff --git a/test.js b/test.js index b0360c3d..a741e2ec 100644 --- a/test.js +++ b/test.js @@ -1,33 +1,28 @@ const path = require('path'); -const fs = require('fs'); +const fs = require('fs-extra'); const CSS = require('css'); const { validDomainId } = require('./routes/utils'); -const { promisify } = require('util'); -const readFile = promisify(fs.readFile); -const readdir = promisify(fs.readdir); const hasFlag = require('has-flag'); -let errored = false; - function report(content, fix) { - errored = true; console.error(content); if (fix && hasFlag('--fix')) fix(); + process.exitCode = 1; } (async () => { - const users = await readdir('users'); - await users.forEach(async user => { + const users = await fs.readdir('users'); + users.forEach(async user => { if (!user.endsWith('json')) { report(`${user} is not a json file`, () => - fs.unlink(path.join('users', user), () => {}) + fs.unlink(path.join('users', user), () => { }) ); } if (!validDomainId(user.replace('.json', ''))) { report(`${user} is not a valid domain id.`); } try { - const data = await readFile(path.join('users', user), 'utf8'); + const data = await fs.readFile(path.join('users', user), 'utf8'); try { const u = JSON.parse(data); if (!u.locked && !u.copyright) { @@ -37,14 +32,14 @@ function report(content, fix) { report(`Version tag found in ${user}`, () => { delete u.version; const stringified = `${JSON.stringify(u, 0, 2)}\n`; - fs.writeFile(path.join('users', user), stringified, () => {}); + fs.writeFile(path.join('users', user), stringified, () => { }); }); } if (typeof u.gravatar === 'string') { report(`Gravatar boolean encoded as string found in ${user}`, () => { u.gravatar = u.gravatar === 'true'; const stringified = `${JSON.stringify(u, 0, 2)}\n`; - fs.writeFile(path.join('users', user), stringified, () => {}); + fs.writeFile(path.join('users', user), stringified, () => { }); }); } } catch ({ message }) { @@ -55,11 +50,11 @@ function report(content, fix) { } }); - const themes = await readdir('themes'); + const themes = await fs.readdir('themes'); await themes.forEach(async theme => { if (theme.endsWith('css')) { try { - const data = await readFile(path.join('themes', theme), 'utf8'); + const data = await fs.readFile(path.join('themes', theme), 'utf8'); try { CSS.parse(data); } catch ({ message }) { @@ -70,5 +65,4 @@ function report(content, fix) { } } }); - if (errored) process.exit(1); })(); diff --git a/users/deneme-deneme.json b/users/deneme-deneme.json index 0cd51ecb..9cd460f5 100644 --- a/users/deneme-deneme.json +++ b/users/deneme-deneme.json @@ -5,5 +5,5 @@ "format": "html", "license": "mit", "theme": "default", - "gravatar": "true" -} \ No newline at end of file + "gravatar": true +} diff --git a/users/deneme-denemk.json b/users/deneme-denemk.json index f13ddd31..c7c644ab 100644 --- a/users/deneme-denemk.json +++ b/users/deneme-denemk.json @@ -5,5 +5,5 @@ "format": "html", "license": "isc", "theme": "eula-modern", - "gravatar": "true" -} \ No newline at end of file + "gravatar": true +} diff --git a/users/deneme-denemkh.json b/users/deneme-denemkh.json index ec05090e..8c21a673 100644 --- a/users/deneme-denemkh.json +++ b/users/deneme-denemkh.json @@ -5,5 +5,5 @@ "format": "html", "license": "mit", "theme": "friendly", - "gravatar": "true" -} \ No newline at end of file + "gravatar": true +} diff --git a/users/deneme.json b/users/deneme.json index 9ca5102f..5e4074e7 100644 --- a/users/deneme.json +++ b/users/deneme.json @@ -5,5 +5,5 @@ "format": "html", "license": "mit", "theme": "default", - "gravatar": "true" -} \ No newline at end of file + "gravatar": true +} diff --git a/users/emre-atal.json b/users/emre-atal.json index 18d366b0..4e24c0a4 100644 --- a/users/emre-atal.json +++ b/users/emre-atal.json @@ -5,5 +5,5 @@ "format": "html", "license": "mit", "theme": "default", - "gravatar": "false" -} \ No newline at end of file + "gravatar": false +} diff --git a/yarn.lock b/yarn.lock index 53a3dd64c07935daace7987109d74e566f5661f6..43984aa33732e0947eea672c73996a739518c2c5 100644 GIT binary patch delta 16498 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 delta 35891 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