source: node_modules/@types/unist/README.md

main
Last change on this file was d24f17c, checked in by Aleksandar Panovski <apano77@…>, 16 months ago

Initial commit

  • Property mode set to 100644
File size: 3.2 KB
Line 
1# Installation
2> `npm install --save @types/unist`
3
4# Summary
5This package contains type definitions for unist (https://github.com/syntax-tree/unist).
6
7# Details
8Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/unist/v2.
9## [index.d.ts](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/unist/v2/index.d.ts)
10````ts
11/**
12 * Syntactic units in unist syntax trees are called nodes.
13 *
14 * @typeParam TData Information from the ecosystem. Useful for more specific {@link Node.data}.
15 */
16export interface Node<TData extends object = Data> {
17 /**
18 * The variant of a node.
19 */
20 type: string;
21
22 /**
23 * Information from the ecosystem.
24 */
25 data?: TData | undefined;
26
27 /**
28 * Location of a node in a source document.
29 * Must not be present if a node is generated.
30 */
31 position?: Position | undefined;
32}
33
34/**
35 * Information associated by the ecosystem with the node.
36 * Space is guaranteed to never be specified by unist or specifications
37 * implementing unist.
38 */
39export interface Data {
40 [key: string]: unknown;
41}
42
43/**
44 * Location of a node in a source file.
45 */
46export interface Position {
47 /**
48 * Place of the first character of the parsed source region.
49 */
50 start: Point;
51
52 /**
53 * Place of the first character after the parsed source region.
54 */
55 end: Point;
56
57 /**
58 * Start column at each index (plus start line) in the source region,
59 * for elements that span multiple lines.
60 */
61 indent?: number[] | undefined;
62}
63
64/**
65 * One place in a source file.
66 */
67export interface Point {
68 /**
69 * Line in a source file (1-indexed integer).
70 */
71 line: number;
72
73 /**
74 * Column in a source file (1-indexed integer).
75 */
76 column: number;
77 /**
78 * Character in a source file (0-indexed integer).
79 */
80 offset?: number | undefined;
81}
82
83/**
84 * Util for extracting type of {@link Node.data}
85 *
86 * @typeParam TNode Specific node type such as {@link Node} with {@link Data}, {@link Literal}, etc.
87 *
88 * @example `NodeData<Node<{ key: string }>>` -> `{ key: string }`
89 */
90export type NodeData<TNode extends Node<object>> = TNode extends Node<infer TData> ? TData : never;
91
92/**
93 * Nodes containing other nodes.
94 *
95 * @typeParam ChildNode Node item of {@link Parent.children}
96 */
97export interface Parent<ChildNode extends Node<object> = Node, TData extends object = NodeData<ChildNode>>
98 extends Node<TData>
99{
100 /**
101 * List representing the children of a node.
102 */
103 children: ChildNode[];
104}
105
106/**
107 * Nodes containing a value.
108 *
109 * @typeParam Value Specific value type of {@link Literal.value} such as `string` for `Text` node
110 */
111export interface Literal<Value = unknown, TData extends object = Data> extends Node<TData> {
112 value: Value;
113}
114
115````
116
117### Additional Details
118 * Last updated: Tue, 07 Nov 2023 20:08:00 GMT
119 * Dependencies: none
120
121# Credits
122These definitions were written by [bizen241](https://github.com/bizen241), [Jun Lu](https://github.com/lujun2), [Hernan Rajchert](https://github.com/hrajchert), [Titus Wormer](https://github.com/wooorm), [Junyoung Choi](https://github.com/rokt33r), [Ben Moon](https://github.com/GuiltyDolphin), and [JounQin](https://github.com/JounQin).
Note: See TracBrowser for help on using the repository browser.