diff --git a/packages/cli/create-strapi-app/index.js b/packages/cli/create-strapi-app/index.js index ef3a3ce78e2..7f34f0f3f25 100755 --- a/packages/cli/create-strapi-app/index.js +++ b/packages/cli/create-strapi-app/index.js @@ -1,4 +1,5 @@ #!/usr/bin/env node + 'use strict'; require('./create-strapi-app'); diff --git a/packages/cli/create-strapi-starter/index.js b/packages/cli/create-strapi-starter/index.js index 01bfe1deeee..3f4347847ef 100755 --- a/packages/cli/create-strapi-starter/index.js +++ b/packages/cli/create-strapi-starter/index.js @@ -1,4 +1,5 @@ #!/usr/bin/env node + 'use strict'; require('./create-strapi-starter'); diff --git a/packages/cli/create-strapi-starter/utils/child-process.js b/packages/cli/create-strapi-starter/utils/child-process.js index 9ba241e5dff..bc532bbd5e3 100644 --- a/packages/cli/create-strapi-starter/utils/child-process.js +++ b/packages/cli/create-strapi-starter/utils/child-process.js @@ -27,12 +27,11 @@ function runApp(rootPath, { useYarn } = {}) { stdio: 'inherit', cwd: rootPath, }); - } else { - return execa('npm', ['run', 'develop'], { - stdio: 'inherit', - cwd: rootPath, - }); } + return execa('npm', ['run', 'develop'], { + stdio: 'inherit', + cwd: rootPath, + }); } async function initGit(rootPath) { diff --git a/packages/cli/create-strapi-starter/utils/stop-process.js b/packages/cli/create-strapi-starter/utils/stop-process.js index af8137f61be..e2f3360057f 100644 --- a/packages/cli/create-strapi-starter/utils/stop-process.js +++ b/packages/cli/create-strapi-starter/utils/stop-process.js @@ -1,4 +1,5 @@ 'use strict'; + const logger = require('./logger'); module.exports = function stopProcess(message) { diff --git a/packages/core/admin/ee/server/controllers/role.js b/packages/core/admin/ee/server/controllers/role.js index 788a3a2abc0..5c98e20fa4b 100644 --- a/packages/core/admin/ee/server/controllers/role.js +++ b/packages/core/admin/ee/server/controllers/role.js @@ -6,7 +6,7 @@ const { validateRoleDeleteInput, validateRolesDeleteInput, } = require('../validation/role'); -const { getService } = require('../../../server//utils'); +const { getService } = require('../../../server/utils'); const { validatedUpdatePermissionsInput } = require('../validation/permission'); const { SUPER_ADMIN_CODE } = require('../../../server/services/constants'); diff --git a/packages/core/admin/server/domain/action/__tests__/action-domain.test.js b/packages/core/admin/server/domain/action/__tests__/action-domain.test.js index c2f72977981..90668b17b3d 100644 --- a/packages/core/admin/server/domain/action/__tests__/action-domain.test.js +++ b/packages/core/admin/server/domain/action/__tests__/action-domain.test.js @@ -1,6 +1,6 @@ 'use strict'; -const domain = require('../'); +const domain = require('..'); describe('Action Domain', () => { describe('appliesToProperty', () => { diff --git a/packages/core/admin/server/domain/action/__tests__/action-provider.test.js b/packages/core/admin/server/domain/action/__tests__/action-provider.test.js index a8aee66c227..aa9d140e561 100644 --- a/packages/core/admin/server/domain/action/__tests__/action-provider.test.js +++ b/packages/core/admin/server/domain/action/__tests__/action-provider.test.js @@ -2,7 +2,7 @@ const { omit } = require('lodash/fp'); const createActionProvider = require('../provider'); -const domain = require('../'); +const domain = require('..'); const providerMethods = [ 'register', diff --git a/packages/core/admin/server/domain/condition/__tests__/condition-domain.test.js b/packages/core/admin/server/domain/condition/__tests__/condition-domain.test.js index 29b328cf4d9..080a1126a36 100644 --- a/packages/core/admin/server/domain/condition/__tests__/condition-domain.test.js +++ b/packages/core/admin/server/domain/condition/__tests__/condition-domain.test.js @@ -1,6 +1,6 @@ 'use strict'; -const domain = require('../'); +const domain = require('..'); describe('Condition Domain', () => { describe('assignConditionId', () => { diff --git a/packages/core/admin/server/domain/condition/__tests__/condition-provider.test.js b/packages/core/admin/server/domain/condition/__tests__/condition-provider.test.js index 7a7c74b9c4b..3294ed47ac1 100644 --- a/packages/core/admin/server/domain/condition/__tests__/condition-provider.test.js +++ b/packages/core/admin/server/domain/condition/__tests__/condition-provider.test.js @@ -2,7 +2,7 @@ const { omit } = require('lodash/fp'); const createConditionProvider = require('../provider'); -const domain = require('../'); +const domain = require('..'); const providerMethods = [ 'register', diff --git a/packages/core/admin/server/domain/condition/provider.js b/packages/core/admin/server/domain/condition/provider.js index ea5f1f82208..5275071cf9c 100644 --- a/packages/core/admin/server/domain/condition/provider.js +++ b/packages/core/admin/server/domain/condition/provider.js @@ -1,7 +1,7 @@ 'use strict'; const { providerFactory } = require('@strapi/utils'); -const domain = require('./'); +const domain = require('.'); /** * @typedef ConditionProviderOverride diff --git a/packages/core/admin/server/domain/permission/__tests__/permission-domain.test.js b/packages/core/admin/server/domain/permission/__tests__/permission-domain.test.js index 0ad65482855..88c52001a2b 100644 --- a/packages/core/admin/server/domain/permission/__tests__/permission-domain.test.js +++ b/packages/core/admin/server/domain/permission/__tests__/permission-domain.test.js @@ -1,6 +1,6 @@ 'use strict'; -const domain = require('../'); +const domain = require('..'); describe('Permission Domain', () => { describe('addCondition', () => { diff --git a/packages/core/admin/server/routes/serve-admin-panel.js b/packages/core/admin/server/routes/serve-admin-panel.js index 1b225b36a4f..3111f5760ff 100644 --- a/packages/core/admin/server/routes/serve-admin-panel.js +++ b/packages/core/admin/server/routes/serve-admin-panel.js @@ -23,7 +23,7 @@ const registerAdminPanelRoute = ({ strapi }) => { } ctx.type = 'html'; - ctx.body = fse.createReadStream(join(buildDir + '/index.html')); + ctx.body = fse.createReadStream(join(`${buildDir}/index.html`)); }; strapi.server.routes([ diff --git a/packages/core/admin/server/services/role.js b/packages/core/admin/server/services/role.js index 6059f5b78d6..a8012a6ae42 100644 --- a/packages/core/admin/server/services/role.js +++ b/packages/core/admin/server/services/role.js @@ -109,7 +109,7 @@ const find = (params = {}, populate) => { */ const findAllWithUsersCount = async populate => { const roles = await strapi.query('admin::role').findMany({ populate }); - for (let role of roles) { + for (const role of roles) { role.usersCount = await getUsersCount(role.id); } @@ -171,7 +171,7 @@ const checkRolesIdForDeletion = async (ids = []) => { throw new ApplicationError('You cannot delete the super admin role'); } - for (let roleId of ids) { + for (const roleId of ids) { const usersCount = await getUsersCount(roleId); if (usersCount !== 0) { throw new ApplicationError('Some roles are still assigned to some users'); diff --git a/packages/core/admin/server/tests/admin-auth.test.e2e.js b/packages/core/admin/server/tests/admin-auth.test.e2e.js index 0fdc5ffdd77..4678e48af37 100644 --- a/packages/core/admin/server/tests/admin-auth.test.e2e.js +++ b/packages/core/admin/server/tests/admin-auth.test.e2e.js @@ -7,7 +7,7 @@ const { createUtils } = require('../../../../../test/helpers/utils'); const edition = process.env.STRAPI_DISABLE_EE === 'true' ? 'CE' : 'EE'; -let internals = { +const internals = { role: null, }; diff --git a/packages/core/admin/server/tests/admin-permission.test.e2e.js b/packages/core/admin/server/tests/admin-permission.test.e2e.js index b4fe3bd85ad..e9ca0933b6d 100644 --- a/packages/core/admin/server/tests/admin-permission.test.e2e.js +++ b/packages/core/admin/server/tests/admin-permission.test.e2e.js @@ -21,7 +21,7 @@ describe('Role CRUD End to End', () => { }); test('Can get the existing permissions', async () => { - let res = await rq({ + const res = await rq({ url: '/admin/permissions', method: 'GET', }); diff --git a/packages/core/admin/server/tests/admin-permissions-conditions.test.e2e.js b/packages/core/admin/server/tests/admin-permissions-conditions.test.e2e.js index f0280381ebc..8b510784490 100644 --- a/packages/core/admin/server/tests/admin-permissions-conditions.test.e2e.js +++ b/packages/core/admin/server/tests/admin-permissions-conditions.test.e2e.js @@ -13,7 +13,7 @@ if (edition === 'EE') { let strapi; let utils; const builder = createTestBuilder(); - let requests = { + const requests = { public: null, admin: null, }; diff --git a/packages/core/admin/server/tests/admin-role.test.e2e.js b/packages/core/admin/server/tests/admin-role.test.e2e.js index b2ffb6e4d2c..178666064d1 100644 --- a/packages/core/admin/server/tests/admin-role.test.e2e.js +++ b/packages/core/admin/server/tests/admin-role.test.e2e.js @@ -255,7 +255,7 @@ describe('Role CRUD End to End', () => { ]; test.each(rolesToCreate)('can create %p', async role => { - let res = await rq({ + const res = await rq({ url: '/admin/roles', method: 'POST', body: role, @@ -465,7 +465,7 @@ describe('Role CRUD End to End', () => { }, }); - for (let role of roles) { + for (const role of roles) { res = await rq({ url: `/admin/roles/${role.id}`, method: 'GET', @@ -506,7 +506,7 @@ describe('Role CRUD End to End', () => { expect(res.statusCode).toBe(200); expect(res.body.data).toMatchObject(roles); - for (let roleId of rolesIds) { + for (const roleId of rolesIds) { res = await rq({ url: `/admin/roles/${roleId}`, method: 'GET', diff --git a/packages/core/admin/server/tests/admin-user.test.e2e.js b/packages/core/admin/server/tests/admin-user.test.e2e.js index f1d037b902a..bc7e0fc17a9 100644 --- a/packages/core/admin/server/tests/admin-user.test.e2e.js +++ b/packages/core/admin/server/tests/admin-user.test.e2e.js @@ -39,7 +39,7 @@ describe('Admin User CRUD (e2e)', () => { let strapi; // Local test data used across the test suite - let testData = { + const testData = { firstSuperAdminUser: undefined, otherSuperAdminUsers: [], user: undefined, diff --git a/packages/core/admin/server/validation/common-functions/check-fields-are-correctly-nested.js b/packages/core/admin/server/validation/common-functions/check-fields-are-correctly-nested.js index 06af0849320..fbb61501df6 100644 --- a/packages/core/admin/server/validation/common-functions/check-fields-are-correctly-nested.js +++ b/packages/core/admin/server/validation/common-functions/check-fields-are-correctly-nested.js @@ -6,7 +6,8 @@ const checkFieldsAreCorrectlyNested = fields => { if (_.isNil(fields)) { // Only check if the fields exist return true; - } else if (!Array.isArray(fields)) { + } + if (!Array.isArray(fields)) { return false; } diff --git a/packages/core/admin/server/validation/common-functions/check-fields-dont-have-duplicates.js b/packages/core/admin/server/validation/common-functions/check-fields-dont-have-duplicates.js index 8c4a2528146..cce295e8155 100644 --- a/packages/core/admin/server/validation/common-functions/check-fields-dont-have-duplicates.js +++ b/packages/core/admin/server/validation/common-functions/check-fields-dont-have-duplicates.js @@ -6,7 +6,8 @@ const checkFieldsDontHaveDuplicates = fields => { if (_.isNil(fields)) { // Only check if the fields exist return true; - } else if (!Array.isArray(fields)) { + } + if (!Array.isArray(fields)) { return false; } diff --git a/packages/core/admin/webpack.config.dev.js b/packages/core/admin/webpack.config.dev.js index 02581169d03..74a7b1dc3f4 100644 --- a/packages/core/admin/webpack.config.dev.js +++ b/packages/core/admin/webpack.config.dev.js @@ -1,7 +1,7 @@ 'use strict'; const path = require('path'); -const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin; +const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer'); const { DuplicateReporterPlugin } = require('duplicate-dependencies-webpack-plugin'); const getPluginsPath = require('./utils/get-plugins-path'); const webpackConfig = require('./webpack.config'); diff --git a/packages/core/admin/webpack.config.js b/packages/core/admin/webpack.config.js index 96cdabf5d82..e105adc651c 100644 --- a/packages/core/admin/webpack.config.js +++ b/packages/core/admin/webpack.config.js @@ -56,7 +56,7 @@ module.exports = ({ return { mode: isProduction ? 'production' : 'development', - bail: isProduction ? true : false, + bail: !!isProduction, devtool: isProduction ? false : 'eval-source-map', experiments: { topLevelAwait: true, diff --git a/packages/core/content-manager/server/services/utils/configuration/layouts.js b/packages/core/content-manager/server/services/utils/configuration/layouts.js index 27188370a40..4628ccafe97 100644 --- a/packages/core/content-manager/server/services/utils/configuration/layouts.js +++ b/packages/core/content-manager/server/services/utils/configuration/layouts.js @@ -79,12 +79,12 @@ function syncLayouts(configuration, schema) { let cleanEditRelations = editRelations.filter(attr => hasRelationAttribute(schema, attr)); - let elementsToReAppend = []; + const elementsToReAppend = []; let cleanEdit = []; - for (let row of edit) { - let newRow = []; + for (const row of edit) { + const newRow = []; - for (let el of row) { + for (const el of row) { if (!hasEditableAttribute(schema, el.name)) continue; /* if the type of a field was changed (ex: string -> json) or a new field was added in the schema @@ -153,11 +153,11 @@ const appendToEditLayout = (layout = [], keysToAppend, schema) => { layout[currentRowIndex] = []; } - for (let key of keysToAppend) { + for (const key of keysToAppend) { const attribute = schema.attributes[key]; const attributeSize = getDefaultFieldSize(attribute.type); - let currenRowSize = rowSize(layout[currentRowIndex]); + const currenRowSize = rowSize(layout[currentRowIndex]); if (currenRowSize + attributeSize > MAX_ROW_SIZE) { currentRowIndex += 1; diff --git a/packages/core/content-manager/server/services/utils/configuration/metadatas.js b/packages/core/content-manager/server/services/utils/configuration/metadatas.js index 03227d73fa4..efeeabc4b7a 100644 --- a/packages/core/content-manager/server/services/utils/configuration/metadatas.js +++ b/packages/core/content-manager/server/services/utils/configuration/metadatas.js @@ -91,7 +91,7 @@ async function syncMetadatas(configuration, schema) { const { edit, list } = metasWithDefaults[key]; const attr = schema.attributes[key]; - let updatedMeta = { edit, list }; + const updatedMeta = { edit, list }; // update sortable attr if (list.sortable && !isSortable(schema, key)) { _.set(updatedMeta, ['list', 'sortable'], false); diff --git a/packages/core/content-manager/server/tests/api/basic-compo-repeatable.test.e2e.js b/packages/core/content-manager/server/tests/api/basic-compo-repeatable.test.e2e.js index 04073f729ce..456c7915ba8 100644 --- a/packages/core/content-manager/server/tests/api/basic-compo-repeatable.test.e2e.js +++ b/packages/core/content-manager/server/tests/api/basic-compo-repeatable.test.e2e.js @@ -7,7 +7,7 @@ const { createAuthRequest } = require('../../../../../../test/helpers/request'); const builder = createTestBuilder(); let strapi; let rq; -let data = { +const data = { productsWithCompo: [], }; diff --git a/packages/core/content-manager/server/tests/api/basic-compo.test.e2e.js b/packages/core/content-manager/server/tests/api/basic-compo.test.e2e.js index 139756d0ea9..3af2222038f 100644 --- a/packages/core/content-manager/server/tests/api/basic-compo.test.e2e.js +++ b/packages/core/content-manager/server/tests/api/basic-compo.test.e2e.js @@ -7,7 +7,7 @@ const { createAuthRequest } = require('../../../../../../test/helpers/request'); const builder = createTestBuilder(); let strapi; let rq; -let data = { +const data = { productsWithCompo: [], }; diff --git a/packages/core/content-manager/server/tests/api/basic-dp-compo-repeatable.test.e2e.js b/packages/core/content-manager/server/tests/api/basic-dp-compo-repeatable.test.e2e.js index 0f81ce5aaba..1429a43d4d2 100644 --- a/packages/core/content-manager/server/tests/api/basic-dp-compo-repeatable.test.e2e.js +++ b/packages/core/content-manager/server/tests/api/basic-dp-compo-repeatable.test.e2e.js @@ -9,7 +9,7 @@ const { createAuthRequest } = require('../../../../../../test/helpers/request'); const builder = createTestBuilder(); let strapi; let rq; -let data = { +const data = { productsWithCompoAndDP: [], }; diff --git a/packages/core/content-manager/server/tests/api/basic-dp-compo.test.e2e.js b/packages/core/content-manager/server/tests/api/basic-dp-compo.test.e2e.js index 7c6f16f7e1a..133ecf05b4a 100644 --- a/packages/core/content-manager/server/tests/api/basic-dp-compo.test.e2e.js +++ b/packages/core/content-manager/server/tests/api/basic-dp-compo.test.e2e.js @@ -9,7 +9,7 @@ const { createAuthRequest } = require('../../../../../../test/helpers/request'); const builder = createTestBuilder(); let strapi; let rq; -let data = { +const data = { productsWithCompoAndDP: [], }; diff --git a/packages/core/content-manager/server/tests/api/basic-dp-dz.test.e2e.js b/packages/core/content-manager/server/tests/api/basic-dp-dz.test.e2e.js index a8e2e61f79f..d3c267290a9 100644 --- a/packages/core/content-manager/server/tests/api/basic-dp-dz.test.e2e.js +++ b/packages/core/content-manager/server/tests/api/basic-dp-dz.test.e2e.js @@ -9,7 +9,7 @@ const { createAuthRequest } = require('../../../../../../test/helpers/request'); const builder = createTestBuilder(); let strapi; let rq; -let data = { +const data = { productsWithDzAndDP: [], }; diff --git a/packages/core/content-manager/server/tests/api/basic-dp.test.e2e.js b/packages/core/content-manager/server/tests/api/basic-dp.test.e2e.js index 4c61c19bcb0..26950f87f9f 100644 --- a/packages/core/content-manager/server/tests/api/basic-dp.test.e2e.js +++ b/packages/core/content-manager/server/tests/api/basic-dp.test.e2e.js @@ -9,7 +9,7 @@ const { createAuthRequest } = require('../../../../../../test/helpers/request'); const builder = createTestBuilder(); let strapi; let rq; -let data = { +const data = { productsWithDP: [], }; @@ -161,7 +161,7 @@ describe('CM API - Basic + draftAndPublish', () => { test('Publish a product, expect publishedAt to be defined', async () => { const entry = data.productsWithDP[0]; - let { body } = await rq({ + const { body } = await rq({ url: `/content-manager/collection-types/api::product-with-dp.product-with-dp/${entry.id}/actions/publish`, method: 'POST', }); @@ -174,7 +174,7 @@ describe('CM API - Basic + draftAndPublish', () => { test('Publish article1, expect article1 to be already published', async () => { const entry = data.productsWithDP[0]; - let { body } = await rq({ + const { body } = await rq({ url: `/content-manager/collection-types/api::product-with-dp.product-with-dp/${entry.id}/actions/publish`, method: 'POST', }); @@ -193,7 +193,7 @@ describe('CM API - Basic + draftAndPublish', () => { test('Unpublish article1, expect article1 to be set to null', async () => { const entry = data.productsWithDP[0]; - let { body } = await rq({ + const { body } = await rq({ url: `/content-manager/collection-types/api::product-with-dp.product-with-dp/${entry.id}/actions/unpublish`, method: 'POST', }); @@ -206,7 +206,7 @@ describe('CM API - Basic + draftAndPublish', () => { test('Unpublish article1, expect article1 to already be a draft', async () => { const entry = data.productsWithDP[0]; - let { body } = await rq({ + const { body } = await rq({ url: `/content-manager/collection-types/api::product-with-dp.product-with-dp/${entry.id}/actions/unpublish`, method: 'POST', }); diff --git a/packages/core/content-manager/server/tests/api/basic-dz.test.e2e.js b/packages/core/content-manager/server/tests/api/basic-dz.test.e2e.js index 532d4c5315b..e41469972e4 100644 --- a/packages/core/content-manager/server/tests/api/basic-dz.test.e2e.js +++ b/packages/core/content-manager/server/tests/api/basic-dz.test.e2e.js @@ -7,7 +7,7 @@ const { createAuthRequest } = require('../../../../../../test/helpers/request'); const builder = createTestBuilder(); let strapi; let rq; -let data = { +const data = { productsWithDz: [], }; diff --git a/packages/core/content-manager/server/tests/api/basic-relations.test.e2e.js b/packages/core/content-manager/server/tests/api/basic-relations.test.e2e.js index df6b628767b..9e212122b3f 100644 --- a/packages/core/content-manager/server/tests/api/basic-relations.test.e2e.js +++ b/packages/core/content-manager/server/tests/api/basic-relations.test.e2e.js @@ -8,7 +8,7 @@ let strapi; let rq; const builder = createTestBuilder(); -let data = { +const data = { stamps: [], collectors: [], }; diff --git a/packages/core/content-manager/server/tests/api/basic.test.e2e.js b/packages/core/content-manager/server/tests/api/basic.test.e2e.js index 7258c037a1f..5f38eaa7686 100644 --- a/packages/core/content-manager/server/tests/api/basic.test.e2e.js +++ b/packages/core/content-manager/server/tests/api/basic.test.e2e.js @@ -9,7 +9,7 @@ const { createAuthRequest } = require('../../../../../../test/helpers/request'); const builder = createTestBuilder(); let strapi; let rq; -let data = { +const data = { products: [], }; diff --git a/packages/core/content-manager/server/tests/api/populate-dz.test.e2e.js b/packages/core/content-manager/server/tests/api/populate-dz.test.e2e.js index 3f2fe7ab134..e0e8bb37f74 100644 --- a/packages/core/content-manager/server/tests/api/populate-dz.test.e2e.js +++ b/packages/core/content-manager/server/tests/api/populate-dz.test.e2e.js @@ -7,7 +7,7 @@ const { createAuthRequest } = require('../../../../../../test/helpers/request'); const builder = createTestBuilder(); let strapi; let rq; -let data = { +const data = { productsWithDz: [], categories: [], }; diff --git a/packages/core/content-manager/server/tests/api/x-to-many-rf-preview.test.e2e.js b/packages/core/content-manager/server/tests/api/x-to-many-rf-preview.test.e2e.js index 8c48fdc49cf..19d7a437a00 100644 --- a/packages/core/content-manager/server/tests/api/x-to-many-rf-preview.test.e2e.js +++ b/packages/core/content-manager/server/tests/api/x-to-many-rf-preview.test.e2e.js @@ -168,7 +168,7 @@ describe('x-to-many RF Preview', () => { describe('Relation Nature', () => { test(`Throws if the relation's nature is not a x-to-many`, async () => { const url = getCMPrefixUrl(categoryModel.singularName); - const id = data.category[0].id; + const { id } = data.category[0]; const { body, statusCode } = await rq.get(`${url}/${id}/product`); diff --git a/packages/core/content-manager/server/tests/content-manager/uid.test.e2e.js b/packages/core/content-manager/server/tests/content-manager/uid.test.e2e.js index 8be18276e1f..0815ab71286 100644 --- a/packages/core/content-manager/server/tests/content-manager/uid.test.e2e.js +++ b/packages/core/content-manager/server/tests/content-manager/uid.test.e2e.js @@ -8,7 +8,7 @@ const { createAuthRequest } = require('../../../../../../test/helpers/request'); const builder = createTestBuilder(); let strapi; let rq; -let uid = 'api::uid-model.uid-model'; +const uid = 'api::uid-model.uid-model'; const model = { kind: 'collectionType', diff --git a/packages/core/content-manager/server/tests/fields/boolean.test.e2e.js b/packages/core/content-manager/server/tests/fields/boolean.test.e2e.js index 4ce47dc3475..44bb1f4429e 100644 --- a/packages/core/content-manager/server/tests/fields/boolean.test.e2e.js +++ b/packages/core/content-manager/server/tests/fields/boolean.test.e2e.js @@ -46,7 +46,7 @@ describe('Test type boolean', () => { }); test('Throws on invalid boolean value', async () => { - let res = await rq.post('/content-manager/collection-types/api::withboolean.withboolean', { + const res = await rq.post('/content-manager/collection-types/api::withboolean.withboolean', { body: { field: 'random' }, }); diff --git a/packages/core/content-manager/server/tests/index.test.e2e.js b/packages/core/content-manager/server/tests/index.test.e2e.js index d63d989e0b7..7bc113acbd6 100644 --- a/packages/core/content-manager/server/tests/index.test.e2e.js +++ b/packages/core/content-manager/server/tests/index.test.e2e.js @@ -69,7 +69,7 @@ describe('Content Manager End to End', () => { }); test('Create tag1', async () => { - let { body } = await rq({ + const { body } = await rq({ url: '/content-manager/collection-types/api::tag.tag', method: 'POST', body: { @@ -98,7 +98,7 @@ describe('Content Manager End to End', () => { }); test('Create tag2', async () => { - let { body } = await rq({ + const { body } = await rq({ url: '/content-manager/collection-types/api::tag.tag', method: 'POST', body: { @@ -127,7 +127,7 @@ describe('Content Manager End to End', () => { }); test('Create tag3', async () => { - let { body } = await rq({ + const { body } = await rq({ url: '/content-manager/collection-types/api::tag.tag', method: 'POST', body: { @@ -162,7 +162,7 @@ describe('Content Manager End to End', () => { date: '2019-08-13T00:00:00.000Z', }; - let { body } = await rq({ + const { body } = await rq({ url: '/content-manager/collection-types/api::article.article', method: 'POST', body: entry, @@ -197,7 +197,7 @@ describe('Content Manager End to End', () => { tags: [data.tags[0].id], }; - let { body } = await rq({ + const { body } = await rq({ url: '/content-manager/collection-types/api::article.article', method: 'POST', body: entry, @@ -227,13 +227,11 @@ describe('Content Manager End to End', () => { }); test('Update article1 add tag2', async () => { - const entry = Object.assign({}, data.articles[0], { - tags: [data.tags[1].id], - }); + const entry = { ...data.articles[0], tags: [data.tags[1].id] }; cleanDate(entry); - let { body } = await rq({ + const { body } = await rq({ url: `/content-manager/collection-types/api::article.article/${entry.id}`, method: 'PUT', body: entry, @@ -263,7 +261,7 @@ describe('Content Manager End to End', () => { }); test('Update article1 add tag1 and tag3', async () => { - const entry = Object.assign({}, data.articles[0]); + const entry = { ...data.articles[0] }; entry.tags = entry.tags.map(tag => tag.id); entry.tags.push(data.tags[0].id); @@ -271,7 +269,7 @@ describe('Content Manager End to End', () => { cleanDate(entry); - let { body } = await rq({ + const { body } = await rq({ url: `/content-manager/collection-types/api::article.article/${entry.id}`, method: 'PUT', body: entry, @@ -300,12 +298,12 @@ describe('Content Manager End to End', () => { }); test('Update article1 remove one tag', async () => { - const entry = Object.assign({}, data.articles[0]); + const entry = { ...data.articles[0] }; entry.tags = entry.tags.slice(1).map(tag => tag.id); cleanDate(entry); - let { body } = await rq({ + const { body } = await rq({ url: `/content-manager/collection-types/api::article.article/${entry.id}`, method: 'PUT', body: entry, @@ -334,13 +332,11 @@ describe('Content Manager End to End', () => { }); test('Update article1 remove all tag', async () => { - const entry = Object.assign({}, data.articles[0], { - tags: [], - }); + const entry = { ...data.articles[0], tags: [] }; cleanDate(entry); - let { body } = await rq({ + const { body } = await rq({ url: `/content-manager/collection-types/api::article.article/${entry.id}`, method: 'PUT', body: entry, @@ -409,7 +405,7 @@ describe('Content Manager End to End', () => { expect(Array.isArray(articles[1].tags)).toBeTruthy(); expect(articles[1].tags.length).toBe(1); - let { body: foundTag } = await rq({ + const { body: foundTag } = await rq({ url: `/content-manager/collection-types/api::tag.tag/${createdTag.id}`, method: 'GET', }); @@ -425,7 +421,7 @@ describe('Content Manager End to End', () => { }, }); - let { body: foundTag2 } = await rq({ + const { body: foundTag2 } = await rq({ url: `/content-manager/collection-types/api::tag.tag/${createdTag.id}`, method: 'GET', }); @@ -462,7 +458,7 @@ describe('Content Manager End to End', () => { tags: [createdTag.id], }; - let { body } = await rq({ + const { body } = await rq({ url: '/content-manager/collection-types/api::articlewithtag.articlewithtag', method: 'POST', body: entry, @@ -502,7 +498,7 @@ describe('Content Manager End to End', () => { }); test('Create cat1', async () => { - let { body } = await rq({ + const { body } = await rq({ url: '/content-manager/collection-types/api::category.category', method: 'POST', body: { @@ -531,7 +527,7 @@ describe('Content Manager End to End', () => { }); test('Create cat2', async () => { - let { body } = await rq({ + const { body } = await rq({ url: '/content-manager/collection-types/api::category.category', method: 'POST', body: { @@ -566,7 +562,7 @@ describe('Content Manager End to End', () => { category: data.categories[0].id, }; - let { body } = await rq({ + const { body } = await rq({ url: '/content-manager/collection-types/api::article.article', method: 'POST', body: entry, @@ -594,13 +590,11 @@ describe('Content Manager End to End', () => { }); test('Update article1 with cat2', async () => { - const entry = Object.assign({}, data.articles[0], { - category: data.categories[1].id, - }); + const entry = { ...data.articles[0], category: data.categories[1].id }; cleanDate(entry); - let { body } = await rq({ + const { body } = await rq({ url: `/content-manager/collection-types/api::article.article/${entry.id}`, method: 'PUT', body: entry, @@ -633,7 +627,7 @@ describe('Content Manager End to End', () => { content: 'Content 2', }; - let { body } = await rq({ + const { body } = await rq({ url: '/content-manager/collection-types/api::article.article', method: 'POST', body: entry, @@ -660,13 +654,11 @@ describe('Content Manager End to End', () => { }); test('Update article2 with cat2', async () => { - const entry = Object.assign({}, data.articles[1], { - category: data.categories[1].id, - }); + const entry = { ...data.articles[1], category: data.categories[1].id }; cleanDate(entry); - let { body } = await rq({ + const { body } = await rq({ url: `/content-manager/collection-types/api::article.article/${entry.id}`, method: 'PUT', body: entry, @@ -694,13 +686,13 @@ describe('Content Manager End to End', () => { }); test('Update cat1 with article1', async () => { - const entry = Object.assign({}, data.categories[0]); + const entry = { ...data.categories[0] }; entry.articles = entry.articles.map(article => article.id); entry.articles.push(data.articles[0].id); cleanDate(entry); - let { body } = await rq({ + const { body } = await rq({ url: `/content-manager/collection-types/api::category.category/${entry.id}`, method: 'PUT', body: entry, @@ -732,7 +724,7 @@ describe('Content Manager End to End', () => { articles: [data.articles[0].id], }; - let { body } = await rq({ + const { body } = await rq({ url: '/content-manager/collection-types/api::category.category', method: 'POST', body: entry, @@ -759,7 +751,7 @@ describe('Content Manager End to End', () => { }); test('Get article1 with cat3', async () => { - let { body } = await rq({ + const { body } = await rq({ url: `/content-manager/collection-types/api::article.article/${data.articles[0].id}`, method: 'GET', }); @@ -781,7 +773,7 @@ describe('Content Manager End to End', () => { }); test('Get article2 with cat2', async () => { - let { body } = await rq({ + const { body } = await rq({ url: `/content-manager/collection-types/api::article.article/${data.articles[1].id}`, method: 'GET', }); @@ -803,7 +795,7 @@ describe('Content Manager End to End', () => { }); test('Get cat1 without relations', async () => { - let { body } = await rq({ + const { body } = await rq({ url: `/content-manager/collection-types/api::category.category/${data.categories[0].id}`, method: 'GET', }); @@ -825,7 +817,7 @@ describe('Content Manager End to End', () => { }); test('Get cat2 with article2', async () => { - let { body } = await rq({ + const { body } = await rq({ url: `/content-manager/collection-types/api::category.category/${data.categories[1].id}`, method: 'GET', }); @@ -848,7 +840,7 @@ describe('Content Manager End to End', () => { }); test('Get cat3 with article1', async () => { - let { body } = await rq({ + const { body } = await rq({ url: `/content-manager/collection-types/api::category.category/${data.categories[2].id}`, method: 'GET', }); @@ -884,7 +876,7 @@ describe('Content Manager End to End', () => { }); test('Create ref1', async () => { - let { body } = await rq({ + const { body } = await rq({ url: '/content-manager/collection-types/api::reference.reference', method: 'POST', body: { @@ -916,7 +908,7 @@ describe('Content Manager End to End', () => { content: 'Content 1', }; - let { body } = await rq({ + const { body } = await rq({ url: '/content-manager/collection-types/api::article.article', method: 'POST', body: entry, @@ -943,13 +935,11 @@ describe('Content Manager End to End', () => { }); test('Update article1 with ref1', async () => { - const entry = Object.assign({}, data.articles[0], { - reference: data.references[0].id, - }); + const entry = { ...data.articles[0], reference: data.references[0].id }; cleanDate(entry); - let { body } = await rq({ + const { body } = await rq({ url: `/content-manager/collection-types/api::article.article/${entry.id}`, method: 'PUT', body: entry, @@ -982,7 +972,7 @@ describe('Content Manager End to End', () => { reference: data.references[0].id, }; - let { body } = await rq({ + const { body } = await rq({ url: '/content-manager/collection-types/api::article.article', method: 'POST', body: entry, diff --git a/packages/core/content-manager/server/tests/relation-list.test.e2e.js b/packages/core/content-manager/server/tests/relation-list.test.e2e.js index ab685e5bb68..828797cc5fc 100644 --- a/packages/core/content-manager/server/tests/relation-list.test.e2e.js +++ b/packages/core/content-manager/server/tests/relation-list.test.e2e.js @@ -10,7 +10,7 @@ const { createAuthRequest } = require('../../../../../test/helpers/request'); let strapi; let rq; -let data = { +const data = { products: [], shops: [], }; diff --git a/packages/core/content-manager/server/tests/search.test.e2e.js b/packages/core/content-manager/server/tests/search.test.e2e.js index f430b29d080..bcdd063bb24 100644 --- a/packages/core/content-manager/server/tests/search.test.e2e.js +++ b/packages/core/content-manager/server/tests/search.test.e2e.js @@ -11,7 +11,7 @@ const CREATOR_FIELDS = ['updatedBy', 'createdBy']; const builder = createTestBuilder(); let strapi; let rq; -let data = { +const data = { beds: [], }; diff --git a/packages/core/content-manager/server/tests/single-type.test.e2e.js b/packages/core/content-manager/server/tests/single-type.test.e2e.js index f2e5279bfab..4c46957522a 100644 --- a/packages/core/content-manager/server/tests/single-type.test.e2e.js +++ b/packages/core/content-manager/server/tests/single-type.test.e2e.js @@ -8,7 +8,7 @@ const { createAuthRequest } = require('../../../../../test/helpers/request'); const builder = createTestBuilder(); let strapi; let rq; -let uid = 'api::single-type-model.single-type-model'; +const uid = 'api::single-type-model.single-type-model'; const ct = { kind: 'singleType', diff --git a/packages/core/content-type-builder/server/controllers/validation/common.js b/packages/core/content-type-builder/server/controllers/validation/common.js index bf25b0d1151..ff74fa514ab 100644 --- a/packages/core/content-type-builder/server/controllers/validation/common.js +++ b/packages/core/content-type-builder/server/controllers/validation/common.js @@ -24,31 +24,31 @@ const UID_REGEX = new RegExp('^[A-Za-z0-9-_.~]*$'); const isValidName = { name: 'isValidName', - message: '${path} must match the following regex: ' + NAME_REGEX, + message: `\${path} must match the following regex: ${NAME_REGEX}`, test: val => val === '' || NAME_REGEX.test(val), }; const isValidUID = { name: 'isValidUID', - message: '${path} must match the following regex: ' + UID_REGEX, + message: `\${path} must match the following regex: ${UID_REGEX}`, test: val => val === '' || UID_REGEX.test(val), }; const isValidCategoryName = { name: 'isValidCategoryName', - message: '${path} must match the following regex: ' + CATEGORY_NAME_REGEX, + message: `\${path} must match the following regex: ${CATEGORY_NAME_REGEX}`, test: val => val === '' || CATEGORY_NAME_REGEX.test(val), }; const isValidCollectionName = { name: 'isValidCollectionName', - message: '${path} must match the following regex: ' + COLLECTION_NAME_REGEX, + message: `\${path} must match the following regex: ${COLLECTION_NAME_REGEX}`, test: val => val === '' || COLLECTION_NAME_REGEX.test(val), }; const isValidIcon = { name: 'isValidIcon', - message: '${path} must match the following regex: ' + ICON_REGEX, + message: `\${path} must match the following regex: ${ICON_REGEX}`, test: val => val === '' || ICON_REGEX.test(val), }; diff --git a/packages/core/content-type-builder/server/services/schema-builder/schema-handler.js b/packages/core/content-type-builder/server/services/schema-builder/schema-handler.js index fba87f26df4..60cb4ede217 100644 --- a/packages/core/content-type-builder/server/services/schema-builder/schema-handler.js +++ b/packages/core/content-type-builder/server/services/schema-builder/schema-handler.js @@ -123,14 +123,14 @@ module.exports = function createSchemaHandler(infos) { setAttributes(newAttributes) { // delete old configurable attributes - for (let key in this.schema.attributes) { + for (const key in this.schema.attributes) { if (isConfigurable(this.schema.attributes[key])) { this.deleteAttribute(key); } } // set new Attributes - for (let key in newAttributes) { + for (const key in newAttributes) { this.setAttribute(key, newAttributes[key]); } diff --git a/packages/core/content-type-builder/server/utils/attributes.js b/packages/core/content-type-builder/server/utils/attributes.js index e90fc1fd1a4..6b0ed1e9a1a 100644 --- a/packages/core/content-type-builder/server/utils/attributes.js +++ b/packages/core/content-type-builder/server/utils/attributes.js @@ -45,8 +45,8 @@ const formatAttribute = (key, attribute) => { if (attribute.type === 'media') { return { type: 'media', - multiple: attribute.multiple ? true : false, - required: required ? true : false, + multiple: !!attribute.multiple, + required: !!required, configurable: configurable === false ? false : undefined, allowedTypes: attribute.allowedTypes, pluginOptions, @@ -60,7 +60,7 @@ const formatAttribute = (key, attribute) => { target: attribute.target, targetAttribute: attribute.inversedBy || attribute.mappedBy || null, configurable: configurable === false ? false : undefined, - private: attribute.private ? true : false, + private: !!attribute.private, pluginOptions, // TODO: remove autoPopulate, diff --git a/packages/core/content-type-builder/tests/collection-type.test.e2e.js b/packages/core/content-type-builder/tests/collection-type.test.e2e.js index 91f732a7c95..9bf2a8bc38e 100644 --- a/packages/core/content-type-builder/tests/collection-type.test.e2e.js +++ b/packages/core/content-type-builder/tests/collection-type.test.e2e.js @@ -1,6 +1,7 @@ /** * Integration test for the content-type-builder content types management apis */ + 'use strict'; const { createStrapiInstance } = require('../../../../test/helpers/strapi'); diff --git a/packages/core/content-type-builder/tests/single-type.test.e2e.js b/packages/core/content-type-builder/tests/single-type.test.e2e.js index a86d6c1fdf7..b6c9263bb8b 100644 --- a/packages/core/content-type-builder/tests/single-type.test.e2e.js +++ b/packages/core/content-type-builder/tests/single-type.test.e2e.js @@ -1,6 +1,7 @@ /** * Integration test for the content-type-builder content types management apis */ + 'use strict'; const { createStrapiInstance } = require('../../../../test/helpers/strapi'); diff --git a/packages/core/database/lib/__tests__/lifecycles.test.js b/packages/core/database/lib/__tests__/lifecycles.test.js index 717942bcec4..1dbbf352558 100644 --- a/packages/core/database/lib/__tests__/lifecycles.test.js +++ b/packages/core/database/lib/__tests__/lifecycles.test.js @@ -6,7 +6,7 @@ describe('LifecycleProvider', () => { describe('run', () => { /** @type {import("../lifecycles").LifecycleProvider} */ let provider; - let dbMetadataGetStub = jest.fn(uid => ({ uid, name: 'TestModel' })); + const dbMetadataGetStub = jest.fn(uid => ({ uid, name: 'TestModel' })); beforeEach(() => { const db = { diff --git a/packages/core/database/lib/connection.js b/packages/core/database/lib/connection.js index e03e884cb2c..67201993cb6 100644 --- a/packages/core/database/lib/connection.js +++ b/packages/core/database/lib/connection.js @@ -1,5 +1,6 @@ /* eslint-disable node/no-missing-require */ /* eslint-disable node/no-extraneous-require */ + 'use strict'; const knex = require('knex'); diff --git a/packages/core/database/lib/dialects/dialect.js b/packages/core/database/lib/dialects/dialect.js index f3b374f78c8..5e92b31a7fd 100644 --- a/packages/core/database/lib/dialects/dialect.js +++ b/packages/core/database/lib/dialects/dialect.js @@ -6,6 +6,7 @@ class Dialect { } configure() {} + initialize() {} getSqlType(type) { @@ -29,6 +30,7 @@ class Dialect { } async startSchemaUpdate() {} + async endSchemaUpdate() {} transformErrors(error) { diff --git a/packages/core/database/lib/dialects/mysql/index.js b/packages/core/database/lib/dialects/mysql/index.js index dcace979d58..9e01d5e0b1d 100644 --- a/packages/core/database/lib/dialects/mysql/index.js +++ b/packages/core/database/lib/dialects/mysql/index.js @@ -15,12 +15,12 @@ class MysqlDialect extends Dialect { this.db.config.connection.connection.bigNumberStrings = true; this.db.config.connection.connection.typeCast = (field, next) => { if (field.type === 'DECIMAL' || field.type === 'NEWDECIMAL') { - var value = field.string(); + const value = field.string(); return value === null ? null : Number(value); } if (field.type === 'TINY' && field.length === 1) { - let value = field.string(); + const value = field.string(); return value ? value === '1' : null; } diff --git a/packages/core/database/lib/entity-manager.js b/packages/core/database/lib/entity-manager.js index 0233bb1e235..7bb18e50325 100644 --- a/packages/core/database/lib/entity-manager.js +++ b/packages/core/database/lib/entity-manager.js @@ -817,7 +817,7 @@ const createEntityManager = db => { populate, }); - return Object.assign({}, entity, entry); + return { ...entity, ...entry }; }, // TODO: support multiple relations at once with the populate syntax diff --git a/packages/core/database/lib/fields.js b/packages/core/database/lib/fields.js index ebf08b29482..103f411f6ba 100644 --- a/packages/core/database/lib/fields.js +++ b/packages/core/database/lib/fields.js @@ -63,11 +63,11 @@ class BooleanField extends Field { if (strVal === '1') { return true; - } else if (strVal === '0') { + } + if (strVal === '0') { return false; - } else { - return null; } + return null; } } @@ -131,7 +131,7 @@ const parseDate = value => { ); } - let date = dateFns.parseISO(extractedValue); + const date = dateFns.parseISO(extractedValue); if (!dateFns.isValid(date)) { throw new InvalidDateError(`Invalid date`); } diff --git a/packages/core/database/lib/metadata/relations.js b/packages/core/database/lib/metadata/relations.js index 155453b456d..178906cd4c8 100644 --- a/packages/core/database/lib/metadata/relations.js +++ b/packages/core/database/lib/metadata/relations.js @@ -75,12 +75,8 @@ const createOneToMany = (attributeName, attribute, meta, metadata) => { attributeName, meta, }); - } else { - if (isOwner(attribute)) { - throw new Error( - 'one side of a oneToMany cannot be the owner side in a bidirectional relation' - ); - } + } else if (isOwner(attribute)) { + throw new Error('one side of a oneToMany cannot be the owner side in a bidirectional relation'); } }; @@ -169,7 +165,7 @@ const createManyToMany = (attributeName, attribute, meta, metadata) => { * @param {ModelMetadata} meta * @param {Metadata} metadata */ -const createMorphToOne = (attributeName, attribute /*meta, metadata*/) => { +const createMorphToOne = (attributeName, attribute /* meta, metadata */) => { const idColumnName = 'target_id'; const typeColumnName = 'target_type'; @@ -354,7 +350,7 @@ const createRelation = (attributeName, attribute, meta, metadata) => { * @param {string} param.attributeName name of the associated attribute * @param {Object} param.meta model metadata */ -const createJoinColum = (metadata, { attribute, attributeName /*meta */ }) => { +const createJoinColum = (metadata, { attribute, attributeName /* meta */ }) => { const targetMeta = metadata.get(attribute.target); const joinColumnName = _.snakeCase(`${attributeName}_id`); @@ -395,7 +391,7 @@ const createJoinTable = (metadata, { attributeName, attribute, meta }) => { const joinTableName = _.snakeCase(`${meta.tableName}_${attributeName}_links`); - let joinColumnName = _.snakeCase(`${meta.singularName}_id`); + const joinColumnName = _.snakeCase(`${meta.singularName}_id`); let inverseJoinColumnName = _.snakeCase(`${targetMeta.singularName}_id`); // if relation is slef referencing diff --git a/packages/core/database/lib/query/helpers/join.js b/packages/core/database/lib/query/helpers/join.js index c46cd5133eb..3539cf15c41 100644 --- a/packages/core/database/lib/query/helpers/join.js +++ b/packages/core/database/lib/query/helpers/join.js @@ -32,7 +32,7 @@ const createJoin = (ctx, { alias, attributeName, attribute }) => { const tragetMeta = db.metadata.get(attribute.target); - const joinColumn = attribute.joinColumn; + const { joinColumn } = attribute; if (joinColumn) { const subAlias = qb.getAlias(); @@ -46,7 +46,7 @@ const createJoin = (ctx, { alias, attributeName, attribute }) => { return subAlias; } - const joinTable = attribute.joinTable; + const { joinTable } = attribute; if (joinTable) { return createPivotJoin(qb, joinTable, alias, tragetMeta); } diff --git a/packages/core/database/lib/schema/diff.js b/packages/core/database/lib/schema/diff.js index abd98bb85e8..318c5c1ad98 100644 --- a/packages/core/database/lib/schema/diff.js +++ b/packages/core/database/lib/schema/diff.js @@ -117,7 +117,7 @@ module.exports = db => { const diffDefault = (oldColumn, column) => { const oldDefaultTo = oldColumn.defaultTo; - const defaultTo = column.defaultTo; + const { defaultTo } = column; if (oldDefaultTo === null || _.toLower(oldDefaultTo) === 'null') { return _.isNil(defaultTo) || _.toLower(defaultTo) === 'null'; diff --git a/packages/core/database/lib/schema/index.js b/packages/core/database/lib/schema/index.js index b8f97a3d0a3..2a395d65e3e 100644 --- a/packages/core/database/lib/schema/index.js +++ b/packages/core/database/lib/schema/index.js @@ -87,7 +87,6 @@ const createSchemaProvider = db => { } debug('Schema unchanged'); - return; }, }; }; diff --git a/packages/core/email/server/controllers/email.js b/packages/core/email/server/controllers/email.js index 12b60d2a06a..8ae0e5c5877 100644 --- a/packages/core/email/server/controllers/email.js +++ b/packages/core/email/server/controllers/email.js @@ -10,7 +10,7 @@ const { ApplicationError } = require('@strapi/utils').errors; */ module.exports = { async send(ctx) { - let options = ctx.request.body; + const options = ctx.request.body; try { await strapi diff --git a/packages/core/strapi/bin/strapi.js b/packages/core/strapi/bin/strapi.js index b2b63fe6388..74a0617066c 100755 --- a/packages/core/strapi/bin/strapi.js +++ b/packages/core/strapi/bin/strapi.js @@ -1,4 +1,5 @@ #!/usr/bin/env node + 'use strict'; // FIXME @@ -13,7 +14,7 @@ const program = new Command(); const packageJSON = require('../package.json'); const checkCwdIsStrapiApp = name => { - let logErrorAndExit = () => { + const logErrorAndExit = () => { console.log( `You need to run ${yellow( `strapi ${name}` @@ -23,7 +24,7 @@ const checkCwdIsStrapiApp = name => { }; try { - const pkgJSON = require(process.cwd() + '/package.json'); + const pkgJSON = require(`${process.cwd()}/package.json`); if (!_.has(pkgJSON, 'dependencies.@strapi/strapi')) { logErrorAndExit(name); } @@ -69,7 +70,7 @@ program .command('version') .description('Output the version of Strapi') .action(() => { - process.stdout.write(packageJSON.version + '\n'); + process.stdout.write(`${packageJSON.version}\n`); process.exit(0); }); diff --git a/packages/core/strapi/lib/commands/__tests__/generate-template.test.js b/packages/core/strapi/lib/commands/__tests__/generate-template.test.js index 8ff4d606276..de6bfbeba5f 100644 --- a/packages/core/strapi/lib/commands/__tests__/generate-template.test.js +++ b/packages/core/strapi/lib/commands/__tests__/generate-template.test.js @@ -1,4 +1,5 @@ 'use strict'; + jest.mock('fs-extra', () => ({ ensureDir: jest.fn(() => Promise.resolve()), copy: jest.fn(() => Promise.resolve()), diff --git a/packages/core/strapi/lib/commands/build.js b/packages/core/strapi/lib/commands/build.js index c96f9947ae3..29b99dfd8db 100644 --- a/packages/core/strapi/lib/commands/build.js +++ b/packages/core/strapi/lib/commands/build.js @@ -1,6 +1,6 @@ 'use strict'; -const strapi = require('../'); +const strapi = require('..'); const { buildAdmin } = require('./builders'); /** diff --git a/packages/core/strapi/lib/commands/develop.js b/packages/core/strapi/lib/commands/develop.js index 23f25b7c813..4d1df431abe 100644 --- a/packages/core/strapi/lib/commands/develop.js +++ b/packages/core/strapi/lib/commands/develop.js @@ -97,7 +97,6 @@ const primaryProcess = async ({ distDir, appDir, build, isTSProject, watchAdmin, case 'stop': process.exit(1); default: - return; } }); @@ -108,7 +107,7 @@ const workerProcess = ({ appDir, distDir, watchAdmin, polling, isTSProject }) => const strapiInstance = strapi({ distDir, autoReload: true, - serveAdminPanel: watchAdmin ? false : true, + serveAdminPanel: !watchAdmin, }); const adminWatchIgnoreFiles = strapiInstance.config.get('admin.watchIgnoreFiles', []); diff --git a/packages/core/strapi/lib/commands/install.js b/packages/core/strapi/lib/commands/install.js index a5434182e0c..288a8352222 100644 --- a/packages/core/strapi/lib/commands/install.js +++ b/packages/core/strapi/lib/commands/install.js @@ -28,8 +28,8 @@ module.exports = async plugins => { // check if rebuild is necessary let shouldRebuild = false; - for (let name of plugins) { - let pkgPath = findPackagePath(`@strapi/plugin-${name}`); + for (const name of plugins) { + const pkgPath = findPackagePath(`@strapi/plugin-${name}`); if (existsSync(join(pkgPath, 'admin', 'src', 'index.js'))) { shouldRebuild = true; } diff --git a/packages/core/strapi/lib/commands/opt-in-telemetry.js b/packages/core/strapi/lib/commands/opt-in-telemetry.js index 9086d0fbe1b..f811278755f 100644 --- a/packages/core/strapi/lib/commands/opt-in-telemetry.js +++ b/packages/core/strapi/lib/commands/opt-in-telemetry.js @@ -40,16 +40,15 @@ const generateNewPackageJSON = packageObj => { telemetryDisabled: false, }, }; - } else { - return { - ...packageObj, - strapi: { - ...packageObj.strapi, - uuid: packageObj.strapi.uuid ? packageObj.strapi.uuid : uuidv4(), - telemetryDisabled: false, - }, - }; } + return { + ...packageObj, + strapi: { + ...packageObj.strapi, + uuid: packageObj.strapi.uuid ? packageObj.strapi.uuid : uuidv4(), + telemetryDisabled: false, + }, + }; }; const sendEvent = async uuid => { @@ -64,7 +63,7 @@ const sendEvent = async uuid => { headers: { 'Content-Type': 'application/json' }, }); } catch (e) { - //... + // ... } }; diff --git a/packages/core/strapi/lib/commands/opt-out-telemetry.js b/packages/core/strapi/lib/commands/opt-out-telemetry.js index 6fa60ea4545..2dafd8a0f0c 100644 --- a/packages/core/strapi/lib/commands/opt-out-telemetry.js +++ b/packages/core/strapi/lib/commands/opt-out-telemetry.js @@ -38,7 +38,7 @@ const sendEvent = async uuid => { headers: { 'Content-Type': 'application/json' }, }); } catch (e) { - //... + // ... } }; diff --git a/packages/core/strapi/lib/commands/start.js b/packages/core/strapi/lib/commands/start.js index 9f0299e6315..829a7cf66e0 100644 --- a/packages/core/strapi/lib/commands/start.js +++ b/packages/core/strapi/lib/commands/start.js @@ -1,4 +1,5 @@ 'use strict'; + const fs = require('fs'); const tsUtils = require('@strapi/typescript-utils'); const strapi = require('../index'); diff --git a/packages/core/strapi/lib/commands/uninstall.js b/packages/core/strapi/lib/commands/uninstall.js index 31d091d1c4f..d00e6074034 100644 --- a/packages/core/strapi/lib/commands/uninstall.js +++ b/packages/core/strapi/lib/commands/uninstall.js @@ -26,8 +26,8 @@ module.exports = async (plugins, { deleteFiles }) => { try { // verify should rebuild before removing the pacakge let shouldRebuild = false; - for (let name of plugins) { - let pkgPath = findPackagePath(`@strapi/plugin-${name}`); + for (const name of plugins) { + const pkgPath = findPackagePath(`@strapi/plugin-${name}`); if (existsSync(join(pkgPath, 'admin', 'src', 'index.js'))) { shouldRebuild = true; } @@ -46,7 +46,7 @@ module.exports = async (plugins, { deleteFiles }) => { if (deleteFiles === true || answers.deleteFiles === true) { loader.start('Deleting old files'); - for (let name of plugins) { + for (const name of plugins) { const pluginDir = join(dir, 'extensions', name); if (existsSync(pluginDir)) { removeSync(pluginDir); diff --git a/packages/core/strapi/lib/core-api/__tests__/controller.test.js b/packages/core/strapi/lib/core-api/__tests__/controller.test.js index 60cdf9e2514..93f589b0e3f 100644 --- a/packages/core/strapi/lib/core-api/__tests__/controller.test.js +++ b/packages/core/strapi/lib/core-api/__tests__/controller.test.js @@ -1,4 +1,5 @@ 'use strict'; + const { createController } = require('../controller'); describe('Default Controller', () => { diff --git a/packages/core/strapi/lib/core/domain/content-type/index.js b/packages/core/strapi/lib/core/domain/content-type/index.js index 99a9d725e82..6d390ba2289 100644 --- a/packages/core/strapi/lib/core/domain/content-type/index.js +++ b/packages/core/strapi/lib/core/domain/content-type/index.js @@ -114,7 +114,7 @@ const createContentType = (uid, definition) => { }; const getGlobalId = (model, modelName, prefix) => { - let globalId = prefix ? `${prefix}-${modelName}` : modelName; + const globalId = prefix ? `${prefix}-${modelName}` : modelName; return model.globalId || _.upperFirst(_.camelCase(globalId)); }; diff --git a/packages/core/strapi/lib/core/domain/module/validation.js b/packages/core/strapi/lib/core/domain/module/validation.js index 1c20d9b5e98..6ffa18d4d9d 100644 --- a/packages/core/strapi/lib/core/domain/module/validation.js +++ b/packages/core/strapi/lib/core/domain/module/validation.js @@ -12,9 +12,8 @@ const strapiServerSchema = yup routes: yup.lazy(value => { if (Array.isArray(value)) { return yup.array(); - } else { - return yup.object(); } + return yup.object(); }), controllers: yup.object(), services: yup.object(), diff --git a/packages/core/strapi/lib/core/loaders/plugins/get-enabled-plugins.js b/packages/core/strapi/lib/core/loaders/plugins/get-enabled-plugins.js index bae4f51eedc..3763af0671d 100644 --- a/packages/core/strapi/lib/core/loaders/plugins/get-enabled-plugins.js +++ b/packages/core/strapi/lib/core/loaders/plugins/get-enabled-plugins.js @@ -26,7 +26,7 @@ const toDetailedDeclaration = declaration => { return { enabled: declaration }; } - let detailedDeclaration = pick(['enabled'], declaration); + const detailedDeclaration = pick(['enabled'], declaration); if (has('resolve', declaration)) { let pathToPlugin = ''; diff --git a/packages/core/strapi/lib/core/loaders/plugins/index.js b/packages/core/strapi/lib/core/loaders/plugins/index.js index 817d13975d9..0c51d5823b8 100644 --- a/packages/core/strapi/lib/core/loaders/plugins/index.js +++ b/packages/core/strapi/lib/core/loaders/plugins/index.js @@ -40,11 +40,10 @@ const applyUserExtension = async plugins => { for (const ctName in plugin.contentTypes) { const extendedSchema = get([pluginName, 'content-types', ctName, 'schema'], extendedSchemas); if (extendedSchema) { - plugin.contentTypes[ctName].schema = Object.assign( - {}, - plugin.contentTypes[ctName].schema, - extendedSchema - ); + plugin.contentTypes[ctName].schema = { + ...plugin.contentTypes[ctName].schema, + ...extendedSchema, + }; } } // second: execute strapi-server extension diff --git a/packages/core/strapi/lib/core/registries/config.js b/packages/core/strapi/lib/core/registries/config.js index c58cf329678..87c36169a85 100644 --- a/packages/core/strapi/lib/core/registries/config.js +++ b/packages/core/strapi/lib/core/registries/config.js @@ -3,7 +3,7 @@ const _ = require('lodash'); module.exports = (initialConfig = {}) => { - const _config = Object.assign({}, initialConfig); // not deep clone because it would break some config + const _config = { ...initialConfig }; // not deep clone because it would break some config return { ..._config, // TODO: to remove diff --git a/packages/core/strapi/lib/core/utils.js b/packages/core/strapi/lib/core/utils.js index bcb214c3139..f4cbb6e94d6 100644 --- a/packages/core/strapi/lib/core/utils.js +++ b/packages/core/strapi/lib/core/utils.js @@ -7,25 +7,22 @@ const hasNamespace = (name, namespace) => { if (namespace.endsWith('::')) { return name.startsWith(namespace); - } else { - return name.startsWith(`${namespace}.`); } + return name.startsWith(`${namespace}.`); }; const addNamespace = (name, namespace) => { if (namespace.endsWith('::')) { return `${namespace}${name}`; - } else { - return `${namespace}.${name}`; } + return `${namespace}.${name}`; }; const removeNamespace = (name, namespace) => { if (namespace.endsWith('::')) { return name.replace(namespace, ''); - } else { - return name.replace(`${namespace}.`, ''); } + return name.replace(`${namespace}.`, ''); }; module.exports = { diff --git a/packages/core/strapi/lib/factories.js b/packages/core/strapi/lib/factories.js index cb90ae021da..122ab9362d4 100644 --- a/packages/core/strapi/lib/factories.js +++ b/packages/core/strapi/lib/factories.js @@ -12,7 +12,7 @@ const createCoreController = (uid, cfg = {}) => { contentType: strapi.contentType(uid), }); - let userCtrl = typeof cfg === 'function' ? cfg({ strapi }) : cfg; + const userCtrl = typeof cfg === 'function' ? cfg({ strapi }) : cfg; for (const methodName of Object.keys(baseController)) { if (userCtrl[methodName] === undefined) { @@ -31,7 +31,7 @@ const createCoreService = (uid, cfg = {}) => { contentType: strapi.contentType(uid), }); - let userService = typeof cfg === 'function' ? cfg({ strapi }) : cfg; + const userService = typeof cfg === 'function' ? cfg({ strapi }) : cfg; for (const methodName of Object.keys(baseService)) { if (userService[methodName] === undefined) { diff --git a/packages/core/strapi/lib/load/filepath-to-prop-path.js b/packages/core/strapi/lib/load/filepath-to-prop-path.js index 096abb56a08..afd48f1a902 100644 --- a/packages/core/strapi/lib/load/filepath-to-prop-path.js +++ b/packages/core/strapi/lib/load/filepath-to-prop-path.js @@ -8,7 +8,7 @@ const _ = require('lodash'); * @param {boolean} useFileNameAsKey - wethear to skip the last path key */ module.exports = (filePath, useFileNameAsKey = true) => { - let cleanPath = filePath.startsWith('./') ? filePath.slice(2) : filePath; + const cleanPath = filePath.startsWith('./') ? filePath.slice(2) : filePath; const prop = cleanPath .replace(/(\.settings|\.json|\.js)/g, '') diff --git a/packages/core/strapi/lib/load/load-files.js b/packages/core/strapi/lib/load/load-files.js index e7c35ed4602..ccb4f9a178a 100644 --- a/packages/core/strapi/lib/load/load-files.js +++ b/packages/core/strapi/lib/load/load-files.js @@ -26,7 +26,7 @@ const loadFiles = async ( const root = {}; const files = await glob(pattern, { cwd: dir, ...globArgs }); - for (let file of files) { + for (const file of files) { const absolutePath = path.resolve(dir, file); // load module diff --git a/packages/core/strapi/lib/middlewares/logger.js b/packages/core/strapi/lib/middlewares/logger.js index a613057453a..88bb7ef7117 100644 --- a/packages/core/strapi/lib/middlewares/logger.js +++ b/packages/core/strapi/lib/middlewares/logger.js @@ -1,4 +1,5 @@ 'use strict'; + const chalk = require('chalk'); const codeToColor = code => { diff --git a/packages/core/strapi/lib/middlewares/response-time.js b/packages/core/strapi/lib/middlewares/response-time.js index c8510b4017d..a3f5e544da3 100644 --- a/packages/core/strapi/lib/middlewares/response-time.js +++ b/packages/core/strapi/lib/middlewares/response-time.js @@ -10,6 +10,6 @@ module.exports = () => { await next(); const delta = Math.ceil(Date.now() - start); - ctx.set('X-Response-Time', delta + 'ms'); + ctx.set('X-Response-Time', `${delta}ms`); }; }; diff --git a/packages/core/strapi/lib/middlewares/responses.js b/packages/core/strapi/lib/middlewares/responses.js index b66e3895df5..370152a80ea 100644 --- a/packages/core/strapi/lib/middlewares/responses.js +++ b/packages/core/strapi/lib/middlewares/responses.js @@ -9,7 +9,7 @@ module.exports = (config = {}) => { return async (ctx, next) => { await next(); - const status = ctx.status; + const { status } = ctx; const handler = prop(`handlers.${status}`, config); if (isFunction(handler)) { diff --git a/packages/core/strapi/lib/middlewares/session.js b/packages/core/strapi/lib/middlewares/session.js index b60312f58e4..87f185246c1 100644 --- a/packages/core/strapi/lib/middlewares/session.js +++ b/packages/core/strapi/lib/middlewares/session.js @@ -12,12 +12,12 @@ const defaultConfig = { signed: true, rolling: false, renew: false, - secure: process.env.NODE_ENV === 'production' ? true : false, + secure: process.env.NODE_ENV === 'production', sameSite: null, }; module.exports = (userConfig, { strapi }) => { - const keys = strapi.server.app.keys; + const { keys } = strapi.server.app; if (!isArray(keys) || isEmpty(keys) || keys.some(isEmpty)) { throw new Error( `App keys are required. Please set app.keys in config/server.js (ex: keys: ['myKeyA', 'myKeyB'])` diff --git a/packages/core/strapi/lib/services/auth/index.js b/packages/core/strapi/lib/services/auth/index.js index ccf96614af6..e40442f5b43 100644 --- a/packages/core/strapi/lib/services/auth/index.js +++ b/packages/core/strapi/lib/services/auth/index.js @@ -78,8 +78,6 @@ const createAuthentication = () => { if (typeof auth.strategy.verify === 'function') { return auth.strategy.verify(auth, config); } - - return; }, }; }; diff --git a/packages/core/strapi/lib/services/entity-service/__tests__/entity-service.test.js b/packages/core/strapi/lib/services/entity-service/__tests__/entity-service.test.js index 5ad4924b55e..2d0a4c4f6ab 100644 --- a/packages/core/strapi/lib/services/entity-service/__tests__/entity-service.test.js +++ b/packages/core/strapi/lib/services/entity-service/__tests__/entity-service.test.js @@ -3,7 +3,7 @@ jest.mock('bcryptjs', () => ({ hashSync: () => 'secret-password' })); const { EventEmitter } = require('events'); -const createEntityService = require('../'); +const createEntityService = require('..'); const entityValidator = require('../../entity-validator'); describe('Entity service', () => { diff --git a/packages/core/strapi/lib/services/entity-service/components.js b/packages/core/strapi/lib/services/entity-service/components.js index e93a7d360d5..c9938e8a6c7 100644 --- a/packages/core/strapi/lib/services/entity-service/components.js +++ b/packages/core/strapi/lib/services/entity-service/components.js @@ -307,9 +307,9 @@ const deleteComponents = async (uid, entityToDelete) => { } }; -/*************************** +/** ************************* Component queries -***************************/ +************************** */ // components can have nested compos so this must be recursive const createComponent = async (uid, data) => { diff --git a/packages/core/strapi/lib/services/entity-service/index.js b/packages/core/strapi/lib/services/entity-service/index.js index 9dcc4b5f943..e11fe997618 100644 --- a/packages/core/strapi/lib/services/entity-service/index.js +++ b/packages/core/strapi/lib/services/entity-service/index.js @@ -47,7 +47,7 @@ module.exports = ctx => { throw new Error(`Decorator must be a function, received ${typeof decorator}`); } - this.implementation = Object.assign({}, this.implementation, decorator(this.implementation)); + this.implementation = { ...this.implementation, ...decorator(this.implementation) }; return this; }, }; diff --git a/packages/core/strapi/lib/services/entity-validator/index.js b/packages/core/strapi/lib/services/entity-validator/index.js index 448d19da039..15a35cfe278 100644 --- a/packages/core/strapi/lib/services/entity-validator/index.js +++ b/packages/core/strapi/lib/services/entity-validator/index.js @@ -2,6 +2,7 @@ * Entity validator * Module that will validate input data for entity creation or edition */ + 'use strict'; const { has, assoc, prop, isObject } = require('lodash/fp'); diff --git a/packages/core/strapi/lib/services/entity-validator/validators.js b/packages/core/strapi/lib/services/entity-validator/validators.js index bfcad9ed87a..def75c6c31b 100644 --- a/packages/core/strapi/lib/services/entity-validator/validators.js +++ b/packages/core/strapi/lib/services/entity-validator/validators.js @@ -143,7 +143,7 @@ const addUniqueValidator = (validator, { attr, model, updatedAttribute, entity } return true; } - let whereParams = entity + const whereParams = entity ? { $and: [{ [updatedAttribute.name]: value }, { $not: { id: entity.id } }] } : { [updatedAttribute.name]: value }; diff --git a/packages/core/strapi/lib/services/event-hub.js b/packages/core/strapi/lib/services/event-hub.js index 79800a2bee9..175ef992c9a 100644 --- a/packages/core/strapi/lib/services/event-hub.js +++ b/packages/core/strapi/lib/services/event-hub.js @@ -1,6 +1,7 @@ /** * The event hub is Strapi's event control center. */ + 'use strict'; const EventEmitter = require('events'); diff --git a/packages/core/strapi/lib/services/metrics/index.js b/packages/core/strapi/lib/services/metrics/index.js index accd4068a63..5bd85a36040 100644 --- a/packages/core/strapi/lib/services/metrics/index.js +++ b/packages/core/strapi/lib/services/metrics/index.js @@ -1,4 +1,5 @@ 'use strict'; + /** * Strapi telemetry package. * You can learn more at https://docs.strapi.io/developer-docs/latest/getting-started/usage-information.html diff --git a/packages/core/strapi/lib/services/server/koa.js b/packages/core/strapi/lib/services/server/koa.js index 1c98f6160f3..0791efe3c80 100644 --- a/packages/core/strapi/lib/services/server/koa.js +++ b/packages/core/strapi/lib/services/server/koa.js @@ -4,7 +4,7 @@ const { isNil, camelCase } = require('lodash/fp'); const Koa = require('koa'); const createError = require('http-errors'); const delegate = require('delegates'); -var statuses = require('statuses'); +const statuses = require('statuses'); const { formatHttpError } = require('../errors'); const addCustomMethods = app => { diff --git a/packages/core/strapi/lib/services/server/register-middlewares.js b/packages/core/strapi/lib/services/server/register-middlewares.js index de330f29d7a..69f7aaaae24 100644 --- a/packages/core/strapi/lib/services/server/register-middlewares.js +++ b/packages/core/strapi/lib/services/server/register-middlewares.js @@ -104,8 +104,6 @@ const checkRequiredMiddlewares = middlewares => { )}".` ); } - - return; }; module.exports = registerApplicationMiddlewares; diff --git a/packages/core/strapi/lib/services/utils/upload-files.js b/packages/core/strapi/lib/services/utils/upload-files.js index f12fdf56ea2..dcbc1bf8b10 100644 --- a/packages/core/strapi/lib/services/utils/upload-files.js +++ b/packages/core/strapi/lib/services/utils/upload-files.js @@ -23,7 +23,7 @@ module.exports = async (uid, entity, files) => { return uid; } - let currentPath = []; + const currentPath = []; let tmpModel = modelDef; let modelUID = uid; diff --git a/packages/core/strapi/lib/services/webhook-runner.js b/packages/core/strapi/lib/services/webhook-runner.js index 532b9832831..3bf37778621 100644 --- a/packages/core/strapi/lib/services/webhook-runner.js +++ b/packages/core/strapi/lib/services/webhook-runner.js @@ -1,6 +1,7 @@ /** * The event hub is Strapi's event control center. */ + 'use strict'; const debug = require('debug')('strapi:webhook'); diff --git a/packages/core/strapi/lib/services/webhook-store.js b/packages/core/strapi/lib/services/webhook-store.js index 9aa87eca975..39423edbc70 100644 --- a/packages/core/strapi/lib/services/webhook-store.js +++ b/packages/core/strapi/lib/services/webhook-store.js @@ -1,6 +1,7 @@ /** * Webhook store is the implementation of webhook storage over the core_store */ + 'use strict'; const webhookModel = { diff --git a/packages/core/strapi/lib/services/worker-queue.js b/packages/core/strapi/lib/services/worker-queue.js index 7eaabfc174f..bece4f70b82 100644 --- a/packages/core/strapi/lib/services/worker-queue.js +++ b/packages/core/strapi/lib/services/worker-queue.js @@ -1,6 +1,7 @@ /** * Simple worker queue in memory */ + 'use strict'; const debug = require('debug')('strapi:worker-queue'); diff --git a/packages/core/strapi/lib/utils/addSlash.js b/packages/core/strapi/lib/utils/addSlash.js index d30bf5bebc3..81dd403c337 100644 --- a/packages/core/strapi/lib/utils/addSlash.js +++ b/packages/core/strapi/lib/utils/addSlash.js @@ -4,7 +4,7 @@ module.exports = path => { if (typeof path !== 'string') throw new Error('admin.url must be a string'); if (path === '' || path === '/') return '/'; - if (path[0] != '/') path = '/' + path; - if (path[path.length - 1] != '/') path = path + '/'; + if (path[0] != '/') path = `/${path}`; + if (path[path.length - 1] != '/') path += '/'; return path; }; diff --git a/packages/core/strapi/lib/utils/open-browser.js b/packages/core/strapi/lib/utils/open-browser.js index 4f2702001f1..697a6ccd1e0 100644 --- a/packages/core/strapi/lib/utils/open-browser.js +++ b/packages/core/strapi/lib/utils/open-browser.js @@ -1,6 +1,6 @@ 'use strict'; -var open = require('open'); +const open = require('open'); const { getAbsoluteAdminUrl } = require('@strapi/utils'); async function openBrowser(config) { diff --git a/packages/core/strapi/lib/utils/run-checks.js b/packages/core/strapi/lib/utils/run-checks.js index 1a93dfc5163..6f9a3ec1eb5 100644 --- a/packages/core/strapi/lib/utils/run-checks.js +++ b/packages/core/strapi/lib/utils/run-checks.js @@ -5,8 +5,8 @@ const fs = require('fs-extra'); const requiredPaths = ['api', 'extensions', 'plugins', 'config', 'public']; const checkFoldersExist = ({ appPath }) => { - let missingPaths = []; - for (let reqPath of requiredPaths) { + const missingPaths = []; + for (const reqPath of requiredPaths) { if (!fs.pathExistsSync(path.resolve(appPath, reqPath))) { missingPaths.push(reqPath); } diff --git a/packages/core/strapi/lib/utils/startup-logger.js b/packages/core/strapi/lib/utils/startup-logger.js index 214dd5c9c66..0b26dc919bb 100644 --- a/packages/core/strapi/lib/utils/startup-logger.js +++ b/packages/core/strapi/lib/utils/startup-logger.js @@ -23,7 +23,7 @@ module.exports = app => { infoTable.push( [chalk.blue('Time'), `${new Date()}`], - [chalk.blue('Launched in'), Date.now() - app.config.launchedAt + ' ms'], + [chalk.blue('Launched in'), `${Date.now() - app.config.launchedAt} ms`], [chalk.blue('Environment'), app.config.environment], [chalk.blue('Process PID'), process.pid], [chalk.blue('Version'), `${app.config.info.strapi} (node ${process.version})`], diff --git a/packages/core/strapi/lib/utils/success.js b/packages/core/strapi/lib/utils/success.js index 397656679d3..231442f0fbe 100644 --- a/packages/core/strapi/lib/utils/success.js +++ b/packages/core/strapi/lib/utils/success.js @@ -27,5 +27,5 @@ try { }).catch(() => {}); } } catch (e) { - //... + // ... } diff --git a/packages/core/strapi/tests/api/basic-compo-repeatable.test.e2e.js b/packages/core/strapi/tests/api/basic-compo-repeatable.test.e2e.js index a4a8d54f8df..1eb9984f438 100644 --- a/packages/core/strapi/tests/api/basic-compo-repeatable.test.e2e.js +++ b/packages/core/strapi/tests/api/basic-compo-repeatable.test.e2e.js @@ -7,7 +7,7 @@ const { createContentAPIRequest } = require('../../../../../test/helpers/request const builder = createTestBuilder(); let strapi; let rq; -let data = { +const data = { productsWithCompo: [], }; diff --git a/packages/core/strapi/tests/api/basic-compo.test.e2e.js b/packages/core/strapi/tests/api/basic-compo.test.e2e.js index 6e7a3c5d2cd..757d4d5b6b4 100644 --- a/packages/core/strapi/tests/api/basic-compo.test.e2e.js +++ b/packages/core/strapi/tests/api/basic-compo.test.e2e.js @@ -7,7 +7,7 @@ const { createContentAPIRequest } = require('../../../../../test/helpers/request const builder = createTestBuilder(); let strapi; let rq; -let data = { +const data = { productsWithCompo: [], }; diff --git a/packages/core/strapi/tests/api/basic-dp-compo-repeatable.test.e2e.js b/packages/core/strapi/tests/api/basic-dp-compo-repeatable.test.e2e.js index c4d0b74ee2b..60f09fe1c4d 100644 --- a/packages/core/strapi/tests/api/basic-dp-compo-repeatable.test.e2e.js +++ b/packages/core/strapi/tests/api/basic-dp-compo-repeatable.test.e2e.js @@ -7,7 +7,7 @@ const { createContentAPIRequest } = require('../../../../../test/helpers/request const builder = createTestBuilder(); let strapi; let rq; -let data = { +const data = { productsWithCompoAndDP: [], }; diff --git a/packages/core/strapi/tests/api/basic-dp-compo.test.e2e.js b/packages/core/strapi/tests/api/basic-dp-compo.test.e2e.js index 613d6cbaae0..b72a6a3876b 100644 --- a/packages/core/strapi/tests/api/basic-dp-compo.test.e2e.js +++ b/packages/core/strapi/tests/api/basic-dp-compo.test.e2e.js @@ -7,7 +7,7 @@ const { createContentAPIRequest } = require('../../../../../test/helpers/request const builder = createTestBuilder(); let strapi; let rq; -let data = { +const data = { productsWithCompoAndDP: [], }; diff --git a/packages/core/strapi/tests/api/basic-dp.test.e2e.js b/packages/core/strapi/tests/api/basic-dp.test.e2e.js index 47785b0a5c4..84781a9287d 100644 --- a/packages/core/strapi/tests/api/basic-dp.test.e2e.js +++ b/packages/core/strapi/tests/api/basic-dp.test.e2e.js @@ -9,7 +9,7 @@ const { createContentAPIRequest } = require('../../../../../test/helpers/request const builder = createTestBuilder(); let strapi; let rq; -let data = { +const data = { products: [], }; diff --git a/packages/core/strapi/tests/api/basic.test.e2e.js b/packages/core/strapi/tests/api/basic.test.e2e.js index c332ea89dde..0e6603bd2cd 100644 --- a/packages/core/strapi/tests/api/basic.test.e2e.js +++ b/packages/core/strapi/tests/api/basic.test.e2e.js @@ -7,7 +7,7 @@ const { createContentAPIRequest } = require('../../../../../test/helpers/request const builder = createTestBuilder(); let strapi; let rq; -let data = { +const data = { product: [], }; diff --git a/packages/core/strapi/tests/endpoint.test.e2e.js b/packages/core/strapi/tests/endpoint.test.e2e.js index afc857e0bb4..96555874ee3 100644 --- a/packages/core/strapi/tests/endpoint.test.e2e.js +++ b/packages/core/strapi/tests/endpoint.test.e2e.js @@ -145,9 +145,7 @@ describe('Create Strapi API End to End', () => { test('Update article1 add tag2', async () => { const { id, attributes } = data.articles[0]; - const entry = Object.assign({}, attributes, { - tags: [data.tags[1].id], - }); + const entry = { ...attributes, tags: [data.tags[1].id] }; cleanDate(entry); @@ -174,7 +172,7 @@ describe('Create Strapi API End to End', () => { test('Update article1 add tag1 and tag3', async () => { const { id, attributes } = data.articles[0]; - const entry = Object.assign({}, attributes); + const entry = { ...attributes }; entry.tags = data.tags.map(t => t.id); cleanDate(entry); @@ -202,7 +200,7 @@ describe('Create Strapi API End to End', () => { test('Update article1 remove one tag', async () => { const { id, attributes } = data.articles[0]; - const entry = Object.assign({}, attributes); + const entry = { ...attributes }; entry.tags = entry.tags.data.slice(1).map(t => t.id); cleanDate(entry); @@ -229,9 +227,7 @@ describe('Create Strapi API End to End', () => { test('Update article1 remove all tag', async () => { const { id, attributes } = data.articles[0]; - const entry = Object.assign({}, attributes, { - tags: [], - }); + const entry = { ...attributes, tags: [] }; cleanDate(entry); @@ -338,9 +334,7 @@ describe('Create Strapi API End to End', () => { test('Update article1 with cat2', async () => { const { id, attributes } = data.articles[0]; - const entry = Object.assign({}, attributes, { - category: data.categories[1].id, - }); + const entry = { ...attributes, category: data.categories[1].id }; cleanDate(entry); @@ -389,9 +383,7 @@ describe('Create Strapi API End to End', () => { test('Update article2 with cat2', async () => { const { id, attributes } = data.articles[1]; - const entry = Object.assign({}, attributes, { - category: data.categories[1].id, - }); + const entry = { ...attributes, category: data.categories[1].id }; cleanDate(entry); @@ -419,7 +411,7 @@ describe('Create Strapi API End to End', () => { test('Update cat1 with article1', async () => { const { id, attributes } = data.categories[0]; - const entry = Object.assign({}, attributes); + const entry = { ...attributes }; entry.articles = data.categories[0].attributes.articles.data .map(a => a.id) .concat(data.articles[0].id); @@ -590,9 +582,7 @@ describe('Create Strapi API End to End', () => { test('Update article1 with ref1', async () => { const { id, attributes } = data.articles[0]; - const entry = Object.assign({}, attributes, { - reference: data.references[0].id, - }); + const entry = { ...attributes, reference: data.references[0].id }; cleanDate(entry); diff --git a/packages/core/strapi/tests/filtering.test.e2e.js b/packages/core/strapi/tests/filtering.test.e2e.js index 076d2e61d8c..3e575f5d4cf 100644 --- a/packages/core/strapi/tests/filtering.test.e2e.js +++ b/packages/core/strapi/tests/filtering.test.e2e.js @@ -1261,7 +1261,7 @@ describe('Filtering API', () => { }); test('Combined filters', async () => { - let res = await rq({ + const res = await rq({ method: 'GET', url: '/products', qs: { diff --git a/packages/core/strapi/tests/lifecycles/before-delete.test.e2e.js b/packages/core/strapi/tests/lifecycles/before-delete.test.e2e.js index 0e986eb4402..f33ea982c2f 100644 --- a/packages/core/strapi/tests/lifecycles/before-delete.test.e2e.js +++ b/packages/core/strapi/tests/lifecycles/before-delete.test.e2e.js @@ -7,7 +7,7 @@ const { createContentAPIRequest } = require('../../../../../test/helpers/request let builder; let strapi; let rq; -let data = { +const data = { productsWithCompo: [], }; diff --git a/packages/core/strapi/tests/migrations/migration-draft-publish.test.e2e.js b/packages/core/strapi/tests/migrations/migration-draft-publish.test.e2e.js index 224fe86a7e2..acd0abebe86 100644 --- a/packages/core/strapi/tests/migrations/migration-draft-publish.test.e2e.js +++ b/packages/core/strapi/tests/migrations/migration-draft-publish.test.e2e.js @@ -10,7 +10,7 @@ const modelsUtils = require('../../../../../test/helpers/models'); let builder; let strapi; let rq; -let data = { +const data = { dogs: [], }; const dogModel = { @@ -76,7 +76,7 @@ describe('Migration - draft and publish', () => { describe('Enabling D&P on a content-type', () => { test('No publishedAt before enabling the feature', async () => { - let { body } = await rq({ + const { body } = await rq({ url: '/content-manager/collection-types/api::dog.dog', method: 'GET', }); @@ -105,7 +105,7 @@ describe('Migration - draft and publish', () => { await restart(); - let { body } = await rq({ + const { body } = await rq({ method: 'GET', url: '/content-manager/collection-types/api::dog.dog', }); @@ -149,7 +149,7 @@ describe('Migration - draft and publish', () => { // drafts should have been deleted with the migration, so we remove them data.dogs = data.dogs.filter(dog => !_.isNil(dog.publishedAt)); - let { body } = await rq({ + const { body } = await rq({ url: '/content-manager/collection-types/api::dog.dog', method: 'GET', }); diff --git a/packages/core/strapi/tests/migrations/migration-required-attribute.test.e2e.js b/packages/core/strapi/tests/migrations/migration-required-attribute.test.e2e.js index 750b374412d..33b2e9832d3 100644 --- a/packages/core/strapi/tests/migrations/migration-required-attribute.test.e2e.js +++ b/packages/core/strapi/tests/migrations/migration-required-attribute.test.e2e.js @@ -8,7 +8,7 @@ const modelsUtils = require('../../../../../test/helpers/models'); const builder = createTestBuilder(); let strapi; let rq; -let data = { +const data = { dogs: [], }; @@ -63,7 +63,7 @@ describe('Migration - required attribute', () => { describe('Required: false -> true', () => { test('Can be null before migration', async () => { - let { body } = await rq({ + const { body } = await rq({ method: 'GET', url: '/content-manager/collection-types/api::dog.dog', }); diff --git a/packages/core/strapi/tests/migrations/migration-unique-attribute.test.e2e.js b/packages/core/strapi/tests/migrations/migration-unique-attribute.test.e2e.js index a9fd43c4294..b66ef4204e2 100644 --- a/packages/core/strapi/tests/migrations/migration-unique-attribute.test.e2e.js +++ b/packages/core/strapi/tests/migrations/migration-unique-attribute.test.e2e.js @@ -8,7 +8,7 @@ const modelsUtils = require('../../../../../test/helpers/models'); const builder = createTestBuilder(); let strapi; let rq; -let data = { +const data = { dogs: [], }; @@ -63,7 +63,7 @@ describe('Migration - unique attribute', () => { describe('Unique: false -> true', () => { test('Can have duplicates before migration', async () => { - let { body } = await rq({ + const { body } = await rq({ url: '/content-manager/collection-types/api::dog.dog', method: 'GET', }); diff --git a/packages/core/strapi/tests/search.test.e2e.js b/packages/core/strapi/tests/search.test.e2e.js index 5fd7432708a..b3dc06233e2 100644 --- a/packages/core/strapi/tests/search.test.e2e.js +++ b/packages/core/strapi/tests/search.test.e2e.js @@ -11,7 +11,7 @@ const { const builder = createTestBuilder(); let rq; let strapi; -let data = { +const data = { bed: [], }; diff --git a/packages/core/strapi/tests/single-type.test.e2e.js b/packages/core/strapi/tests/single-type.test.e2e.js index 3c5259c2bfb..5682f6b12d9 100644 --- a/packages/core/strapi/tests/single-type.test.e2e.js +++ b/packages/core/strapi/tests/single-type.test.e2e.js @@ -8,8 +8,8 @@ const { createTestBuilder } = require('../../../../test/helpers/builder'); const builder = createTestBuilder(); let strapi; let rq; -let uid = 'single-type'; -let data = {}; +const uid = 'single-type'; +const data = {}; const model = { kind: 'singleType', diff --git a/packages/core/upload/server/controllers/admin-folder-file.js b/packages/core/upload/server/controllers/admin-folder-file.js index 5584aff2813..dde093bc21c 100644 --- a/packages/core/upload/server/controllers/admin-folder-file.js +++ b/packages/core/upload/server/controllers/admin-folder-file.js @@ -118,7 +118,7 @@ module.exports = { if (existingFolders.length > 0) { // update folders' parent relation - const joinTable = strapi.db.metadata.get(FOLDER_MODEL_UID).attributes.parent.joinTable; + const { joinTable } = strapi.db.metadata.get(FOLDER_MODEL_UID).attributes.parent; await strapi.db .queryBuilder(joinTable.name) .transacting(trx) diff --git a/packages/core/upload/server/graphql.js b/packages/core/upload/server/graphql.js index 2fc6e7b8505..0922dfdb0d0 100644 --- a/packages/core/upload/server/graphql.js +++ b/packages/core/upload/server/graphql.js @@ -236,11 +236,11 @@ module.exports = ({ strapi }) => { types: [fileInfoInputType, mutations], resolversConfig: { // Use custom scopes for the upload file CRUD operations - ['Query.uploadFiles']: { auth: { scope: 'plugin::upload.content-api.find' } }, - ['Query.uploadFile']: { auth: { scope: 'plugin::upload.content-api.findOne' } }, - ['Mutation.createUploadFile']: { auth: { scope: 'plugin::upload.content-api.upload' } }, - ['Mutation.updateUploadFile']: { auth: { scope: 'plugin::upload.content-api.upload' } }, - ['Mutation.deleteUploadFile']: { auth: { scope: 'plugin::upload.content-api.destroy' } }, + 'Query.uploadFiles': { auth: { scope: 'plugin::upload.content-api.find' } }, + 'Query.uploadFile': { auth: { scope: 'plugin::upload.content-api.findOne' } }, + 'Mutation.createUploadFile': { auth: { scope: 'plugin::upload.content-api.upload' } }, + 'Mutation.updateUploadFile': { auth: { scope: 'plugin::upload.content-api.upload' } }, + 'Mutation.deleteUploadFile': { auth: { scope: 'plugin::upload.content-api.destroy' } }, [`Mutation.${UPLOAD_MUTATION_NAME}`]: { auth: { scope: 'plugin::upload.content-api.upload' }, diff --git a/packages/core/upload/server/services/__tests__/folder.test.js b/packages/core/upload/server/services/__tests__/folder.test.js index 6165931b004..c6308e2a7a0 100644 --- a/packages/core/upload/server/services/__tests__/folder.test.js +++ b/packages/core/upload/server/services/__tests__/folder.test.js @@ -4,7 +4,7 @@ const { setPathIdAndPath } = require('../folder'); const folderUID = '1'; const rootPathRegex = /^\/[0-9]*$/i; -const folderPathRegex = new RegExp('^/' + folderUID + '/[0-9]*$', 'i'); +const folderPathRegex = new RegExp(`^/${folderUID}/[0-9]*$`, 'i'); describe('folder', () => { describe('setPathIdAndPath', () => { diff --git a/packages/core/upload/server/services/__tests__/metrics.js b/packages/core/upload/server/services/__tests__/metrics.js index 8bb0a2016eb..8f19a7b617d 100644 --- a/packages/core/upload/server/services/__tests__/metrics.js +++ b/packages/core/upload/server/services/__tests__/metrics.js @@ -4,7 +4,7 @@ const metricsService = require('../metrics'); // TODO: the matcher exists in jest@28 const closeTo = (expected, precision = 2) => ({ - asymmetricMatch: actual => Math.abs(expected - actual) < Math.pow(10, -precision) / 2, + asymmetricMatch: actual => Math.abs(expected - actual) < 10 ** -precision / 2, }); describe('metrics', () => { diff --git a/packages/core/upload/server/services/__tests__/upload/uploadImage.test.js b/packages/core/upload/server/services/__tests__/upload/uploadImage.test.js index 6a6e572df66..d7e4473bb54 100644 --- a/packages/core/upload/server/services/__tests__/upload/uploadImage.test.js +++ b/packages/core/upload/server/services/__tests__/upload/uploadImage.test.js @@ -70,7 +70,7 @@ describe('Upload image', () => { }); test('Upload with thubmnail', async () => { - let fileData = getFileData(imageFilePath); + const fileData = getFileData(imageFilePath); const upload = jest.fn(); mockUploadProvider(upload); @@ -79,7 +79,7 @@ describe('Upload image', () => { }); test('Upload with responsive formats', async () => { - let fileData = getFileData(imageFilePath); + const fileData = getFileData(imageFilePath); const upload = jest.fn(); mockUploadProvider(upload, { responsiveDimensions: true }); diff --git a/packages/core/upload/server/services/folder.js b/packages/core/upload/server/services/folder.js index ebc70926687..49db2362b46 100644 --- a/packages/core/upload/server/services/folder.js +++ b/packages/core/upload/server/services/folder.js @@ -113,7 +113,7 @@ const update = async (id, { name, parent }, { user }) => { .execute(); // update parent folder (delete + insert; upsert not possible) - const joinTable = strapi.db.metadata.get(FOLDER_MODEL_UID).attributes.parent.joinTable; + const { joinTable } = strapi.db.metadata.get(FOLDER_MODEL_UID).attributes.parent; await strapi.db .queryBuilder(joinTable.name) .transacting(trx) @@ -207,7 +207,7 @@ const exists = async (params = {}) => { * @returns {Promise} */ const getStructure = async () => { - const joinTable = strapi.db.metadata.get(FOLDER_MODEL_UID).attributes.parent.joinTable; + const { joinTable } = strapi.db.metadata.get(FOLDER_MODEL_UID).attributes.parent; const qb = strapi.db.queryBuilder(FOLDER_MODEL_UID); const alias = qb.getAlias(); const folders = await qb diff --git a/packages/core/upload/server/services/image-manipulation.js b/packages/core/upload/server/services/image-manipulation.js index 1828c3468e8..4bb4a2b2cd7 100644 --- a/packages/core/upload/server/services/image-manipulation.js +++ b/packages/core/upload/server/services/image-manipulation.js @@ -1,4 +1,5 @@ 'use strict'; + /** * Image manipulation functions */ @@ -111,7 +112,7 @@ const optimize = async file => { if (newSize > size) { // Ignore optimization if output is bigger than original - return Object.assign({}, file, { width, height, size: bytesToKbytes(size) }); + return { ...file, width, height, size: bytesToKbytes(size) }; } return Object.assign(newFile, { diff --git a/packages/core/upload/server/services/metrics.js b/packages/core/upload/server/services/metrics.js index bc03f34187e..67f08fd8b93 100644 --- a/packages/core/upload/server/services/metrics.js +++ b/packages/core/upload/server/services/metrics.js @@ -21,7 +21,7 @@ module.exports = ({ strapi }) => ({ const folderTable = strapi.getModel(FOLDER_MODEL_UID).collectionName; let keepOnlySlashesSQLString = '??'; - let queryParams = [pathColName]; + const queryParams = [pathColName]; for (let i = 0; i < 10; i += 1) { keepOnlySlashesSQLString = `REPLACE(${keepOnlySlashesSQLString}, ?, ?)`; queryParams.push(String(i), ''); diff --git a/packages/core/upload/server/utils/file.js b/packages/core/upload/server/utils/file.js index beca4be3345..5b8d382eed3 100644 --- a/packages/core/upload/server/utils/file.js +++ b/packages/core/upload/server/utils/file.js @@ -1,4 +1,5 @@ 'use strict'; + /** * Utils file containing file treatment utils */ diff --git a/packages/core/upload/tests/admin/file-folder.test.e2e.js b/packages/core/upload/tests/admin/file-folder.test.e2e.js index bcb8070ca61..98aa6c33d10 100644 --- a/packages/core/upload/tests/admin/file-folder.test.e2e.js +++ b/packages/core/upload/tests/admin/file-folder.test.e2e.js @@ -9,7 +9,7 @@ const { createAuthRequest } = require('../../../../../test/helpers/request'); let strapi; let rq; -let data = { +const data = { folders: [], files: [], }; diff --git a/packages/core/upload/tests/admin/folder-file.test.e2e.js b/packages/core/upload/tests/admin/folder-file.test.e2e.js index 1f9ce986244..ea1616da2db 100644 --- a/packages/core/upload/tests/admin/folder-file.test.e2e.js +++ b/packages/core/upload/tests/admin/folder-file.test.e2e.js @@ -9,7 +9,7 @@ const { createAuthRequest } = require('../../../../../test/helpers/request'); let strapi; let rq; -let data = { +const data = { folders: [], files: [], }; diff --git a/packages/core/upload/tests/admin/folder-structure.test.e2e.js b/packages/core/upload/tests/admin/folder-structure.test.e2e.js index 3ab8e239243..0a6bf2d945a 100644 --- a/packages/core/upload/tests/admin/folder-structure.test.e2e.js +++ b/packages/core/upload/tests/admin/folder-structure.test.e2e.js @@ -6,7 +6,7 @@ const { createAuthRequest } = require('../../../../../test/helpers/request'); let strapi; let rq; -let data = { +const data = { folders: [], }; diff --git a/packages/core/upload/tests/admin/folder.test.e2e.js b/packages/core/upload/tests/admin/folder.test.e2e.js index c4356f8d90a..7ef2ec2ce17 100644 --- a/packages/core/upload/tests/admin/folder.test.e2e.js +++ b/packages/core/upload/tests/admin/folder.test.e2e.js @@ -11,12 +11,12 @@ const { createAuthRequest } = require('../../../../../test/helpers/request'); let strapi; let rq; -let data = { +const data = { folders: [], }; const rootPathRegex = /^\/[0-9]*$/i; -const getFolderPathRegex = pathId => new RegExp('^/' + pathId + '/[0-9]*$', 'i'); +const getFolderPathRegex = pathId => new RegExp(`^/${pathId}/[0-9]*$`, 'i'); const createFolder = async (name, parent = null) => { const res = await rq({ diff --git a/packages/core/utils/lib/build-query.js b/packages/core/utils/lib/build-query.js index 35c7f7da375..b2814cfe1dd 100644 --- a/packages/core/utils/lib/build-query.js +++ b/packages/core/utils/lib/build-query.js @@ -1,6 +1,6 @@ 'use strict'; -//TODO: move to dbal +// TODO: move to dbal const _ = require('lodash'); const parseType = require('./parse-type'); @@ -114,7 +114,8 @@ const normalizeWhereClauses = (whereClauses, { model }) => { .filter(({ field, value }) => { if (_.isNull(value)) { return false; - } else if (_.isUndefined(value)) { + } + if (_.isUndefined(value)) { strapi.log.warn(`The value of field: '${field}', in your where filter, is undefined.`); return false; } diff --git a/packages/core/utils/lib/config.js b/packages/core/utils/lib/config.js index 9a653aa4d92..26ea365fc6a 100644 --- a/packages/core/utils/lib/config.js +++ b/packages/core/utils/lib/config.js @@ -64,13 +64,13 @@ const getConfigUrls = (config, forAdminBuild = false) => { const getAbsoluteUrl = adminOrServer => (config, forAdminBuild = false) => { const { serverUrl, adminUrl } = getConfigUrls(config, forAdminBuild); - let url = adminOrServer === 'server' ? serverUrl : adminUrl; + const url = adminOrServer === 'server' ? serverUrl : adminUrl; if (url.startsWith('http')) { return url; } - let hostname = + const hostname = config.get('environment') === 'development' && ['127.0.0.1', '0.0.0.0'].includes(config.get('server.host')) ? 'localhost' diff --git a/packages/core/utils/lib/convert-query-params.js b/packages/core/utils/lib/convert-query-params.js index 1640bc5de4d..6c4093175c6 100644 --- a/packages/core/utils/lib/convert-query-params.js +++ b/packages/core/utils/lib/convert-query-params.js @@ -336,12 +336,10 @@ const convertAndSanitizeFilters = (filters, schema) => { } // Handle operators - else { - if (['$null', '$notNull'].includes(key)) { - filters[key] = parseType({ type: 'boolean', value: filters[key], forceCast: true }); - } else if (isObject(value)) { - filters[key] = convertAndSanitizeFilters(value, schema); - } + else if (['$null', '$notNull'].includes(key)) { + filters[key] = parseType({ type: 'boolean', value: filters[key], forceCast: true }); + } else if (isObject(value)) { + filters[key] = convertAndSanitizeFilters(value, schema); } // Remove empty objects & arrays diff --git a/packages/core/utils/lib/parse-type.js b/packages/core/utils/lib/parse-type.js index f96052ebe93..bb6e0b03a01 100644 --- a/packages/core/utils/lib/parse-type.js +++ b/packages/core/utils/lib/parse-type.js @@ -26,7 +26,7 @@ const parseTime = value => { const parseDate = value => { if (dates.isDate(value)) return dates.format(value, 'yyyy-MM-dd'); try { - let date = dates.parseISO(value); + const date = dates.parseISO(value); if (dates.isValid(date)) return dates.format(date, 'yyyy-MM-dd'); diff --git a/packages/core/utils/lib/policy.js b/packages/core/utils/lib/policy.js index 5474e9c1ecb..7eec9c7adec 100644 --- a/packages/core/utils/lib/policy.js +++ b/packages/core/utils/lib/policy.js @@ -1,6 +1,7 @@ /** * Policies util */ + 'use strict'; const _ = require('lodash'); diff --git a/packages/core/utils/lib/print-value.js b/packages/core/utils/lib/print-value.js index 0645e99f619..ec258eed7de 100644 --- a/packages/core/utils/lib/print-value.js +++ b/packages/core/utils/lib/print-value.js @@ -3,7 +3,7 @@ // Code copied from the yup library (https://github.com/jquense/yup) // https://github.com/jquense/yup/blob/2778b88bdacd5260d593c6468793da2e77daf21f/src/util/printValue.ts -const toString = Object.prototype.toString; +const { toString } = Object.prototype; const errorToString = Error.prototype.toString; const regExpToString = RegExp.prototype.toString; const symbolToString = typeof Symbol !== 'undefined' ? Symbol.prototype.toString : () => ''; @@ -13,34 +13,34 @@ const SYMBOL_REGEXP = /^Symbol\((.*)\)(.*)$/; function printNumber(val) { if (val != +val) return 'NaN'; const isNegativeZero = val === 0 && 1 / val < 0; - return isNegativeZero ? '-0' : '' + val; + return isNegativeZero ? '-0' : `${val}`; } function printSimpleValue(val, quoteStrings = false) { - if (val == null || val === true || val === false) return '' + val; + if (val == null || val === true || val === false) return `${val}`; const typeOf = typeof val; if (typeOf === 'number') return printNumber(val); if (typeOf === 'string') return quoteStrings ? `"${val}"` : val; - if (typeOf === 'function') return '[Function ' + (val.name || 'anonymous') + ']'; + if (typeOf === 'function') return `[Function ${val.name || 'anonymous'}]`; if (typeOf === 'symbol') return symbolToString.call(val).replace(SYMBOL_REGEXP, 'Symbol($1)'); const tag = toString.call(val).slice(8, -1); - if (tag === 'Date') return isNaN(val.getTime()) ? '' + val : val.toISOString(val); - if (tag === 'Error' || val instanceof Error) return '[' + errorToString.call(val) + ']'; + if (tag === 'Date') return isNaN(val.getTime()) ? `${val}` : val.toISOString(val); + if (tag === 'Error' || val instanceof Error) return `[${errorToString.call(val)}]`; if (tag === 'RegExp') return regExpToString.call(val); return null; } function printValue(value, quoteStrings) { - let result = printSimpleValue(value, quoteStrings); + const result = printSimpleValue(value, quoteStrings); if (result !== null) return result; return JSON.stringify( value, function(key, value) { - let result = printSimpleValue(this[key], quoteStrings); + const result = printSimpleValue(this[key], quoteStrings); if (result !== null) return result; return value; }, diff --git a/packages/core/utils/lib/sanitize/visitors/restricted-fields.js b/packages/core/utils/lib/sanitize/visitors/restricted-fields.js index d3f1805d5f2..08232ea83a1 100644 --- a/packages/core/utils/lib/sanitize/visitors/restricted-fields.js +++ b/packages/core/utils/lib/sanitize/visitors/restricted-fields.js @@ -26,6 +26,5 @@ module.exports = (restrictedFields = null) => ({ key, path }, { remove }) => { ); if (isRestrictedNested) { remove(key); - return; } }; diff --git a/packages/core/utils/lib/string-formatting.js b/packages/core/utils/lib/string-formatting.js index dbef3c24132..a7969a8a433 100644 --- a/packages/core/utils/lib/string-formatting.js +++ b/packages/core/utils/lib/string-formatting.js @@ -1,4 +1,5 @@ 'use strict'; + const _ = require('lodash'); const { trimChars, trimCharsEnd, trimCharsStart } = require('lodash/fp'); const slugify = require('@sindresorhus/slugify'); diff --git a/packages/core/utils/lib/validators.js b/packages/core/utils/lib/validators.js index 59d7a4381e9..dcce78cfc9b 100644 --- a/packages/core/utils/lib/validators.js +++ b/packages/core/utils/lib/validators.js @@ -87,11 +87,12 @@ const validateYupSchemaSync = (schema, options = {}) => (body, errorMessage) => yup.setLocale({ mixed: { notType({ path, type, value, originalValue }) { - let isCast = originalValue != null && originalValue !== value; - let msg = + const isCast = originalValue != null && originalValue !== value; + const msg = `${path} must be a \`${type}\` type, ` + - `but the final value was: \`${printValue(value, true)}\`` + - (isCast ? ` (cast from the value \`${printValue(originalValue, true)}\`).` : '.'); + `but the final value was: \`${printValue(value, true)}\`${ + isCast ? ` (cast from the value \`${printValue(originalValue, true)}\`).` : '.' + }`; /* Remove comment that is not supposed to be seen by the enduser if (value === null) { diff --git a/packages/generators/admin/plopfile.js b/packages/generators/admin/plopfile.js index 54b0f15d27c..629668e34e6 100644 --- a/packages/generators/admin/plopfile.js +++ b/packages/generators/admin/plopfile.js @@ -46,10 +46,9 @@ module.exports = function( if (arguments.length === 2) { const condition = arguments[0]; return leftShift(condition ? fn(this) : inverse(this)); - } else { - const [a, operator, b] = Array.from(arguments).slice(0, end); - return leftShift(evaluateExpression(a, operator, b) ? fn(this) : inverse(this)); } + const [a, operator, b] = Array.from(arguments).slice(0, end); + return leftShift(evaluateExpression(a, operator, b) ? fn(this) : inverse(this)); }); plop.setHelper('unless', function(/* ...args, options */) { const end = arguments.length - 1; @@ -57,10 +56,9 @@ module.exports = function( if (arguments.length === 2) { const condition = arguments[0]; return leftShift(!condition ? fn(this) : inverse(this)); - } else { - const [a, operator, b] = Array.from(arguments).slice(0, end); - return leftShift(!evaluateExpression(a, operator, b) ? fn(this) : inverse(this)); } + const [a, operator, b] = Array.from(arguments).slice(0, end); + return leftShift(!evaluateExpression(a, operator, b) ? fn(this) : inverse(this)); }); plop.setHelper('else', function(_, { fn }) { return leftShift(fn(this)); diff --git a/packages/generators/app/lib/create-cli-db-project.js b/packages/generators/app/lib/create-cli-db-project.js index 5c5f6eb9264..36caf473a15 100644 --- a/packages/generators/app/lib/create-cli-db-project.js +++ b/packages/generators/app/lib/create-cli-db-project.js @@ -12,7 +12,7 @@ module.exports = async scope => { console.log('Creating a project from the database CLI arguments.'); await trackUsage({ event: 'didChooseCustomDatabase', scope }); - const client = scope.database.client; + const { client } = scope.database; const configuration = { client: getClientName({ client }), connection: merge({}, defaultConfigs[client] || {}, scope.database), diff --git a/packages/generators/app/lib/create-customized-project.js b/packages/generators/app/lib/create-customized-project.js index 19fca39f8c8..e68dc08e41e 100644 --- a/packages/generators/app/lib/create-customized-project.js +++ b/packages/generators/app/lib/create-customized-project.js @@ -1,4 +1,5 @@ /* eslint-disable no-unreachable */ + 'use strict'; const { join } = require('path'); @@ -151,8 +152,8 @@ async function askDatabaseInfos(scope) { } async function installDatabaseTestingDep({ scope, configuration }) { - let packageManager = scope.useYarn ? 'yarnpkg' : 'npm'; - let cmd = scope.useYarn + const packageManager = scope.useYarn ? 'yarnpkg' : 'npm'; + const cmd = scope.useYarn ? ['--cwd', scope.tmpPath, 'add'] : ['install', '--prefix', scope.tmpPath]; diff --git a/packages/generators/app/lib/index.js b/packages/generators/app/lib/index.js index 3fb6e42d42e..99bd327d4be 100644 --- a/packages/generators/app/lib/index.js +++ b/packages/generators/app/lib/index.js @@ -32,7 +32,7 @@ const generateNewApp = (projectDirectory, cliArguments) => { rootPath, name: basename(rootPath), // disable quickstart run app after creation - runQuickstartApp: cliArguments.run === false ? false : true, + runQuickstartApp: cliArguments.run !== false, // use pacakge version as strapiVersion (all packages have the same version); strapiVersion: require('../package.json').version, debug: cliArguments.debug !== undefined, diff --git a/packages/generators/app/lib/resources/json/common/package.json.js b/packages/generators/app/lib/resources/json/common/package.json.js index 7760415ddb5..e26fb4c8640 100644 --- a/packages/generators/app/lib/resources/json/common/package.json.js +++ b/packages/generators/app/lib/resources/json/common/package.json.js @@ -28,14 +28,13 @@ module.exports = opts => { strapi: 'strapi', }, devDependencies: {}, - dependencies: Object.assign( - {}, - strapiDependencies.reduce((acc, key) => { + dependencies: { + ...strapiDependencies.reduce((acc, key) => { acc[key] = strapiVersion; return acc; }, {}), - additionalsDependencies - ), + ...additionalsDependencies, + }, author: { name: 'A Strapi developer', }, diff --git a/packages/generators/app/lib/utils/check-requirements.js b/packages/generators/app/lib/utils/check-requirements.js index 09e6a91ef84..8aee891e8f4 100644 --- a/packages/generators/app/lib/utils/check-requirements.js +++ b/packages/generators/app/lib/utils/check-requirements.js @@ -1,9 +1,9 @@ 'use strict'; module.exports = function checkBeforeInstall() { - var currentNodeVersion = process.versions.node; - var semver = currentNodeVersion.split('.'); - var major = semver[0]; + const currentNodeVersion = process.versions.node; + const semver = currentNodeVersion.split('.'); + const major = semver[0]; if (major < 12) { console.error(`You are running Node ${currentNodeVersion}`); diff --git a/packages/generators/app/lib/utils/usage.js b/packages/generators/app/lib/utils/usage.js index 196c1c6b824..34745d4a3c8 100644 --- a/packages/generators/app/lib/utils/usage.js +++ b/packages/generators/app/lib/utils/usage.js @@ -21,7 +21,7 @@ async function captureException(error) { sentry.captureException(error); await sentry.flush(); } catch (err) { - /** ignore errors*/ + /** ignore errors */ return Promise.resolve(); } } @@ -31,7 +31,7 @@ async function captureError(message) { sentry.captureMessage(message, 'error'); await sentry.flush(); } catch (err) { - /** ignore errors*/ + /** ignore errors */ return Promise.resolve(); } } @@ -69,7 +69,7 @@ function trackEvent(event, body) { headers: { 'Content-Type': 'application/json' }, }).catch(() => {}); } catch (err) { - /** ignore errors*/ + /** ignore errors */ return Promise.resolve(); } } @@ -78,7 +78,7 @@ function trackError({ scope, error }) { const { uuid } = scope; const properties = { - error: typeof error == 'string' ? error : error && error.message, + error: typeof error === 'string' ? error : error && error.message, os: os.type(), platform: os.platform(), release: os.release(), @@ -97,7 +97,7 @@ function trackError({ scope, error }) { properties: addPackageJsonStrapiMetadata(properties, scope), }); } catch (err) { - /** ignore errors*/ + /** ignore errors */ return Promise.resolve(); } } @@ -106,7 +106,7 @@ function trackUsage({ event, scope, error }) { const { uuid } = scope; const properties = { - error: typeof error == 'string' ? error : error && error.message, + error: typeof error === 'string' ? error : error && error.message, os: os.type(), os_platform: os.platform(), os_release: os.release(), @@ -126,7 +126,7 @@ function trackUsage({ event, scope, error }) { properties: addPackageJsonStrapiMetadata(properties, scope), }); } catch (err) { - /** ignore errors*/ + /** ignore errors */ return Promise.resolve(); } } diff --git a/packages/generators/generators/lib/plops/prompts/get-destination-prompts.js b/packages/generators/generators/lib/plops/prompts/get-destination-prompts.js index 77d9c12b991..5f3fdb0a53e 100644 --- a/packages/generators/generators/lib/plops/prompts/get-destination-prompts.js +++ b/packages/generators/generators/lib/plops/prompts/get-destination-prompts.js @@ -1,4 +1,5 @@ 'use strict'; + const { join } = require('path'); const fs = require('fs-extra'); diff --git a/packages/plugins/documentation/__tests__/build-component-schema.test.js b/packages/plugins/documentation/__tests__/build-component-schema.test.js index e0f23dd2a64..ebbd1d6ac2a 100644 --- a/packages/plugins/documentation/__tests__/build-component-schema.test.js +++ b/packages/plugins/documentation/__tests__/build-component-schema.test.js @@ -79,8 +79,8 @@ describe('Build Component Schema', () => { } const schemaNames = Object.keys(schemas); - const pluginListResponseValue = schemas['UsersPermissionsRoleListResponse']; - const apiListResponseValue = schemas['RestaurantListResponse']; + const pluginListResponseValue = schemas.UsersPermissionsRoleListResponse; + const apiListResponseValue = schemas.RestaurantListResponse; const expectedShape = { type: 'object', @@ -144,8 +144,8 @@ describe('Build Component Schema', () => { } const schemaNames = Object.keys(schemas); - const pluginListResponseValue = schemas['UsersPermissionsRoleRequest']; - const apiListResponseValue = schemas['RestaurantRequest']; + const pluginListResponseValue = schemas.UsersPermissionsRoleRequest; + const apiListResponseValue = schemas.RestaurantRequest; const expectedShape = { type: 'object', @@ -192,8 +192,8 @@ describe('Build Component Schema', () => { } const schemaNames = Object.keys(schemas); - const pluginListResponseValue = schemas['UsersPermissionsRoleLocalizationResponse']; - const apiListResponseValue = schemas['RestaurantLocalizationResponse']; + const pluginListResponseValue = schemas.UsersPermissionsRoleLocalizationResponse; + const apiListResponseValue = schemas.RestaurantLocalizationResponse; const expectedShape = { type: 'object', @@ -236,8 +236,8 @@ describe('Build Component Schema', () => { } const schemaNames = Object.keys(schemas); - const pluginListResponseValue = schemas['UsersPermissionsRoleLocalizationRequest']; - const apiListResponseValue = schemas['RestaurantLocalizationRequest']; + const pluginListResponseValue = schemas.UsersPermissionsRoleLocalizationRequest; + const apiListResponseValue = schemas.RestaurantLocalizationRequest; const expectedShape = { type: 'object', diff --git a/packages/plugins/documentation/server/bootstrap.js b/packages/plugins/documentation/server/bootstrap.js index d0dac9cd269..c2601c7a145 100755 --- a/packages/plugins/documentation/server/bootstrap.js +++ b/packages/plugins/documentation/server/bootstrap.js @@ -1,4 +1,5 @@ /* eslint-disable no-unreachable */ + 'use strict'; // Add permissions diff --git a/packages/plugins/documentation/server/routes/index.js b/packages/plugins/documentation/server/routes/index.js index 6e8821e18f0..9a2ef067dec 100644 --- a/packages/plugins/documentation/server/routes/index.js +++ b/packages/plugins/documentation/server/routes/index.js @@ -1,4 +1,5 @@ 'use strict'; + const restrictAccess = require('../middlewares/restrict-access'); module.exports = [ diff --git a/packages/plugins/documentation/server/services/helpers/build-api-endpoint-path.js b/packages/plugins/documentation/server/services/helpers/build-api-endpoint-path.js index 156ae8bf7d1..c4409a0eeb3 100644 --- a/packages/plugins/documentation/server/services/helpers/build-api-endpoint-path.js +++ b/packages/plugins/documentation/server/services/helpers/build-api-endpoint-path.js @@ -20,7 +20,7 @@ const parsePathWithVariables = routePath => { .parse(routePath) .map(token => { if (_.isObject(token)) { - return token.prefix + '{' + token.name + '}'; + return `${token.prefix}{${token.name}}`; } return token; diff --git a/packages/plugins/documentation/server/services/helpers/build-component-schema.js b/packages/plugins/documentation/server/services/helpers/build-component-schema.js index e245bddeb70..d3ed8458948 100644 --- a/packages/plugins/documentation/server/services/helpers/build-component-schema.js +++ b/packages/plugins/documentation/server/services/helpers/build-component-schema.js @@ -1,4 +1,5 @@ 'use strict'; + const _ = require('lodash'); const cleanSchemaAttributes = require('./utils/clean-schema-attributes'); diff --git a/packages/plugins/documentation/server/services/helpers/utils/loop-content-type-names.js b/packages/plugins/documentation/server/services/helpers/utils/loop-content-type-names.js index 67d37b46d39..aa2f7000870 100644 --- a/packages/plugins/documentation/server/services/helpers/utils/loop-content-type-names.js +++ b/packages/plugins/documentation/server/services/helpers/utils/loop-content-type-names.js @@ -1,4 +1,5 @@ 'use strict'; + const _ = require('lodash'); /** diff --git a/packages/plugins/graphql/server/services/builders/entity-meta.js b/packages/plugins/graphql/server/services/builders/entity-meta.js index 4d7c3aff492..8a525ca130d 100644 --- a/packages/plugins/graphql/server/services/builders/entity-meta.js +++ b/packages/plugins/graphql/server/services/builders/entity-meta.js @@ -1,6 +1,6 @@ 'use strict'; -function buildEntityMetaDefinition(/*contentType*/) {} +function buildEntityMetaDefinition(/* contentType */) {} module.exports = () => ({ buildEntityMetaDefinition, diff --git a/packages/plugins/graphql/server/services/builders/resolvers/association.js b/packages/plugins/graphql/server/services/builders/resolvers/association.js index cb9006b674a..3d996924183 100644 --- a/packages/plugins/graphql/server/services/builders/resolvers/association.js +++ b/packages/plugins/graphql/server/services/builders/resolvers/association.js @@ -72,7 +72,7 @@ module.exports = ({ strapi }) => { // If this is a to-many relation, it returns an object that // matches what the entity-response-collection's resolvers expect - else if (isToMany) { + if (isToMany) { return toEntityResponseCollection(data, info); } diff --git a/packages/plugins/graphql/server/services/builders/type.js b/packages/plugins/graphql/server/services/builders/type.js index 24202aeade4..55cb3dde25e 100644 --- a/packages/plugins/graphql/server/services/builders/type.js +++ b/packages/plugins/graphql/server/services/builders/type.js @@ -130,7 +130,7 @@ module.exports = context => { const { buildAssociationResolver } = getGraphQLService('builders').get('content-api'); const extension = getGraphQLService('extension'); - let { builder } = options; + const { builder } = options; const { attributeName, attribute, contentType } = options; const fileUID = 'plugin::upload.file'; @@ -207,7 +207,7 @@ module.exports = context => { const { buildAssociationResolver } = getGraphQLService('builders').get('content-api'); const extension = getGraphQLService('extension'); - let { builder } = options; + const { builder } = options; const { attributeName, attribute, contentType } = options; if (extension.shadowCRUD(attribute.target).isDisabled()) { diff --git a/packages/plugins/graphql/server/services/builders/utils.js b/packages/plugins/graphql/server/services/builders/utils.js index cb6c15f30a3..214d1eb77c6 100644 --- a/packages/plugins/graphql/server/services/builders/utils.js +++ b/packages/plugins/graphql/server/services/builders/utils.js @@ -35,7 +35,7 @@ module.exports = ({ strapi }) => { } // Collection Types - else if (kind === 'collectionType') { + if (kind === 'collectionType') { if (!multiple) { return { id: 'ID' }; } @@ -54,7 +54,7 @@ module.exports = ({ strapi }) => { } // Single Types - else if (kind === 'singleType') { + if (kind === 'singleType') { const params = {}; if (hasDraftAndPublish(contentType)) { diff --git a/packages/plugins/graphql/server/services/internals/scalars/time.js b/packages/plugins/graphql/server/services/internals/scalars/time.js index 06134f2fd95..201d9b2fa2f 100644 --- a/packages/plugins/graphql/server/services/internals/scalars/time.js +++ b/packages/plugins/graphql/server/services/internals/scalars/time.js @@ -27,7 +27,7 @@ const TimeScalar = new GraphQLScalarType({ throw new ValidationError('Time cannot represent non string type'); } - const value = ast.value; + const { value } = ast; return parseType({ type: 'time', value }); }, diff --git a/packages/plugins/graphql/tests/crud.test.e2e.js b/packages/plugins/graphql/tests/crud.test.e2e.js index e8873debdbd..57dffdc559a 100644 --- a/packages/plugins/graphql/tests/crud.test.e2e.js +++ b/packages/plugins/graphql/tests/crud.test.e2e.js @@ -61,7 +61,7 @@ describe('Test Graphql API End to End', () => { { name: 'post 1', bigint: 1316130638171, nullable: 'value', category: 'BLOG' }, { name: 'post 2', bigint: 1416130639261, nullable: null, category: 'PRODUCT' }, ]; - let data = { + const data = { posts: [], }; @@ -487,7 +487,7 @@ describe('Test Graphql API End to End', () => { }); test('Delete Posts', async () => { - for (let post of data.posts) { + for (const post of data.posts) { const res = await graphqlQuery({ query: /* GraphQL */ ` mutation deletePost($id: ID!) { diff --git a/packages/plugins/graphql/tests/relations.test.e2e.js b/packages/plugins/graphql/tests/relations.test.e2e.js index 51047fc89ae..08ed8f30b53 100644 --- a/packages/plugins/graphql/tests/relations.test.e2e.js +++ b/packages/plugins/graphql/tests/relations.test.e2e.js @@ -134,7 +134,7 @@ describe('Test Graphql Relations API End to End', () => { }); describe('Test relations features', () => { - let data = { + const data = { labels: [], documents: [], people: [], @@ -488,7 +488,7 @@ describe('Test Graphql Relations API End to End', () => { }); test('Delete Labels and test Documents relations', async () => { - for (let label of data.labels) { + for (const label of data.labels) { const res = await graphqlQuery({ query: /* GraphQL */ ` mutation deleteLabel($id: ID!) { @@ -579,7 +579,7 @@ describe('Test Graphql Relations API End to End', () => { }); test('Delete Documents', async () => { - for (let document of data.documents) { + for (const document of data.documents) { const res = await graphqlQuery({ query: /* GraphQL */ ` mutation deleteDocument($id: ID!) { diff --git a/packages/plugins/i18n/server/constants/__tests__/index.test.js b/packages/plugins/i18n/server/constants/__tests__/index.test.js index 81121547663..e0618330c62 100644 --- a/packages/plugins/i18n/server/constants/__tests__/index.test.js +++ b/packages/plugins/i18n/server/constants/__tests__/index.test.js @@ -1,6 +1,6 @@ 'use strict'; -const { getInitLocale } = require('../'); +const { getInitLocale } = require('..'); describe('I18N default locale', () => { describe('getInitLocale', () => { diff --git a/packages/plugins/i18n/server/controllers/content-types.js b/packages/plugins/i18n/server/controllers/content-types.js index e1bbd7e4c06..d6db512ab1a 100644 --- a/packages/plugins/i18n/server/controllers/content-types.js +++ b/packages/plugins/i18n/server/controllers/content-types.js @@ -34,7 +34,7 @@ module.exports = { throw new ApplicationError('model.not.localized'); } - let params = modelDef.kind === 'singleType' ? {} : { id }; + const params = modelDef.kind === 'singleType' ? {} : { id }; const entity = await strapi .query(model) diff --git a/packages/plugins/i18n/server/controllers/locales.js b/packages/plugins/i18n/server/controllers/locales.js index 1e48113cbe0..9f7ec74a791 100644 --- a/packages/plugins/i18n/server/controllers/locales.js +++ b/packages/plugins/i18n/server/controllers/locales.js @@ -57,7 +57,7 @@ module.exports = { const { user } = ctx.state; const { id } = ctx.params; const { body } = ctx.request; - let { isDefault, ...updates } = body; + const { isDefault, ...updates } = body; await validateUpdateLocaleInput(body); diff --git a/packages/plugins/i18n/server/graphql.js b/packages/plugins/i18n/server/graphql.js index e6105196f01..b2bffd337e2 100644 --- a/packages/plugins/i18n/server/graphql.js +++ b/packages/plugins/i18n/server/graphql.js @@ -209,7 +209,7 @@ module.exports = ({ strapi }) => ({ return; } - const contentType = registryType.config.contentType; + const { contentType } = registryType.config; // Ignore non-localized content types if (!isLocalizedContentType(contentType)) { diff --git a/packages/plugins/i18n/server/migrations/field/migrate-for-bookshelf.js b/packages/plugins/i18n/server/migrations/field/migrate-for-bookshelf.js index 3f9852ef106..17c9f76c80b 100644 --- a/packages/plugins/i18n/server/migrations/field/migrate-for-bookshelf.js +++ b/packages/plugins/i18n/server/migrations/field/migrate-for-bookshelf.js @@ -16,7 +16,7 @@ const batchInsertInTmpTable = async ({ updatesInfo }, { transacting: trx }) => { }; const updateFromTmpTable = async ({ model, attributesToMigrate }, { transacting: trx }) => { - const collectionName = model.collectionName; + const { collectionName } = model; if (model.client === 'pg') { const substitutes = attributesToMigrate.map(() => '?? = ??.??').join(','); const bindings = [collectionName]; diff --git a/packages/plugins/i18n/server/services/__tests__/core-api.test.js b/packages/plugins/i18n/server/services/__tests__/core-api.test.js index 31bcff9c92b..2ede2f120a9 100644 --- a/packages/plugins/i18n/server/services/__tests__/core-api.test.js +++ b/packages/plugins/i18n/server/services/__tests__/core-api.test.js @@ -1,4 +1,5 @@ 'use strict'; + const { createSanitizer } = require('../core-api')(); describe('Core API', () => { diff --git a/packages/plugins/i18n/server/services/__tests__/entity-service-decorator.test.js b/packages/plugins/i18n/server/services/__tests__/entity-service-decorator.test.js index fc809381a6a..ec2379b4b28 100644 --- a/packages/plugins/i18n/server/services/__tests__/entity-service-decorator.test.js +++ b/packages/plugins/i18n/server/services/__tests__/entity-service-decorator.test.js @@ -134,7 +134,7 @@ describe('Entity service decorator', () => { }; const service = decorator(defaultService); - const input = Object.assign({ populate: ['test'], ...params }); + const input = { populate: ['test'], ...params }; const output = await service.wrapParams(input, { uid: 'test-model', action }); expect(output).toEqual({ populate: ['test'], ...params }); diff --git a/packages/plugins/i18n/server/services/__tests__/metrics.test.js b/packages/plugins/i18n/server/services/__tests__/metrics.test.js index c6f7af29519..341e921ee73 100644 --- a/packages/plugins/i18n/server/services/__tests__/metrics.test.js +++ b/packages/plugins/i18n/server/services/__tests__/metrics.test.js @@ -28,7 +28,7 @@ describe('Metrics', () => { plugins: { i18n: { services: { - ['content-types']: { + 'content-types': { isLocalizedContentType, }, }, diff --git a/packages/plugins/i18n/server/services/content-types.js b/packages/plugins/i18n/server/services/content-types.js index 6c17568d002..1e6a34080c8 100644 --- a/packages/plugins/i18n/server/services/content-types.js +++ b/packages/plugins/i18n/server/services/content-types.js @@ -203,7 +203,7 @@ const getNestedPopulateOfNonLocalizedAttributes = modelUID => { const currentAttributesToPopulate = difference(nonLocalizedAttributes, scalarAttributes); const attributesToPopulate = [...currentAttributesToPopulate]; - for (let attrName of currentAttributesToPopulate) { + for (const attrName of currentAttributesToPopulate) { const attr = schema.attributes[attrName]; if (attr.type === 'component') { const nestedPopulate = getNestedPopulateOfNonLocalizedAttributes(attr.component).map( diff --git a/packages/plugins/i18n/server/services/locales.js b/packages/plugins/i18n/server/services/locales.js index 4841573ff47..67fa8546854 100644 --- a/packages/plugins/i18n/server/services/locales.js +++ b/packages/plugins/i18n/server/services/locales.js @@ -58,10 +58,9 @@ const setIsDefault = async locales => { if (Array.isArray(locales)) { return locales.map(locale => ({ ...locale, isDefault: actualDefault === locale.code })); - } else { - // single locale - return { ...locales, isDefault: actualDefault === locales.code }; } + // single locale + return { ...locales, isDefault: actualDefault === locales.code }; }; const initDefaultLocale = async () => { diff --git a/packages/plugins/i18n/tests/content-manager/list-relation.test.e2e.js b/packages/plugins/i18n/tests/content-manager/list-relation.test.e2e.js index 601c58d2317..e64abcc963e 100644 --- a/packages/plugins/i18n/tests/content-manager/list-relation.test.e2e.js +++ b/packages/plugins/i18n/tests/content-manager/list-relation.test.e2e.js @@ -8,7 +8,7 @@ const { createAuthRequest } = require('../../../../../test/helpers/request'); let strapi; let rq; -let data = { +const data = { products: [], shops: [], }; diff --git a/packages/plugins/i18n/tests/locales.test.e2e.js b/packages/plugins/i18n/tests/locales.test.e2e.js index 4afed3fb403..b7a4823f09f 100644 --- a/packages/plugins/i18n/tests/locales.test.e2e.js +++ b/packages/plugins/i18n/tests/locales.test.e2e.js @@ -56,7 +56,7 @@ describe('CRUD locales', () => { describe('Default locale', () => { test('Default locale is already created', async () => { - let res = await rq({ + const res = await rq({ url: '/i18n/locales', method: 'GET', }); @@ -76,7 +76,7 @@ describe('CRUD locales', () => { isDefault: false, }; - let res = await rq({ + const res = await rq({ url: '/i18n/locales', method: 'POST', body: locale, @@ -95,7 +95,7 @@ describe('CRUD locales', () => { name: 'Italian', }; - let res = await rq({ + const res = await rq({ url: '/i18n/locales', method: 'POST', body: locale, @@ -133,7 +133,7 @@ describe('CRUD locales', () => { isDefault: false, }; - let res = await rq({ + const res = await rq({ url: '/i18n/locales', method: 'POST', body: locale, @@ -158,7 +158,7 @@ describe('CRUD locales', () => { isDefault: false, }; - let res = await rq({ + const res = await rq({ url: '/i18n/locales', method: 'POST', body: locale, @@ -209,7 +209,7 @@ describe('CRUD locales', () => { describe('Read', () => { test('Can list the locales', async () => { - let res = await rq({ + const res = await rq({ url: '/i18n/locales', method: 'GET', }); @@ -229,7 +229,7 @@ describe('CRUD locales', () => { isDefault: false, }; - let res = await rq({ + const res = await rq({ url: `/i18n/locales/${data.locales[1].id}`, method: 'PUT', body: localeUpdate, @@ -248,7 +248,7 @@ describe('CRUD locales', () => { code: 'ak', }; - let res = await rq({ + const res = await rq({ url: `/i18n/locales/${data.locales[0].id}`, method: 'PUT', body: localeUpdate, @@ -280,7 +280,7 @@ describe('CRUD locales', () => { code: 'ak', }; - let res = await rq({ + const res = await rq({ url: `/i18n/locales/${data.locales[0].id}`, method: 'PUT', body: localeUpdate, @@ -450,7 +450,7 @@ describe('CRUD locales', () => { }); test('Cannot delete not found locale', async () => { - let res = await rq({ + const res = await rq({ url: `/i18n/locales/${data.deletedLocales[0].id}`, method: 'DELETE', }); diff --git a/packages/plugins/sentry/server/services/sentry/index.js b/packages/plugins/sentry/server/services/sentry/index.js index 8755ae8ddd1..617b08715c3 100644 --- a/packages/plugins/sentry/server/services/sentry/index.js +++ b/packages/plugins/sentry/server/services/sentry/index.js @@ -1,4 +1,5 @@ 'use strict'; + // FIXME /* eslint-disable import/extensions */ const Sentry = require('@sentry/node'); diff --git a/packages/plugins/users-permissions/server/controllers/auth.js b/packages/plugins/users-permissions/server/controllers/auth.js index 19c0c4863ac..3ac4c560756 100644 --- a/packages/plugins/users-permissions/server/controllers/auth.js +++ b/packages/plugins/users-permissions/server/controllers/auth.js @@ -326,7 +326,7 @@ module.exports = { } } - let newUser = { + const newUser = { ...params, role: role.id, email: email.toLowerCase(), diff --git a/packages/plugins/users-permissions/server/controllers/settings.js b/packages/plugins/users-permissions/server/controllers/settings.js index f4475bc19cd..0fed222d5b9 100644 --- a/packages/plugins/users-permissions/server/controllers/settings.js +++ b/packages/plugins/users-permissions/server/controllers/settings.js @@ -17,7 +17,7 @@ module.exports = { const emailTemplates = ctx.request.body['email-templates']; - for (let key in emailTemplates) { + for (const key in emailTemplates) { const template = emailTemplates[key].options.message; if (!isValidEmailTemplate(template)) { diff --git a/packages/plugins/users-permissions/server/controllers/user.js b/packages/plugins/users-permissions/server/controllers/user.js index 94b7d424212..0f685738eb1 100644 --- a/packages/plugins/users-permissions/server/controllers/user.js +++ b/packages/plugins/users-permissions/server/controllers/user.js @@ -121,7 +121,7 @@ module.exports = { ctx.request.body.email = ctx.request.body.email.toLowerCase(); } - let updateData = { + const updateData = { ...ctx.request.body, }; diff --git a/packages/plugins/users-permissions/server/controllers/validation/email-template.js b/packages/plugins/users-permissions/server/controllers/validation/email-template.js index 8f3581d7b10..0a2bd1672f0 100644 --- a/packages/plugins/users-permissions/server/controllers/validation/email-template.js +++ b/packages/plugins/users-permissions/server/controllers/validation/email-template.js @@ -28,7 +28,7 @@ const matchAll = (pattern, src) => { }; const isValidEmailTemplate = template => { - for (let reg of invalidPatternsRegexes) { + for (const reg of invalidPatternsRegexes) { if (reg.test(template)) { return false; } diff --git a/packages/plugins/users-permissions/server/middlewares/rateLimit.js b/packages/plugins/users-permissions/server/middlewares/rateLimit.js index c35f3b6c9e3..09716806e32 100644 --- a/packages/plugins/users-permissions/server/middlewares/rateLimit.js +++ b/packages/plugins/users-permissions/server/middlewares/rateLimit.js @@ -14,17 +14,12 @@ module.exports = (config, { strapi }) => async (ctx, next) => { }, ]; - return ratelimit.middleware( - Object.assign( - {}, - { - interval: 1 * 60 * 1000, - max: 5, - prefixKey: `${ctx.request.path}:${ctx.request.ip}`, - message, - }, - strapi.config.get('plugin.users-permissions.ratelimit'), - config - ) - )(ctx, next); + return ratelimit.middleware({ + interval: 1 * 60 * 1000, + max: 5, + prefixKey: `${ctx.request.path}:${ctx.request.ip}`, + message, + ...strapi.config.get('plugin.users-permissions.ratelimit'), + ...config, + })(ctx, next); }; diff --git a/packages/plugins/users-permissions/server/register.js b/packages/plugins/users-permissions/server/register.js index 21d7151a461..35c7f3d8ee9 100644 --- a/packages/plugins/users-permissions/server/register.js +++ b/packages/plugins/users-permissions/server/register.js @@ -1,4 +1,5 @@ 'use strict'; + const fs = require('fs'); const path = require('path'); diff --git a/packages/plugins/users-permissions/server/services/providers-registry.js b/packages/plugins/users-permissions/server/services/providers-registry.js index bdd07d939a9..7bd8ac9548c 100644 --- a/packages/plugins/users-permissions/server/services/providers-registry.js +++ b/packages/plugins/users-permissions/server/services/providers-registry.js @@ -12,7 +12,7 @@ const getInitialProviders = ({ purest }) => ({ .request() .then(({ body }) => { // Combine username and discriminator because discord username is not unique - var username = `${body.username}#${body.discriminator}`; + const username = `${body.username}#${body.discriminator}`; return { username, email: body.email, @@ -264,7 +264,7 @@ const getInitialProviders = ({ purest }) => ({ : body.strapiemail || body.email; if (!username || !email) { strapi.log.warn( - 'CAS Response Body did not contain required attributes: ' + JSON.stringify(body) + `CAS Response Body did not contain required attributes: ${JSON.stringify(body)}` ); } return { diff --git a/packages/plugins/users-permissions/server/services/user.js b/packages/plugins/users-permissions/server/services/user.js index d9e96b10ce4..3a99a745a39 100644 --- a/packages/plugins/users-permissions/server/services/user.js +++ b/packages/plugins/users-permissions/server/services/user.js @@ -99,7 +99,7 @@ module.exports = ({ strapi }) => ({ const settings = await pluginStore .get({ key: 'email' }) - .then(storeEmail => storeEmail['email_confirmation'].options); + .then(storeEmail => storeEmail.email_confirmation.options); // Sanitize the template's user information const sanitizedUserInfo = await sanitize.sanitizers.defaultSanitizeOutput(userSchema, user); diff --git a/packages/plugins/users-permissions/server/strategies/users-permissions.js b/packages/plugins/users-permissions/server/strategies/users-permissions.js index 88b556fce93..48d6bf4562e 100644 --- a/packages/plugins/users-permissions/server/strategies/users-permissions.js +++ b/packages/plugins/users-permissions/server/strategies/users-permissions.js @@ -77,7 +77,7 @@ const verify = async (auth, config) => { } } - let allowedActions = auth.allowedActions; + let { allowedActions } = auth; if (!allowedActions) { const permissions = await strapi.query('plugin::users-permissions.permission').findMany({ diff --git a/packages/plugins/users-permissions/tests/admin/roles-api.test.e2e.js b/packages/plugins/users-permissions/tests/admin/roles-api.test.e2e.js index 68f4c10a874..85cebc1c2bf 100644 --- a/packages/plugins/users-permissions/tests/admin/roles-api.test.e2e.js +++ b/packages/plugins/users-permissions/tests/admin/roles-api.test.e2e.js @@ -7,17 +7,17 @@ const { createAuthRequest } = require('../../../../../test/helpers/request'); let strapi; let rq; -let data = {}; -let internals = { +const data = {}; +const internals = { role: { name: 'Test Role', description: 'Some random test role', }, }; -/***************************** +/** *************************** * TESTS - *****************************/ + **************************** */ describe('Roles API', () => { beforeAll(async () => { strapi = await createStrapiInstance(); diff --git a/packages/providers/email-amazon-ses/lib/index.js b/packages/providers/email-amazon-ses/lib/index.js index bd12fd4ddb1..13244ee114f 100644 --- a/packages/providers/email-amazon-ses/lib/index.js +++ b/packages/providers/email-amazon-ses/lib/index.js @@ -5,14 +5,14 @@ const { removeUndefined } = require('@strapi/utils'); module.exports = { init(providerOptions = {}, settings = {}) { - var client = nodeSES.createClient({ ...providerOptions }); + const client = nodeSES.createClient({ ...providerOptions }); return { send(options) { return new Promise((resolve, reject) => { const { from, to, cc, bcc, replyTo, subject, text, html, ...rest } = options; - let msg = { + const msg = { from: from || settings.defaultFrom, to, cc, diff --git a/packages/providers/email-mailgun/lib/index.js b/packages/providers/email-mailgun/lib/index.js index cebe153b690..57ffd34b02e 100644 --- a/packages/providers/email-mailgun/lib/index.js +++ b/packages/providers/email-mailgun/lib/index.js @@ -35,7 +35,7 @@ module.exports = { send(options) { const { from, to, cc, bcc, replyTo, subject, text, html, ...rest } = options; - let data = { + const data = { from: from || settings.defaultFrom, to, cc, diff --git a/packages/providers/email-sendgrid/lib/index.js b/packages/providers/email-sendgrid/lib/index.js index 5ad3b9572a0..9aa7088bb25 100644 --- a/packages/providers/email-sendgrid/lib/index.js +++ b/packages/providers/email-sendgrid/lib/index.js @@ -12,7 +12,7 @@ module.exports = { return new Promise((resolve, reject) => { const { from, to, cc, bcc, replyTo, subject, text, html, ...rest } = options; - let msg = { + const msg = { from: from || settings.defaultFrom, to, cc, diff --git a/packages/providers/email-sendmail/lib/index.js b/packages/providers/email-sendmail/lib/index.js index 3b7499ec685..d2a8b13dec0 100644 --- a/packages/providers/email-sendmail/lib/index.js +++ b/packages/providers/email-sendmail/lib/index.js @@ -14,7 +14,7 @@ module.exports = { return new Promise((resolve, reject) => { const { from, to, cc, bcc, replyTo, subject, text, html, ...rest } = options; - let msg = { + const msg = { from: from || settings.defaultFrom, to, cc, diff --git a/packages/utils/logger/lib/formats/log-errors.js b/packages/utils/logger/lib/formats/log-errors.js index 60c1b6b527d..73a1bb5fecf 100644 --- a/packages/utils/logger/lib/formats/log-errors.js +++ b/packages/utils/logger/lib/formats/log-errors.js @@ -4,9 +4,7 @@ const { format } = require('winston'); module.exports = format(info => { if (info instanceof Error) { - return Object.assign({}, info, { - message: `${info.message}${info.stack ? `\n` + info.stack : ''}`, - }); + return { ...info, message: `${info.message}${info.stack ? `\n${info.stack}` : ''}` }; } return info; diff --git a/packages/utils/typescript/lib/generators/schemas/utils.js b/packages/utils/typescript/lib/generators/schemas/utils.js index b6942551da6..41bcbbb7313 100644 --- a/packages/utils/typescript/lib/generators/schemas/utils.js +++ b/packages/utils/typescript/lib/generators/schemas/utils.js @@ -42,7 +42,7 @@ const getSchemaInterfaceName = pipe(replace(/(:.)/, ' '), camelCase, upperFirst) const getSchemaExtendsTypeName = schema => { const base = getSchemaModelType(schema); - return upperFirst(base) + 'Schema'; + return `${upperFirst(base)}Schema`; }; const getSchemaModelType = schema => { @@ -54,7 +54,7 @@ const getSchemaModelType = schema => { } // Content-Types - else if (modelType === 'contentType') { + if (modelType === 'contentType') { return kind; } diff --git a/packages/utils/typescript/lib/utils/resolve-outdir.js b/packages/utils/typescript/lib/utils/resolve-outdir.js index cdeba7fd709..b9e090b57de 100644 --- a/packages/utils/typescript/lib/utils/resolve-outdir.js +++ b/packages/utils/typescript/lib/utils/resolve-outdir.js @@ -1,4 +1,5 @@ 'use strict'; + const path = require('path'); const resolveConfigOptions = require('./resolve-config-options'); const isUsingTypescript = require('./is-using-typescript'); diff --git a/scripts/front/add-missing-keys-to-other-language.js b/scripts/front/add-missing-keys-to-other-language.js index 184f27f0ed6..d573052ab03 100644 --- a/scripts/front/add-missing-keys-to-other-language.js +++ b/scripts/front/add-missing-keys-to-other-language.js @@ -4,6 +4,7 @@ // node scripts/front/add-missing-keys-to-other-language.js [language] // Example: // node scripts/front/add-missing-keys-to-other-language.js vi + 'use strict'; const { join, dirname } = require('path'); diff --git a/scripts/front/merge-duplicated-translations/index.js b/scripts/front/merge-duplicated-translations/index.js index b0dcf6697da..b9ceac4c730 100644 --- a/scripts/front/merge-duplicated-translations/index.js +++ b/scripts/front/merge-duplicated-translations/index.js @@ -1,4 +1,5 @@ /* eslint-disable node/no-extraneous-require */ + 'use strict'; const path = require('path'); @@ -122,7 +123,7 @@ const merge = async valuesToMerge => { let current = 1; let mergedCount = 0; - for (let valueGroup of valuesToMerge) { + for (const valueGroup of valuesToMerge) { // Display console.clear(); console.log(`${current}/${valuesToMerge.length}`); diff --git a/scripts/front/utils/translation-files.js b/scripts/front/utils/translation-files.js index 773be49a972..29ed909e09e 100644 --- a/scripts/front/utils/translation-files.js +++ b/scripts/front/utils/translation-files.js @@ -18,7 +18,7 @@ const readTranslationFile = filePath => ({ }); const writeTranslationFile = file => { - fs.writeFileSync(file.filePath, JSON.stringify(file.fileContent, null, 2) + '\n'); + fs.writeFileSync(file.filePath, `${JSON.stringify(file.fileContent, null, 2)}\n`); }; const readAllTranslationFiles = () => { diff --git a/test/helpers/builder/index.js b/test/helpers/builder/index.js index b6fc43120eb..78943894854 100644 --- a/test/helpers/builder/index.js +++ b/test/helpers/builder/index.js @@ -21,7 +21,7 @@ const createTestBuilder = (options = {}) => { }, async sanitizedFixtures(strapi) { - const fixtures = this.fixtures; + const { fixtures } = this; for (const key of Object.keys(fixtures)) { fixtures[key] = await this.sanitizedFixturesFor(key, strapi); diff --git a/test/helpers/strapi.js b/test/helpers/strapi.js index 5a0aea6b654..b53c8a4da5f 100644 --- a/test/helpers/strapi.js +++ b/test/helpers/strapi.js @@ -36,9 +36,7 @@ const createStrapiInstance = async ({ authenticate() { return { authenticated: true }; }, - verify() { - return; - }, + verify() {}, }); } await instance.load();