mirror of
https://github.com/OliveTin/OliveTin
synced 2025-12-18 03:55:32 +00:00
88 lines
2.3 KiB
JavaScript
88 lines
2.3 KiB
JavaScript
// 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;
|