style-dictionary-utils
Version:
Utilities to use in your style dictionary config
25 lines (24 loc) • 902 B
JavaScript
import { isFontFamilyFilter } from '../filter/isFontFamily.js';
import { getValue } from '../utilities/getValue.js';
const hasSpaceInName = (string) => /\s/g.test(string);
export const fontFamilyValueTransformer = (value) => {
// if the value is not an array, return it as is
if (!Array.isArray(value))
return value;
// if the value is an array, join it with commas
return value.map((string) => (hasSpaceInName(string) ? `'${string}'` : string)).join(', ');
};
/**
* fontFamilyCss
* @description if fontFamily is an array, join it with commas and wrap font names with spaces in quotes
*/
export const fontFamilyCss = {
name: 'fontFamily/css',
type: `value`,
transitive: true,
filter: (token) => isFontFamilyFilter(token),
transform: (token) => {
const tokenValue = getValue(token);
return fontFamilyValueTransformer(tokenValue);
},
};