Spaces:
Running
Running
declare namespace postcssValueParser { | |
interface BaseNode { | |
/** | |
* The offset, inclusive, inside the CSS value at which the node starts. | |
*/ | |
sourceIndex: number; | |
/** | |
* The offset, exclusive, inside the CSS value at which the node ends. | |
*/ | |
sourceEndIndex: number; | |
/** | |
* The node's characteristic value | |
*/ | |
value: string; | |
} | |
interface ClosableNode { | |
/** | |
* Whether the parsed CSS value ended before the node was properly closed | |
*/ | |
unclosed?: true; | |
} | |
interface AdjacentAwareNode { | |
/** | |
* The token at the start of the node | |
*/ | |
before: string; | |
/** | |
* The token at the end of the node | |
*/ | |
after: string; | |
} | |
interface CommentNode extends BaseNode, ClosableNode { | |
type: "comment"; | |
} | |
interface DivNode extends BaseNode, AdjacentAwareNode { | |
type: "div"; | |
} | |
interface FunctionNode extends BaseNode, ClosableNode, AdjacentAwareNode { | |
type: "function"; | |
/** | |
* Nodes inside the function | |
*/ | |
nodes: Node[]; | |
} | |
interface SpaceNode extends BaseNode { | |
type: "space"; | |
} | |
interface StringNode extends BaseNode, ClosableNode { | |
type: "string"; | |
/** | |
* The quote type delimiting the string | |
*/ | |
quote: '"' | "'"; | |
} | |
interface UnicodeRangeNode extends BaseNode { | |
type: "unicode-range"; | |
} | |
interface WordNode extends BaseNode { | |
type: "word"; | |
} | |
/** | |
* Any node parsed from a CSS value | |
*/ | |
type Node = | |
| CommentNode | |
| DivNode | |
| FunctionNode | |
| SpaceNode | |
| StringNode | |
| UnicodeRangeNode | |
| WordNode; | |
interface CustomStringifierCallback { | |
/** | |
* @param node The node to stringify | |
* @returns The serialized CSS representation of the node | |
*/ | |
(nodes: Node): string | undefined; | |
} | |
interface WalkCallback { | |
/** | |
* @param node The currently visited node | |
* @param index The index of the node in the series of parsed nodes | |
* @param nodes The series of parsed nodes | |
* @returns Returning `false` will prevent traversal of descendant nodes (only applies if `bubble` was set to `true` in the `walk()` call) | |
*/ | |
(node: Node, index: number, nodes: Node[]): void | boolean; | |
} | |
/** | |
* A CSS dimension, decomposed into its numeric and unit parts | |
*/ | |
interface Dimension { | |
number: string; | |
unit: string; | |
} | |
/** | |
* A wrapper around a parsed CSS value that allows for inspecting and walking nodes | |
*/ | |
interface ParsedValue { | |
/** | |
* The series of parsed nodes | |
*/ | |
nodes: Node[]; | |
/** | |
* Walk all parsed nodes, applying a callback | |
* | |
* @param callback A visitor callback that will be executed for each node | |
* @param bubble When set to `true`, walking will be done inside-out instead of outside-in | |
*/ | |
walk(callback: WalkCallback, bubble?: boolean): this; | |
} | |
interface ValueParser { | |
/** | |
* Decompose a CSS dimension into its numeric and unit part | |
* | |
* @param value The dimension to decompose | |
* @returns An object representing `number` and `unit` part of the dimension or `false` if the decomposing fails | |
*/ | |
unit(value: string): Dimension | false; | |
/** | |
* Serialize a series of nodes into a CSS value | |
* | |
* @param nodes The nodes to stringify | |
* @param custom A custom stringifier callback | |
* @returns The generated CSS value | |
*/ | |
stringify(nodes: Node | Node[], custom?: CustomStringifierCallback): string; | |
/** | |
* Walk a series of nodes, applying a callback | |
* | |
* @param nodes The nodes to walk | |
* @param callback A visitor callback that will be executed for each node | |
* @param bubble When set to `true`, walking will be done inside-out instead of outside-in | |
*/ | |
walk(nodes: Node[], callback: WalkCallback, bubble?: boolean): void; | |
/** | |
* Parse a CSS value into a series of nodes to operate on | |
* | |
* @param value The value to parse | |
*/ | |
new (value: string): ParsedValue; | |
/** | |
* Parse a CSS value into a series of nodes to operate on | |
* | |
* @param value The value to parse | |
*/ | |
(value: string): ParsedValue; | |
} | |
} | |
declare const postcssValueParser: postcssValueParser.ValueParser; | |
export = postcssValueParser; | |