@atlaskit/eslint-plugin-design-system
Version:
The essential plugin for use with the Atlassian Design System.
55 lines (54 loc) • 1.95 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _eslintCodemodUtils = require("eslint-codemod-utils");
var _createLintRule = require("../utils/create-lint-rule");
var _isBlockedAddEventListener = require("./checks/is-blocked-add-event-listener");
var _isBlockedBind = require("./checks/is-blocked-bind");
var _isBlockedBindAll = require("./checks/is-blocked-bind-all");
var _isBlockedJsxAttribute = require("./checks/is-blocked-jsx-attribute");
var rule = (0, _createLintRule.createLintRule)({
meta: {
name: 'no-direct-use-of-web-platform-drag-and-drop',
type: 'problem',
docs: {
recommended: true,
severity: 'error',
description: 'Disallow using direct use of native drag and drop (please use Pragmatic drag and drop)'
},
messages: {
usePragmaticDnd: 'Please use Pragmatic drag and drop, which makes web platform drag and drop safe and easy to work with.'
}
},
create: function create(context) {
return {
JSXAttribute: function JSXAttribute(node) {
if (!(0, _eslintCodemodUtils.isNodeOfType)(node, 'JSXAttribute')) {
return;
}
if ((0, _isBlockedJsxAttribute.isBlockedJSXAttribute)(context, node)) {
context.report({
messageId: 'usePragmaticDnd',
node: node
});
return;
}
},
CallExpression: function CallExpression(node) {
if (!(0, _eslintCodemodUtils.isNodeOfType)(node, 'CallExpression')) {
return;
}
if ((0, _isBlockedAddEventListener.isBlockedAddEventListener)(node) || (0, _isBlockedBind.isBlockedBind)(context, node) || (0, _isBlockedBindAll.isBlockedBindAll)(context, node)) {
context.report({
messageId: 'usePragmaticDnd',
node: node
});
return;
}
}
};
}
});
var _default = exports.default = rule;