UNPKG

@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
"use strict"; 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;