stylelint
Version:
A mighty CSS linter that helps you avoid errors and enforce conventions.
88 lines (73 loc) • 2.4 kB
JavaScript
// NOTICE: This file is generated by Rollup. To modify it,
// please instead edit the ESM counterpart and rebuild with Rollup (npm run build).
;
const validateTypes = require('./validateTypes.cjs');
const typeGuards = require('./typeGuards.cjs');
const DISABLE_COMMAND = '-disable';
const DISABLE_LINE_COMMAND = '-disable-line';
const DISABLE_NEXT_LINE_COMMAND = '-disable-next-line';
const ENABLE_COMMAND = '-enable';
const ALL_COMMANDS = new Set([
DISABLE_COMMAND,
DISABLE_LINE_COMMAND,
DISABLE_NEXT_LINE_COMMAND,
ENABLE_COMMAND,
]);
const DEFAULT_CONFIGURATION_COMMENT = 'stylelint';
/**
* Extract a command from a given comment.
*
* @param {string} commentText
* @param {string} [configurationComment]
* @returns {string}
*/
function extractConfigurationComment(
commentText,
configurationComment = DEFAULT_CONFIGURATION_COMMENT,
) {
if (!commentText) return commentText;
const [command] = commentText.split(/\s/, 1);
validateTypes.assertString(command);
return command.replace(configurationComment, '');
}
/**
* Tests if the given comment is a Stylelint command.
*
* @param {string | import('postcss').Node} textOrNode
* @param {string} [configurationComment]
* @returns {boolean}
*/
function isConfigurationComment(
textOrNode,
configurationComment = DEFAULT_CONFIGURATION_COMMENT,
) {
const commentText = validateTypes.isString(textOrNode)
? textOrNode
: typeGuards.isComment(textOrNode)
? textOrNode.text
: undefined;
if (!commentText) return false;
const command = extractConfigurationComment(commentText, configurationComment);
return command !== undefined && ALL_COMMANDS.has(command);
}
/**
* Get full stylelint command
*
* @param {string} command
* @param {string} [configurationComment]
* @returns {string}
*/
function getConfigurationComment(
command,
configurationComment = DEFAULT_CONFIGURATION_COMMENT,
) {
return `${configurationComment}${command}`;
}
exports.DEFAULT_CONFIGURATION_COMMENT = DEFAULT_CONFIGURATION_COMMENT;
exports.DISABLE_COMMAND = DISABLE_COMMAND;
exports.DISABLE_LINE_COMMAND = DISABLE_LINE_COMMAND;
exports.DISABLE_NEXT_LINE_COMMAND = DISABLE_NEXT_LINE_COMMAND;
exports.ENABLE_COMMAND = ENABLE_COMMAND;
exports.extractConfigurationComment = extractConfigurationComment;
exports.getConfigurationComment = getConfigurationComment;
exports.isConfigurationComment = isConfigurationComment;