index.d.ts 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. /**
  2. * @typedef {import('unist').Node} Node
  3. * @typedef {import('unist').Point} Point
  4. * @typedef {import('unist').Position} Position
  5. */
  6. /**
  7. * @typedef NodeLike
  8. * @property {string} type
  9. * @property {PositionLike | null | undefined} [position]
  10. *
  11. * @typedef PointLike
  12. * @property {number | null | undefined} [line]
  13. * @property {number | null | undefined} [column]
  14. * @property {number | null | undefined} [offset]
  15. *
  16. * @typedef PositionLike
  17. * @property {PointLike | null | undefined} [start]
  18. * @property {PointLike | null | undefined} [end]
  19. */
  20. /**
  21. * Serialize the positional info of a point, position (start and end points),
  22. * or node.
  23. *
  24. * @param {Node | NodeLike | Point | PointLike | Position | PositionLike | null | undefined} [value]
  25. * Node, position, or point.
  26. * @returns {string}
  27. * Pretty printed positional info of a node (`string`).
  28. *
  29. * In the format of a range `ls:cs-le:ce` (when given `node` or `position`)
  30. * or a point `l:c` (when given `point`), where `l` stands for line, `c` for
  31. * column, `s` for `start`, and `e` for end.
  32. * An empty string (`''`) is returned if the given value is neither `node`,
  33. * `position`, nor `point`.
  34. */
  35. export function stringifyPosition(
  36. value?:
  37. | Node
  38. | NodeLike
  39. | Point
  40. | PointLike
  41. | Position
  42. | PositionLike
  43. | null
  44. | undefined
  45. ): string
  46. export type Node = import('unist').Node
  47. export type Point = import('unist').Point
  48. export type Position = import('unist').Position
  49. export type NodeLike = {
  50. type: string
  51. position?: PositionLike | null | undefined
  52. }
  53. export type PointLike = {
  54. line?: number | null | undefined
  55. column?: number | null | undefined
  56. offset?: number | null | undefined
  57. }
  58. export type PositionLike = {
  59. start?: PointLike | null | undefined
  60. end?: PointLike | null | undefined
  61. }