-
Notifications
You must be signed in to change notification settings - Fork 41
/
postsvg.d.ts
81 lines (68 loc) · 1.76 KB
/
postsvg.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
import {decl} from 'postcss';
import {Node, Tree, TreeEachCallback} from "postsvg";
declare namespace htmlparser2 {
type ParserOptions = {
xmlMode: boolean;
lowerCaseTags: boolean;
decodeEntities: boolean;
lowerCaseAttributeNames: boolean;
recognizeCDATA: boolean;
recognizeSelfClosing: boolean;
};
}
declare namespace posthtml {
type Matcher = {
tag?: string | RegExp;
attrs?: Object;
}
}
declare function postsvg(plugins?: postsvg.Plugin[]): postsvg.Processor;
declare namespace postsvg {
type Node = {
tag: string;
attrs?: Object;
content?: Node[];
}
type Plugin = (tree: Tree) => Tree;
type TreeEachCallback = (node: Node) => void;
interface Parser {
(input: string, opts?: htmlparser2.ParserOptions): Tree;
}
interface Renderer {
(tree: Tree): string;
}
class Result {
constructor(tree: Tree);
get html(): string;
get svg(): string;
get tree(): Tree;
toString(): string;
}
type ProcessorOptions = {
sync: boolean;
parser: Parser;
render: Renderer;
skipParse: boolean;
};
function parse<Parser>();
function render<Renderer>();
class Processor {
constructor(plugins?: Plugin[]);
version: string;
name: string;
messages: Array;
use(...plugins: Plugin[]): this;
process(ast: string | Tree, options?: ProcessorOptions): Promise<Result>;
}
class Tree extends Array {
static createFromArray(array: Array): Tree;
get root(): Node;
toString(): string;
clone(): Tree;
match(expression: posthtml.Matcher, callback: (node: Node) => Node);
walk(callback: (node: Node) => Node);
select(selector: string): Node[];
each(selector: string | TreeEachCallback, callack?: TreeEachCallback): Node[];
}
}
export = postsvg;