@atlaskit/eslint-plugin-design-system
Version:
The essential plugin for use with the Atlassian Design System.
52 lines (51 loc) • 1.9 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 _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;