| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- import { assertString, isString } from './validateTypes.mjs';
- import { isComment } from './typeGuards.mjs';
- export const DISABLE_COMMAND = '-disable';
- export const DISABLE_LINE_COMMAND = '-disable-line';
- export const DISABLE_NEXT_LINE_COMMAND = '-disable-next-line';
- export const ENABLE_COMMAND = '-enable';
- const ALL_COMMANDS = new Set([
- DISABLE_COMMAND,
- DISABLE_LINE_COMMAND,
- DISABLE_NEXT_LINE_COMMAND,
- ENABLE_COMMAND,
- ]);
- export const DEFAULT_CONFIGURATION_COMMENT = 'stylelint';
- /**
- * Extract a command from a given comment.
- *
- * @param {string} commentText
- * @param {string} [configurationComment]
- * @returns {string}
- */
- export function extractConfigurationComment(
- commentText,
- configurationComment = DEFAULT_CONFIGURATION_COMMENT,
- ) {
- if (!commentText) return commentText;
- const [command] = commentText.split(/\s/, 1);
- 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}
- */
- export function isConfigurationComment(
- textOrNode,
- configurationComment = DEFAULT_CONFIGURATION_COMMENT,
- ) {
- const commentText = isString(textOrNode)
- ? textOrNode
- : 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}
- */
- export function getConfigurationComment(
- command,
- configurationComment = DEFAULT_CONFIGURATION_COMMENT,
- ) {
- return `${configurationComment}${command}`;
- }
|