29 lines
700 B
JavaScript
29 lines
700 B
JavaScript
'use strict';
|
|
|
|
const { isObject, isString } = require('./validateTypes');
|
|
|
|
/**
|
|
* Get the index of a declaration's value
|
|
*
|
|
* @param {import('postcss').Declaration} decl
|
|
* @returns {number}
|
|
*/
|
|
module.exports = function declarationValueIndex(decl) {
|
|
const raws = decl.raws;
|
|
const prop = raws.prop;
|
|
|
|
return [
|
|
isObject(prop) && 'prefix' in prop && prop.prefix,
|
|
(isObject(prop) && 'raw' in prop && prop.raw) || decl.prop,
|
|
isObject(prop) && 'suffix' in prop && prop.suffix,
|
|
raws.between || ':',
|
|
raws.value && 'prefix' in raws.value && raws.value.prefix,
|
|
].reduce((/** @type {number} */ count, str) => {
|
|
if (isString(str)) {
|
|
return count + str.length;
|
|
}
|
|
|
|
return count;
|
|
}, 0);
|
|
};
|