@atlaskit/eslint-plugin-design-system
Version:
The essential plugin for use with the Atlassian Design System.
48 lines • 1.87 kB
JavaScript
import { createLintRule } from '../utils/create-lint-rule';
import { StyleProperty } from './transformers/style-property';
var rule = createLintRule({
meta: {
name: 'use-tokens-space',
type: 'problem',
fixable: 'code',
hasSuggestions: true,
docs: {
description: 'Enforces usage of space design tokens rather than hard-coded values.',
recommended: false,
severity: 'error'
},
messages: {
noRawSpacingValues: 'The use of spacing primitives or tokens is preferred over the direct application of spacing properties.'
}
},
create: function create(context) {
return {
'CallExpression[callee.name="css"] ObjectExpression Property': function CallExpressionCalleeNameCss_ObjectExpression_Property(node) {
return StyleProperty.lint(node, {
context: context
});
},
'CallExpression[callee.name="keyframes"] ObjectExpression Property': function CallExpressionCalleeNameKeyframes_ObjectExpression_Property(node) {
return StyleProperty.lint(node, {
context: context
});
},
'CallExpression[callee.name="cssMap"] ObjectExpression Property': function CallExpressionCalleeNameCssMap_ObjectExpression_Property(node) {
return StyleProperty.lint(node, {
context: context
});
},
'CallExpression[callee.object.name=styled] ObjectExpression Property': function CallExpressionCalleeObjectNameStyled_ObjectExpression_Property(node) {
return StyleProperty.lint(node, {
context: context
});
},
'CallExpression[callee.object.name=styled2] ObjectExpression Property': function CallExpressionCalleeObjectNameStyled2_ObjectExpression_Property(node) {
return StyleProperty.lint(node, {
context: context
});
}
};
}
});
export default rule;