diff --git a/.eslintrc b/.eslintrc index b6636f29e9fe67092686346bfaf06f0305db76e9..04d96f71c467f18cbc2f9af5b7f9ad4337f348a6 100644 --- a/.eslintrc +++ b/.eslintrc @@ -6,7 +6,6 @@ }, "extends": ["pubsweet"], "rules": { - "consistent-return": 0, "prefer-destructuring": ["error", { "VariableDeclarator": { "array": false, @@ -24,7 +23,6 @@ "jsx-a11y/click-events-have-key-events": 0, "jsx-a11y/label-has-for": 0, "jsx-a11y/no-static-element-interactions": 0, - "import/extensions": 0, "import/no-dynamic-require": 0, "import/no-extraneous-dependencies": 0, "import/no-named-as-default": 0, diff --git a/packages/components/packages/Epub/EpubBackend.js b/packages/components/packages/Epub/EpubBackend.js index fa79af4897a9bfb424f4b52d437ef5003a0a4f29..ea681a01a06a8d28a9b17b2b3881d26b8068ca06 100644 --- a/packages/components/packages/Epub/EpubBackend.js +++ b/packages/components/packages/Epub/EpubBackend.js @@ -61,11 +61,11 @@ const EpubBackend = app => { switch (req.query.destination) { case 'folder': - return output.folder(epub, res) - + output.folder(epub, res) + break case 'attachment': default: - return output.attachment(epub, res, id) + output.attachment(epub, res, id) } } catch (e) { next(e) diff --git a/packages/db-manager/src/setup-db/index.js b/packages/db-manager/src/setup-db/index.js index c6935c78da55ac41eb8e888e1e7382bd9928f301..b8b21c1b51ab4bdecbb2ecc7c7ed979e046ebc53 100644 --- a/packages/db-manager/src/setup-db/index.js +++ b/packages/db-manager/src/setup-db/index.js @@ -10,7 +10,7 @@ const { validateSetupDbConfig } = require('../validations') const checkNoDb = async mergedDbConfig => { const exists = await dbExists() - if (!exists) return null + if (!exists) return if (!mergedDbConfig.clobber) { logger.error( diff --git a/packages/server/config/test.js b/packages/server/config/test.js index dfcaa8700512368b0376b9ec490f8e5ae5d62828..93143c4ee1e7f833d082d3b9dba44cb4125c62cc 100644 --- a/packages/server/config/test.js +++ b/packages/server/config/test.js @@ -3,7 +3,7 @@ const winston = require('winston') module.exports = { 'pubsweet-server': { - logger: winston, + logger: new winston.Logger({ level: 'warn' }), secret: 'test', sse: false, }, diff --git a/packages/server/src/authentication.js b/packages/server/src/authentication.js index 36844a7c1f94ae7f9a98b0ccb562cc3f8ccfaa82..2ac3227861da55e077e8b6d8d186eaef3f426d5d 100644 --- a/packages/server/src/authentication.js +++ b/packages/server/src/authentication.js @@ -44,15 +44,16 @@ const verifyPassword = (username, password, done) => { }) .then(([user, isValid]) => { if (isValid) { - return done(null, user, { id: user.id }) + done(null, user, { id: user.id }) + return } logger.debug('Invalid password for user:', username) - return done(null, false, { message: errorMessage }) + done(null, false, { message: errorMessage }) }) .catch(err => { logger.debug('User not found', err) if (err) { - return done(null, false, { message: errorMessage }) + done(null, false, { message: errorMessage }) } }) } diff --git a/packages/server/src/models/Team.js b/packages/server/src/models/Team.js index bb24ad23c24ded30590d3a145c8335883ba200d1..9e5dbeb4d2a6e71430f50e3c14d5e6deca669f6b 100644 --- a/packages/server/src/models/Team.js +++ b/packages/server/src/models/Team.js @@ -48,14 +48,13 @@ class Team extends Model { async save() { await Promise.all( - this.members.map(member => - User.find(member).then(user => { - if (!user.teams.includes(this.id)) { - user.teams.push(this.id) - return user.save() - } - }), - ), + this.members.map(async member => { + const user = await User.find(member) + if (!user.teams.includes(this.id)) { + user.teams.push(this.id) + await user.save() + } + }), ) return super.save() @@ -63,14 +62,13 @@ class Team extends Model { async delete() { await Promise.all( - this.members.map(member => - User.find(member).then(user => { - if (user.teams.includes(this.id)) { - user.teams = _.without(user.teams, this.id) - return user.save() - } - }), - ), + this.members.map(async member => { + const user = await User.find(member) + if (user.teams.includes(this.id)) { + user.teams = _.without(user.teams, this.id) + await user.save() + } + }), ) return super.delete() diff --git a/packages/server/src/models/schema.js b/packages/server/src/models/schema.js index cbb216b911c29ea9322fd17dc4cc4da194bec369..cc6477877fc29d13fd366e8264494c5913f98867 100644 --- a/packages/server/src/models/schema.js +++ b/packages/server/src/models/schema.js @@ -2,7 +2,7 @@ global.db = require('../db')() module.exports = () => { if (!db.rel) { - return db.setSchema([ + db.setSchema([ { singular: 'collection', plural: 'collections', diff --git a/packages/server/src/routes/api_collections.js b/packages/server/src/routes/api_collections.js index ef50f7bb4068916bfe905cddda7b1f00cc43b9b9..f60a43c3afeaaac619ffad38367906533fe5e62a 100644 --- a/packages/server/src/routes/api_collections.js +++ b/packages/server/src/routes/api_collections.js @@ -89,7 +89,7 @@ api.get( target: collection, }) - return res.status(STATUS.OK).json(properties) + res.status(STATUS.OK).json(properties) } catch (err) { next(err) } diff --git a/packages/server/src/routes/api_fragments.js b/packages/server/src/routes/api_fragments.js index a8d9a7e4410ac26d86ff9c94cd7730f34955fb9b..a1ef3aa854cff90ea204322be72fcf36fe6dc1ee 100644 --- a/packages/server/src/routes/api_fragments.js +++ b/packages/server/src/routes/api_fragments.js @@ -106,7 +106,7 @@ api.get( fragments = fragments.map(fieldSelector(req)) - return res.status(STATUS.OK).json(fragments) + res.status(STATUS.OK).json(fragments) } catch (err) { next(err) } @@ -123,7 +123,7 @@ api.get( fragment.owners = await User.ownersWithUsername(fragment) const properties = await applyPermissionFilter({ req, target: fragment }) - return res.status(STATUS.OK).json(properties) + res.status(STATUS.OK).json(properties) } catch (err) { res.status(STATUS.NOT_FOUND).json(err.message) } @@ -276,21 +276,19 @@ api.get( authBearerAndPublic, async (req, res, next) => { try { - const fragment = await Fragment.find(req.params.fragmentId) + let fragment = await Fragment.find(req.params.fragmentId) const permission = await authsome.can(req.user, req.method, fragment) if (!permission) { throw authorizationError(req.user, req.method, fragment) } - return Fragment.find(req.params.fragmentId).then(fragment => { - if (permission.filter) { - fragment = permission.filter(fragment) - } - return res.status(STATUS.OK).json(fragment) - }) + if (permission.filter) { + fragment = permission.filter(fragment) + } + res.status(STATUS.OK).json(fragment) } catch (err) { - res.status(STATUS.NOT_FOUND).json(err.message) + next(err) } }, ) diff --git a/packages/server/src/routes/api_upload.js b/packages/server/src/routes/api_upload.js index 1f651aec917a16202a71ad79a9e5877ad9aaea90..ee36e0f20c045766591fe86f8c004ff826ffa0bc 100644 --- a/packages/server/src/routes/api_upload.js +++ b/packages/server/src/routes/api_upload.js @@ -12,7 +12,10 @@ const storage = multer.diskStorage({ destination: 'uploads/', filename(req, file, cb) { crypto.pseudoRandomBytes(16, (err, raw) => { - if (err) return cb(err) + if (err) { + cb(err) + return + } cb(null, raw.toString('hex') + path.extname(file.originalname)) }) diff --git a/packages/server/src/routes/api_users.js b/packages/server/src/routes/api_users.js index 461cc4792a2b6ea81960168a1755457645720247..d593fdae4ce8a90bdf6e9a292049e130aa2df952 100644 --- a/packages/server/src/routes/api_users.js +++ b/packages/server/src/routes/api_users.js @@ -34,7 +34,7 @@ api.get('/users/authenticate', authBearer, async (req, res, next) => { const user = await User.find(req.user) user.token = req.authInfo.token user.teams = await Promise.all(user.teams.map(teamId => Team.find(teamId))) - return res.status(STATUS.OK).json(user) + res.status(STATUS.OK).json(user) } catch (err) { next(err) } @@ -47,7 +47,7 @@ api.post('/users', async (req, res, next) => { if (req.body.admin) throw new ValidationError('invalid property: admin') user = await user.save() - return res.status(STATUS.CREATED).json(user) + res.status(STATUS.CREATED).json(user) } catch (err) { next(err) } @@ -64,7 +64,7 @@ api.get('/users', authBearer, async (req, res, next) => { const users = (await User.all()).filter(createFilterFromQuery(req.query)) - return res.status(STATUS.OK).json({ users }) + res.status(STATUS.OK).json({ users }) } catch (err) { next(err) } @@ -80,7 +80,7 @@ api.get('/users/:id', authBearer, async (req, res, next) => { throw authorizationError(req.user, req.method, req.path) } - return res.status(STATUS.OK).json(user) + res.status(STATUS.OK).json(user) } catch (err) { next(err) } @@ -96,7 +96,7 @@ api.delete('/users/:id', authBearer, async (req, res, next) => { throw authorizationError(req.user, req.method, req.path) } user = await user.delete() - return res.status(STATUS.OK).json(user) + res.status(STATUS.OK).json(user) } catch (err) { next(err) } @@ -126,7 +126,7 @@ api.patch('/users/:id', authBearer, async (req, res, next) => { user = await user.save() user = await User.find(req.params.id) - return res.status(STATUS.OK).json(user) + res.status(STATUS.OK).json(user) } catch (err) { next(err) } diff --git a/packages/server/src/routes/util.js b/packages/server/src/routes/util.js index 5dcd342192fa187ea21e772146765119876134d8..4d5997e957e9ffafa4fcf592e2abb5bc12294baa 100644 --- a/packages/server/src/routes/util.js +++ b/packages/server/src/routes/util.js @@ -57,9 +57,7 @@ Util.getTeams = async opts => { opts.req.method, team, ) - if (permission) { - return team - } + return permission ? team : undefined }), ) diff --git a/packages/server/src/setup.js b/packages/server/src/setup.js index bf20d85dbebf09fc058f285cab9618eaf63e23be..18ef990186f606678ec6d9f56c7b6db46fbba5a8 100755 --- a/packages/server/src/setup.js +++ b/packages/server/src/setup.js @@ -33,7 +33,10 @@ prompt.get( }, }, (err, result) => { - if (err) return logger.info(err) + if (err) { + logger.info(err) + return + } logger.info('Received the following answers:') logger.info(` username: ${result.username}`) diff --git a/packages/server/test/helpers/authsome_mode.js b/packages/server/test/helpers/authsome_mode.js index 33aa4ea9db8f32029ec75ed5c65193e8f5708e14..e6a504af2cefa92815ba669b4120cd272d8bb519 100644 --- a/packages/server/test/helpers/authsome_mode.js +++ b/packages/server/test/helpers/authsome_mode.js @@ -30,6 +30,8 @@ async function teamPermissions(user, operation, object, context) { } } } + + return false } function unauthenticatedUser(operation, object) { diff --git a/packages/theme/src/index.js b/packages/theme/src/index.js index ed8411374c5b4ac841be7ec2ed8447e2931850f9..d7af8e3caa7da730bb4e7c19a7ccfa7f349d8578 100644 --- a/packages/theme/src/index.js +++ b/packages/theme/src/index.js @@ -1,3 +1,5 @@ +/* eslint-disable import/extensions */ + import 'typeface-fira-mono' import 'typeface-fira-sans' import 'typeface-fira-sans-condensed'