UNPKG

@atlaskit/eslint-plugin-design-system

Version:

The essential plugin for use with the Atlassian Design System.

55 lines (54 loc) 1.95 kB
"use strict"; 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;