jscodeshaft
Version:
Collection of more or less primitive helpers and abstractions for JSCodeShift, build for design system migrations and upgrades.
13 lines (12 loc) • 424 B
JavaScript
/**
* Determines whether given className attribute's uses classnames library,
* following one of the syntaxes:
* classNames={cx(...)}
* classNames={classnames(...)}
* @param {Node} classNameAttr
* @returns {boolean}
*/
export const isClassNamesLib = (classNameAttr) => (
classNameAttr.value.expression.type === 'CallExpression'
&& ['classnames', 'cx'].includes(classNameAttr.value.expression.callee.name)
);