1234567891011121314151617181920212223242526272829303132333435 |
- 'use strict';
-
- /**
- * Given an object of violation messages, return another
- * that provides the same messages postfixed with the rule
- * that has been violated.
- *
- * @param {string} ruleName
- * @param {{[k: string]: string|Function}} messages - Object whose keys are message identifiers
- * and values are either message strings or functions that return message strings
- * @return {{[k: string]: string|Function}} New message object, whose messages will be marked with the rule name
- */
- module.exports = function (ruleName, messages) {
- return Object.keys(messages).reduce(
- /**
- * @param {{[k: string]: string|Function}} newMessages
- * @param {string} messageId
- * @return {{[k: string]: string|Function}}
- */
- (newMessages, messageId) => {
- const messageText = messages[messageId];
-
- if (typeof messageText === 'string') {
- newMessages[messageId] = `${messageText} (${ruleName})`;
- } else {
- newMessages[messageId] = (/** @type {any[]} */ ...args) => {
- return `${messageText(...args)} (${ruleName})`;
- };
- }
-
- return newMessages;
- },
- {},
- );
- };
|