first commit
This commit is contained in:
131
node_modules/stylelint/lib/utils/nodeFieldIndices.cjs
generated
vendored
Normal file
131
node_modules/stylelint/lib/utils/nodeFieldIndices.cjs
generated
vendored
Normal file
@@ -0,0 +1,131 @@
|
||||
// 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 getAtRuleParams = require('./getAtRuleParams.cjs');
|
||||
const getRuleSelector = require('./getRuleSelector.cjs');
|
||||
const validateTypes = require('./validateTypes.cjs');
|
||||
|
||||
/** @import {AtRule, Declaration, Rule} from 'postcss' */
|
||||
|
||||
/**
|
||||
* @param {AtRule} atRule
|
||||
* @returns {number}
|
||||
*/
|
||||
function atRuleParamIndex(atRule) {
|
||||
const index = atRuleAfterNameIndex(atRule);
|
||||
|
||||
return index + (atRule.raws.afterName?.length ?? 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {AtRule} atRule
|
||||
* @returns {number}
|
||||
*/
|
||||
function atRuleAfterIndex(atRule) {
|
||||
// subtract 1 for `}`
|
||||
|
||||
const endOffset = atRule.source?.end?.offset;
|
||||
|
||||
if (!endOffset) return atRule.toString().length - 1;
|
||||
|
||||
const afterLength = atRule.raws?.after?.length;
|
||||
|
||||
if (!afterLength) return endOffset - 1;
|
||||
|
||||
return endOffset - (afterLength + 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {AtRule} atRule
|
||||
* @returns {number}
|
||||
*/
|
||||
function atRuleAfterNameIndex(atRule) {
|
||||
// Initial 1 is for the `@`
|
||||
return 1 + atRule.name.length;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {AtRule} atRule
|
||||
* @returns {number}
|
||||
*/
|
||||
function atRuleBetweenIndex(atRule) {
|
||||
return atRuleParamIndex(atRule) + getAtRuleParams(atRule).length;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {Declaration} decl
|
||||
* @returns {number}
|
||||
*/
|
||||
function declarationBetweenIndex(decl) {
|
||||
const { prop } = decl.raws;
|
||||
const propIsObject = validateTypes.isObject(prop);
|
||||
|
||||
return countChars([
|
||||
propIsObject && 'prefix' in prop && prop.prefix,
|
||||
(propIsObject && 'raw' in prop && prop.raw) || decl.prop,
|
||||
propIsObject && 'suffix' in prop && prop.suffix,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the index of a declaration's value
|
||||
*
|
||||
* @param {Declaration} decl
|
||||
* @returns {number}
|
||||
*/
|
||||
function declarationValueIndex(decl) {
|
||||
const { between, value } = decl.raws;
|
||||
|
||||
return (
|
||||
declarationBetweenIndex(decl) +
|
||||
countChars([between || ':', value && 'prefix' in value && value.prefix])
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {Rule} rule
|
||||
* @returns {number}
|
||||
*/
|
||||
function ruleBetweenIndex(rule) {
|
||||
return getRuleSelector(rule).length;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {Rule} rule
|
||||
* @returns {number}
|
||||
*/
|
||||
function ruleAfterIndex(rule) {
|
||||
// subtract 1 for `}`
|
||||
|
||||
const endOffset = rule.source?.end?.offset;
|
||||
|
||||
if (!endOffset) return rule.toString().length - 1;
|
||||
|
||||
const afterLength = rule.raws?.after?.length;
|
||||
|
||||
if (!afterLength) return endOffset - 1;
|
||||
|
||||
return endOffset - (afterLength + 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {unknown[]} values
|
||||
* @returns {number}
|
||||
*/
|
||||
function countChars(values) {
|
||||
return values.reduce((/** @type {number} */ count, value) => {
|
||||
if (validateTypes.isString(value)) return count + value.length;
|
||||
|
||||
return count;
|
||||
}, 0);
|
||||
}
|
||||
|
||||
exports.atRuleAfterIndex = atRuleAfterIndex;
|
||||
exports.atRuleAfterNameIndex = atRuleAfterNameIndex;
|
||||
exports.atRuleBetweenIndex = atRuleBetweenIndex;
|
||||
exports.atRuleParamIndex = atRuleParamIndex;
|
||||
exports.declarationBetweenIndex = declarationBetweenIndex;
|
||||
exports.declarationValueIndex = declarationValueIndex;
|
||||
exports.ruleAfterIndex = ruleAfterIndex;
|
||||
exports.ruleBetweenIndex = ruleBetweenIndex;
|
||||
Reference in New Issue
Block a user