/
sdds
/
plasma
Обзор
Документация
Войти
/
sdds
/
plasma
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
dev
packages/plasma-core/src/utils/transformStyles.ts
17 строк
803 B
Vasiliy Loginevskiy
fix(plasma-core): improve type-coverage
24 ноя 2022, 16:49
24 ноя 2022, 16:49
b7ade6d
Код
Авторство
О чём код?
import { CSSObject } from 'styled-components'; const uppercaseCheck = /([A-Z])/; const uppercasePattern = /([A-Z])/g; const prefixAndLowerCase = (char: string): string => `-${char.toLowerCase()}`; const hyphenate = (str: string) => (uppercaseCheck.test(str) ? str.replace(uppercasePattern, prefixAndLowerCase) : str); /** * Транформирует объект стилей, * оставляя значения как есть (например, не добавляя "px" к числам), * а ключи переводя в kebab-case. * Подходит для подготовки типографической темы. */ export const transformStyles = (styles: CSSObject) => Object.entries(styles) .map(([key, value]) => `${hyphenate(key)}: ${value}`) .join(';');