diff options
author | Grégoire Aubert <gregoire.aubert@sonarsource.com> | 2024-10-16 09:33:04 +0200 |
---|---|---|
committer | sonartech <sonartech@sonarsource.com> | 2024-10-22 20:03:09 +0000 |
commit | fb204bcee8178d160c88323f6ba8e471935bd982 (patch) | |
tree | 09a0c95c9580b6248a51c49dd253a5870e2589a3 | |
parent | 4563bf92ef65836ce0afc2e974a2ecd5fe719b1b (diff) | |
download | sonarqube-fb204bcee8178d160c88323f6ba8e471935bd982.tar.gz sonarqube-fb204bcee8178d160c88323f6ba8e471935bd982.zip |
SONAR-23205 Move Esbuild config into each extensions
-rw-r--r-- | server/sonar-web/config/esbuild-postcss-plugin.js | 48 | ||||
-rw-r--r-- | server/sonar-web/config/utils.js | 70 |
2 files changed, 0 insertions, 118 deletions
diff --git a/server/sonar-web/config/esbuild-postcss-plugin.js b/server/sonar-web/config/esbuild-postcss-plugin.js deleted file mode 100644 index 646d8e2773a..00000000000 --- a/server/sonar-web/config/esbuild-postcss-plugin.js +++ /dev/null @@ -1,48 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2024 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -const { readFileSync } = require('fs'); -const path = require('path'); - -const postCSSPlugin = ({ plugins = [], postcss }) => ({ - name: 'plugin-postcss', - setup(build) { - build.onLoad({ filter: /.\.css/ }, async ({ path }) => { - /* - * postCssCustomProperties removes all CSS variables from files - * We want to avoid this in some cases, typically echoes-react provides - * CSS variable to manage the theme. - */ - if (path.includes('echoes-react')) { - return; - } - - const processor = postcss(plugins); - const content = readFileSync(path); - const result = await processor.process(content, { from: path }); - - return { - contents: result.toString(), - loader: 'css', - }; - }); - }, -}); - -module.exports = postCSSPlugin; diff --git a/server/sonar-web/config/utils.js b/server/sonar-web/config/utils.js deleted file mode 100644 index 74acbb3a019..00000000000 --- a/server/sonar-web/config/utils.js +++ /dev/null @@ -1,70 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2024 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -// See https://github.com/evanw/esbuild/issues/337 -function importAsGlobals(mapping) { - const escRe = (s) => s.replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&'); - const filter = new RegExp( - Object.keys(mapping) - .map((moduleName) => `^${escRe(moduleName)}$`) - .join('|'), - ); - - return { - name: 'import-as-globals', - setup(build) { - build.onResolve({ filter }, (args) => { - if (!mapping[args.path]) { - throw new Error('Unknown global: ' + args.path); - } - return { - path: args.path, - namespace: 'external-global', - }; - }); - - build.onLoad( - { - filter, - namespace: 'external-global', - }, - (args) => { - const globalName = mapping[args.path]; - return { - contents: `module.exports = ${globalName};`, - loader: 'js', - }; - }, - ); - }, - }; -} - -module.exports = { - importAsGlobals, - // NOTE: esbuild will transpile the _syntax_ down to what the TARGET_BROWSERS understand. - // It will _not_, however, polyfill missing API methods, such as String.prototype.replaceAll - // This is why we also import core-js. - // - // This browser version list is based on our requirements to support ES6 - // and javascript module via script tag (See https://caniuse.com/?search=modules%20es6) - ESBUILD_TARGET_BROWSERS: ['chrome61', 'firefox60', 'safari11', 'edge18'], - AUTOPREFIXER_BROWSER_LIST: ['chrome>=61', 'firefox>=60', 'safari>=11', 'edge>=18'], -}; |