@atlaskit/eslint-plugin-ui-styling-standard
Version:
The eslint plugin to enforce and educate on Atlassian's UI Styling Standard
52 lines (51 loc) • 1.92 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _contextCompat = require("@atlaskit/eslint-utils/context-compat");
var _isSupportedImport = require("@atlaskit/eslint-utils/is-supported-import");
var _createRule = require("../utils/create-rule");
var rule = (0, _createRule.createLintRule)({
meta: {
name: 'no-styled',
docs: {
description: 'Disallows usage of the `styled` imports',
recommended: true,
severity: 'error'
},
messages: {
'no-styled': "Replace styled with module-scoped cssMap() or css() from @atlaskit/css and apply styles on the element; pass runtime-only values through style."
},
type: 'problem'
},
create: function create(context) {
return {
CallExpression: function CallExpression(node) {
var references = (0, _contextCompat.getScope)(context, node).references;
var importSources = (0, _isSupportedImport.getImportSources)(context);
if ((0, _isSupportedImport.isStyled)(node, references, importSources)) {
context.report({
node: node,
messageId: 'no-styled'
});
}
},
MemberExpression: function MemberExpression(node) {
var references = (0, _contextCompat.getScope)(context, node).references;
var importSources = (0, _isSupportedImport.getImportSources)(context);
if (node.object.type === 'Identifier' && (0, _isSupportedImport.isStyled)(node.object, references, importSources)) {
var parent = (0, _contextCompat.getAncestors)(context, node).at(-1);
if (parent && (parent.type === 'CallExpression' || parent.type === 'MemberExpression')) {
return;
}
context.report({
node: node,
messageId: 'no-styled'
});
}
}
};
}
});
var _default = exports.default = rule;