blob: 02dacab7f8dcdfed0b659314bd7e70627a9733ad [file] [edit]
/**
* @type {import('stylelint').Utils['ruleMessages']}
*/
export default function ruleMessages(ruleName, messages) {
/** @type {import('stylelint').RuleMessages} */
const newMessages = {};
for (const [messageId, messageText] of Object.entries(messages)) {
if (typeof messageText === 'string') {
newMessages[messageId] = `${messageText} (${ruleName})`;
} else {
newMessages[messageId] = (...args) => `${messageText(...args)} (${ruleName})`;
Object.defineProperty(newMessages[messageId], 'length', { value: messageText.length });
}
}
// @ts-expect-error -- TS2322: Type 'RuleMessages' is not assignable to type 'R'.
return newMessages;
}