astro-ghostcms/.pnpm-store/v3/files/d7/ce637cac70d022af5d476669bd3...

62 lines
1.8 KiB
Plaintext

/**
* @typedef {import('unist').Node} Node
* @typedef {import('unist').Point} Point
* @typedef {import('unist').Position} Position
*/
/**
* @typedef NodeLike
* @property {string} type
* @property {PositionLike | null | undefined} [position]
*
* @typedef PointLike
* @property {number | null | undefined} [line]
* @property {number | null | undefined} [column]
* @property {number | null | undefined} [offset]
*
* @typedef PositionLike
* @property {PointLike | null | undefined} [start]
* @property {PointLike | null | undefined} [end]
*/
/**
* Serialize the positional info of a point, position (start and end points),
* or node.
*
* @param {Node | NodeLike | Point | PointLike | Position | PositionLike | null | undefined} [value]
* Node, position, or point.
* @returns {string}
* Pretty printed positional info of a node (`string`).
*
* In the format of a range `ls:cs-le:ce` (when given `node` or `position`)
* or a point `l:c` (when given `point`), where `l` stands for line, `c` for
* column, `s` for `start`, and `e` for end.
* An empty string (`''`) is returned if the given value is neither `node`,
* `position`, nor `point`.
*/
export function stringifyPosition(
value?:
| Node
| NodeLike
| Point
| PointLike
| Position
| PositionLike
| null
| undefined
): string
export type Node = import('unist').Node
export type Point = import('unist').Point
export type Position = import('unist').Position
export type NodeLike = {
type: string
position?: PositionLike | null | undefined
}
export type PointLike = {
line?: number | null | undefined
column?: number | null | undefined
offset?: number | null | undefined
}
export type PositionLike = {
start?: PointLike | null | undefined
end?: PointLike | null | undefined
}