69502daf6d1a05d700ba46b0da480a453af07c9b534d245b012074e036b672dfae7d1ec8db77baf6e82330ae7e5da7549198de33fdb0fe9db8b670d34fb903 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /** @typedef { import('estree').BaseNode} BaseNode */
  2. /** @typedef { import('./walker').WalkerContext} WalkerContext */
  3. /** @typedef {(
  4. * this: WalkerContext,
  5. * node: BaseNode,
  6. * parent: BaseNode,
  7. * key: string,
  8. * index: number
  9. * ) => Promise<void>} AsyncHandler */
  10. export class AsyncWalker extends WalkerBase {
  11. /**
  12. *
  13. * @param {AsyncHandler} enter
  14. * @param {AsyncHandler} leave
  15. */
  16. constructor(enter: (this: {
  17. skip: () => void;
  18. remove: () => void;
  19. replace: (node: import("estree").BaseNode) => void;
  20. }, node: import("estree").BaseNode, parent: import("estree").BaseNode, key: string, index: number) => Promise<void>, leave: (this: {
  21. skip: () => void;
  22. remove: () => void;
  23. replace: (node: import("estree").BaseNode) => void;
  24. }, node: import("estree").BaseNode, parent: import("estree").BaseNode, key: string, index: number) => Promise<void>);
  25. /** @type {AsyncHandler} */
  26. enter: AsyncHandler;
  27. /** @type {AsyncHandler} */
  28. leave: AsyncHandler;
  29. /**
  30. *
  31. * @param {BaseNode} node
  32. * @param {BaseNode} parent
  33. * @param {string} [prop]
  34. * @param {number} [index]
  35. * @returns {Promise<BaseNode>}
  36. */
  37. visit(node: import("estree").BaseNode, parent: import("estree").BaseNode, prop?: string, index?: number): Promise<import("estree").BaseNode>;
  38. should_skip: any;
  39. should_remove: any;
  40. replacement: any;
  41. }
  42. export type BaseNode = import("estree").BaseNode;
  43. export type WalkerContext = {
  44. skip: () => void;
  45. remove: () => void;
  46. replace: (node: import("estree").BaseNode) => void;
  47. };
  48. export type AsyncHandler = (this: {
  49. skip: () => void;
  50. remove: () => void;
  51. replace: (node: import("estree").BaseNode) => void;
  52. }, node: import("estree").BaseNode, parent: import("estree").BaseNode, key: string, index: number) => Promise<void>;
  53. import { WalkerBase } from "./walker.js";