3c2118f42b28b3d0f1929f37086873fbd7f1bcb2b8797fd8a5e0f4a44dfa2cb325866600fdfc07f9e5c81c2212ff7d357670edac4ea939b1419df31ecfcc03 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /** @typedef { import('estree').BaseNode} BaseNode */
  2. /** @typedef { import('./walker.js').WalkerContext} WalkerContext */
  3. /** @typedef {(
  4. * this: WalkerContext,
  5. * node: BaseNode,
  6. * parent: BaseNode,
  7. * key: string,
  8. * index: number
  9. * ) => void} SyncHandler */
  10. export class SyncWalker extends WalkerBase {
  11. /**
  12. *
  13. * @param {SyncHandler} enter
  14. * @param {SyncHandler} 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) => 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) => void);
  25. /** @type {SyncHandler} */
  26. enter: SyncHandler;
  27. /** @type {SyncHandler} */
  28. leave: SyncHandler;
  29. /**
  30. *
  31. * @param {BaseNode} node
  32. * @param {BaseNode} parent
  33. * @param {string} [prop]
  34. * @param {number} [index]
  35. * @returns {BaseNode}
  36. */
  37. visit(node: import("estree").BaseNode, parent: import("estree").BaseNode, prop?: string, index?: number): 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 SyncHandler = (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) => void;
  53. import { WalkerBase } from "./walker.js";