All files / packages/sds-styling-hooks/src/transformers deprecated.js

28.57% Statements 2/7
0% Branches 0/3
0% Functions 0/4
40% Lines 2/5

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28                        1x 1x                            
import theo from 'theo';
/*
{
  "props": [
    {
      "name": "color-accent-1",
      "deprecated": true,
      "inherits": "color-brand-base-50",
    },
  ]
}
*/
const camelize = (s) => s.replace(/-./g, (x) => x[1].toUpperCase());
theo.registerValueTransform(
  // Name to be used with registerTransform()
  'deprecated',
  // Determine if the value transform
  // should be run on the specified prop
  (prop) => {
    return typeof inherits === 'string' && prop.get('deprecated') === true && prop.get('inherits');
  },
  // Return the new value
  (prop) => {
    const ns = prop.get('namespace');
    return `var(--${ns}-${camelize(prop.get('inherits'))})`;
  },
);