UNPKG

@primer/primitives

Version:

Typography, spacing, and color primitives for Primer design system

23 lines (22 loc) 672 B
/** * jsonToNestedValue * @description creates a nested json tree where every final value is the `.value` prop * @param token StyleDictionary.DesignToken * @returns nested json three */ export const transformTokens = (token, transform) => { // is non-object value if (typeof token !== 'object') return token; // is design token if ('$value' in token || 'value' in token) { return transform(token); } // is obj const nextObj = {}; for (const [prop, value] of Object.entries(token)) { // @ts-expect-error: can't predict type nextObj[prop] = transformTokens(value, transform); } return nextObj; };