Files
Nikolay Vitkov bb976f7b9e Update node_module dependecies
Add one more deps "@typescript-eslint/utils" to top level to be used in our own custom rules (also needed override if I didn't).

Bug: none
Change-Id: I130415d1ec5f096ca51200df3eb688dadd963d0f
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/6343232
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Nikolay Vitkov <nvitkov@chromium.org>
2025-03-12 06:49:46 -07:00

75 lines
1.7 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';
/** @import { Node as PostcssNode } from 'postcss' */
/**
* Make a fix range as narrow as possible by trimming common prefixes and suffixes
*
* @param {PostcssNode} node
* @param {{range: [number, number], text: string}} fixData
* @returns {{range: [number, number], text: string}}
*/
function narrowFixRange(node, fixData) {
if (!node.source) {
return fixData;
}
let startOffset = fixData.range[0];
let endOffset = fixData.range[1];
const stringRepresentation = node.source.input.css.slice(startOffset, endOffset);
let replacementStartOffset = 0;
for (let i = 0; i < stringRepresentation.length; i++) {
const a = stringRepresentation[i];
const b = fixData.text[i];
if (a !== b) break;
startOffset++;
replacementStartOffset++;
}
let replacementEndOffset = fixData.text.length;
for (let i = 0; i < stringRepresentation.length; i++) {
const ia = stringRepresentation.length - 1 - i;
if (ia < replacementStartOffset) break;
const a = stringRepresentation[ia];
const ib = fixData.text.length - 1 - i;
if (ib < replacementStartOffset) break;
const b = fixData.text[ib];
if (a !== b) break;
endOffset--;
replacementEndOffset--;
}
// Try to have a context size of at least 1
if (startOffset === endOffset) {
if (startOffset > fixData.range[0]) {
startOffset--;
replacementStartOffset--;
} else if (endOffset < fixData.range[1]) {
endOffset++;
replacementEndOffset++;
}
}
return {
text: fixData.text.slice(replacementStartOffset, replacementEndOffset),
range: [startOffset, endOffset],
};
}
module.exports = narrowFixRange;