diff --git a/build/build-modules-js/stylesheets/handle-scss.mjs b/build/build-modules-js/stylesheets/handle-scss.mjs index cb44899fc1211..6bf9f72754162 100644 --- a/build/build-modules-js/stylesheets/handle-scss.mjs +++ b/build/build-modules-js/stylesheets/handle-scss.mjs @@ -6,15 +6,25 @@ import { ensureDir } from 'fs-extra'; import { transform as transformCss, Features } from 'lightningcss'; import * as Sass from 'sass-embedded'; -export const handleScssFile = async (file) => { - const cssFile = file - .replace(`${sep}scss${sep}`, `${sep}css${sep}`) - .replace(`${sep}build${sep}media_source${sep}`, `${sep}media${sep}`) - .replace('.scss', '.css'); +const silenceDeprecationList = [ + `media_source${sep}templates`, + `installation${sep}template`, + `media_source${sep}plg_installer_webinstaller`, + `vendor${sep}fontawesome-free`, + `media_source${sep}system${sep}scss${sep}joomla-fontawesome.scss`, + `media_source${sep}com_media`, + `media_source${sep}plg_system_guidedtours${sep}scss${sep}guidedtours.scss`, +]; +const shouldSilenceDeprecation = (file) => silenceDeprecationList.some((path) => new RegExp(String.raw`${path}`, 'i').test(file)); +const getOutputFile = (file) => file.replace(`${sep}scss${sep}`, `${sep}css${sep}`).replace('.scss', '.css').replace(`${sep}build${sep}media_source${sep}`, `${sep}media${sep}`); +export const handleScssFile = async (file) => { let compiled; + const cssFile = getOutputFile(file); + const options = shouldSilenceDeprecation(file) ? { silenceDeprecations: ['mixed-decls', 'color-functions', 'import', 'global-builtin'] } : {}; + try { - compiled = Sass.compile(file); + compiled = Sass.compile(file, options); } catch (error) { // eslint-disable-next-line no-console console.error(error.formatted); diff --git a/build/build-modules-js/stylesheets/scss-transform.mjs b/build/build-modules-js/stylesheets/scss-transform.mjs index b0c37ae2a474b..6dfec3ea507fd 100644 --- a/build/build-modules-js/stylesheets/scss-transform.mjs +++ b/build/build-modules-js/stylesheets/scss-transform.mjs @@ -5,15 +5,25 @@ import FsExtra from 'fs-extra'; import LightningCSS from 'lightningcss'; import Sass from 'sass-embedded'; -export const compile = async (file) => { - const cssFile = file - .replace(`${sep}scss${sep}`, `${sep}css${sep}`) - .replace('.scss', '.css') - .replace(`${sep}build${sep}media_source${sep}`, `${sep}media${sep}`); +const silenceDeprecationList = [ + `media_source${sep}templates`, + `installation${sep}template`, + `media_source${sep}plg_installer_webinstaller`, + `vendor${sep}fontawesome-free`, + `media_source${sep}system${sep}scss${sep}joomla-fontawesome.scss`, + `media_source${sep}com_media`, + `media_source${sep}plg_system_guidedtours${sep}scss${sep}guidedtours.scss`, +]; +const shouldSilenceDeprecation = (file) => silenceDeprecationList.some((path) => new RegExp(String.raw`${path}`, 'i').test(file)); +const getOutputFile = (file) => file.replace(`${sep}scss${sep}`, `${sep}css${sep}`).replace('.scss', '.css').replace(`${sep}build${sep}media_source${sep}`, `${sep}media${sep}`); +export const compile = async (file) => { let compiled; + const cssFile = getOutputFile(file); + const options = shouldSilenceDeprecation(file) ? { silenceDeprecations: ['mixed-decls', 'color-functions', 'import', 'global-builtin'] } : {}; + try { - compiled = Sass.compile(file); + compiled = Sass.compile(file, options); } catch (error) { // eslint-disable-next-line no-console console.error(error.formatted);