UNPKG

eslint-plugin-vue-scoped-css

Version:
56 lines (55 loc) 2.2 kB
import type { LineAndColumnData, PostCSSSPNode } from "../../../types"; declare class SourceCodeLocationResolver { private readonly text; private readonly lineStartIndices; constructor(code: string); getLocFromIndex(index: number): LineAndColumnData; getIndexFromLoc(loc: LineAndColumnData): number; } declare class RemapIndexContext { private readonly mappers; private orgIndex; private newIndex; private batchLengthOrg; private batchLengthNew; applyEq(length: number): void; applyIns(length: number): void; applyDel(length: number): void; flush(): void; private addMap; hasMapping(): boolean; remapIndex(index: number): number; } interface ReplaceInfo { start: number; original: string; random: string; replace: string; restore?: (node: PostCSSSPNode, random: string, original: string) => PostCSSSPNode | null; } export declare function definePatternsSearchGenerator<REGS extends { [name: string]: RegExp; }>(regexps: REGS, str: string): Generator<{ name: keyof REGS & string; result: RegExpExecArray; }>; export declare class ReplaceSelectorContext { readonly cssSelector: string; readonly remapContext: RemapIndexContext; readonly replaces: ReplaceInfo[]; readonly comments: ReplaceInfo[]; readonly cssSourceCode: SourceCodeLocationResolver; readonly originalSourceCode: SourceCodeLocationResolver; constructor(cssSelector: string, originalSelector: string, remapContext: RemapIndexContext, replaces: ReplaceInfo[], comments: ReplaceInfo[]); hasReplace(): boolean; } export type SelectorReplacer = { regexp: RegExp; replace: (result: RegExpExecArray, random: string, info: { beforeCss: string[]; }) => string; restore?: (node: PostCSSSPNode, random: string, original: string) => PostCSSSPNode | null; }; export declare function replaceSelector(selector: string, regexps: SelectorReplacer[], commentRegexps?: SelectorReplacer[], trivialRegexps?: SelectorReplacer[]): ReplaceSelectorContext; export declare function restoreReplacedSelector(orgNode: PostCSSSPNode, replaceSelectorContext: ReplaceSelectorContext): PostCSSSPNode; export {};