From 026d9274274f516e6504921a5f55920a5569276a Mon Sep 17 00:00:00 2001 From: valentinab25 Date: Thu, 25 Jan 2024 19:57:13 +0200 Subject: [PATCH] test: Update jest,Jenkinsfile,lint to volto-addons-template PR30 --- .eslintrc.js | 42 ++++++++++++++++++++++++++---------------- 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index b7f17fb..0cbd65c 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,40 +1,43 @@ const fs = require('fs'); const path = require('path'); - -const projectRootPath = fs.existsSync('./project') - ? fs.realpathSync('./project') - : fs.realpathSync('./../../../'); -const packageJson = require(path.join(projectRootPath, 'package.json')); -const jsConfig = require(path.join(projectRootPath, 'jsconfig.json')).compilerOptions; - -const pathsConfig = jsConfig.paths; +const projectRootPath = fs.realpathSync(__dirname + '/../../../'); let voltoPath = path.join(projectRootPath, 'node_modules/@plone/volto'); +let configFile; +if (fs.existsSync(`${projectRootPath}/tsconfig.json`)) + configFile = `${projectRootPath}/tsconfig.json`; +else if (fs.existsSync(`${projectRootPath}/jsconfig.json`)) + configFile = `${projectRootPath}/jsconfig.json`; + +if (configFile) { + const jsConfig = require(configFile).compilerOptions; + const pathsConfig = jsConfig.paths; + if (pathsConfig['@plone/volto']) + voltoPath = `./${jsConfig.baseUrl}/${pathsConfig['@plone/volto'][0]}`; +} -Object.keys(pathsConfig).forEach(pkg => { - if (pkg === '@plone/volto') { - voltoPath = `./${jsConfig.baseUrl}/${pathsConfig[pkg][0]}`; - } -}); const AddonConfigurationRegistry = require(`${voltoPath}/addon-registry.js`); const reg = new AddonConfigurationRegistry(projectRootPath); // Extends ESlint configuration for adding the aliases to `src` directories in Volto addons -const addonAliases = Object.keys(reg.packages).map(o => [ +const addonAliases = Object.keys(reg.packages).map((o) => [ o, reg.packages[o].modulePath, ]); +const addonExtenders = reg.getEslintExtenders().map((m) => require(m)); -module.exports = { - extends: `${projectRootPath}/node_modules/@plone/volto/.eslintrc`, +const defaultConfig = { + extends: `${voltoPath}/.eslintrc`, settings: { 'import/resolver': { alias: { map: [ ['@plone/volto', '@plone/volto/src'], + ['@plone/volto-slate', '@plone/volto/packages/volto-slate/src'], ...addonAliases, ['@package', `${__dirname}/src`], + ['@root', `${__dirname}/src`], ['~', `${__dirname}/src`], ], extensions: ['.js', '.jsx', '.json'], @@ -53,3 +56,10 @@ module.exports = { ], } }; + +const config = addonExtenders.reduce( + (acc, extender) => extender.modify(acc), + defaultConfig, +); + +module.exports = config;