| // NOTICE: This file is generated by Rollup. To modify it, |
| // please instead edit the ESM counterpart and rebuild with Rollup (npm run build). |
| 'use strict'; |
| |
| 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; |