WarnSettings.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = void 0;
  6. const WarnSettings = function () {
  7. /** @type {WeakMap<object, Set<string>>} */
  8. const warnedSettings = new WeakMap();
  9. return {
  10. /**
  11. * Warn only once for each context and setting
  12. * @param {import('eslint').Rule.RuleContext} context
  13. * @param {string} setting
  14. * @returns {boolean}
  15. */
  16. hasBeenWarned(context, setting) {
  17. return warnedSettings.has(context) && /** @type {Set<string>} */warnedSettings.get(context).has(setting);
  18. },
  19. /**
  20. * @param {import('eslint').Rule.RuleContext} context
  21. * @param {string} setting
  22. * @returns {void}
  23. */
  24. markSettingAsWarned(context, setting) {
  25. // istanbul ignore else
  26. if (!warnedSettings.has(context)) {
  27. warnedSettings.set(context, new Set());
  28. }
  29. /** @type {Set<string>} */
  30. warnedSettings.get(context).add(setting);
  31. }
  32. };
  33. };
  34. var _default = exports.default = WarnSettings;
  35. module.exports = exports.default;
  36. //# sourceMappingURL=WarnSettings.js.map