11/**
22 * @typedef {import('unist').Position } Position
33 * @typedef {import('unist').Node } Node
4- * @typedef {Record<string, unknown> & {type: string, position?: PositionLike|undefined} } NodeLike
54 * @typedef {import('unist').Point } Point
6- *
7- * @typedef {Partial<Point> } PointLike
5+ */
6+
7+ /**
8+ * @typedef NodeLike
9+ * @property {string } type
10+ * @property {PositionLike | null | undefined } [position]
811 *
912 * @typedef PositionLike
10- * @property {PointLike } [start]
11- * @property {PointLike } [end]
13+ * @property {PointLike | null | undefined } [start]
14+ * @property {PointLike | null | undefined } [end]
15+ *
16+ * @typedef PointLike
17+ * @property {number | null | undefined } [line]
18+ * @property {number | null | undefined } [column]
19+ * @property {number | null | undefined } [offset]
1220 */
1321
1422export const pointStart = point ( 'start' )
@@ -17,8 +25,10 @@ export const pointEnd = point('end')
1725/**
1826 * Get the positional info of `node`.
1927 *
20- * @param {NodeLike|Node } [node]
28+ * @param {NodeLike | Node | null | undefined } [node]
29+ * Node.
2130 * @returns {Position }
31+ * Position.
2232 */
2333export function position ( node ) {
2434 return { start : pointStart ( node ) , end : pointEnd ( node ) }
@@ -27,15 +37,18 @@ export function position(node) {
2737/**
2838 * Get the positional info of `node`.
2939 *
30- * @param {'start'|'end' } type
40+ * @param {'start' | 'end' } type
41+ * Side.
42+ * @returns
43+ * Getter.
3144 */
3245function point ( type ) {
3346 return point
3447
3548 /**
36- * Get the positional info of `node`.
49+ * Get the point info of `node` at a bound side .
3750 *
38- * @param {NodeLike| Node } [node]
51+ * @param {NodeLike | Node | null | undefined } [node]
3952 * @returns {Point }
4053 */
4154 function point ( node ) {
0 commit comments