Учитывая ваши фактические данные, где после JSON.parse
у вас есть следующая структура:
{
'$primary': '#ea80fc',
'$p_light': '#ffb2ff',
'$p_dark': '#b64fc8',
'$secondary': '#b64fc8',
'$s_light': '#f9683a',
'$s_dark': '#870000'
}
превращение этого в допустимый S CSS не требует длинной цепочки замен, примененных к JSON строка вообще. Это просто требует синтаксического анализа JSON для простого JS объекта, а затем итерации по ключу / значениям для формирования строки S CSS:
function jsonToSCSS(stringdata=``, data={}) {
/* JSON.parse can throw. Always be ready for that. */
try { data = JSON.parse(stringdata); }
catch (e) { console.warn(e); return ``; }
return Object.keys(data)
.map(key => `${key}: ${data[key]};`)
.join('\n');
}
И готово. Вывод этой функции теперь представляет собой обычную отформатированную строку:
$primary: #ea80fc;
$p_light: #ffb2ff;
$p_dark: #b64fc8;
$secondary: #b64fc8;
$s_light: #f9683a;
$s_dark: #870000;
, которую вы теперь можете записать в любой файл, в который хотите записать, либо напрямую, либо сам по себе в формате:
const SCSS = jsonToSCSS(inputdata);
const qualified = `.someclass { ${SCSS} }`;