@atlaskit/eslint-plugin-design-system
Version:
The essential plugin for use with the Atlassian Design System.
19 lines • 812 B
JavaScript
import { isNodeOfType } from 'eslint-codemod-utils';
import { getSourceCode } from '@atlaskit/eslint-utils/context-compat';
import { Root } from '../../ast-nodes/root';
export const isDecendantOfPrimitive = (node, context) => {
const primitivesToCheck = ['Box', 'Text', 'Tile'];
if (isNodeOfType(node, 'JSXElement')) {
// @ts-ignore
if (primitivesToCheck.includes(node.openingElement.name.name)) {
const importDeclaration = Root.findImportsByModule(getSourceCode(context).ast.body, ['@atlaskit/primitives', '@atlaskit/primitives/box', '@atlaskit/primitives/text', '@atlaskit/primitives/compiled', '@atlaskit/tile']);
if (importDeclaration.length) {
return true;
}
}
}
if (node.parent) {
return isDecendantOfPrimitive(node.parent, context);
}
return false;
};