Files
Nikolay Vitkov 2a1b3b34b1 Update StyleLint to v16
Stylelint v16 deprecated CJS so I moved our lint script to ESM,
and fixed all the deprecation warning.
The only place I needed to silence them were tests,
as we import CJS there.

Bug: none
Change-Id: Iae4d2df76c855a9738b774a2d035f22509770215
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/6138610
Commit-Queue: Nikolay Vitkov <nvitkov@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
2025-01-03 02:57:06 -08:00

66 lines
1.5 KiB
JavaScript

import { assertString } from './validateTypes.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';
/** @typedef {import('postcss').Comment} Comment */
/**
* Extract a command from a given comment.
*
* @param {string} commentText
* @param {string} [configurationComment]
* @returns {string}
*/
export function extractConfigurationComment(
commentText,
configurationComment = DEFAULT_CONFIGURATION_COMMENT,
) {
const [command] = commentText.split(/\s/, 1);
assertString(command);
return command.replace(configurationComment, '');
}
/**
* Tests if the given comment is a Stylelint command.
*
* @param {string} commentText
* @param {string} [configurationComment]
* @returns {boolean}
*/
export function isConfigurationComment(
commentText,
configurationComment = DEFAULT_CONFIGURATION_COMMENT,
) {
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}`;
}