bbc12dec101f3b89f4462caed22fbedd5175f55ae00543462a16c5569de977509b2c99bbbb35545cfd6fe57e0e686ddef2a49158c889f7bb7c58346c40cdc4 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. /** @typedef { import('estree').BaseNode} BaseNode */
  2. /** @typedef {{
  3. skip: () => void;
  4. remove: () => void;
  5. replace: (node: BaseNode) => void;
  6. }} WalkerContext */
  7. export class WalkerBase {
  8. /** @type {boolean} */
  9. should_skip: boolean;
  10. /** @type {boolean} */
  11. should_remove: boolean;
  12. /** @type {BaseNode | null} */
  13. replacement: BaseNode | null;
  14. /** @type {WalkerContext} */
  15. context: WalkerContext;
  16. /**
  17. *
  18. * @param {any} parent
  19. * @param {string} prop
  20. * @param {number} index
  21. * @param {BaseNode} node
  22. */
  23. replace(parent: any, prop: string, index: number, node: import("estree").BaseNode): void;
  24. /**
  25. *
  26. * @param {any} parent
  27. * @param {string} prop
  28. * @param {number} index
  29. */
  30. remove(parent: any, prop: string, index: number): void;
  31. }
  32. export type BaseNode = import("estree").BaseNode;
  33. export type WalkerContext = {
  34. skip: () => void;
  35. remove: () => void;
  36. replace: (node: import("estree").BaseNode) => void;
  37. };