UNPKG

@atlaskit/eslint-plugin-design-system

Version:

The essential plugin for use with the Atlassian Design System.

52 lines (51 loc) 1.9 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 _createLintRule = require("../utils/create-lint-rule"); var _getCssMapObject = require("./get-css-map-object"); var _unusedCssMapChecker = require("./unused-css-map-checker"); var IMPORT_SOURCES = [_isSupportedImport.CSS_IN_JS_IMPORTS.compiled, _isSupportedImport.CSS_IN_JS_IMPORTS.atlaskitCss]; var createUnusedCssMapRule = function createUnusedCssMapRule(context) { var _getSourceCode = (0, _contextCompat.getSourceCode)(context), text = _getSourceCode.text; if (IMPORT_SOURCES.every(function (importSource) { return !text.includes(importSource); })) { return {}; } return { CallExpression: function CallExpression(node) { var references = (0, _contextCompat.getScope)(context, node).references; if (!(0, _isSupportedImport.isCssMap)(node.callee, references, IMPORT_SOURCES)) { return; } var cssMapObject = (0, _getCssMapObject.getCssMapObject)(node); if (!cssMapObject) { return; } var unusedCssMapChecker = new _unusedCssMapChecker.UnusedCssMapChecker(cssMapObject, context, node); unusedCssMapChecker.run(); } }; }; var noUnusedCssMapRule = (0, _createLintRule.createLintRule)({ meta: { name: 'no-unused-css-map', docs: { description: 'Detects unused styles in cssMap objects to help keep code clean.', recommended: true, severity: 'warn' }, messages: { unusedCssMapStyle: 'Unused style "{{styleName}}" in cssMap. Consider removing it if not needed.' }, schema: [], type: 'suggestion' }, create: createUnusedCssMapRule }); var _default = exports.default = noUnusedCssMapRule;