From fb204bcee8178d160c88323f6ba8e471935bd982 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Gr=C3=A9goire=20Aubert?= Date: Wed, 16 Oct 2024 09:33:04 +0200 Subject: [PATCH] SONAR-23205 Move Esbuild config into each extensions --- .../config/esbuild-postcss-plugin.js | 48 ------------- server/sonar-web/config/utils.js | 70 ------------------- 2 files changed, 118 deletions(-) delete mode 100644 server/sonar-web/config/esbuild-postcss-plugin.js delete mode 100644 server/sonar-web/config/utils.js 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'], -}; -- 2.39.5