From 88db367fe6f7c7ed777a9b3e4e5da470aefbba30 Mon Sep 17 00:00:00 2001 From: Martin Hochel Date: Tue, 2 Jul 2024 09:29:27 +0200 Subject: [PATCH] fix(scripts-prettier): escape file names that are being passed to prettier bin via shell (#31889) --- scripts/prettier/src/prettier-helpers.js | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/scripts/prettier/src/prettier-helpers.js b/scripts/prettier/src/prettier-helpers.js index 92a1a4fede5683..861b57e15fbdd6 100644 --- a/scripts/prettier/src/prettier-helpers.js +++ b/scripts/prettier/src/prettier-helpers.js @@ -47,10 +47,18 @@ function runPrettier(files, config = {}) { const prettierSupportedFiles = fileIsGlob ? files - : files.filter(file => { + : files.reduce((acc, file) => { const ext = path.extname(file).replace('.', ''); - return prettierSupportedFileExtensions.includes(ext); - }); + + if (prettierSupportedFileExtensions.includes(ext)) { + // WHY IGNORE IS NEEDED?: prettier removes one of the '\' within replaceValue + // prettier-ignore + const escapedFileName = `"${file.replace(/\$/g, '\\\$')}"`; + + acc.push(escapedFileName); + } + return acc; + }, /** @type {string[]} */ ([])); if (!prettierSupportedFiles.length) { console.log('prettier: No supported files found');