requireIndexerName.js 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports["default"] = void 0;
  6. var _utilities = require("../utilities");
  7. var schema = [{
  8. "enum": ['always', 'never'],
  9. type: 'string'
  10. }];
  11. var create = function create(context) {
  12. var always = (context.options[0] || 'always') === 'always';
  13. if (always) {
  14. return {
  15. ObjectTypeIndexer: function ObjectTypeIndexer(node) {
  16. var id = (0, _utilities.getParameterName)(node, context);
  17. var rawKeyType = context.getSourceCode().getText(node.key);
  18. if (id === null) {
  19. context.report({
  20. fix: function fix(fixer) {
  21. return fixer.replaceText(node.key, "key: ".concat(rawKeyType));
  22. },
  23. message: 'All indexers must be declared with key name.',
  24. node: node
  25. });
  26. }
  27. }
  28. };
  29. }
  30. return {};
  31. };
  32. var _default = {
  33. create: create,
  34. meta: {
  35. fixable: 'code'
  36. },
  37. schema: schema
  38. };
  39. exports["default"] = _default;
  40. module.exports = exports.default;