|
1 | | -const fs = require('fs'); |
| 1 | +const path = require('path'); |
2 | 2 | const { AddonRegistry } = require('@plone/registry/addon-registry'); |
3 | 3 |
|
4 | 4 | const projectRootPath = __dirname; |
| 5 | +const coreLocation = path.join(projectRootPath, 'core'); |
| 6 | +const voltoLocation = path.join(coreLocation, 'packages', 'volto'); |
| 7 | +const { registry } = AddonRegistry.init(voltoLocation); |
5 | 8 |
|
6 | | -let voltoPath = './node_modules/@plone/volto'; |
7 | | - |
8 | | -let configFile; |
9 | | -if (fs.existsSync(`${projectRootPath}/tsconfig.json`)) |
10 | | - configFile = `${projectRootPath}/tsconfig.json`; |
11 | | -else if (fs.existsSync(`${projectRootPath}/jsconfig.json`)) |
12 | | - configFile = `${projectRootPath}/jsconfig.json`; |
13 | | - |
14 | | -if (configFile) { |
15 | | - const jsConfig = require(configFile).compilerOptions; |
16 | | - const pathsConfig = jsConfig.paths; |
17 | | - if (pathsConfig['@plone/volto']) |
18 | | - voltoPath = `./${jsConfig.baseUrl}/${pathsConfig['@plone/volto'][0]}`; |
19 | | -} |
20 | | - |
21 | | -const { registry } = AddonRegistry.init(projectRootPath); |
22 | | - |
23 | | -// Extends ESLint configuration for adding aliases to local Volto add-ons. |
24 | | -const addonAliases = Object.keys(registry.packages).map((pkgName) => [ |
25 | | - pkgName, |
26 | | - registry.packages[pkgName].modulePath, |
| 9 | +const addonAliases = Object.keys(registry.packages).map((packageName) => [ |
| 10 | + packageName, |
| 11 | + registry.packages[packageName].modulePath, |
27 | 12 | ]); |
28 | 13 |
|
29 | | -const addonExtenders = registry.getEslintExtenders().map((modulePath) => |
30 | | - require(modulePath), |
31 | | -); |
32 | | - |
33 | | -const defaultConfig = { |
34 | | - extends: `${voltoPath}/.eslintrc`, |
35 | | - ignorePatterns: [ |
36 | | - 'src/addons/**/node_modules', |
37 | | - 'src/addons/**/cypress', |
38 | | - 'src/addons/**/build', |
39 | | - ], |
| 14 | +module.exports = { |
| 15 | + extends: path.join(voltoLocation, '.eslintrc'), |
40 | 16 | settings: { |
41 | 17 | 'import/resolver': { |
42 | 18 | alias: { |
43 | 19 | map: [ |
44 | | - ['@plone/volto', '@plone/volto/src'], |
45 | | - ['@plone/volto-slate', '@plone/volto-slate/src'], |
| 20 | + ['@plone/volto', path.join(voltoLocation, 'src')], |
| 21 | + [ |
| 22 | + '@plone/volto-slate', |
| 23 | + path.join(coreLocation, 'packages', 'volto-slate', 'src'), |
| 24 | + ], |
| 25 | + [ |
| 26 | + '@plone/registry', |
| 27 | + path.join(coreLocation, 'packages', 'registry', 'src'), |
| 28 | + ], |
| 29 | + [ |
| 30 | + 'eea-website-frontend', |
| 31 | + path.join(projectRootPath, 'packages', 'eea-website-frontend', 'src'), |
| 32 | + ], |
46 | 33 | ...addonAliases, |
47 | | - ['@package', `${projectRootPath}/src`], |
48 | | - ['@root', `${projectRootPath}/src`], |
49 | | - ['~', `${projectRootPath}/src`], |
50 | 34 | ], |
51 | 35 | extensions: ['.js', '.jsx', '.ts', '.tsx', '.json'], |
52 | 36 | }, |
53 | | - 'babel-plugin-root-import': { |
54 | | - rootPathSuffix: 'src', |
55 | | - }, |
56 | 37 | }, |
57 | 38 | }, |
58 | 39 | }; |
59 | | - |
60 | | -module.exports = addonExtenders.reduce( |
61 | | - (config, extender) => extender.modify(config), |
62 | | - defaultConfig, |
63 | | -); |
0 commit comments