From 5ba36ee421a1ec1bc95b72e76b7185672355899b Mon Sep 17 00:00:00 2001 From: Jafar Akhondali Date: Wed, 14 Oct 2020 18:46:27 +0330 Subject: [PATCH] refactor: server code (#2545) + Remove duplicated await + Replace some legacy codes with ES6 + Fix some of eslint problems --- server/core/db.js | 3 +-- server/graph/resolvers/asset.js | 2 +- server/master.js | 6 +++--- server/models/assetFolders.js | 3 +-- server/models/pages.js | 10 +++++----- .../modules/rendering/html-image-prefetch/renderer.js | 2 +- server/modules/rendering/markdown-core/underline.js | 10 +++++----- server/modules/rendering/markdown-kroki/renderer.js | 9 ++------- .../modules/rendering/markdown-plantuml/renderer.js | 11 +++-------- server/modules/search/elasticsearch/engine.js | 2 +- server/setup.js | 2 +- server/test/helpers/page.test.js | 6 +++--- 12 files changed, 27 insertions(+), 39 deletions(-) diff --git a/server/core/db.js b/server/core/db.js index 019dfd1e..6ae657a8 100644 --- a/server/core/db.js +++ b/server/core/db.js @@ -43,8 +43,7 @@ module.exports = { let sslOptions = null if (dbUseSSL && _.isPlainObject(dbConfig) && _.get(WIKI.config.db, 'sslOptions.auto', null) === false) { sslOptions = WIKI.config.db.sslOptions - // eslint-disable-next-line no-unneeded-ternary - sslOptions.rejectUnauthorized = sslOptions.rejectUnauthorized === false ? false : true + sslOptions.rejectUnauthorized = sslOptions.rejectUnauthorized !== false if (sslOptions.ca && sslOptions.ca.indexOf('-----') !== 0) { sslOptions.ca = fs.readFileSync(path.resolve(WIKI.ROOTPATH, sslOptions.ca)) } diff --git a/server/graph/resolvers/asset.js b/server/graph/resolvers/asset.js index 05b3d921..91efbdda 100644 --- a/server/graph/resolvers/asset.js +++ b/server/graph/resolvers/asset.js @@ -39,7 +39,7 @@ module.exports = { const parentPath = parentHierarchy.map(h => h.slug).join('/') return _.filter(results, r => { const path = parentPath ? `${parentPath}/${r.slug}` : r.slug - return WIKI.auth.checkAccess(context.req.user, ['read:assets'], { path }); + return WIKI.auth.checkAccess(context.req.user, ['read:assets'], { path }) }) } }, diff --git a/server/master.js b/server/master.js index eabb570b..84192611 100644 --- a/server/master.js +++ b/server/master.js @@ -26,8 +26,8 @@ module.exports = async () => { // Load middlewares // ---------------------------------------- - var mw = autoload(path.join(WIKI.SERVERPATH, '/middlewares')) - var ctrl = autoload(path.join(WIKI.SERVERPATH, '/controllers')) + const mw = autoload(path.join(WIKI.SERVERPATH, '/middlewares')) + const ctrl = autoload(path.join(WIKI.SERVERPATH, '/controllers')) // ---------------------------------------- // Define Express App @@ -169,7 +169,7 @@ module.exports = async () => { // ---------------------------------------- app.use((req, res, next) => { - var err = new Error('Not Found') + const err = new Error('Not Found') err.status = 404 next(err) }) diff --git a/server/models/assetFolders.js b/server/models/assetFolders.js index 965eb40c..4acb496c 100644 --- a/server/models/assetFolders.js +++ b/server/models/assetFolders.js @@ -47,8 +47,7 @@ module.exports = class AssetFolder extends Model { sqb.select('a.id', 'a.name', 'a.slug', 'a.parentId').from('assetFolders AS a').join('ancestors', 'ancestors.parentId', 'a.id') }) }).select('*').from('ancestors') - } - else { + } else { hier = await WIKI.models.knex.withRecursive('ancestors', qb => { qb.select('id', 'name', 'slug', 'parentId').from('assetFolders').where('id', folderId).union(sqb => { sqb.select('a.id', 'a.name', 'a.slug', 'a.parentId').from('assetFolders AS a').join('ancestors', 'ancestors.parentId', 'a.id') diff --git a/server/models/pages.js b/server/models/pages.js index 04ac6f34..c452365e 100644 --- a/server/models/pages.js +++ b/server/models/pages.js @@ -231,7 +231,7 @@ module.exports = class Page extends Model { */ static async createPage(opts) { // -> Validate path - if (opts.path.indexOf('.') >= 0 || opts.path.indexOf(' ') >= 0 || opts.path.indexOf('\\') >= 0 || opts.path.indexOf('//') >= 0) { + if (opts.path.includes('.') || opts.path.includes(' ') || opts.path.includes('\\') || opts.path.includes('//')) { throw new WIKI.Error.PageIllegalPath() } @@ -484,7 +484,7 @@ module.exports = class Page extends Model { } // -> Validate path - if (opts.destinationPath.indexOf('.') >= 0 || opts.destinationPath.indexOf(' ') >= 0 || opts.destinationPath.indexOf('\\') >= 0 || opts.destinationPath.indexOf('//') >= 0) { + if (opts.destinationPath.includes('.') || opts.destinationPath.includes(' ') || opts.destinationPath.includes('\\') || opts.destinationPath.includes('//')) { throw new WIKI.Error.PageIllegalPath() } @@ -514,7 +514,7 @@ module.exports = class Page extends Model { } // -> Check for existing page at destination path - const destPage = await await WIKI.models.pages.query().findOne({ + const destPage = await WIKI.models.pages.query().findOne({ path: opts.destinationPath, localeCode: opts.destinationLocale }) @@ -575,7 +575,7 @@ module.exports = class Page extends Model { path: opts.destinationPath, mode: 'move' }) - + // -> Reconnect Links : Validate invalid links to the new path await WIKI.models.pages.reconnectLinks({ locale: opts.destinationLocale, @@ -595,7 +595,7 @@ module.exports = class Page extends Model { if (_.has(opts, 'id')) { page = await WIKI.models.pages.query().findById(opts.id) } else { - page = await await WIKI.models.pages.query().findOne({ + page = await WIKI.models.pages.query().findOne({ path: opts.path, localeCode: opts.locale }) diff --git a/server/modules/rendering/html-image-prefetch/renderer.js b/server/modules/rendering/html-image-prefetch/renderer.js index 12733e3a..07b8afa7 100644 --- a/server/modules/rendering/html-image-prefetch/renderer.js +++ b/server/modules/rendering/html-image-prefetch/renderer.js @@ -17,7 +17,7 @@ const prefetch = async (element) => { const contentType = response.headers[`content-type`] const image = Buffer.from(response.body).toString('base64') element.attr('src', `data:${contentType};base64,${image}`) - element.removeClass('prefetch-candidate'); + element.removeClass('prefetch-candidate') } module.exports = { diff --git a/server/modules/rendering/markdown-core/underline.js b/server/modules/rendering/markdown-core/underline.js index c840ea0b..a7bc47f8 100644 --- a/server/modules/rendering/markdown-core/underline.js +++ b/server/modules/rendering/markdown-core/underline.js @@ -1,12 +1,12 @@ const renderEm = (tokens, idx, opts, env, slf) => { - const token = tokens[idx]; + const token = tokens[idx] if (token.markup === '_') { - token.tag = 'u'; + token.tag = 'u' } - return slf.renderToken(tokens, idx, opts); + return slf.renderToken(tokens, idx, opts) } module.exports = (md) => { - md.renderer.rules.em_open = renderEm; - md.renderer.rules.em_close = renderEm; + md.renderer.rules.em_open = renderEm + md.renderer.rules.em_close = renderEm } diff --git a/server/modules/rendering/markdown-kroki/renderer.js b/server/modules/rendering/markdown-kroki/renderer.js index f066bf4c..1487f737 100644 --- a/server/modules/rendering/markdown-kroki/renderer.js +++ b/server/modules/rendering/markdown-kroki/renderer.js @@ -73,13 +73,8 @@ module.exports = { continue } - var closeMarkerMatched = true - for (i = 0; i < closeMarker.length; ++i) { - if (closeMarker[i] !== state.src[start + i]) { - closeMarkerMatched = false - break - } - } + const i = closeMarker.findIndex(item => item !== state.src[start + i]) + const closeMarkerMatched = i !== -1 if (!closeMarkerMatched) { continue diff --git a/server/modules/rendering/markdown-plantuml/renderer.js b/server/modules/rendering/markdown-plantuml/renderer.js index 62a56a7a..0ad67e9e 100644 --- a/server/modules/rendering/markdown-plantuml/renderer.js +++ b/server/modules/rendering/markdown-plantuml/renderer.js @@ -74,13 +74,8 @@ module.exports = { continue } - var closeMarkerMatched = true - for (i = 0; i < closeMarker.length; ++i) { - if (closeMarker[i] !== state.src[start + i]) { - closeMarkerMatched = false - break - } - } + const i = closeMarker.findIndex(item => item !== state.src[start + i]) + const closeMarkerMatched = i !== -1 if (!closeMarkerMatched) { continue @@ -112,7 +107,7 @@ module.exports = { altToken ) - var zippedCode = encode64(zlib.deflateRawSync('@startuml\n' + contents + '\n@enduml').toString('binary')) + const zippedCode = encode64(zlib.deflateRawSync('@startuml\n' + contents + '\n@enduml').toString('binary')) token = state.push('uml_diagram', 'img', 0) // alt is constructed from children. No point in populating it here. diff --git a/server/modules/search/elasticsearch/engine.js b/server/modules/search/elasticsearch/engine.js index 0a97ed79..33e277aa 100644 --- a/server/modules/search/elasticsearch/engine.js +++ b/server/modules/search/elasticsearch/engine.js @@ -104,7 +104,7 @@ module.exports = { }, { query_string: { - query: "*" + q + "*" + query: `*${q}*` } } ], diff --git a/server/setup.js b/server/setup.js index 57daf5ac..44fb9d5d 100644 --- a/server/setup.js +++ b/server/setup.js @@ -378,7 +378,7 @@ module.exports = () => { // ---------------------------------------- app.use(function (req, res, next) { - var err = new Error('Not Found') + const err = new Error('Not Found') err.status = 404 next(err) }) diff --git a/server/test/helpers/page.test.js b/server/test/helpers/page.test.js index 1ff66e7d..49c27bad 100644 --- a/server/test/helpers/page.test.js +++ b/server/test/helpers/page.test.js @@ -7,7 +7,7 @@ describe('helpers/page/injectPageMetadata', () => { isPublished: true, updatedAt: new Date(), content: 'TEST CONTENT', - createdAt: new Date('2019-01-01'), + createdAt: new Date('2019-01-01') } it('returns the page content by default when content type is unknown', () => { @@ -20,7 +20,7 @@ describe('helpers/page/injectPageMetadata', () => { const markdownPage = { ...page, contentType: 'markdown', - editorKey: 'markdown', + editorKey: 'markdown' } const expected = `--- @@ -42,7 +42,7 @@ TEST CONTENT` const htmlPage = { ...page, contentType: 'html', - editorKey: 'html', + editorKey: 'html' } const expected = `