eslint-plugin-jsdoc
Version:
JSDoc linting rules for ESLint.
35 lines (30 loc) • 849 B
JavaScript
const WarnSettings = function () {
/** @type {WeakMap<object, Set<string>>} */
const warnedSettings = new WeakMap();
return {
/**
* Warn only once for each context and setting
* @param {{}} context
* @param {string} setting
* @returns {boolean}
*/
hasBeenWarned (context, setting) {
return warnedSettings.has(context) && /** @type {Set<string>} */ (
warnedSettings.get(context)
).has(setting);
},
/**
* @param {{}} context
* @param {string} setting
* @returns {void}
*/
markSettingAsWarned (context, setting) {
// c8 ignore else
if (!warnedSettings.has(context)) {
warnedSettings.set(context, new Set());
}
/** @type {Set<string>} */ (warnedSettings.get(context)).add(setting);
},
};
};
export default WarnSettings;