@razorpay/blade
Version:
The Design System that powers Razorpay
34 lines (29 loc) • 725 B
text/typescript
import type { Transform } from 'jscodeshift';
const transformer: Transform = (file) => {
const map = {
s: 50,
m: 50,
l: 100,
xl: 200,
'2xl': 300,
'3xl': 400,
'4xl': 600,
'5xl': 700,
'6xl': 800,
};
const prefix = 'theme.typography.lineHeights';
const newSource = file.source.replace(
// gets both .s and ['2xl'] or ["2xl"]
/theme\.typography\.lineHeights\.?((\w+)|(\W.*\]))/g,
(originalString, match) => {
const token = match.replace(/\[|\]|'|"/g, '');
const replacement = map[token];
if (!replacement) {
return originalString;
}
return `${prefix}[${map[token]}]`;
},
);
return newSource;
};
export default transformer;