a3594c71d0fadbb5e2b41dd40076ef56b1ec9b214c7d0d198492f9c43c854c164cd9b1579ca4ade20610a1d394fee72a917a02e535763f67f82911a1df1b0e 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /** @typedef { import('estree').BaseNode} BaseNode */
  2. /** @typedef { import('./sync.js').SyncHandler} SyncHandler */
  3. /** @typedef { import('./async.js').AsyncHandler} AsyncHandler */
  4. /**
  5. *
  6. * @param {BaseNode} ast
  7. * @param {{
  8. * enter?: SyncHandler
  9. * leave?: SyncHandler
  10. * }} walker
  11. * @returns {BaseNode}
  12. */
  13. export function walk(ast: import("estree").BaseNode, { enter, leave }: {
  14. enter?: (this: {
  15. skip: () => void;
  16. remove: () => void;
  17. replace: (node: import("estree").BaseNode) => void;
  18. }, node: import("estree").BaseNode, parent: import("estree").BaseNode, key: string, index: number) => void;
  19. leave?: (this: {
  20. skip: () => void;
  21. remove: () => void;
  22. replace: (node: import("estree").BaseNode) => void;
  23. }, node: import("estree").BaseNode, parent: import("estree").BaseNode, key: string, index: number) => void;
  24. }): import("estree").BaseNode;
  25. /**
  26. *
  27. * @param {BaseNode} ast
  28. * @param {{
  29. * enter?: AsyncHandler
  30. * leave?: AsyncHandler
  31. * }} walker
  32. * @returns {Promise<BaseNode>}
  33. */
  34. export function asyncWalk(ast: import("estree").BaseNode, { enter, leave }: {
  35. enter?: (this: {
  36. skip: () => void;
  37. remove: () => void;
  38. replace: (node: import("estree").BaseNode) => void;
  39. }, node: import("estree").BaseNode, parent: import("estree").BaseNode, key: string, index: number) => Promise<void>;
  40. leave?: (this: {
  41. skip: () => void;
  42. remove: () => void;
  43. replace: (node: import("estree").BaseNode) => void;
  44. }, node: import("estree").BaseNode, parent: import("estree").BaseNode, key: string, index: number) => Promise<void>;
  45. }): Promise<import("estree").BaseNode>;
  46. export type BaseNode = import("estree").BaseNode;
  47. export type SyncHandler = (this: {
  48. skip: () => void;
  49. remove: () => void;
  50. replace: (node: import("estree").BaseNode) => void;
  51. }, node: import("estree").BaseNode, parent: import("estree").BaseNode, key: string, index: number) => void;
  52. export type AsyncHandler = (this: {
  53. skip: () => void;
  54. remove: () => void;
  55. replace: (node: import("estree").BaseNode) => void;
  56. }, node: import("estree").BaseNode, parent: import("estree").BaseNode, key: string, index: number) => Promise<void>;