UNPKG

eslint-plugin-vue-scoped-css

Version:
57 lines (56 loc) 1.98 kB
import type { AST, SourceCode, RuleContext, LineAndColumnData } from "../../../types"; import type { VCSSStyleSheet, VCSSNode, VCSSSelectorNode } from "../../ast"; interface VisitorVCSSNode { exit?: boolean; break?: boolean; enterNode(node: VCSSNode): void; leaveNode?(node: VCSSNode): void; } interface VisitorVCSSSelectorNode { exit?: boolean; break?: boolean; enterNode(node: VCSSSelectorNode): void; leaveNode?(node: VCSSSelectorNode): void; } interface BaseStyleContext { readonly styleElement: AST.VElement; readonly sourceCode: SourceCode; readonly scoped: boolean; readonly module: boolean; readonly lang: string; traverseNodes(visitor: VisitorVCSSNode): void; traverseSelectorNodes(visitor: VisitorVCSSSelectorNode): void; } export interface ValidStyleContext extends BaseStyleContext { readonly invalid: null; readonly cssNode: VCSSStyleSheet; } export interface InvalidStyleContext extends BaseStyleContext { readonly invalid: { message: string; needReport: boolean; loc: LineAndColumnData; }; readonly cssNode: null; } export type StyleContext = InvalidStyleContext | ValidStyleContext; export declare function isValidStyleContext(context: StyleContext): context is ValidStyleContext; export declare class StyleContextImpl { readonly styleElement: AST.VElement; readonly sourceCode: SourceCode; readonly invalid: { message: string; needReport: boolean; loc: LineAndColumnData; } | null; readonly scoped: boolean; readonly module: boolean; readonly lang: string; private readonly cssText; readonly cssNode: VCSSStyleSheet | null; constructor(style: AST.VElement, context: RuleContext); traverseNodes(visitor: VisitorVCSSNode): void; traverseSelectorNodes(visitor: VisitorVCSSSelectorNode): void; } export declare function createStyleContexts(context: RuleContext): StyleContext[]; export {};