@typescript/native-preview 7.0.0-dev.20260422.1 → 7.0.0-dev.20260423.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (327) hide show
  1. package/dist/api/async/api.d.ts +241 -0
  2. package/dist/api/async/api.d.ts.map +1 -0
  3. package/dist/api/async/api.js +810 -0
  4. package/dist/api/async/api.js.map +1 -0
  5. package/dist/api/async/client.d.ts +22 -0
  6. package/dist/api/async/client.d.ts.map +1 -0
  7. package/dist/api/async/client.js +140 -0
  8. package/dist/api/async/client.js.map +1 -0
  9. package/dist/api/async/types.d.ts +179 -0
  10. package/dist/api/async/types.d.ts.map +1 -0
  11. package/dist/api/async/types.js +2 -0
  12. package/dist/api/async/types.js.map +1 -0
  13. package/dist/api/fs.d.ts +23 -0
  14. package/dist/api/fs.d.ts.map +1 -0
  15. package/dist/api/fs.js +109 -0
  16. package/dist/api/fs.js.map +1 -0
  17. package/dist/api/node/encoder.d.ts +15 -0
  18. package/dist/api/node/encoder.d.ts.map +1 -0
  19. package/dist/api/node/encoder.generated.d.ts +5 -0
  20. package/dist/api/node/encoder.generated.d.ts.map +1 -0
  21. package/dist/api/node/encoder.generated.js +74 -0
  22. package/dist/api/node/encoder.generated.js.map +1 -0
  23. package/dist/api/node/encoder.js +304 -0
  24. package/dist/api/node/encoder.js.map +1 -0
  25. package/dist/api/node/msgpack.d.ts +32 -0
  26. package/dist/api/node/msgpack.d.ts.map +1 -0
  27. package/dist/api/node/msgpack.js +212 -0
  28. package/dist/api/node/msgpack.js.map +1 -0
  29. package/dist/api/node/node.d.ts +63 -0
  30. package/dist/api/node/node.d.ts.map +1 -0
  31. package/dist/api/node/node.generated.d.ts +172 -0
  32. package/dist/api/node/node.generated.d.ts.map +1 -0
  33. package/dist/api/node/node.generated.js +817 -0
  34. package/dist/api/node/node.generated.js.map +1 -0
  35. package/dist/api/node/node.infrastructure.d.ts +51 -0
  36. package/dist/api/node/node.infrastructure.d.ts.map +1 -0
  37. package/dist/api/node/node.infrastructure.js +122 -0
  38. package/dist/api/node/node.infrastructure.js.map +1 -0
  39. package/dist/api/node/node.js +201 -0
  40. package/dist/api/node/node.js.map +1 -0
  41. package/dist/api/node/protocol.d.ts +29 -0
  42. package/dist/api/node/protocol.d.ts.map +1 -0
  43. package/dist/api/node/protocol.generated.d.ts +4 -0
  44. package/dist/api/node/protocol.generated.d.ts.map +1 -0
  45. package/dist/api/node/protocol.generated.js +241 -0
  46. package/dist/api/node/protocol.generated.js.map +1 -0
  47. package/dist/api/node/protocol.js +30 -0
  48. package/dist/api/node/protocol.js.map +1 -0
  49. package/dist/api/objectRegistry.d.ts +38 -0
  50. package/dist/api/objectRegistry.d.ts.map +1 -0
  51. package/dist/api/objectRegistry.js +55 -0
  52. package/dist/api/objectRegistry.js.map +1 -0
  53. package/dist/api/options.d.ts +24 -0
  54. package/dist/api/options.d.ts.map +1 -0
  55. package/dist/api/options.js +11 -0
  56. package/dist/api/options.js.map +1 -0
  57. package/dist/api/path.d.ts +110 -0
  58. package/dist/api/path.d.ts.map +1 -0
  59. package/dist/api/path.js +508 -0
  60. package/dist/api/path.js.map +1 -0
  61. package/dist/api/proto.d.ts +152 -0
  62. package/dist/api/proto.d.ts.map +1 -0
  63. package/dist/api/proto.js +22 -0
  64. package/dist/api/proto.js.map +1 -0
  65. package/dist/api/sourceFileCache.d.ts +79 -0
  66. package/dist/api/sourceFileCache.d.ts.map +1 -0
  67. package/dist/api/sourceFileCache.js +169 -0
  68. package/dist/api/sourceFileCache.js.map +1 -0
  69. package/dist/api/sync/api.d.ts +241 -0
  70. package/dist/api/sync/api.d.ts.map +1 -0
  71. package/dist/api/sync/api.js +818 -0
  72. package/dist/api/sync/api.js.map +1 -0
  73. package/dist/api/sync/client.d.ts +13 -0
  74. package/dist/api/sync/client.d.ts.map +1 -0
  75. package/dist/api/sync/client.js +72 -0
  76. package/dist/api/sync/client.js.map +1 -0
  77. package/dist/api/sync/types.d.ts +179 -0
  78. package/dist/api/sync/types.d.ts.map +1 -0
  79. package/dist/api/sync/types.js +2 -0
  80. package/dist/api/sync/types.js.map +1 -0
  81. package/dist/api/syncChannel.d.ts +111 -0
  82. package/dist/api/syncChannel.d.ts.map +1 -0
  83. package/dist/api/syncChannel.js +488 -0
  84. package/dist/api/syncChannel.js.map +1 -0
  85. package/dist/ast/ast.d.ts +66 -0
  86. package/dist/ast/ast.d.ts.map +1 -0
  87. package/dist/ast/ast.generated.d.ts +1160 -0
  88. package/dist/ast/ast.generated.d.ts.map +1 -0
  89. package/dist/ast/ast.generated.js +4 -0
  90. package/dist/ast/ast.generated.js.map +1 -0
  91. package/dist/ast/ast.js +7 -0
  92. package/dist/ast/ast.js.map +1 -0
  93. package/dist/ast/astnav.d.ts +19 -0
  94. package/dist/ast/astnav.d.ts.map +1 -0
  95. package/dist/ast/astnav.js +596 -0
  96. package/dist/ast/astnav.js.map +1 -0
  97. package/dist/ast/clone.d.ts +16 -0
  98. package/dist/ast/clone.d.ts.map +1 -0
  99. package/dist/ast/clone.js +104 -0
  100. package/dist/ast/clone.js.map +1 -0
  101. package/dist/ast/factory.generated.d.ts +513 -0
  102. package/dist/ast/factory.generated.d.ts.map +1 -0
  103. package/dist/ast/factory.generated.js +3026 -0
  104. package/dist/ast/factory.generated.js.map +1 -0
  105. package/dist/ast/index.d.ts +18 -0
  106. package/dist/ast/index.d.ts.map +1 -0
  107. package/dist/ast/index.js +18 -0
  108. package/dist/ast/index.js.map +1 -0
  109. package/dist/ast/is.d.ts +34 -0
  110. package/dist/ast/is.d.ts.map +1 -0
  111. package/dist/ast/is.generated.d.ts +328 -0
  112. package/dist/ast/is.generated.d.ts.map +1 -0
  113. package/dist/ast/is.generated.js +1101 -0
  114. package/dist/ast/is.generated.js.map +1 -0
  115. package/dist/ast/is.js +226 -0
  116. package/dist/ast/is.js.map +1 -0
  117. package/dist/ast/scanner.d.ts +97 -0
  118. package/dist/ast/scanner.d.ts.map +1 -0
  119. package/dist/ast/scanner.js +2230 -0
  120. package/dist/ast/scanner.js.map +1 -0
  121. package/dist/ast/utils.d.ts +5 -0
  122. package/dist/ast/utils.d.ts.map +1 -0
  123. package/dist/ast/utils.js +27 -0
  124. package/dist/ast/utils.js.map +1 -0
  125. package/dist/ast/visitor.d.ts +14 -0
  126. package/dist/ast/visitor.d.ts.map +1 -0
  127. package/dist/ast/visitor.generated.d.ts +50 -0
  128. package/dist/ast/visitor.generated.d.ts.map +1 -0
  129. package/dist/ast/visitor.generated.js +978 -0
  130. package/dist/ast/visitor.generated.js.map +1 -0
  131. package/dist/ast/visitor.js +47 -0
  132. package/dist/ast/visitor.js.map +1 -0
  133. package/dist/enums/characterCodes.d.ts +2 -0
  134. package/dist/enums/characterCodes.d.ts.map +1 -0
  135. package/dist/enums/characterCodes.enum.d.ts +129 -0
  136. package/dist/enums/characterCodes.enum.d.ts.map +1 -0
  137. package/dist/enums/characterCodes.enum.js +132 -0
  138. package/dist/enums/characterCodes.enum.js.map +1 -0
  139. package/dist/enums/characterCodes.js +130 -0
  140. package/dist/enums/characterCodes.js.map +1 -0
  141. package/dist/enums/commentDirectiveType.d.ts +2 -0
  142. package/dist/enums/commentDirectiveType.d.ts.map +1 -0
  143. package/dist/enums/commentDirectiveType.enum.d.ts +5 -0
  144. package/dist/enums/commentDirectiveType.enum.d.ts.map +1 -0
  145. package/dist/enums/commentDirectiveType.enum.js +6 -0
  146. package/dist/enums/commentDirectiveType.enum.js.map +1 -0
  147. package/dist/enums/commentDirectiveType.js +6 -0
  148. package/dist/enums/commentDirectiveType.js.map +1 -0
  149. package/dist/enums/diagnosticCategory.d.ts +2 -0
  150. package/dist/enums/diagnosticCategory.d.ts.map +1 -0
  151. package/dist/enums/diagnosticCategory.enum.d.ts +7 -0
  152. package/dist/enums/diagnosticCategory.enum.d.ts.map +1 -0
  153. package/dist/enums/diagnosticCategory.enum.js +9 -0
  154. package/dist/enums/diagnosticCategory.enum.js.map +1 -0
  155. package/dist/enums/diagnosticCategory.js +9 -0
  156. package/dist/enums/diagnosticCategory.js.map +1 -0
  157. package/dist/enums/elementFlags.d.ts +2 -0
  158. package/dist/enums/elementFlags.d.ts.map +1 -0
  159. package/dist/enums/elementFlags.enum.d.ts +12 -0
  160. package/dist/enums/elementFlags.enum.d.ts.map +1 -0
  161. package/dist/enums/elementFlags.enum.js +14 -0
  162. package/dist/enums/elementFlags.enum.js.map +1 -0
  163. package/dist/enums/elementFlags.js +14 -0
  164. package/dist/enums/elementFlags.js.map +1 -0
  165. package/dist/enums/languageVariant.d.ts +2 -0
  166. package/dist/enums/languageVariant.d.ts.map +1 -0
  167. package/dist/enums/languageVariant.enum.d.ts +5 -0
  168. package/dist/enums/languageVariant.enum.d.ts.map +1 -0
  169. package/dist/enums/languageVariant.enum.js +6 -0
  170. package/dist/enums/languageVariant.enum.js.map +1 -0
  171. package/dist/enums/languageVariant.js +6 -0
  172. package/dist/enums/languageVariant.js.map +1 -0
  173. package/dist/enums/modifierFlags.d.ts +2 -0
  174. package/dist/enums/modifierFlags.d.ts.map +1 -0
  175. package/dist/enums/modifierFlags.enum.d.ts +42 -0
  176. package/dist/enums/modifierFlags.enum.d.ts.map +1 -0
  177. package/dist/enums/modifierFlags.enum.js +44 -0
  178. package/dist/enums/modifierFlags.enum.js.map +1 -0
  179. package/dist/enums/modifierFlags.js +44 -0
  180. package/dist/enums/modifierFlags.js.map +1 -0
  181. package/dist/enums/nodeFlags.d.ts +2 -0
  182. package/dist/enums/nodeFlags.d.ts.map +1 -0
  183. package/dist/enums/nodeFlags.enum.d.ts +41 -0
  184. package/dist/enums/nodeFlags.enum.d.ts.map +1 -0
  185. package/dist/enums/nodeFlags.enum.js +43 -0
  186. package/dist/enums/nodeFlags.enum.js.map +1 -0
  187. package/dist/enums/nodeFlags.js +43 -0
  188. package/dist/enums/nodeFlags.js.map +1 -0
  189. package/dist/enums/objectFlags.d.ts +2 -0
  190. package/dist/enums/objectFlags.d.ts.map +1 -0
  191. package/dist/enums/objectFlags.enum.d.ts +50 -0
  192. package/dist/enums/objectFlags.enum.d.ts.map +1 -0
  193. package/dist/enums/objectFlags.enum.js +52 -0
  194. package/dist/enums/objectFlags.enum.js.map +1 -0
  195. package/dist/enums/objectFlags.js +52 -0
  196. package/dist/enums/objectFlags.js.map +1 -0
  197. package/dist/enums/outerExpressionKinds.d.ts +2 -0
  198. package/dist/enums/outerExpressionKinds.d.ts.map +1 -0
  199. package/dist/enums/outerExpressionKinds.enum.d.ts +12 -0
  200. package/dist/enums/outerExpressionKinds.enum.d.ts.map +1 -0
  201. package/dist/enums/outerExpressionKinds.enum.js +14 -0
  202. package/dist/enums/outerExpressionKinds.enum.js.map +1 -0
  203. package/dist/enums/outerExpressionKinds.js +14 -0
  204. package/dist/enums/outerExpressionKinds.js.map +1 -0
  205. package/dist/enums/regularExpressionFlags.d.ts +2 -0
  206. package/dist/enums/regularExpressionFlags.d.ts.map +1 -0
  207. package/dist/enums/regularExpressionFlags.enum.d.ts +13 -0
  208. package/dist/enums/regularExpressionFlags.enum.d.ts.map +1 -0
  209. package/dist/enums/regularExpressionFlags.enum.js +14 -0
  210. package/dist/enums/regularExpressionFlags.enum.js.map +1 -0
  211. package/dist/enums/regularExpressionFlags.js +14 -0
  212. package/dist/enums/regularExpressionFlags.js.map +1 -0
  213. package/dist/enums/scriptKind.d.ts +2 -0
  214. package/dist/enums/scriptKind.d.ts.map +1 -0
  215. package/dist/enums/scriptKind.enum.d.ts +11 -0
  216. package/dist/enums/scriptKind.enum.d.ts.map +1 -0
  217. package/dist/enums/scriptKind.enum.js +12 -0
  218. package/dist/enums/scriptKind.enum.js.map +1 -0
  219. package/dist/enums/scriptKind.js +12 -0
  220. package/dist/enums/scriptKind.js.map +1 -0
  221. package/dist/enums/scriptTarget.d.ts +2 -0
  222. package/dist/enums/scriptTarget.d.ts.map +1 -0
  223. package/dist/enums/scriptTarget.enum.d.ts +17 -0
  224. package/dist/enums/scriptTarget.enum.d.ts.map +1 -0
  225. package/dist/enums/scriptTarget.enum.js +18 -0
  226. package/dist/enums/scriptTarget.enum.js.map +1 -0
  227. package/dist/enums/scriptTarget.js +18 -0
  228. package/dist/enums/scriptTarget.js.map +1 -0
  229. package/dist/enums/signatureFlags.d.ts +2 -0
  230. package/dist/enums/signatureFlags.d.ts.map +1 -0
  231. package/dist/enums/signatureFlags.enum.d.ts +15 -0
  232. package/dist/enums/signatureFlags.enum.d.ts.map +1 -0
  233. package/dist/enums/signatureFlags.enum.js +17 -0
  234. package/dist/enums/signatureFlags.enum.js.map +1 -0
  235. package/dist/enums/signatureFlags.js +17 -0
  236. package/dist/enums/signatureFlags.js.map +1 -0
  237. package/dist/enums/signatureKind.d.ts +2 -0
  238. package/dist/enums/signatureKind.d.ts.map +1 -0
  239. package/dist/enums/signatureKind.enum.d.ts +5 -0
  240. package/dist/enums/signatureKind.enum.d.ts.map +1 -0
  241. package/dist/enums/signatureKind.enum.js +7 -0
  242. package/dist/enums/signatureKind.enum.js.map +1 -0
  243. package/dist/enums/signatureKind.js +7 -0
  244. package/dist/enums/signatureKind.js.map +1 -0
  245. package/dist/enums/symbolFlags.d.ts +2 -0
  246. package/dist/enums/symbolFlags.d.ts.map +1 -0
  247. package/dist/enums/symbolFlags.enum.d.ts +71 -0
  248. package/dist/enums/symbolFlags.enum.d.ts.map +1 -0
  249. package/dist/enums/symbolFlags.enum.js +73 -0
  250. package/dist/enums/symbolFlags.enum.js.map +1 -0
  251. package/dist/enums/symbolFlags.js +73 -0
  252. package/dist/enums/symbolFlags.js.map +1 -0
  253. package/dist/enums/syntaxKind.d.ts +2 -0
  254. package/dist/enums/syntaxKind.d.ts.map +1 -0
  255. package/dist/enums/syntaxKind.enum.d.ts +389 -0
  256. package/dist/enums/syntaxKind.enum.d.ts.map +1 -0
  257. package/dist/enums/syntaxKind.enum.js +391 -0
  258. package/dist/enums/syntaxKind.enum.js.map +1 -0
  259. package/dist/enums/syntaxKind.js +391 -0
  260. package/dist/enums/syntaxKind.js.map +1 -0
  261. package/dist/enums/tokenFlags.d.ts +2 -0
  262. package/dist/enums/tokenFlags.d.ts.map +1 -0
  263. package/dist/enums/tokenFlags.enum.d.ts +30 -0
  264. package/dist/enums/tokenFlags.enum.d.ts.map +1 -0
  265. package/dist/enums/tokenFlags.enum.js +32 -0
  266. package/dist/enums/tokenFlags.enum.js.map +1 -0
  267. package/dist/enums/tokenFlags.js +32 -0
  268. package/dist/enums/tokenFlags.js.map +1 -0
  269. package/dist/enums/typeFlags.d.ts +2 -0
  270. package/dist/enums/typeFlags.d.ts.map +1 -0
  271. package/dist/enums/typeFlags.enum.d.ts +76 -0
  272. package/dist/enums/typeFlags.enum.d.ts.map +1 -0
  273. package/dist/enums/typeFlags.enum.js +78 -0
  274. package/dist/enums/typeFlags.enum.js.map +1 -0
  275. package/dist/enums/typeFlags.js +78 -0
  276. package/dist/enums/typeFlags.js.map +1 -0
  277. package/dist/enums/typePredicateKind.d.ts +2 -0
  278. package/dist/enums/typePredicateKind.d.ts.map +1 -0
  279. package/dist/enums/typePredicateKind.enum.d.ts +7 -0
  280. package/dist/enums/typePredicateKind.enum.d.ts.map +1 -0
  281. package/dist/enums/typePredicateKind.enum.js +9 -0
  282. package/dist/enums/typePredicateKind.enum.js.map +1 -0
  283. package/dist/enums/typePredicateKind.js +9 -0
  284. package/dist/enums/typePredicateKind.js.map +1 -0
  285. package/lib/getExePath.d.ts +2 -0
  286. package/package.json +57 -12
  287. package/vendor/vscode-jsonrpc/README.md +69 -0
  288. package/vendor/vscode-jsonrpc/lib/browser/main.d.ts +17 -0
  289. package/vendor/vscode-jsonrpc/lib/browser/main.js +83 -0
  290. package/vendor/vscode-jsonrpc/lib/browser/ril.d.ts +22 -0
  291. package/vendor/vscode-jsonrpc/lib/browser/ril.js +203 -0
  292. package/vendor/vscode-jsonrpc/lib/common/api.d.ts +14 -0
  293. package/vendor/vscode-jsonrpc/lib/common/api.js +87 -0
  294. package/vendor/vscode-jsonrpc/lib/common/cancellation.d.ts +32 -0
  295. package/vendor/vscode-jsonrpc/lib/common/cancellation.js +132 -0
  296. package/vendor/vscode-jsonrpc/lib/common/connection.d.ts +367 -0
  297. package/vendor/vscode-jsonrpc/lib/common/connection.js +1272 -0
  298. package/vendor/vscode-jsonrpc/lib/common/disposable.d.ts +9 -0
  299. package/vendor/vscode-jsonrpc/lib/common/disposable.js +16 -0
  300. package/vendor/vscode-jsonrpc/lib/common/encoding.d.ts +52 -0
  301. package/vendor/vscode-jsonrpc/lib/common/encoding.js +70 -0
  302. package/vendor/vscode-jsonrpc/lib/common/events.d.ts +39 -0
  303. package/vendor/vscode-jsonrpc/lib/common/events.js +136 -0
  304. package/vendor/vscode-jsonrpc/lib/common/is.d.ts +7 -0
  305. package/vendor/vscode-jsonrpc/lib/common/is.js +34 -0
  306. package/vendor/vscode-jsonrpc/lib/common/linkedMap.d.ts +55 -0
  307. package/vendor/vscode-jsonrpc/lib/common/linkedMap.js +412 -0
  308. package/vendor/vscode-jsonrpc/lib/common/messageBuffer.d.ts +18 -0
  309. package/vendor/vscode-jsonrpc/lib/common/messageBuffer.js +155 -0
  310. package/vendor/vscode-jsonrpc/lib/common/messageReader.d.ts +77 -0
  311. package/vendor/vscode-jsonrpc/lib/common/messageReader.js +246 -0
  312. package/vendor/vscode-jsonrpc/lib/common/messageWriter.d.ts +60 -0
  313. package/vendor/vscode-jsonrpc/lib/common/messageWriter.js +157 -0
  314. package/vendor/vscode-jsonrpc/lib/common/messages.d.ts +369 -0
  315. package/vendor/vscode-jsonrpc/lib/common/messages.js +436 -0
  316. package/vendor/vscode-jsonrpc/lib/common/ral.d.ts +74 -0
  317. package/vendor/vscode-jsonrpc/lib/common/ral.js +23 -0
  318. package/vendor/vscode-jsonrpc/lib/common/semaphore.d.ts +10 -0
  319. package/vendor/vscode-jsonrpc/lib/common/semaphore.js +74 -0
  320. package/vendor/vscode-jsonrpc/lib/common/sharedArrayCancellation.d.ts +15 -0
  321. package/vendor/vscode-jsonrpc/lib/common/sharedArrayCancellation.js +77 -0
  322. package/vendor/vscode-jsonrpc/lib/node/main.d.ts +58 -0
  323. package/vendor/vscode-jsonrpc/lib/node/main.js +289 -0
  324. package/vendor/vscode-jsonrpc/lib/node/ril.d.ts +12 -0
  325. package/vendor/vscode-jsonrpc/lib/node/ril.js +163 -0
  326. package/vendor/vscode-jsonrpc/package.json +54 -0
  327. package/vendor/vscode-jsonrpc/typings/thenable.d.ts +5 -0
@@ -0,0 +1,3026 @@
1
+ // Code generated by _scripts/generate-ts-ast.ts. DO NOT EDIT.
2
+ import { NodeFlags } from "#enums/nodeFlags";
3
+ import { SyntaxKind } from "#enums/syntaxKind";
4
+ import { TokenFlags } from "#enums/tokenFlags";
5
+ import { forEachChildOfJSDocParameterTag, forEachChildOfJSDocPropertyTag, } from "./visitor.js";
6
+ export class NodeObject {
7
+ kind;
8
+ flags = 0;
9
+ pos = -1;
10
+ end = -1;
11
+ parent = undefined;
12
+ _data;
13
+ constructor(kind, data) {
14
+ this.kind = kind;
15
+ this._data = data;
16
+ }
17
+ get ambientModuleNames() {
18
+ return this._data?.ambientModuleNames;
19
+ }
20
+ get argument() {
21
+ return this._data?.argument;
22
+ }
23
+ get argumentExpression() {
24
+ return this._data?.argumentExpression;
25
+ }
26
+ get arguments() {
27
+ return this._data?.arguments;
28
+ }
29
+ get assertsModifier() {
30
+ return this._data?.assertsModifier;
31
+ }
32
+ get asteriskToken() {
33
+ return this._data?.asteriskToken;
34
+ }
35
+ get attributes() {
36
+ return this._data?.attributes;
37
+ }
38
+ get awaitModifier() {
39
+ return this._data?.awaitModifier;
40
+ }
41
+ get block() {
42
+ return this._data?.block;
43
+ }
44
+ get body() {
45
+ return this._data?.body;
46
+ }
47
+ get caseBlock() {
48
+ return this._data?.caseBlock;
49
+ }
50
+ get catchClause() {
51
+ return this._data?.catchClause;
52
+ }
53
+ get checkType() {
54
+ return this._data?.checkType;
55
+ }
56
+ get children() {
57
+ return this._data?.children;
58
+ }
59
+ get className() {
60
+ return this._data?.className;
61
+ }
62
+ get clauses() {
63
+ return this._data?.clauses;
64
+ }
65
+ get closingElement() {
66
+ return this._data?.closingElement;
67
+ }
68
+ get closingFragment() {
69
+ return this._data?.closingFragment;
70
+ }
71
+ get colonToken() {
72
+ return this._data?.colonToken;
73
+ }
74
+ get comment() {
75
+ return this._data?.comment;
76
+ }
77
+ get condition() {
78
+ return this._data?.condition;
79
+ }
80
+ get constraint() {
81
+ return this._data?.constraint;
82
+ }
83
+ get containsOnlyTriviaWhiteSpaces() {
84
+ return this._data?.containsOnlyTriviaWhiteSpaces;
85
+ }
86
+ get declarationList() {
87
+ return this._data?.declarationList;
88
+ }
89
+ get declarations() {
90
+ return this._data?.declarations;
91
+ }
92
+ get defaultType() {
93
+ return this._data?.defaultType;
94
+ }
95
+ get dotDotDotToken() {
96
+ return this._data?.dotDotDotToken;
97
+ }
98
+ get elementType() {
99
+ return this._data?.elementType;
100
+ }
101
+ get elements() {
102
+ return this._data?.elements;
103
+ }
104
+ get elseStatement() {
105
+ return this._data?.elseStatement;
106
+ }
107
+ get endOfFileToken() {
108
+ return this._data?.endOfFileToken;
109
+ }
110
+ get equalsGreaterThanToken() {
111
+ return this._data?.equalsGreaterThanToken;
112
+ }
113
+ get equalsToken() {
114
+ return this._data?.equalsToken;
115
+ }
116
+ get exclamationToken() {
117
+ return this._data?.exclamationToken;
118
+ }
119
+ get exportClause() {
120
+ return this._data?.exportClause;
121
+ }
122
+ get exprName() {
123
+ return this._data?.exprName;
124
+ }
125
+ get expression() {
126
+ return this._data?.expression;
127
+ }
128
+ get extendsType() {
129
+ return this._data?.extendsType;
130
+ }
131
+ get externalModuleIndicator() {
132
+ return this._data?.externalModuleIndicator;
133
+ }
134
+ get falseType() {
135
+ return this._data?.falseType;
136
+ }
137
+ get fileName() {
138
+ return this._data?.fileName;
139
+ }
140
+ get finallyBlock() {
141
+ return this._data?.finallyBlock;
142
+ }
143
+ get fullName() {
144
+ return this._data?.fullName;
145
+ }
146
+ get head() {
147
+ return this._data?.head;
148
+ }
149
+ get heritageClauses() {
150
+ return this._data?.heritageClauses;
151
+ }
152
+ get importClause() {
153
+ return this._data?.importClause;
154
+ }
155
+ get imports() {
156
+ return this._data?.imports;
157
+ }
158
+ get incrementor() {
159
+ return this._data?.incrementor;
160
+ }
161
+ get indexType() {
162
+ return this._data?.indexType;
163
+ }
164
+ get initializer() {
165
+ return this._data?.initializer;
166
+ }
167
+ get isArrayType() {
168
+ return this._data?.isArrayType;
169
+ }
170
+ get isBracketed() {
171
+ return this._data?.isBracketed;
172
+ }
173
+ get isDeclarationFile() {
174
+ return this._data?.isDeclarationFile;
175
+ }
176
+ get isExportEquals() {
177
+ return this._data?.isExportEquals;
178
+ }
179
+ get isNameFirst() {
180
+ return this._data?.isNameFirst;
181
+ }
182
+ get isSpread() {
183
+ return this._data?.isSpread;
184
+ }
185
+ get isTypeOf() {
186
+ return this._data?.isTypeOf;
187
+ }
188
+ get isTypeOnly() {
189
+ return this._data?.isTypeOnly;
190
+ }
191
+ get jsdocPropertyTags() {
192
+ return this._data?.jsdocPropertyTags;
193
+ }
194
+ get keyword() {
195
+ return this._data?.keyword;
196
+ }
197
+ get keywordToken() {
198
+ return this._data?.keywordToken;
199
+ }
200
+ get label() {
201
+ return this._data?.label;
202
+ }
203
+ get languageVariant() {
204
+ return this._data?.languageVariant;
205
+ }
206
+ get left() {
207
+ return this._data?.left;
208
+ }
209
+ get libReferenceDirectives() {
210
+ return this._data?.libReferenceDirectives;
211
+ }
212
+ get literal() {
213
+ return this._data?.literal;
214
+ }
215
+ get members() {
216
+ return this._data?.members;
217
+ }
218
+ get modifiers() {
219
+ return this._data?.modifiers;
220
+ }
221
+ get moduleAugmentations() {
222
+ return this._data?.moduleAugmentations;
223
+ }
224
+ get moduleReference() {
225
+ return this._data?.moduleReference;
226
+ }
227
+ get moduleSpecifier() {
228
+ return this._data?.moduleSpecifier;
229
+ }
230
+ get multiLine() {
231
+ return this._data?.multiLine;
232
+ }
233
+ get name() {
234
+ return this._data?.name;
235
+ }
236
+ get nameExpression() {
237
+ return this._data?.nameExpression;
238
+ }
239
+ get nameType() {
240
+ return this._data?.nameType;
241
+ }
242
+ get namedBindings() {
243
+ return this._data?.namedBindings;
244
+ }
245
+ get namespace() {
246
+ return this._data?.namespace;
247
+ }
248
+ get objectAssignmentInitializer() {
249
+ return this._data?.objectAssignmentInitializer;
250
+ }
251
+ get objectType() {
252
+ return this._data?.objectType;
253
+ }
254
+ get openingElement() {
255
+ return this._data?.openingElement;
256
+ }
257
+ get openingFragment() {
258
+ return this._data?.openingFragment;
259
+ }
260
+ get operand() {
261
+ return this._data?.operand;
262
+ }
263
+ get operator() {
264
+ return this._data?.operator;
265
+ }
266
+ get operatorToken() {
267
+ return this._data?.operatorToken;
268
+ }
269
+ get parameterName() {
270
+ return this._data?.parameterName;
271
+ }
272
+ get parameters() {
273
+ return this._data?.parameters;
274
+ }
275
+ get path() {
276
+ return this._data?.path;
277
+ }
278
+ get phaseModifier() {
279
+ return this._data?.phaseModifier;
280
+ }
281
+ get postfixToken() {
282
+ return this._data?.postfixToken;
283
+ }
284
+ get properties() {
285
+ return this._data?.properties;
286
+ }
287
+ get propertyName() {
288
+ return this._data?.propertyName;
289
+ }
290
+ get qualifier() {
291
+ return this._data?.qualifier;
292
+ }
293
+ get questionDotToken() {
294
+ return this._data?.questionDotToken;
295
+ }
296
+ get questionToken() {
297
+ return this._data?.questionToken;
298
+ }
299
+ get rawText() {
300
+ return this._data?.rawText;
301
+ }
302
+ get readonlyToken() {
303
+ return this._data?.readonlyToken;
304
+ }
305
+ get referencedFiles() {
306
+ return this._data?.referencedFiles;
307
+ }
308
+ get right() {
309
+ return this._data?.right;
310
+ }
311
+ get scriptKind() {
312
+ return this._data?.scriptKind;
313
+ }
314
+ get statement() {
315
+ return this._data?.statement;
316
+ }
317
+ get statements() {
318
+ return this._data?.statements;
319
+ }
320
+ get tag() {
321
+ return this._data?.tag;
322
+ }
323
+ get tagName() {
324
+ return this._data?.tagName;
325
+ }
326
+ get tags() {
327
+ return this._data?.tags;
328
+ }
329
+ get template() {
330
+ return this._data?.template;
331
+ }
332
+ get templateFlags() {
333
+ return this._data?.templateFlags;
334
+ }
335
+ get templateSpans() {
336
+ return this._data?.templateSpans;
337
+ }
338
+ get text() {
339
+ return this._data?.text;
340
+ }
341
+ get thenStatement() {
342
+ return this._data?.thenStatement;
343
+ }
344
+ get thisArg() {
345
+ return this._data?.thisArg;
346
+ }
347
+ get token() {
348
+ return this._data?.token;
349
+ }
350
+ get tokenCache() {
351
+ return this._data?.tokenCache;
352
+ }
353
+ get tokenFlags() {
354
+ return this._data?.tokenFlags;
355
+ }
356
+ get trueType() {
357
+ return this._data?.trueType;
358
+ }
359
+ get tryBlock() {
360
+ return this._data?.tryBlock;
361
+ }
362
+ get tupleNameSource() {
363
+ return this._data?.tupleNameSource;
364
+ }
365
+ get type() {
366
+ return this._data?.type;
367
+ }
368
+ get typeArguments() {
369
+ return this._data?.typeArguments;
370
+ }
371
+ get typeExpression() {
372
+ return this._data?.typeExpression;
373
+ }
374
+ get typeName() {
375
+ return this._data?.typeName;
376
+ }
377
+ get typeParameter() {
378
+ return this._data?.typeParameter;
379
+ }
380
+ get typeParameters() {
381
+ return this._data?.typeParameters;
382
+ }
383
+ get typeReferenceDirectives() {
384
+ return this._data?.typeReferenceDirectives;
385
+ }
386
+ get types() {
387
+ return this._data?.types;
388
+ }
389
+ get value() {
390
+ return this._data?.value;
391
+ }
392
+ get variableDeclaration() {
393
+ return this._data?.variableDeclaration;
394
+ }
395
+ get whenFalse() {
396
+ return this._data?.whenFalse;
397
+ }
398
+ get whenTrue() {
399
+ return this._data?.whenTrue;
400
+ }
401
+ forEachChild(visitor, visitArray) {
402
+ const fn = forEachChildTable[this.kind];
403
+ return fn ? fn(this._data, visitor, visitArray) : undefined;
404
+ }
405
+ getSourceFile() {
406
+ let node = this;
407
+ while (node.parent)
408
+ node = node.parent;
409
+ return node;
410
+ }
411
+ }
412
+ function isNodeArray(array) {
413
+ return "pos" in array && "end" in array;
414
+ }
415
+ export function createNodeArray(elements, pos = -1, end = -1) {
416
+ if (isNodeArray(elements))
417
+ return elements;
418
+ const arr = elements.slice();
419
+ arr.pos = pos;
420
+ arr.end = end;
421
+ return arr;
422
+ }
423
+ export function cloneNode(node) {
424
+ const data = cloneNodeData(node);
425
+ const clone = new NodeObject(node.kind, data);
426
+ clone.flags = node.flags;
427
+ clone.pos = node.pos;
428
+ clone.end = node.end;
429
+ return clone;
430
+ }
431
+ function cloneNodeData(node) {
432
+ const n = node;
433
+ switch (node.kind) {
434
+ case SyntaxKind.Identifier:
435
+ return { text: n.text };
436
+ case SyntaxKind.PrivateIdentifier:
437
+ return { text: n.text };
438
+ case SyntaxKind.QualifiedName:
439
+ return { left: n.left, right: n.right };
440
+ case SyntaxKind.ComputedPropertyName:
441
+ return { expression: n.expression };
442
+ case SyntaxKind.Decorator:
443
+ return { expression: n.expression };
444
+ case SyntaxKind.IfStatement:
445
+ return { expression: n.expression, thenStatement: n.thenStatement, elseStatement: n.elseStatement };
446
+ case SyntaxKind.DoStatement:
447
+ return { statement: n.statement, expression: n.expression };
448
+ case SyntaxKind.WhileStatement:
449
+ return { expression: n.expression, statement: n.statement };
450
+ case SyntaxKind.ForStatement:
451
+ return { initializer: n.initializer, condition: n.condition, incrementor: n.incrementor, statement: n.statement };
452
+ case SyntaxKind.BreakStatement:
453
+ return { label: n.label };
454
+ case SyntaxKind.ContinueStatement:
455
+ return { label: n.label };
456
+ case SyntaxKind.ReturnStatement:
457
+ return { expression: n.expression };
458
+ case SyntaxKind.WithStatement:
459
+ return { expression: n.expression, statement: n.statement };
460
+ case SyntaxKind.SwitchStatement:
461
+ return { expression: n.expression, caseBlock: n.caseBlock };
462
+ case SyntaxKind.CaseBlock:
463
+ return { clauses: n.clauses };
464
+ case SyntaxKind.ThrowStatement:
465
+ return { expression: n.expression };
466
+ case SyntaxKind.TryStatement:
467
+ return { tryBlock: n.tryBlock, catchClause: n.catchClause, finallyBlock: n.finallyBlock };
468
+ case SyntaxKind.CatchClause:
469
+ return { variableDeclaration: n.variableDeclaration, block: n.block };
470
+ case SyntaxKind.LabeledStatement:
471
+ return { label: n.label, statement: n.statement };
472
+ case SyntaxKind.ExpressionStatement:
473
+ return { expression: n.expression };
474
+ case SyntaxKind.Block:
475
+ return { statements: n.statements, multiLine: n.multiLine };
476
+ case SyntaxKind.VariableStatement:
477
+ return { modifiers: n.modifiers, declarationList: n.declarationList };
478
+ case SyntaxKind.VariableDeclaration:
479
+ return { name: n.name, exclamationToken: n.exclamationToken, type: n.type, initializer: n.initializer };
480
+ case SyntaxKind.VariableDeclarationList:
481
+ return { declarations: n.declarations };
482
+ case SyntaxKind.Parameter:
483
+ return { modifiers: n.modifiers, dotDotDotToken: n.dotDotDotToken, name: n.name, questionToken: n.questionToken, type: n.type, initializer: n.initializer };
484
+ case SyntaxKind.BindingElement:
485
+ return { dotDotDotToken: n.dotDotDotToken, propertyName: n.propertyName, name: n.name, initializer: n.initializer };
486
+ case SyntaxKind.MissingDeclaration:
487
+ return { modifiers: n.modifiers };
488
+ case SyntaxKind.FunctionDeclaration:
489
+ return { modifiers: n.modifiers, asteriskToken: n.asteriskToken, name: n.name, typeParameters: n.typeParameters, parameters: n.parameters, type: n.type, body: n.body };
490
+ case SyntaxKind.ClassDeclaration:
491
+ return { modifiers: n.modifiers, name: n.name, typeParameters: n.typeParameters, heritageClauses: n.heritageClauses, members: n.members };
492
+ case SyntaxKind.ClassExpression:
493
+ return { modifiers: n.modifiers, name: n.name, typeParameters: n.typeParameters, heritageClauses: n.heritageClauses, members: n.members };
494
+ case SyntaxKind.HeritageClause:
495
+ return { token: n.token, types: n.types };
496
+ case SyntaxKind.InterfaceDeclaration:
497
+ return { modifiers: n.modifiers, name: n.name, typeParameters: n.typeParameters, heritageClauses: n.heritageClauses, members: n.members };
498
+ case SyntaxKind.TypeAliasDeclaration:
499
+ case SyntaxKind.JSTypeAliasDeclaration:
500
+ return { modifiers: n.modifiers, name: n.name, typeParameters: n.typeParameters, type: n.type };
501
+ case SyntaxKind.EnumMember:
502
+ return { name: n.name, initializer: n.initializer };
503
+ case SyntaxKind.EnumDeclaration:
504
+ return { modifiers: n.modifiers, name: n.name, members: n.members };
505
+ case SyntaxKind.ModuleBlock:
506
+ return { statements: n.statements };
507
+ case SyntaxKind.ImportDeclaration:
508
+ case SyntaxKind.JSImportDeclaration:
509
+ return { modifiers: n.modifiers, importClause: n.importClause, moduleSpecifier: n.moduleSpecifier, attributes: n.attributes };
510
+ case SyntaxKind.ExternalModuleReference:
511
+ return { expression: n.expression };
512
+ case SyntaxKind.NamespaceImport:
513
+ return { name: n.name };
514
+ case SyntaxKind.NamedImports:
515
+ return { elements: n.elements };
516
+ case SyntaxKind.ExportAssignment:
517
+ return { modifiers: n.modifiers, isExportEquals: n.isExportEquals, type: n.type, expression: n.expression };
518
+ case SyntaxKind.NamespaceExportDeclaration:
519
+ return { modifiers: n.modifiers, name: n.name };
520
+ case SyntaxKind.NamespaceExport:
521
+ return { name: n.name };
522
+ case SyntaxKind.NamedExports:
523
+ return { elements: n.elements };
524
+ case SyntaxKind.ExportSpecifier:
525
+ return { isTypeOnly: n.isTypeOnly, propertyName: n.propertyName, name: n.name };
526
+ case SyntaxKind.CallSignature:
527
+ return { typeParameters: n.typeParameters, parameters: n.parameters, type: n.type };
528
+ case SyntaxKind.ConstructSignature:
529
+ return { typeParameters: n.typeParameters, parameters: n.parameters, type: n.type };
530
+ case SyntaxKind.Constructor:
531
+ return { modifiers: n.modifiers, typeParameters: n.typeParameters, parameters: n.parameters, type: n.type, body: n.body };
532
+ case SyntaxKind.GetAccessor:
533
+ return { modifiers: n.modifiers, name: n.name, typeParameters: n.typeParameters, parameters: n.parameters, type: n.type, body: n.body };
534
+ case SyntaxKind.SetAccessor:
535
+ return { modifiers: n.modifiers, name: n.name, typeParameters: n.typeParameters, parameters: n.parameters, type: n.type, body: n.body };
536
+ case SyntaxKind.IndexSignature:
537
+ return { modifiers: n.modifiers, parameters: n.parameters, type: n.type };
538
+ case SyntaxKind.MethodSignature:
539
+ return { modifiers: n.modifiers, name: n.name, postfixToken: n.postfixToken, typeParameters: n.typeParameters, parameters: n.parameters, type: n.type };
540
+ case SyntaxKind.MethodDeclaration:
541
+ return { modifiers: n.modifiers, asteriskToken: n.asteriskToken, name: n.name, postfixToken: n.postfixToken, typeParameters: n.typeParameters, parameters: n.parameters, type: n.type, body: n.body };
542
+ case SyntaxKind.PropertySignature:
543
+ return { modifiers: n.modifiers, name: n.name, postfixToken: n.postfixToken, type: n.type, initializer: n.initializer };
544
+ case SyntaxKind.PropertyDeclaration:
545
+ return { modifiers: n.modifiers, name: n.name, postfixToken: n.postfixToken, type: n.type, initializer: n.initializer };
546
+ case SyntaxKind.ClassStaticBlockDeclaration:
547
+ return { modifiers: n.modifiers, body: n.body };
548
+ case SyntaxKind.StringLiteral:
549
+ return { text: n.text, tokenFlags: n.tokenFlags };
550
+ case SyntaxKind.NumericLiteral:
551
+ return { text: n.text, tokenFlags: n.tokenFlags };
552
+ case SyntaxKind.BigIntLiteral:
553
+ return { text: n.text, tokenFlags: n.tokenFlags };
554
+ case SyntaxKind.RegularExpressionLiteral:
555
+ return { text: n.text, tokenFlags: n.tokenFlags };
556
+ case SyntaxKind.NoSubstitutionTemplateLiteral:
557
+ return { text: n.text, templateFlags: n.templateFlags };
558
+ case SyntaxKind.BinaryExpression:
559
+ return { modifiers: n.modifiers, left: n.left, type: n.type, operatorToken: n.operatorToken, right: n.right };
560
+ case SyntaxKind.PrefixUnaryExpression:
561
+ return { operator: n.operator, operand: n.operand };
562
+ case SyntaxKind.PostfixUnaryExpression:
563
+ return { operand: n.operand, operator: n.operator };
564
+ case SyntaxKind.YieldExpression:
565
+ return { asteriskToken: n.asteriskToken, expression: n.expression };
566
+ case SyntaxKind.ArrowFunction:
567
+ return { modifiers: n.modifiers, typeParameters: n.typeParameters, parameters: n.parameters, type: n.type, equalsGreaterThanToken: n.equalsGreaterThanToken, body: n.body };
568
+ case SyntaxKind.FunctionExpression:
569
+ return { modifiers: n.modifiers, asteriskToken: n.asteriskToken, name: n.name, typeParameters: n.typeParameters, parameters: n.parameters, type: n.type, body: n.body };
570
+ case SyntaxKind.AsExpression:
571
+ return { expression: n.expression, type: n.type };
572
+ case SyntaxKind.SatisfiesExpression:
573
+ return { expression: n.expression, type: n.type };
574
+ case SyntaxKind.ConditionalExpression:
575
+ return { condition: n.condition, questionToken: n.questionToken, whenTrue: n.whenTrue, colonToken: n.colonToken, whenFalse: n.whenFalse };
576
+ case SyntaxKind.PropertyAccessExpression:
577
+ return { expression: n.expression, questionDotToken: n.questionDotToken, name: n.name };
578
+ case SyntaxKind.ElementAccessExpression:
579
+ return { expression: n.expression, questionDotToken: n.questionDotToken, argumentExpression: n.argumentExpression };
580
+ case SyntaxKind.CallExpression:
581
+ return { expression: n.expression, questionDotToken: n.questionDotToken, typeArguments: n.typeArguments, arguments: n.arguments };
582
+ case SyntaxKind.NewExpression:
583
+ return { expression: n.expression, typeArguments: n.typeArguments, arguments: n.arguments };
584
+ case SyntaxKind.MetaProperty:
585
+ return { keywordToken: n.keywordToken, name: n.name };
586
+ case SyntaxKind.NonNullExpression:
587
+ return { expression: n.expression };
588
+ case SyntaxKind.SpreadElement:
589
+ return { expression: n.expression };
590
+ case SyntaxKind.TemplateExpression:
591
+ return { head: n.head, templateSpans: n.templateSpans };
592
+ case SyntaxKind.TemplateSpan:
593
+ return { expression: n.expression, literal: n.literal };
594
+ case SyntaxKind.TaggedTemplateExpression:
595
+ return { tag: n.tag, questionDotToken: n.questionDotToken, typeArguments: n.typeArguments, template: n.template };
596
+ case SyntaxKind.ParenthesizedExpression:
597
+ return { expression: n.expression };
598
+ case SyntaxKind.ArrayLiteralExpression:
599
+ return { elements: n.elements, multiLine: n.multiLine };
600
+ case SyntaxKind.ObjectLiteralExpression:
601
+ return { properties: n.properties, multiLine: n.multiLine };
602
+ case SyntaxKind.SpreadAssignment:
603
+ return { expression: n.expression };
604
+ case SyntaxKind.PropertyAssignment:
605
+ return { modifiers: n.modifiers, name: n.name, postfixToken: n.postfixToken, type: n.type, initializer: n.initializer };
606
+ case SyntaxKind.ShorthandPropertyAssignment:
607
+ return { modifiers: n.modifiers, name: n.name, postfixToken: n.postfixToken, type: n.type, equalsToken: n.equalsToken, objectAssignmentInitializer: n.objectAssignmentInitializer };
608
+ case SyntaxKind.DeleteExpression:
609
+ return { expression: n.expression };
610
+ case SyntaxKind.TypeOfExpression:
611
+ return { expression: n.expression };
612
+ case SyntaxKind.VoidExpression:
613
+ return { expression: n.expression };
614
+ case SyntaxKind.AwaitExpression:
615
+ return { expression: n.expression };
616
+ case SyntaxKind.TypeAssertionExpression:
617
+ return { type: n.type, expression: n.expression };
618
+ case SyntaxKind.UnionType:
619
+ return { types: n.types };
620
+ case SyntaxKind.IntersectionType:
621
+ return { types: n.types };
622
+ case SyntaxKind.ConditionalType:
623
+ return { checkType: n.checkType, extendsType: n.extendsType, trueType: n.trueType, falseType: n.falseType };
624
+ case SyntaxKind.TypeOperator:
625
+ return { operator: n.operator, type: n.type };
626
+ case SyntaxKind.InferType:
627
+ return { typeParameter: n.typeParameter };
628
+ case SyntaxKind.ArrayType:
629
+ return { elementType: n.elementType };
630
+ case SyntaxKind.IndexedAccessType:
631
+ return { objectType: n.objectType, indexType: n.indexType };
632
+ case SyntaxKind.TypeReference:
633
+ return { typeName: n.typeName, typeArguments: n.typeArguments };
634
+ case SyntaxKind.ExpressionWithTypeArguments:
635
+ return { expression: n.expression, typeArguments: n.typeArguments };
636
+ case SyntaxKind.LiteralType:
637
+ return { literal: n.literal };
638
+ case SyntaxKind.TypePredicate:
639
+ return { assertsModifier: n.assertsModifier, parameterName: n.parameterName, type: n.type };
640
+ case SyntaxKind.ImportAttribute:
641
+ return { name: n.name, value: n.value };
642
+ case SyntaxKind.ImportAttributes:
643
+ return { token: n.token, attributes: n.attributes, multiLine: n.multiLine };
644
+ case SyntaxKind.TypeQuery:
645
+ return { exprName: n.exprName, typeArguments: n.typeArguments };
646
+ case SyntaxKind.MappedType:
647
+ return { readonlyToken: n.readonlyToken, typeParameter: n.typeParameter, nameType: n.nameType, questionToken: n.questionToken, type: n.type, members: n.members };
648
+ case SyntaxKind.TypeLiteral:
649
+ return { members: n.members };
650
+ case SyntaxKind.TupleType:
651
+ return { elements: n.elements };
652
+ case SyntaxKind.NamedTupleMember:
653
+ return { dotDotDotToken: n.dotDotDotToken, name: n.name, questionToken: n.questionToken, type: n.type };
654
+ case SyntaxKind.OptionalType:
655
+ return { type: n.type };
656
+ case SyntaxKind.RestType:
657
+ return { type: n.type };
658
+ case SyntaxKind.ParenthesizedType:
659
+ return { type: n.type };
660
+ case SyntaxKind.FunctionType:
661
+ return { typeParameters: n.typeParameters, parameters: n.parameters, type: n.type };
662
+ case SyntaxKind.ConstructorType:
663
+ return { modifiers: n.modifiers, typeParameters: n.typeParameters, parameters: n.parameters, type: n.type };
664
+ case SyntaxKind.TemplateHead:
665
+ return { text: n.text, rawText: n.rawText, templateFlags: n.templateFlags };
666
+ case SyntaxKind.TemplateMiddle:
667
+ return { text: n.text, rawText: n.rawText, templateFlags: n.templateFlags };
668
+ case SyntaxKind.TemplateTail:
669
+ return { text: n.text, rawText: n.rawText, templateFlags: n.templateFlags };
670
+ case SyntaxKind.TemplateLiteralType:
671
+ return { head: n.head, templateSpans: n.templateSpans };
672
+ case SyntaxKind.TemplateLiteralTypeSpan:
673
+ return { type: n.type, literal: n.literal };
674
+ case SyntaxKind.SyntheticExpression:
675
+ return { type: n.type, isSpread: n.isSpread, tupleNameSource: n.tupleNameSource };
676
+ case SyntaxKind.PartiallyEmittedExpression:
677
+ return { expression: n.expression };
678
+ case SyntaxKind.JsxElement:
679
+ return { openingElement: n.openingElement, children: n.children, closingElement: n.closingElement };
680
+ case SyntaxKind.JsxAttributes:
681
+ return { properties: n.properties };
682
+ case SyntaxKind.JsxNamespacedName:
683
+ return { namespace: n.namespace, name: n.name };
684
+ case SyntaxKind.JsxOpeningElement:
685
+ return { tagName: n.tagName, typeArguments: n.typeArguments, attributes: n.attributes };
686
+ case SyntaxKind.JsxSelfClosingElement:
687
+ return { tagName: n.tagName, typeArguments: n.typeArguments, attributes: n.attributes };
688
+ case SyntaxKind.JsxFragment:
689
+ return { openingFragment: n.openingFragment, children: n.children, closingFragment: n.closingFragment };
690
+ case SyntaxKind.JsxAttribute:
691
+ return { name: n.name, initializer: n.initializer };
692
+ case SyntaxKind.JsxSpreadAttribute:
693
+ return { expression: n.expression };
694
+ case SyntaxKind.JsxClosingElement:
695
+ return { tagName: n.tagName };
696
+ case SyntaxKind.JsxExpression:
697
+ return { dotDotDotToken: n.dotDotDotToken, expression: n.expression };
698
+ case SyntaxKind.JsxText:
699
+ return { text: n.text, containsOnlyTriviaWhiteSpaces: n.containsOnlyTriviaWhiteSpaces };
700
+ case SyntaxKind.SyntaxList:
701
+ return { children: n.children };
702
+ case SyntaxKind.JSDoc:
703
+ return { comment: n.comment, tags: n.tags };
704
+ case SyntaxKind.JSDocTypeExpression:
705
+ return { type: n.type };
706
+ case SyntaxKind.JSDocNonNullableType:
707
+ return { type: n.type };
708
+ case SyntaxKind.JSDocNullableType:
709
+ return { type: n.type };
710
+ case SyntaxKind.JSDocVariadicType:
711
+ return { type: n.type };
712
+ case SyntaxKind.JSDocOptionalType:
713
+ return { type: n.type };
714
+ case SyntaxKind.JSDocTypeTag:
715
+ return { tagName: n.tagName, typeExpression: n.typeExpression, comment: n.comment };
716
+ case SyntaxKind.JSDocUnknownTag:
717
+ return { tagName: n.tagName, comment: n.comment };
718
+ case SyntaxKind.JSDocTemplateTag:
719
+ return { tagName: n.tagName, constraint: n.constraint, typeParameters: n.typeParameters, comment: n.comment };
720
+ case SyntaxKind.JSDocReturnTag:
721
+ return { tagName: n.tagName, typeExpression: n.typeExpression, comment: n.comment };
722
+ case SyntaxKind.JSDocPublicTag:
723
+ return { tagName: n.tagName, comment: n.comment };
724
+ case SyntaxKind.JSDocPrivateTag:
725
+ return { tagName: n.tagName, comment: n.comment };
726
+ case SyntaxKind.JSDocProtectedTag:
727
+ return { tagName: n.tagName, comment: n.comment };
728
+ case SyntaxKind.JSDocReadonlyTag:
729
+ return { tagName: n.tagName, comment: n.comment };
730
+ case SyntaxKind.JSDocOverrideTag:
731
+ return { tagName: n.tagName, comment: n.comment };
732
+ case SyntaxKind.JSDocDeprecatedTag:
733
+ return { tagName: n.tagName, comment: n.comment };
734
+ case SyntaxKind.JSDocSeeTag:
735
+ return { tagName: n.tagName, nameExpression: n.nameExpression, comment: n.comment };
736
+ case SyntaxKind.JSDocImplementsTag:
737
+ return { tagName: n.tagName, className: n.className, comment: n.comment };
738
+ case SyntaxKind.JSDocAugmentsTag:
739
+ return { tagName: n.tagName, className: n.className, comment: n.comment };
740
+ case SyntaxKind.JSDocSatisfiesTag:
741
+ return { tagName: n.tagName, typeExpression: n.typeExpression, comment: n.comment };
742
+ case SyntaxKind.JSDocThrowsTag:
743
+ return { tagName: n.tagName, typeExpression: n.typeExpression, comment: n.comment };
744
+ case SyntaxKind.JSDocThisTag:
745
+ return { tagName: n.tagName, typeExpression: n.typeExpression, comment: n.comment };
746
+ case SyntaxKind.JSDocImportTag:
747
+ return { tagName: n.tagName, importClause: n.importClause, moduleSpecifier: n.moduleSpecifier, attributes: n.attributes, comment: n.comment };
748
+ case SyntaxKind.JSDocCallbackTag:
749
+ return { tagName: n.tagName, typeExpression: n.typeExpression, fullName: n.fullName, comment: n.comment };
750
+ case SyntaxKind.JSDocOverloadTag:
751
+ return { tagName: n.tagName, typeExpression: n.typeExpression, comment: n.comment };
752
+ case SyntaxKind.JSDocTypedefTag:
753
+ return { tagName: n.tagName, typeExpression: n.typeExpression, name: n.name, comment: n.comment };
754
+ case SyntaxKind.JSDocSignature:
755
+ return { typeParameters: n.typeParameters, parameters: n.parameters, type: n.type };
756
+ case SyntaxKind.JSDocNameReference:
757
+ return { name: n.name };
758
+ case SyntaxKind.ModuleDeclaration:
759
+ return { modifiers: n.modifiers, keyword: n.keyword, name: n.name, body: n.body };
760
+ case SyntaxKind.ImportEqualsDeclaration:
761
+ return { modifiers: n.modifiers, isTypeOnly: n.isTypeOnly, name: n.name, moduleReference: n.moduleReference };
762
+ case SyntaxKind.ExportDeclaration:
763
+ return { modifiers: n.modifiers, isTypeOnly: n.isTypeOnly, exportClause: n.exportClause, moduleSpecifier: n.moduleSpecifier, attributes: n.attributes };
764
+ case SyntaxKind.ImportType:
765
+ return { isTypeOf: n.isTypeOf, argument: n.argument, attributes: n.attributes, qualifier: n.qualifier, typeArguments: n.typeArguments };
766
+ case SyntaxKind.ImportClause:
767
+ return { phaseModifier: n.phaseModifier, name: n.name, namedBindings: n.namedBindings };
768
+ case SyntaxKind.ImportSpecifier:
769
+ return { isTypeOnly: n.isTypeOnly, propertyName: n.propertyName, name: n.name };
770
+ case SyntaxKind.JSDocText:
771
+ return { text: n.text };
772
+ case SyntaxKind.JSDocLink:
773
+ return { name: n.name, text: n.text };
774
+ case SyntaxKind.JSDocLinkPlain:
775
+ return { name: n.name, text: n.text };
776
+ case SyntaxKind.JSDocLinkCode:
777
+ return { name: n.name, text: n.text };
778
+ case SyntaxKind.TypeParameter:
779
+ return { modifiers: n.modifiers, name: n.name, constraint: n.constraint, expression: n.expression, defaultType: n.defaultType };
780
+ case SyntaxKind.SyntheticReferenceExpression:
781
+ return { expression: n.expression, thisArg: n.thisArg };
782
+ case SyntaxKind.JSDocTypeLiteral:
783
+ return { jsdocPropertyTags: n.jsdocPropertyTags, isArrayType: n.isArrayType };
784
+ case SyntaxKind.ForInStatement:
785
+ return { awaitModifier: n.awaitModifier, initializer: n.initializer, expression: n.expression, statement: n.statement };
786
+ case SyntaxKind.ForOfStatement:
787
+ return { awaitModifier: n.awaitModifier, initializer: n.initializer, expression: n.expression, statement: n.statement };
788
+ case SyntaxKind.CaseClause:
789
+ return { expression: n.expression, statements: n.statements };
790
+ case SyntaxKind.DefaultClause:
791
+ return { expression: n.expression, statements: n.statements };
792
+ case SyntaxKind.ObjectBindingPattern:
793
+ return { elements: n.elements };
794
+ case SyntaxKind.ArrayBindingPattern:
795
+ return { elements: n.elements };
796
+ case SyntaxKind.JSDocParameterTag:
797
+ return { tagName: n.tagName, name: n.name, isBracketed: n.isBracketed, typeExpression: n.typeExpression, isNameFirst: n.isNameFirst, comment: n.comment };
798
+ case SyntaxKind.JSDocPropertyTag:
799
+ return { tagName: n.tagName, name: n.name, isBracketed: n.isBracketed, typeExpression: n.typeExpression, isNameFirst: n.isNameFirst, comment: n.comment };
800
+ case SyntaxKind.SourceFile:
801
+ return { statements: n.statements, endOfFileToken: n.endOfFileToken, text: n.text, fileName: n.fileName, path: n.path };
802
+ default:
803
+ return undefined;
804
+ }
805
+ }
806
+ const forEachChildTable = {
807
+ [SyntaxKind.QualifiedName]: (data, cbNode, cbNodes) => visitNode(cbNode, data.left) ||
808
+ visitNode(cbNode, data.right),
809
+ [SyntaxKind.ComputedPropertyName]: (data, cbNode, cbNodes) => visitNode(cbNode, data.expression),
810
+ [SyntaxKind.Decorator]: (data, cbNode, cbNodes) => visitNode(cbNode, data.expression),
811
+ [SyntaxKind.IfStatement]: (data, cbNode, cbNodes) => visitNode(cbNode, data.expression) ||
812
+ visitNode(cbNode, data.thenStatement) ||
813
+ visitNode(cbNode, data.elseStatement),
814
+ [SyntaxKind.DoStatement]: (data, cbNode, cbNodes) => visitNode(cbNode, data.statement) ||
815
+ visitNode(cbNode, data.expression),
816
+ [SyntaxKind.WhileStatement]: (data, cbNode, cbNodes) => visitNode(cbNode, data.expression) ||
817
+ visitNode(cbNode, data.statement),
818
+ [SyntaxKind.ForStatement]: (data, cbNode, cbNodes) => visitNode(cbNode, data.initializer) ||
819
+ visitNode(cbNode, data.condition) ||
820
+ visitNode(cbNode, data.incrementor) ||
821
+ visitNode(cbNode, data.statement),
822
+ [SyntaxKind.BreakStatement]: (data, cbNode, cbNodes) => visitNode(cbNode, data.label),
823
+ [SyntaxKind.ContinueStatement]: (data, cbNode, cbNodes) => visitNode(cbNode, data.label),
824
+ [SyntaxKind.ReturnStatement]: (data, cbNode, cbNodes) => visitNode(cbNode, data.expression),
825
+ [SyntaxKind.WithStatement]: (data, cbNode, cbNodes) => visitNode(cbNode, data.expression) ||
826
+ visitNode(cbNode, data.statement),
827
+ [SyntaxKind.SwitchStatement]: (data, cbNode, cbNodes) => visitNode(cbNode, data.expression) ||
828
+ visitNode(cbNode, data.caseBlock),
829
+ [SyntaxKind.CaseBlock]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.clauses),
830
+ [SyntaxKind.ThrowStatement]: (data, cbNode, cbNodes) => visitNode(cbNode, data.expression),
831
+ [SyntaxKind.TryStatement]: (data, cbNode, cbNodes) => visitNode(cbNode, data.tryBlock) ||
832
+ visitNode(cbNode, data.catchClause) ||
833
+ visitNode(cbNode, data.finallyBlock),
834
+ [SyntaxKind.CatchClause]: (data, cbNode, cbNodes) => visitNode(cbNode, data.variableDeclaration) ||
835
+ visitNode(cbNode, data.block),
836
+ [SyntaxKind.LabeledStatement]: (data, cbNode, cbNodes) => visitNode(cbNode, data.label) ||
837
+ visitNode(cbNode, data.statement),
838
+ [SyntaxKind.ExpressionStatement]: (data, cbNode, cbNodes) => visitNode(cbNode, data.expression),
839
+ [SyntaxKind.Block]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.statements),
840
+ [SyntaxKind.VariableStatement]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.modifiers) ||
841
+ visitNode(cbNode, data.declarationList),
842
+ [SyntaxKind.VariableDeclaration]: (data, cbNode, cbNodes) => visitNode(cbNode, data.name) ||
843
+ visitNode(cbNode, data.exclamationToken) ||
844
+ visitNode(cbNode, data.type) ||
845
+ visitNode(cbNode, data.initializer),
846
+ [SyntaxKind.VariableDeclarationList]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.declarations),
847
+ [SyntaxKind.Parameter]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.modifiers) ||
848
+ visitNode(cbNode, data.dotDotDotToken) ||
849
+ visitNode(cbNode, data.name) ||
850
+ visitNode(cbNode, data.questionToken) ||
851
+ visitNode(cbNode, data.type) ||
852
+ visitNode(cbNode, data.initializer),
853
+ [SyntaxKind.BindingElement]: (data, cbNode, cbNodes) => visitNode(cbNode, data.dotDotDotToken) ||
854
+ visitNode(cbNode, data.propertyName) ||
855
+ visitNode(cbNode, data.name) ||
856
+ visitNode(cbNode, data.initializer),
857
+ [SyntaxKind.MissingDeclaration]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.modifiers),
858
+ [SyntaxKind.FunctionDeclaration]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.modifiers) ||
859
+ visitNode(cbNode, data.asteriskToken) ||
860
+ visitNode(cbNode, data.name) ||
861
+ visitNodes(cbNode, cbNodes, data.typeParameters) ||
862
+ visitNodes(cbNode, cbNodes, data.parameters) ||
863
+ visitNode(cbNode, data.type) ||
864
+ visitNode(cbNode, data.body),
865
+ [SyntaxKind.ClassDeclaration]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.modifiers) ||
866
+ visitNode(cbNode, data.name) ||
867
+ visitNodes(cbNode, cbNodes, data.typeParameters) ||
868
+ visitNodes(cbNode, cbNodes, data.heritageClauses) ||
869
+ visitNodes(cbNode, cbNodes, data.members),
870
+ [SyntaxKind.ClassExpression]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.modifiers) ||
871
+ visitNode(cbNode, data.name) ||
872
+ visitNodes(cbNode, cbNodes, data.typeParameters) ||
873
+ visitNodes(cbNode, cbNodes, data.heritageClauses) ||
874
+ visitNodes(cbNode, cbNodes, data.members),
875
+ [SyntaxKind.HeritageClause]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.types),
876
+ [SyntaxKind.InterfaceDeclaration]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.modifiers) ||
877
+ visitNode(cbNode, data.name) ||
878
+ visitNodes(cbNode, cbNodes, data.typeParameters) ||
879
+ visitNodes(cbNode, cbNodes, data.heritageClauses) ||
880
+ visitNodes(cbNode, cbNodes, data.members),
881
+ [SyntaxKind.TypeAliasDeclaration]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.modifiers) ||
882
+ visitNode(cbNode, data.name) ||
883
+ visitNodes(cbNode, cbNodes, data.typeParameters) ||
884
+ visitNode(cbNode, data.type),
885
+ [SyntaxKind.JSTypeAliasDeclaration]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.modifiers) ||
886
+ visitNode(cbNode, data.name) ||
887
+ visitNodes(cbNode, cbNodes, data.typeParameters) ||
888
+ visitNode(cbNode, data.type),
889
+ [SyntaxKind.EnumMember]: (data, cbNode, cbNodes) => visitNode(cbNode, data.name) ||
890
+ visitNode(cbNode, data.initializer),
891
+ [SyntaxKind.EnumDeclaration]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.modifiers) ||
892
+ visitNode(cbNode, data.name) ||
893
+ visitNodes(cbNode, cbNodes, data.members),
894
+ [SyntaxKind.ModuleBlock]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.statements),
895
+ [SyntaxKind.ImportDeclaration]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.modifiers) ||
896
+ visitNode(cbNode, data.importClause) ||
897
+ visitNode(cbNode, data.moduleSpecifier) ||
898
+ visitNode(cbNode, data.attributes),
899
+ [SyntaxKind.JSImportDeclaration]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.modifiers) ||
900
+ visitNode(cbNode, data.importClause) ||
901
+ visitNode(cbNode, data.moduleSpecifier) ||
902
+ visitNode(cbNode, data.attributes),
903
+ [SyntaxKind.ExternalModuleReference]: (data, cbNode, cbNodes) => visitNode(cbNode, data.expression),
904
+ [SyntaxKind.NamespaceImport]: (data, cbNode, cbNodes) => visitNode(cbNode, data.name),
905
+ [SyntaxKind.NamedImports]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.elements),
906
+ [SyntaxKind.ExportAssignment]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.modifiers) ||
907
+ visitNode(cbNode, data.type) ||
908
+ visitNode(cbNode, data.expression),
909
+ [SyntaxKind.NamespaceExportDeclaration]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.modifiers) ||
910
+ visitNode(cbNode, data.name),
911
+ [SyntaxKind.NamespaceExport]: (data, cbNode, cbNodes) => visitNode(cbNode, data.name),
912
+ [SyntaxKind.NamedExports]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.elements),
913
+ [SyntaxKind.ExportSpecifier]: (data, cbNode, cbNodes) => visitNode(cbNode, data.propertyName) ||
914
+ visitNode(cbNode, data.name),
915
+ [SyntaxKind.CallSignature]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.typeParameters) ||
916
+ visitNodes(cbNode, cbNodes, data.parameters) ||
917
+ visitNode(cbNode, data.type),
918
+ [SyntaxKind.ConstructSignature]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.typeParameters) ||
919
+ visitNodes(cbNode, cbNodes, data.parameters) ||
920
+ visitNode(cbNode, data.type),
921
+ [SyntaxKind.Constructor]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.modifiers) ||
922
+ visitNodes(cbNode, cbNodes, data.typeParameters) ||
923
+ visitNodes(cbNode, cbNodes, data.parameters) ||
924
+ visitNode(cbNode, data.type) ||
925
+ visitNode(cbNode, data.body),
926
+ [SyntaxKind.GetAccessor]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.modifiers) ||
927
+ visitNode(cbNode, data.name) ||
928
+ visitNodes(cbNode, cbNodes, data.typeParameters) ||
929
+ visitNodes(cbNode, cbNodes, data.parameters) ||
930
+ visitNode(cbNode, data.type) ||
931
+ visitNode(cbNode, data.body),
932
+ [SyntaxKind.SetAccessor]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.modifiers) ||
933
+ visitNode(cbNode, data.name) ||
934
+ visitNodes(cbNode, cbNodes, data.typeParameters) ||
935
+ visitNodes(cbNode, cbNodes, data.parameters) ||
936
+ visitNode(cbNode, data.type) ||
937
+ visitNode(cbNode, data.body),
938
+ [SyntaxKind.IndexSignature]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.modifiers) ||
939
+ visitNodes(cbNode, cbNodes, data.parameters) ||
940
+ visitNode(cbNode, data.type),
941
+ [SyntaxKind.MethodSignature]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.modifiers) ||
942
+ visitNode(cbNode, data.name) ||
943
+ visitNode(cbNode, data.postfixToken) ||
944
+ visitNodes(cbNode, cbNodes, data.typeParameters) ||
945
+ visitNodes(cbNode, cbNodes, data.parameters) ||
946
+ visitNode(cbNode, data.type),
947
+ [SyntaxKind.MethodDeclaration]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.modifiers) ||
948
+ visitNode(cbNode, data.asteriskToken) ||
949
+ visitNode(cbNode, data.name) ||
950
+ visitNode(cbNode, data.postfixToken) ||
951
+ visitNodes(cbNode, cbNodes, data.typeParameters) ||
952
+ visitNodes(cbNode, cbNodes, data.parameters) ||
953
+ visitNode(cbNode, data.type) ||
954
+ visitNode(cbNode, data.body),
955
+ [SyntaxKind.PropertySignature]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.modifiers) ||
956
+ visitNode(cbNode, data.name) ||
957
+ visitNode(cbNode, data.postfixToken) ||
958
+ visitNode(cbNode, data.type) ||
959
+ visitNode(cbNode, data.initializer),
960
+ [SyntaxKind.PropertyDeclaration]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.modifiers) ||
961
+ visitNode(cbNode, data.name) ||
962
+ visitNode(cbNode, data.postfixToken) ||
963
+ visitNode(cbNode, data.type) ||
964
+ visitNode(cbNode, data.initializer),
965
+ [SyntaxKind.ClassStaticBlockDeclaration]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.modifiers) ||
966
+ visitNode(cbNode, data.body),
967
+ [SyntaxKind.BinaryExpression]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.modifiers) ||
968
+ visitNode(cbNode, data.left) ||
969
+ visitNode(cbNode, data.type) ||
970
+ visitNode(cbNode, data.operatorToken) ||
971
+ visitNode(cbNode, data.right),
972
+ [SyntaxKind.PrefixUnaryExpression]: (data, cbNode, cbNodes) => visitNode(cbNode, data.operand),
973
+ [SyntaxKind.PostfixUnaryExpression]: (data, cbNode, cbNodes) => visitNode(cbNode, data.operand),
974
+ [SyntaxKind.YieldExpression]: (data, cbNode, cbNodes) => visitNode(cbNode, data.asteriskToken) ||
975
+ visitNode(cbNode, data.expression),
976
+ [SyntaxKind.ArrowFunction]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.modifiers) ||
977
+ visitNodes(cbNode, cbNodes, data.typeParameters) ||
978
+ visitNodes(cbNode, cbNodes, data.parameters) ||
979
+ visitNode(cbNode, data.type) ||
980
+ visitNode(cbNode, data.equalsGreaterThanToken) ||
981
+ visitNode(cbNode, data.body),
982
+ [SyntaxKind.FunctionExpression]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.modifiers) ||
983
+ visitNode(cbNode, data.asteriskToken) ||
984
+ visitNode(cbNode, data.name) ||
985
+ visitNodes(cbNode, cbNodes, data.typeParameters) ||
986
+ visitNodes(cbNode, cbNodes, data.parameters) ||
987
+ visitNode(cbNode, data.type) ||
988
+ visitNode(cbNode, data.body),
989
+ [SyntaxKind.AsExpression]: (data, cbNode, cbNodes) => visitNode(cbNode, data.expression) ||
990
+ visitNode(cbNode, data.type),
991
+ [SyntaxKind.SatisfiesExpression]: (data, cbNode, cbNodes) => visitNode(cbNode, data.expression) ||
992
+ visitNode(cbNode, data.type),
993
+ [SyntaxKind.ConditionalExpression]: (data, cbNode, cbNodes) => visitNode(cbNode, data.condition) ||
994
+ visitNode(cbNode, data.questionToken) ||
995
+ visitNode(cbNode, data.whenTrue) ||
996
+ visitNode(cbNode, data.colonToken) ||
997
+ visitNode(cbNode, data.whenFalse),
998
+ [SyntaxKind.PropertyAccessExpression]: (data, cbNode, cbNodes) => visitNode(cbNode, data.expression) ||
999
+ visitNode(cbNode, data.questionDotToken) ||
1000
+ visitNode(cbNode, data.name),
1001
+ [SyntaxKind.ElementAccessExpression]: (data, cbNode, cbNodes) => visitNode(cbNode, data.expression) ||
1002
+ visitNode(cbNode, data.questionDotToken) ||
1003
+ visitNode(cbNode, data.argumentExpression),
1004
+ [SyntaxKind.CallExpression]: (data, cbNode, cbNodes) => visitNode(cbNode, data.expression) ||
1005
+ visitNode(cbNode, data.questionDotToken) ||
1006
+ visitNodes(cbNode, cbNodes, data.typeArguments) ||
1007
+ visitNodes(cbNode, cbNodes, data.arguments),
1008
+ [SyntaxKind.NewExpression]: (data, cbNode, cbNodes) => visitNode(cbNode, data.expression) ||
1009
+ visitNodes(cbNode, cbNodes, data.typeArguments) ||
1010
+ visitNodes(cbNode, cbNodes, data.arguments),
1011
+ [SyntaxKind.MetaProperty]: (data, cbNode, cbNodes) => visitNode(cbNode, data.name),
1012
+ [SyntaxKind.NonNullExpression]: (data, cbNode, cbNodes) => visitNode(cbNode, data.expression),
1013
+ [SyntaxKind.SpreadElement]: (data, cbNode, cbNodes) => visitNode(cbNode, data.expression),
1014
+ [SyntaxKind.TemplateExpression]: (data, cbNode, cbNodes) => visitNode(cbNode, data.head) ||
1015
+ visitNodes(cbNode, cbNodes, data.templateSpans),
1016
+ [SyntaxKind.TemplateSpan]: (data, cbNode, cbNodes) => visitNode(cbNode, data.expression) ||
1017
+ visitNode(cbNode, data.literal),
1018
+ [SyntaxKind.TaggedTemplateExpression]: (data, cbNode, cbNodes) => visitNode(cbNode, data.tag) ||
1019
+ visitNode(cbNode, data.questionDotToken) ||
1020
+ visitNodes(cbNode, cbNodes, data.typeArguments) ||
1021
+ visitNode(cbNode, data.template),
1022
+ [SyntaxKind.ParenthesizedExpression]: (data, cbNode, cbNodes) => visitNode(cbNode, data.expression),
1023
+ [SyntaxKind.ArrayLiteralExpression]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.elements),
1024
+ [SyntaxKind.ObjectLiteralExpression]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.properties),
1025
+ [SyntaxKind.SpreadAssignment]: (data, cbNode, cbNodes) => visitNode(cbNode, data.expression),
1026
+ [SyntaxKind.PropertyAssignment]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.modifiers) ||
1027
+ visitNode(cbNode, data.name) ||
1028
+ visitNode(cbNode, data.postfixToken) ||
1029
+ visitNode(cbNode, data.type) ||
1030
+ visitNode(cbNode, data.initializer),
1031
+ [SyntaxKind.ShorthandPropertyAssignment]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.modifiers) ||
1032
+ visitNode(cbNode, data.name) ||
1033
+ visitNode(cbNode, data.postfixToken) ||
1034
+ visitNode(cbNode, data.type) ||
1035
+ visitNode(cbNode, data.equalsToken) ||
1036
+ visitNode(cbNode, data.objectAssignmentInitializer),
1037
+ [SyntaxKind.DeleteExpression]: (data, cbNode, cbNodes) => visitNode(cbNode, data.expression),
1038
+ [SyntaxKind.TypeOfExpression]: (data, cbNode, cbNodes) => visitNode(cbNode, data.expression),
1039
+ [SyntaxKind.VoidExpression]: (data, cbNode, cbNodes) => visitNode(cbNode, data.expression),
1040
+ [SyntaxKind.AwaitExpression]: (data, cbNode, cbNodes) => visitNode(cbNode, data.expression),
1041
+ [SyntaxKind.TypeAssertionExpression]: (data, cbNode, cbNodes) => visitNode(cbNode, data.type) ||
1042
+ visitNode(cbNode, data.expression),
1043
+ [SyntaxKind.UnionType]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.types),
1044
+ [SyntaxKind.IntersectionType]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.types),
1045
+ [SyntaxKind.ConditionalType]: (data, cbNode, cbNodes) => visitNode(cbNode, data.checkType) ||
1046
+ visitNode(cbNode, data.extendsType) ||
1047
+ visitNode(cbNode, data.trueType) ||
1048
+ visitNode(cbNode, data.falseType),
1049
+ [SyntaxKind.TypeOperator]: (data, cbNode, cbNodes) => visitNode(cbNode, data.type),
1050
+ [SyntaxKind.InferType]: (data, cbNode, cbNodes) => visitNode(cbNode, data.typeParameter),
1051
+ [SyntaxKind.ArrayType]: (data, cbNode, cbNodes) => visitNode(cbNode, data.elementType),
1052
+ [SyntaxKind.IndexedAccessType]: (data, cbNode, cbNodes) => visitNode(cbNode, data.objectType) ||
1053
+ visitNode(cbNode, data.indexType),
1054
+ [SyntaxKind.TypeReference]: (data, cbNode, cbNodes) => visitNode(cbNode, data.typeName) ||
1055
+ visitNodes(cbNode, cbNodes, data.typeArguments),
1056
+ [SyntaxKind.ExpressionWithTypeArguments]: (data, cbNode, cbNodes) => visitNode(cbNode, data.expression) ||
1057
+ visitNodes(cbNode, cbNodes, data.typeArguments),
1058
+ [SyntaxKind.LiteralType]: (data, cbNode, cbNodes) => visitNode(cbNode, data.literal),
1059
+ [SyntaxKind.TypePredicate]: (data, cbNode, cbNodes) => visitNode(cbNode, data.assertsModifier) ||
1060
+ visitNode(cbNode, data.parameterName) ||
1061
+ visitNode(cbNode, data.type),
1062
+ [SyntaxKind.ImportAttribute]: (data, cbNode, cbNodes) => visitNode(cbNode, data.name) ||
1063
+ visitNode(cbNode, data.value),
1064
+ [SyntaxKind.ImportAttributes]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.attributes),
1065
+ [SyntaxKind.TypeQuery]: (data, cbNode, cbNodes) => visitNode(cbNode, data.exprName) ||
1066
+ visitNodes(cbNode, cbNodes, data.typeArguments),
1067
+ [SyntaxKind.MappedType]: (data, cbNode, cbNodes) => visitNode(cbNode, data.readonlyToken) ||
1068
+ visitNode(cbNode, data.typeParameter) ||
1069
+ visitNode(cbNode, data.nameType) ||
1070
+ visitNode(cbNode, data.questionToken) ||
1071
+ visitNode(cbNode, data.type) ||
1072
+ visitNodes(cbNode, cbNodes, data.members),
1073
+ [SyntaxKind.TypeLiteral]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.members),
1074
+ [SyntaxKind.TupleType]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.elements),
1075
+ [SyntaxKind.NamedTupleMember]: (data, cbNode, cbNodes) => visitNode(cbNode, data.dotDotDotToken) ||
1076
+ visitNode(cbNode, data.name) ||
1077
+ visitNode(cbNode, data.questionToken) ||
1078
+ visitNode(cbNode, data.type),
1079
+ [SyntaxKind.OptionalType]: (data, cbNode, cbNodes) => visitNode(cbNode, data.type),
1080
+ [SyntaxKind.RestType]: (data, cbNode, cbNodes) => visitNode(cbNode, data.type),
1081
+ [SyntaxKind.ParenthesizedType]: (data, cbNode, cbNodes) => visitNode(cbNode, data.type),
1082
+ [SyntaxKind.FunctionType]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.typeParameters) ||
1083
+ visitNodes(cbNode, cbNodes, data.parameters) ||
1084
+ visitNode(cbNode, data.type),
1085
+ [SyntaxKind.ConstructorType]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.modifiers) ||
1086
+ visitNodes(cbNode, cbNodes, data.typeParameters) ||
1087
+ visitNodes(cbNode, cbNodes, data.parameters) ||
1088
+ visitNode(cbNode, data.type),
1089
+ [SyntaxKind.TemplateLiteralType]: (data, cbNode, cbNodes) => visitNode(cbNode, data.head) ||
1090
+ visitNodes(cbNode, cbNodes, data.templateSpans),
1091
+ [SyntaxKind.TemplateLiteralTypeSpan]: (data, cbNode, cbNodes) => visitNode(cbNode, data.type) ||
1092
+ visitNode(cbNode, data.literal),
1093
+ [SyntaxKind.SyntheticExpression]: (data, cbNode, cbNodes) => visitNode(cbNode, data.tupleNameSource),
1094
+ [SyntaxKind.PartiallyEmittedExpression]: (data, cbNode, cbNodes) => visitNode(cbNode, data.expression),
1095
+ [SyntaxKind.JsxElement]: (data, cbNode, cbNodes) => visitNode(cbNode, data.openingElement) ||
1096
+ visitNodes(cbNode, cbNodes, data.children) ||
1097
+ visitNode(cbNode, data.closingElement),
1098
+ [SyntaxKind.JsxAttributes]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.properties),
1099
+ [SyntaxKind.JsxNamespacedName]: (data, cbNode, cbNodes) => visitNode(cbNode, data.namespace) ||
1100
+ visitNode(cbNode, data.name),
1101
+ [SyntaxKind.JsxOpeningElement]: (data, cbNode, cbNodes) => visitNode(cbNode, data.tagName) ||
1102
+ visitNodes(cbNode, cbNodes, data.typeArguments) ||
1103
+ visitNode(cbNode, data.attributes),
1104
+ [SyntaxKind.JsxSelfClosingElement]: (data, cbNode, cbNodes) => visitNode(cbNode, data.tagName) ||
1105
+ visitNodes(cbNode, cbNodes, data.typeArguments) ||
1106
+ visitNode(cbNode, data.attributes),
1107
+ [SyntaxKind.JsxFragment]: (data, cbNode, cbNodes) => visitNode(cbNode, data.openingFragment) ||
1108
+ visitNodes(cbNode, cbNodes, data.children) ||
1109
+ visitNode(cbNode, data.closingFragment),
1110
+ [SyntaxKind.JsxAttribute]: (data, cbNode, cbNodes) => visitNode(cbNode, data.name) ||
1111
+ visitNode(cbNode, data.initializer),
1112
+ [SyntaxKind.JsxSpreadAttribute]: (data, cbNode, cbNodes) => visitNode(cbNode, data.expression),
1113
+ [SyntaxKind.JsxClosingElement]: (data, cbNode, cbNodes) => visitNode(cbNode, data.tagName),
1114
+ [SyntaxKind.JsxExpression]: (data, cbNode, cbNodes) => visitNode(cbNode, data.dotDotDotToken) ||
1115
+ visitNode(cbNode, data.expression),
1116
+ [SyntaxKind.SyntaxList]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.children),
1117
+ [SyntaxKind.JSDoc]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.comment) ||
1118
+ visitNodes(cbNode, cbNodes, data.tags),
1119
+ [SyntaxKind.JSDocTypeExpression]: (data, cbNode, cbNodes) => visitNode(cbNode, data.type),
1120
+ [SyntaxKind.JSDocNonNullableType]: (data, cbNode, cbNodes) => visitNode(cbNode, data.type),
1121
+ [SyntaxKind.JSDocNullableType]: (data, cbNode, cbNodes) => visitNode(cbNode, data.type),
1122
+ [SyntaxKind.JSDocVariadicType]: (data, cbNode, cbNodes) => visitNode(cbNode, data.type),
1123
+ [SyntaxKind.JSDocOptionalType]: (data, cbNode, cbNodes) => visitNode(cbNode, data.type),
1124
+ [SyntaxKind.JSDocTypeTag]: (data, cbNode, cbNodes) => visitNode(cbNode, data.tagName) ||
1125
+ visitNode(cbNode, data.typeExpression) ||
1126
+ visitNodes(cbNode, cbNodes, data.comment),
1127
+ [SyntaxKind.JSDocUnknownTag]: (data, cbNode, cbNodes) => visitNode(cbNode, data.tagName) ||
1128
+ visitNodes(cbNode, cbNodes, data.comment),
1129
+ [SyntaxKind.JSDocTemplateTag]: (data, cbNode, cbNodes) => visitNode(cbNode, data.tagName) ||
1130
+ visitNode(cbNode, data.constraint) ||
1131
+ visitNodes(cbNode, cbNodes, data.typeParameters) ||
1132
+ visitNodes(cbNode, cbNodes, data.comment),
1133
+ [SyntaxKind.JSDocReturnTag]: (data, cbNode, cbNodes) => visitNode(cbNode, data.tagName) ||
1134
+ visitNode(cbNode, data.typeExpression) ||
1135
+ visitNodes(cbNode, cbNodes, data.comment),
1136
+ [SyntaxKind.JSDocPublicTag]: (data, cbNode, cbNodes) => visitNode(cbNode, data.tagName) ||
1137
+ visitNodes(cbNode, cbNodes, data.comment),
1138
+ [SyntaxKind.JSDocPrivateTag]: (data, cbNode, cbNodes) => visitNode(cbNode, data.tagName) ||
1139
+ visitNodes(cbNode, cbNodes, data.comment),
1140
+ [SyntaxKind.JSDocProtectedTag]: (data, cbNode, cbNodes) => visitNode(cbNode, data.tagName) ||
1141
+ visitNodes(cbNode, cbNodes, data.comment),
1142
+ [SyntaxKind.JSDocReadonlyTag]: (data, cbNode, cbNodes) => visitNode(cbNode, data.tagName) ||
1143
+ visitNodes(cbNode, cbNodes, data.comment),
1144
+ [SyntaxKind.JSDocOverrideTag]: (data, cbNode, cbNodes) => visitNode(cbNode, data.tagName) ||
1145
+ visitNodes(cbNode, cbNodes, data.comment),
1146
+ [SyntaxKind.JSDocDeprecatedTag]: (data, cbNode, cbNodes) => visitNode(cbNode, data.tagName) ||
1147
+ visitNodes(cbNode, cbNodes, data.comment),
1148
+ [SyntaxKind.JSDocSeeTag]: (data, cbNode, cbNodes) => visitNode(cbNode, data.tagName) ||
1149
+ visitNode(cbNode, data.nameExpression) ||
1150
+ visitNodes(cbNode, cbNodes, data.comment),
1151
+ [SyntaxKind.JSDocImplementsTag]: (data, cbNode, cbNodes) => visitNode(cbNode, data.tagName) ||
1152
+ visitNode(cbNode, data.className) ||
1153
+ visitNodes(cbNode, cbNodes, data.comment),
1154
+ [SyntaxKind.JSDocAugmentsTag]: (data, cbNode, cbNodes) => visitNode(cbNode, data.tagName) ||
1155
+ visitNode(cbNode, data.className) ||
1156
+ visitNodes(cbNode, cbNodes, data.comment),
1157
+ [SyntaxKind.JSDocSatisfiesTag]: (data, cbNode, cbNodes) => visitNode(cbNode, data.tagName) ||
1158
+ visitNode(cbNode, data.typeExpression) ||
1159
+ visitNodes(cbNode, cbNodes, data.comment),
1160
+ [SyntaxKind.JSDocThrowsTag]: (data, cbNode, cbNodes) => visitNode(cbNode, data.tagName) ||
1161
+ visitNode(cbNode, data.typeExpression) ||
1162
+ visitNodes(cbNode, cbNodes, data.comment),
1163
+ [SyntaxKind.JSDocThisTag]: (data, cbNode, cbNodes) => visitNode(cbNode, data.tagName) ||
1164
+ visitNode(cbNode, data.typeExpression) ||
1165
+ visitNodes(cbNode, cbNodes, data.comment),
1166
+ [SyntaxKind.JSDocImportTag]: (data, cbNode, cbNodes) => visitNode(cbNode, data.tagName) ||
1167
+ visitNode(cbNode, data.importClause) ||
1168
+ visitNode(cbNode, data.moduleSpecifier) ||
1169
+ visitNode(cbNode, data.attributes) ||
1170
+ visitNodes(cbNode, cbNodes, data.comment),
1171
+ [SyntaxKind.JSDocCallbackTag]: (data, cbNode, cbNodes) => visitNode(cbNode, data.tagName) ||
1172
+ visitNode(cbNode, data.typeExpression) ||
1173
+ visitNode(cbNode, data.fullName) ||
1174
+ visitNodes(cbNode, cbNodes, data.comment),
1175
+ [SyntaxKind.JSDocOverloadTag]: (data, cbNode, cbNodes) => visitNode(cbNode, data.tagName) ||
1176
+ visitNode(cbNode, data.typeExpression) ||
1177
+ visitNodes(cbNode, cbNodes, data.comment),
1178
+ [SyntaxKind.JSDocTypedefTag]: (data, cbNode, cbNodes) => visitNode(cbNode, data.tagName) ||
1179
+ visitNode(cbNode, data.typeExpression) ||
1180
+ visitNode(cbNode, data.name) ||
1181
+ visitNodes(cbNode, cbNodes, data.comment),
1182
+ [SyntaxKind.JSDocSignature]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.typeParameters) ||
1183
+ visitNodes(cbNode, cbNodes, data.parameters) ||
1184
+ visitNode(cbNode, data.type),
1185
+ [SyntaxKind.JSDocNameReference]: (data, cbNode, cbNodes) => visitNode(cbNode, data.name),
1186
+ [SyntaxKind.ModuleDeclaration]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.modifiers) ||
1187
+ visitNode(cbNode, data.name) ||
1188
+ visitNode(cbNode, data.body),
1189
+ [SyntaxKind.ImportEqualsDeclaration]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.modifiers) ||
1190
+ visitNode(cbNode, data.name) ||
1191
+ visitNode(cbNode, data.moduleReference),
1192
+ [SyntaxKind.ExportDeclaration]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.modifiers) ||
1193
+ visitNode(cbNode, data.exportClause) ||
1194
+ visitNode(cbNode, data.moduleSpecifier) ||
1195
+ visitNode(cbNode, data.attributes),
1196
+ [SyntaxKind.ImportType]: (data, cbNode, cbNodes) => visitNode(cbNode, data.argument) ||
1197
+ visitNode(cbNode, data.attributes) ||
1198
+ visitNode(cbNode, data.qualifier) ||
1199
+ visitNodes(cbNode, cbNodes, data.typeArguments),
1200
+ [SyntaxKind.ImportClause]: (data, cbNode, cbNodes) => visitNode(cbNode, data.name) ||
1201
+ visitNode(cbNode, data.namedBindings),
1202
+ [SyntaxKind.ImportSpecifier]: (data, cbNode, cbNodes) => visitNode(cbNode, data.propertyName) ||
1203
+ visitNode(cbNode, data.name),
1204
+ [SyntaxKind.JSDocLink]: (data, cbNode, cbNodes) => visitNode(cbNode, data.name),
1205
+ [SyntaxKind.JSDocLinkPlain]: (data, cbNode, cbNodes) => visitNode(cbNode, data.name),
1206
+ [SyntaxKind.JSDocLinkCode]: (data, cbNode, cbNodes) => visitNode(cbNode, data.name),
1207
+ [SyntaxKind.TypeParameter]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.modifiers) ||
1208
+ visitNode(cbNode, data.name) ||
1209
+ visitNode(cbNode, data.constraint) ||
1210
+ visitNode(cbNode, data.expression) ||
1211
+ visitNode(cbNode, data.defaultType),
1212
+ [SyntaxKind.SyntheticReferenceExpression]: (data, cbNode, cbNodes) => visitNode(cbNode, data.expression) ||
1213
+ visitNode(cbNode, data.thisArg),
1214
+ [SyntaxKind.JSDocTypeLiteral]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.jsdocPropertyTags),
1215
+ [SyntaxKind.ForInStatement]: (data, cbNode, cbNodes) => visitNode(cbNode, data.awaitModifier) ||
1216
+ visitNode(cbNode, data.initializer) ||
1217
+ visitNode(cbNode, data.expression) ||
1218
+ visitNode(cbNode, data.statement),
1219
+ [SyntaxKind.ForOfStatement]: (data, cbNode, cbNodes) => visitNode(cbNode, data.awaitModifier) ||
1220
+ visitNode(cbNode, data.initializer) ||
1221
+ visitNode(cbNode, data.expression) ||
1222
+ visitNode(cbNode, data.statement),
1223
+ [SyntaxKind.CaseClause]: (data, cbNode, cbNodes) => visitNode(cbNode, data.expression) ||
1224
+ visitNodes(cbNode, cbNodes, data.statements),
1225
+ [SyntaxKind.DefaultClause]: (data, cbNode, cbNodes) => visitNode(cbNode, data.expression) ||
1226
+ visitNodes(cbNode, cbNodes, data.statements),
1227
+ [SyntaxKind.ObjectBindingPattern]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.elements),
1228
+ [SyntaxKind.ArrayBindingPattern]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.elements),
1229
+ [SyntaxKind.JSDocParameterTag]: forEachChildOfJSDocParameterTag,
1230
+ [SyntaxKind.JSDocPropertyTag]: forEachChildOfJSDocPropertyTag,
1231
+ [SyntaxKind.SourceFile]: (data, cbNode, cbNodes) => visitNodes(cbNode, cbNodes, data.statements) ||
1232
+ visitNode(cbNode, data.endOfFileToken),
1233
+ };
1234
+ function visitNode(cbNode, node) {
1235
+ return node ? cbNode(node) : undefined;
1236
+ }
1237
+ function visitNodes(cbNode, cbNodes, nodes) {
1238
+ if (!nodes)
1239
+ return undefined;
1240
+ if (cbNodes)
1241
+ return cbNodes(nodes);
1242
+ for (const node of nodes) {
1243
+ const result = cbNode(node);
1244
+ if (result)
1245
+ return result;
1246
+ }
1247
+ return undefined;
1248
+ }
1249
+ export function createToken(kind) {
1250
+ return new NodeObject(kind, undefined);
1251
+ }
1252
+ export function createIdentifier(text) {
1253
+ return new NodeObject(SyntaxKind.Identifier, {
1254
+ text,
1255
+ });
1256
+ }
1257
+ export function createPrivateIdentifier(text) {
1258
+ return new NodeObject(SyntaxKind.PrivateIdentifier, {
1259
+ text,
1260
+ });
1261
+ }
1262
+ export function createQualifiedName(left, right) {
1263
+ return new NodeObject(SyntaxKind.QualifiedName, {
1264
+ left,
1265
+ right,
1266
+ });
1267
+ }
1268
+ export function createComputedPropertyName(expression) {
1269
+ return new NodeObject(SyntaxKind.ComputedPropertyName, {
1270
+ expression,
1271
+ });
1272
+ }
1273
+ export function createDecorator(expression) {
1274
+ return new NodeObject(SyntaxKind.Decorator, {
1275
+ expression,
1276
+ });
1277
+ }
1278
+ export function createEmptyStatement() {
1279
+ return new NodeObject(SyntaxKind.EmptyStatement, undefined);
1280
+ }
1281
+ export function createIfStatement(expression, thenStatement, elseStatement) {
1282
+ return new NodeObject(SyntaxKind.IfStatement, {
1283
+ expression,
1284
+ thenStatement,
1285
+ elseStatement,
1286
+ });
1287
+ }
1288
+ export function createDoStatement(statement, expression) {
1289
+ return new NodeObject(SyntaxKind.DoStatement, {
1290
+ statement,
1291
+ expression,
1292
+ });
1293
+ }
1294
+ export function createWhileStatement(expression, statement) {
1295
+ return new NodeObject(SyntaxKind.WhileStatement, {
1296
+ expression,
1297
+ statement,
1298
+ });
1299
+ }
1300
+ export function createForStatement(initializer, condition, incrementor, statement) {
1301
+ return new NodeObject(SyntaxKind.ForStatement, {
1302
+ initializer,
1303
+ condition,
1304
+ incrementor,
1305
+ statement,
1306
+ });
1307
+ }
1308
+ export function createBreakStatement(label) {
1309
+ return new NodeObject(SyntaxKind.BreakStatement, {
1310
+ label,
1311
+ });
1312
+ }
1313
+ export function createContinueStatement(label) {
1314
+ return new NodeObject(SyntaxKind.ContinueStatement, {
1315
+ label,
1316
+ });
1317
+ }
1318
+ export function createReturnStatement(expression) {
1319
+ return new NodeObject(SyntaxKind.ReturnStatement, {
1320
+ expression,
1321
+ });
1322
+ }
1323
+ export function createWithStatement(expression, statement) {
1324
+ return new NodeObject(SyntaxKind.WithStatement, {
1325
+ expression,
1326
+ statement,
1327
+ });
1328
+ }
1329
+ export function createSwitchStatement(expression, caseBlock) {
1330
+ return new NodeObject(SyntaxKind.SwitchStatement, {
1331
+ expression,
1332
+ caseBlock,
1333
+ });
1334
+ }
1335
+ export function createCaseBlock(clauses) {
1336
+ return new NodeObject(SyntaxKind.CaseBlock, {
1337
+ clauses: createNodeArray(clauses),
1338
+ });
1339
+ }
1340
+ export function createThrowStatement(expression) {
1341
+ return new NodeObject(SyntaxKind.ThrowStatement, {
1342
+ expression,
1343
+ });
1344
+ }
1345
+ export function createTryStatement(tryBlock, catchClause, finallyBlock) {
1346
+ return new NodeObject(SyntaxKind.TryStatement, {
1347
+ tryBlock,
1348
+ catchClause,
1349
+ finallyBlock,
1350
+ });
1351
+ }
1352
+ export function createCatchClause(variableDeclaration, block) {
1353
+ return new NodeObject(SyntaxKind.CatchClause, {
1354
+ variableDeclaration,
1355
+ block,
1356
+ });
1357
+ }
1358
+ export function createDebuggerStatement() {
1359
+ return new NodeObject(SyntaxKind.DebuggerStatement, undefined);
1360
+ }
1361
+ export function createLabeledStatement(label, statement) {
1362
+ return new NodeObject(SyntaxKind.LabeledStatement, {
1363
+ label,
1364
+ statement,
1365
+ });
1366
+ }
1367
+ export function createExpressionStatement(expression) {
1368
+ return new NodeObject(SyntaxKind.ExpressionStatement, {
1369
+ expression,
1370
+ });
1371
+ }
1372
+ export function createBlock(statements, multiLine) {
1373
+ return new NodeObject(SyntaxKind.Block, {
1374
+ statements: createNodeArray(statements),
1375
+ multiLine,
1376
+ });
1377
+ }
1378
+ export function createVariableStatement(modifiers, declarationList) {
1379
+ return new NodeObject(SyntaxKind.VariableStatement, {
1380
+ modifiers: modifiers ? createNodeArray(modifiers) : undefined,
1381
+ declarationList,
1382
+ });
1383
+ }
1384
+ export function createVariableDeclaration(name, exclamationToken, type, initializer) {
1385
+ return new NodeObject(SyntaxKind.VariableDeclaration, {
1386
+ name,
1387
+ exclamationToken,
1388
+ type,
1389
+ initializer,
1390
+ });
1391
+ }
1392
+ export function createVariableDeclarationList(declarations, flags) {
1393
+ const node = new NodeObject(SyntaxKind.VariableDeclarationList, {
1394
+ declarations: createNodeArray(declarations),
1395
+ });
1396
+ node.flags = flags;
1397
+ return node;
1398
+ }
1399
+ export function createParameterDeclaration(modifiers, dotDotDotToken, name, questionToken, type, initializer) {
1400
+ return new NodeObject(SyntaxKind.Parameter, {
1401
+ modifiers: modifiers ? createNodeArray(modifiers) : undefined,
1402
+ dotDotDotToken,
1403
+ name,
1404
+ questionToken,
1405
+ type,
1406
+ initializer,
1407
+ });
1408
+ }
1409
+ export function createBindingElement(dotDotDotToken, propertyName, name, initializer) {
1410
+ return new NodeObject(SyntaxKind.BindingElement, {
1411
+ dotDotDotToken,
1412
+ propertyName,
1413
+ name,
1414
+ initializer,
1415
+ });
1416
+ }
1417
+ export function createMissingDeclaration(modifiers) {
1418
+ return new NodeObject(SyntaxKind.MissingDeclaration, {
1419
+ modifiers: modifiers ? createNodeArray(modifiers) : undefined,
1420
+ });
1421
+ }
1422
+ export function createFunctionDeclaration(modifiers, asteriskToken, name, typeParameters, parameters, type, body) {
1423
+ return new NodeObject(SyntaxKind.FunctionDeclaration, {
1424
+ modifiers: modifiers ? createNodeArray(modifiers) : undefined,
1425
+ asteriskToken,
1426
+ name,
1427
+ typeParameters: typeParameters ? createNodeArray(typeParameters) : undefined,
1428
+ parameters: createNodeArray(parameters),
1429
+ type,
1430
+ body,
1431
+ });
1432
+ }
1433
+ export function createClassDeclaration(modifiers, name, typeParameters, heritageClauses, members) {
1434
+ return new NodeObject(SyntaxKind.ClassDeclaration, {
1435
+ modifiers: modifiers ? createNodeArray(modifiers) : undefined,
1436
+ name,
1437
+ typeParameters: typeParameters ? createNodeArray(typeParameters) : undefined,
1438
+ heritageClauses: heritageClauses ? createNodeArray(heritageClauses) : undefined,
1439
+ members: createNodeArray(members),
1440
+ });
1441
+ }
1442
+ export function createClassExpression(modifiers, name, typeParameters, heritageClauses, members) {
1443
+ return new NodeObject(SyntaxKind.ClassExpression, {
1444
+ modifiers: modifiers ? createNodeArray(modifiers) : undefined,
1445
+ name,
1446
+ typeParameters: typeParameters ? createNodeArray(typeParameters) : undefined,
1447
+ heritageClauses: heritageClauses ? createNodeArray(heritageClauses) : undefined,
1448
+ members: createNodeArray(members),
1449
+ });
1450
+ }
1451
+ export function createHeritageClause(token, types) {
1452
+ return new NodeObject(SyntaxKind.HeritageClause, {
1453
+ token,
1454
+ types: createNodeArray(types),
1455
+ });
1456
+ }
1457
+ export function createInterfaceDeclaration(modifiers, name, typeParameters, heritageClauses, members) {
1458
+ return new NodeObject(SyntaxKind.InterfaceDeclaration, {
1459
+ modifiers: modifiers ? createNodeArray(modifiers) : undefined,
1460
+ name,
1461
+ typeParameters: typeParameters ? createNodeArray(typeParameters) : undefined,
1462
+ heritageClauses: heritageClauses ? createNodeArray(heritageClauses) : undefined,
1463
+ members: createNodeArray(members),
1464
+ });
1465
+ }
1466
+ export function createTypeAliasDeclaration(modifiers, name, typeParameters, type) {
1467
+ return new NodeObject(SyntaxKind.TypeAliasDeclaration, {
1468
+ modifiers: modifiers ? createNodeArray(modifiers) : undefined,
1469
+ name,
1470
+ typeParameters: typeParameters ? createNodeArray(typeParameters) : undefined,
1471
+ type,
1472
+ });
1473
+ }
1474
+ export function createEnumMember(name, initializer) {
1475
+ return new NodeObject(SyntaxKind.EnumMember, {
1476
+ name,
1477
+ initializer,
1478
+ });
1479
+ }
1480
+ export function createEnumDeclaration(modifiers, name, members) {
1481
+ return new NodeObject(SyntaxKind.EnumDeclaration, {
1482
+ modifiers: modifiers ? createNodeArray(modifiers) : undefined,
1483
+ name,
1484
+ members: createNodeArray(members),
1485
+ });
1486
+ }
1487
+ export function createModuleBlock(statements) {
1488
+ return new NodeObject(SyntaxKind.ModuleBlock, {
1489
+ statements: createNodeArray(statements),
1490
+ });
1491
+ }
1492
+ export function createNotEmittedStatement() {
1493
+ return new NodeObject(SyntaxKind.NotEmittedStatement, undefined);
1494
+ }
1495
+ export function createNotEmittedTypeElement() {
1496
+ return new NodeObject(SyntaxKind.NotEmittedTypeElement, undefined);
1497
+ }
1498
+ export function createImportDeclaration(modifiers, importClause, moduleSpecifier, attributes) {
1499
+ return new NodeObject(SyntaxKind.ImportDeclaration, {
1500
+ modifiers: modifiers ? createNodeArray(modifiers) : undefined,
1501
+ importClause,
1502
+ moduleSpecifier,
1503
+ attributes,
1504
+ });
1505
+ }
1506
+ export function createExternalModuleReference(expression) {
1507
+ return new NodeObject(SyntaxKind.ExternalModuleReference, {
1508
+ expression,
1509
+ });
1510
+ }
1511
+ export function createNamespaceImport(name) {
1512
+ return new NodeObject(SyntaxKind.NamespaceImport, {
1513
+ name,
1514
+ });
1515
+ }
1516
+ export function createNamedImports(elements) {
1517
+ return new NodeObject(SyntaxKind.NamedImports, {
1518
+ elements: createNodeArray(elements),
1519
+ });
1520
+ }
1521
+ export function createExportAssignment(modifiers, isExportEquals = false, type, expression) {
1522
+ return new NodeObject(SyntaxKind.ExportAssignment, {
1523
+ modifiers: modifiers ? createNodeArray(modifiers) : undefined,
1524
+ isExportEquals,
1525
+ type,
1526
+ expression,
1527
+ });
1528
+ }
1529
+ export function createNamespaceExportDeclaration(modifiers, name) {
1530
+ return new NodeObject(SyntaxKind.NamespaceExportDeclaration, {
1531
+ modifiers: modifiers ? createNodeArray(modifiers) : undefined,
1532
+ name,
1533
+ });
1534
+ }
1535
+ export function createNamespaceExport(name) {
1536
+ return new NodeObject(SyntaxKind.NamespaceExport, {
1537
+ name,
1538
+ });
1539
+ }
1540
+ export function createNamedExports(elements) {
1541
+ return new NodeObject(SyntaxKind.NamedExports, {
1542
+ elements: createNodeArray(elements),
1543
+ });
1544
+ }
1545
+ export function createExportSpecifier(isTypeOnly = false, propertyName, name) {
1546
+ return new NodeObject(SyntaxKind.ExportSpecifier, {
1547
+ isTypeOnly,
1548
+ propertyName,
1549
+ name,
1550
+ });
1551
+ }
1552
+ export function createCallSignatureDeclaration(typeParameters, parameters, type) {
1553
+ return new NodeObject(SyntaxKind.CallSignature, {
1554
+ typeParameters: typeParameters ? createNodeArray(typeParameters) : undefined,
1555
+ parameters: createNodeArray(parameters),
1556
+ type,
1557
+ });
1558
+ }
1559
+ export function createConstructSignatureDeclaration(typeParameters, parameters, type) {
1560
+ return new NodeObject(SyntaxKind.ConstructSignature, {
1561
+ typeParameters: typeParameters ? createNodeArray(typeParameters) : undefined,
1562
+ parameters: createNodeArray(parameters),
1563
+ type,
1564
+ });
1565
+ }
1566
+ export function createConstructorDeclaration(modifiers, typeParameters, parameters, type, body) {
1567
+ return new NodeObject(SyntaxKind.Constructor, {
1568
+ modifiers: modifiers ? createNodeArray(modifiers) : undefined,
1569
+ typeParameters: typeParameters ? createNodeArray(typeParameters) : undefined,
1570
+ parameters: createNodeArray(parameters),
1571
+ type,
1572
+ body,
1573
+ });
1574
+ }
1575
+ export function createGetAccessorDeclaration(modifiers, name, typeParameters, parameters, type, body) {
1576
+ return new NodeObject(SyntaxKind.GetAccessor, {
1577
+ modifiers: modifiers ? createNodeArray(modifiers) : undefined,
1578
+ name,
1579
+ typeParameters: typeParameters ? createNodeArray(typeParameters) : undefined,
1580
+ parameters: createNodeArray(parameters),
1581
+ type,
1582
+ body,
1583
+ });
1584
+ }
1585
+ export function createSetAccessorDeclaration(modifiers, name, typeParameters, parameters, type, body) {
1586
+ return new NodeObject(SyntaxKind.SetAccessor, {
1587
+ modifiers: modifiers ? createNodeArray(modifiers) : undefined,
1588
+ name,
1589
+ typeParameters: typeParameters ? createNodeArray(typeParameters) : undefined,
1590
+ parameters: createNodeArray(parameters),
1591
+ type,
1592
+ body,
1593
+ });
1594
+ }
1595
+ export function createIndexSignatureDeclaration(modifiers, parameters, type) {
1596
+ return new NodeObject(SyntaxKind.IndexSignature, {
1597
+ modifiers: modifiers ? createNodeArray(modifiers) : undefined,
1598
+ parameters: createNodeArray(parameters),
1599
+ type,
1600
+ });
1601
+ }
1602
+ export function createMethodSignatureDeclaration(modifiers, name, postfixToken, typeParameters, parameters, type) {
1603
+ return new NodeObject(SyntaxKind.MethodSignature, {
1604
+ modifiers: modifiers ? createNodeArray(modifiers) : undefined,
1605
+ name,
1606
+ postfixToken,
1607
+ typeParameters: typeParameters ? createNodeArray(typeParameters) : undefined,
1608
+ parameters: createNodeArray(parameters),
1609
+ type,
1610
+ });
1611
+ }
1612
+ export function createMethodDeclaration(modifiers, asteriskToken, name, postfixToken, typeParameters, parameters, type, body) {
1613
+ return new NodeObject(SyntaxKind.MethodDeclaration, {
1614
+ modifiers: modifiers ? createNodeArray(modifiers) : undefined,
1615
+ asteriskToken,
1616
+ name,
1617
+ postfixToken,
1618
+ typeParameters: typeParameters ? createNodeArray(typeParameters) : undefined,
1619
+ parameters: createNodeArray(parameters),
1620
+ type,
1621
+ body,
1622
+ });
1623
+ }
1624
+ export function createPropertySignatureDeclaration(modifiers, name, postfixToken, type, initializer) {
1625
+ return new NodeObject(SyntaxKind.PropertySignature, {
1626
+ modifiers: modifiers ? createNodeArray(modifiers) : undefined,
1627
+ name,
1628
+ postfixToken,
1629
+ type,
1630
+ initializer,
1631
+ });
1632
+ }
1633
+ export function createPropertyDeclaration(modifiers, name, postfixToken, type, initializer) {
1634
+ return new NodeObject(SyntaxKind.PropertyDeclaration, {
1635
+ modifiers: modifiers ? createNodeArray(modifiers) : undefined,
1636
+ name,
1637
+ postfixToken,
1638
+ type,
1639
+ initializer,
1640
+ });
1641
+ }
1642
+ export function createSemicolonClassElement() {
1643
+ return new NodeObject(SyntaxKind.SemicolonClassElement, undefined);
1644
+ }
1645
+ export function createClassStaticBlockDeclaration(modifiers, body) {
1646
+ return new NodeObject(SyntaxKind.ClassStaticBlockDeclaration, {
1647
+ modifiers: modifiers ? createNodeArray(modifiers) : undefined,
1648
+ body,
1649
+ });
1650
+ }
1651
+ export function createOmittedExpression() {
1652
+ return new NodeObject(SyntaxKind.OmittedExpression, undefined);
1653
+ }
1654
+ export function createKeywordExpression(kind) {
1655
+ return new NodeObject(kind, undefined);
1656
+ }
1657
+ export function createStringLiteral(text, tokenFlags) {
1658
+ return new NodeObject(SyntaxKind.StringLiteral, {
1659
+ text,
1660
+ tokenFlags,
1661
+ });
1662
+ }
1663
+ export function createNumericLiteral(text, tokenFlags) {
1664
+ return new NodeObject(SyntaxKind.NumericLiteral, {
1665
+ text,
1666
+ tokenFlags,
1667
+ });
1668
+ }
1669
+ export function createBigIntLiteral(text, tokenFlags) {
1670
+ return new NodeObject(SyntaxKind.BigIntLiteral, {
1671
+ text,
1672
+ tokenFlags,
1673
+ });
1674
+ }
1675
+ export function createRegularExpressionLiteral(text, tokenFlags) {
1676
+ return new NodeObject(SyntaxKind.RegularExpressionLiteral, {
1677
+ text,
1678
+ tokenFlags,
1679
+ });
1680
+ }
1681
+ export function createNoSubstitutionTemplateLiteral(text, templateFlags) {
1682
+ return new NodeObject(SyntaxKind.NoSubstitutionTemplateLiteral, {
1683
+ text,
1684
+ templateFlags,
1685
+ });
1686
+ }
1687
+ export function createBinaryExpression(modifiers, left, type, operatorToken, right) {
1688
+ return new NodeObject(SyntaxKind.BinaryExpression, {
1689
+ modifiers: modifiers ? createNodeArray(modifiers) : undefined,
1690
+ left,
1691
+ type,
1692
+ operatorToken,
1693
+ right,
1694
+ });
1695
+ }
1696
+ export function createPrefixUnaryExpression(operator, operand) {
1697
+ return new NodeObject(SyntaxKind.PrefixUnaryExpression, {
1698
+ operator,
1699
+ operand,
1700
+ });
1701
+ }
1702
+ export function createPostfixUnaryExpression(operand, operator) {
1703
+ return new NodeObject(SyntaxKind.PostfixUnaryExpression, {
1704
+ operand,
1705
+ operator,
1706
+ });
1707
+ }
1708
+ export function createYieldExpression(asteriskToken, expression) {
1709
+ return new NodeObject(SyntaxKind.YieldExpression, {
1710
+ asteriskToken,
1711
+ expression,
1712
+ });
1713
+ }
1714
+ export function createArrowFunction(modifiers, typeParameters, parameters, type, equalsGreaterThanToken, body) {
1715
+ return new NodeObject(SyntaxKind.ArrowFunction, {
1716
+ modifiers: modifiers ? createNodeArray(modifiers) : undefined,
1717
+ typeParameters: typeParameters ? createNodeArray(typeParameters) : undefined,
1718
+ parameters: createNodeArray(parameters),
1719
+ type,
1720
+ equalsGreaterThanToken,
1721
+ body,
1722
+ });
1723
+ }
1724
+ export function createFunctionExpression(modifiers, asteriskToken, name, typeParameters, parameters, type, body) {
1725
+ return new NodeObject(SyntaxKind.FunctionExpression, {
1726
+ modifiers: modifiers ? createNodeArray(modifiers) : undefined,
1727
+ asteriskToken,
1728
+ name,
1729
+ typeParameters: typeParameters ? createNodeArray(typeParameters) : undefined,
1730
+ parameters: createNodeArray(parameters),
1731
+ type,
1732
+ body,
1733
+ });
1734
+ }
1735
+ export function createAsExpression(expression, type) {
1736
+ return new NodeObject(SyntaxKind.AsExpression, {
1737
+ expression,
1738
+ type,
1739
+ });
1740
+ }
1741
+ export function createSatisfiesExpression(expression, type) {
1742
+ return new NodeObject(SyntaxKind.SatisfiesExpression, {
1743
+ expression,
1744
+ type,
1745
+ });
1746
+ }
1747
+ export function createConditionalExpression(condition, questionToken, whenTrue, colonToken, whenFalse) {
1748
+ return new NodeObject(SyntaxKind.ConditionalExpression, {
1749
+ condition,
1750
+ questionToken,
1751
+ whenTrue,
1752
+ colonToken,
1753
+ whenFalse,
1754
+ });
1755
+ }
1756
+ export function createPropertyAccessExpression(expression, questionDotToken, name, flags) {
1757
+ const node = new NodeObject(SyntaxKind.PropertyAccessExpression, {
1758
+ expression,
1759
+ questionDotToken,
1760
+ name,
1761
+ });
1762
+ node.flags = flags;
1763
+ return node;
1764
+ }
1765
+ export function createElementAccessExpression(expression, questionDotToken, argumentExpression, flags) {
1766
+ const node = new NodeObject(SyntaxKind.ElementAccessExpression, {
1767
+ expression,
1768
+ questionDotToken,
1769
+ argumentExpression,
1770
+ });
1771
+ node.flags = flags;
1772
+ return node;
1773
+ }
1774
+ export function createCallExpression(expression, questionDotToken, typeArguments, arguments_, flags) {
1775
+ const node = new NodeObject(SyntaxKind.CallExpression, {
1776
+ expression,
1777
+ questionDotToken,
1778
+ typeArguments: typeArguments ? createNodeArray(typeArguments) : undefined,
1779
+ arguments: createNodeArray(arguments_),
1780
+ });
1781
+ node.flags = flags;
1782
+ return node;
1783
+ }
1784
+ export function createNewExpression(expression, typeArguments, arguments_) {
1785
+ return new NodeObject(SyntaxKind.NewExpression, {
1786
+ expression,
1787
+ typeArguments: typeArguments ? createNodeArray(typeArguments) : undefined,
1788
+ arguments: arguments_ ? createNodeArray(arguments_) : undefined,
1789
+ });
1790
+ }
1791
+ export function createMetaProperty(keywordToken, name) {
1792
+ return new NodeObject(SyntaxKind.MetaProperty, {
1793
+ keywordToken,
1794
+ name,
1795
+ });
1796
+ }
1797
+ export function createNonNullExpression(expression, flags) {
1798
+ const node = new NodeObject(SyntaxKind.NonNullExpression, {
1799
+ expression,
1800
+ });
1801
+ node.flags = flags;
1802
+ return node;
1803
+ }
1804
+ export function createSpreadElement(expression) {
1805
+ return new NodeObject(SyntaxKind.SpreadElement, {
1806
+ expression,
1807
+ });
1808
+ }
1809
+ export function createTemplateExpression(head, templateSpans) {
1810
+ return new NodeObject(SyntaxKind.TemplateExpression, {
1811
+ head,
1812
+ templateSpans: createNodeArray(templateSpans),
1813
+ });
1814
+ }
1815
+ export function createTemplateSpan(expression, literal) {
1816
+ return new NodeObject(SyntaxKind.TemplateSpan, {
1817
+ expression,
1818
+ literal,
1819
+ });
1820
+ }
1821
+ export function createTaggedTemplateExpression(tag, questionDotToken, typeArguments, template, flags) {
1822
+ const node = new NodeObject(SyntaxKind.TaggedTemplateExpression, {
1823
+ tag,
1824
+ questionDotToken,
1825
+ typeArguments: typeArguments ? createNodeArray(typeArguments) : undefined,
1826
+ template,
1827
+ });
1828
+ node.flags = flags;
1829
+ return node;
1830
+ }
1831
+ export function createParenthesizedExpression(expression) {
1832
+ return new NodeObject(SyntaxKind.ParenthesizedExpression, {
1833
+ expression,
1834
+ });
1835
+ }
1836
+ export function createArrayLiteralExpression(elements, multiLine) {
1837
+ return new NodeObject(SyntaxKind.ArrayLiteralExpression, {
1838
+ elements: createNodeArray(elements),
1839
+ multiLine,
1840
+ });
1841
+ }
1842
+ export function createObjectLiteralExpression(properties, multiLine) {
1843
+ return new NodeObject(SyntaxKind.ObjectLiteralExpression, {
1844
+ properties: createNodeArray(properties),
1845
+ multiLine,
1846
+ });
1847
+ }
1848
+ export function createSpreadAssignment(expression) {
1849
+ return new NodeObject(SyntaxKind.SpreadAssignment, {
1850
+ expression,
1851
+ });
1852
+ }
1853
+ export function createPropertyAssignment(modifiers, name, postfixToken, type, initializer) {
1854
+ return new NodeObject(SyntaxKind.PropertyAssignment, {
1855
+ modifiers: modifiers ? createNodeArray(modifiers) : undefined,
1856
+ name,
1857
+ postfixToken,
1858
+ type,
1859
+ initializer,
1860
+ });
1861
+ }
1862
+ export function createShorthandPropertyAssignment(modifiers, name, postfixToken, type, equalsToken, objectAssignmentInitializer) {
1863
+ return new NodeObject(SyntaxKind.ShorthandPropertyAssignment, {
1864
+ modifiers: modifiers ? createNodeArray(modifiers) : undefined,
1865
+ name,
1866
+ postfixToken,
1867
+ type,
1868
+ equalsToken,
1869
+ objectAssignmentInitializer,
1870
+ });
1871
+ }
1872
+ export function createDeleteExpression(expression) {
1873
+ return new NodeObject(SyntaxKind.DeleteExpression, {
1874
+ expression,
1875
+ });
1876
+ }
1877
+ export function createTypeOfExpression(expression) {
1878
+ return new NodeObject(SyntaxKind.TypeOfExpression, {
1879
+ expression,
1880
+ });
1881
+ }
1882
+ export function createVoidExpression(expression) {
1883
+ return new NodeObject(SyntaxKind.VoidExpression, {
1884
+ expression,
1885
+ });
1886
+ }
1887
+ export function createAwaitExpression(expression) {
1888
+ return new NodeObject(SyntaxKind.AwaitExpression, {
1889
+ expression,
1890
+ });
1891
+ }
1892
+ export function createTypeAssertion(type, expression) {
1893
+ return new NodeObject(SyntaxKind.TypeAssertionExpression, {
1894
+ type,
1895
+ expression,
1896
+ });
1897
+ }
1898
+ export function createKeywordTypeNode(kind) {
1899
+ return new NodeObject(kind, undefined);
1900
+ }
1901
+ export function createUnionTypeNode(types) {
1902
+ return new NodeObject(SyntaxKind.UnionType, {
1903
+ types: createNodeArray(types),
1904
+ });
1905
+ }
1906
+ export function createIntersectionTypeNode(types) {
1907
+ return new NodeObject(SyntaxKind.IntersectionType, {
1908
+ types: createNodeArray(types),
1909
+ });
1910
+ }
1911
+ export function createConditionalTypeNode(checkType, extendsType, trueType, falseType) {
1912
+ return new NodeObject(SyntaxKind.ConditionalType, {
1913
+ checkType,
1914
+ extendsType,
1915
+ trueType,
1916
+ falseType,
1917
+ });
1918
+ }
1919
+ export function createTypeOperatorNode(operator, type) {
1920
+ return new NodeObject(SyntaxKind.TypeOperator, {
1921
+ operator,
1922
+ type,
1923
+ });
1924
+ }
1925
+ export function createInferTypeNode(typeParameter) {
1926
+ return new NodeObject(SyntaxKind.InferType, {
1927
+ typeParameter,
1928
+ });
1929
+ }
1930
+ export function createArrayTypeNode(elementType) {
1931
+ return new NodeObject(SyntaxKind.ArrayType, {
1932
+ elementType,
1933
+ });
1934
+ }
1935
+ export function createIndexedAccessTypeNode(objectType, indexType) {
1936
+ return new NodeObject(SyntaxKind.IndexedAccessType, {
1937
+ objectType,
1938
+ indexType,
1939
+ });
1940
+ }
1941
+ export function createTypeReferenceNode(typeName, typeArguments) {
1942
+ return new NodeObject(SyntaxKind.TypeReference, {
1943
+ typeName,
1944
+ typeArguments: typeArguments ? createNodeArray(typeArguments) : undefined,
1945
+ });
1946
+ }
1947
+ export function createExpressionWithTypeArguments(expression, typeArguments) {
1948
+ return new NodeObject(SyntaxKind.ExpressionWithTypeArguments, {
1949
+ expression,
1950
+ typeArguments: typeArguments ? createNodeArray(typeArguments) : undefined,
1951
+ });
1952
+ }
1953
+ export function createLiteralTypeNode(literal) {
1954
+ return new NodeObject(SyntaxKind.LiteralType, {
1955
+ literal,
1956
+ });
1957
+ }
1958
+ export function createThisTypeNode() {
1959
+ return new NodeObject(SyntaxKind.ThisType, undefined);
1960
+ }
1961
+ export function createTypePredicateNode(assertsModifier, parameterName, type) {
1962
+ return new NodeObject(SyntaxKind.TypePredicate, {
1963
+ assertsModifier,
1964
+ parameterName,
1965
+ type,
1966
+ });
1967
+ }
1968
+ export function createImportAttribute(name, value) {
1969
+ return new NodeObject(SyntaxKind.ImportAttribute, {
1970
+ name,
1971
+ value,
1972
+ });
1973
+ }
1974
+ export function createImportAttributes(token, attributes, multiLine) {
1975
+ return new NodeObject(SyntaxKind.ImportAttributes, {
1976
+ token,
1977
+ attributes: createNodeArray(attributes),
1978
+ multiLine,
1979
+ });
1980
+ }
1981
+ export function createTypeQueryNode(exprName, typeArguments) {
1982
+ return new NodeObject(SyntaxKind.TypeQuery, {
1983
+ exprName,
1984
+ typeArguments: typeArguments ? createNodeArray(typeArguments) : undefined,
1985
+ });
1986
+ }
1987
+ export function createMappedTypeNode(readonlyToken, typeParameter, nameType, questionToken, type, members) {
1988
+ return new NodeObject(SyntaxKind.MappedType, {
1989
+ readonlyToken,
1990
+ typeParameter,
1991
+ nameType,
1992
+ questionToken,
1993
+ type,
1994
+ members: members ? createNodeArray(members) : undefined,
1995
+ });
1996
+ }
1997
+ export function createTypeLiteralNode(members) {
1998
+ return new NodeObject(SyntaxKind.TypeLiteral, {
1999
+ members: createNodeArray(members),
2000
+ });
2001
+ }
2002
+ export function createTupleTypeNode(elements) {
2003
+ return new NodeObject(SyntaxKind.TupleType, {
2004
+ elements: createNodeArray(elements),
2005
+ });
2006
+ }
2007
+ export function createNamedTupleMember(dotDotDotToken, name, questionToken, type) {
2008
+ return new NodeObject(SyntaxKind.NamedTupleMember, {
2009
+ dotDotDotToken,
2010
+ name,
2011
+ questionToken,
2012
+ type,
2013
+ });
2014
+ }
2015
+ export function createOptionalTypeNode(type) {
2016
+ return new NodeObject(SyntaxKind.OptionalType, {
2017
+ type,
2018
+ });
2019
+ }
2020
+ export function createRestTypeNode(type) {
2021
+ return new NodeObject(SyntaxKind.RestType, {
2022
+ type,
2023
+ });
2024
+ }
2025
+ export function createParenthesizedTypeNode(type) {
2026
+ return new NodeObject(SyntaxKind.ParenthesizedType, {
2027
+ type,
2028
+ });
2029
+ }
2030
+ export function createFunctionTypeNode(typeParameters, parameters, type) {
2031
+ return new NodeObject(SyntaxKind.FunctionType, {
2032
+ typeParameters: typeParameters ? createNodeArray(typeParameters) : undefined,
2033
+ parameters: createNodeArray(parameters),
2034
+ type,
2035
+ });
2036
+ }
2037
+ export function createConstructorTypeNode(modifiers, typeParameters, parameters, type) {
2038
+ return new NodeObject(SyntaxKind.ConstructorType, {
2039
+ modifiers: modifiers ? createNodeArray(modifiers) : undefined,
2040
+ typeParameters: typeParameters ? createNodeArray(typeParameters) : undefined,
2041
+ parameters: createNodeArray(parameters),
2042
+ type,
2043
+ });
2044
+ }
2045
+ export function createTemplateHead(text, rawText, templateFlags) {
2046
+ return new NodeObject(SyntaxKind.TemplateHead, {
2047
+ text,
2048
+ rawText,
2049
+ templateFlags,
2050
+ });
2051
+ }
2052
+ export function createTemplateMiddle(text, rawText, templateFlags) {
2053
+ return new NodeObject(SyntaxKind.TemplateMiddle, {
2054
+ text,
2055
+ rawText,
2056
+ templateFlags,
2057
+ });
2058
+ }
2059
+ export function createTemplateTail(text, rawText, templateFlags) {
2060
+ return new NodeObject(SyntaxKind.TemplateTail, {
2061
+ text,
2062
+ rawText,
2063
+ templateFlags,
2064
+ });
2065
+ }
2066
+ export function createTemplateLiteralTypeNode(head, templateSpans) {
2067
+ return new NodeObject(SyntaxKind.TemplateLiteralType, {
2068
+ head,
2069
+ templateSpans: createNodeArray(templateSpans),
2070
+ });
2071
+ }
2072
+ export function createTemplateLiteralTypeSpan(type, literal) {
2073
+ return new NodeObject(SyntaxKind.TemplateLiteralTypeSpan, {
2074
+ type,
2075
+ literal,
2076
+ });
2077
+ }
2078
+ export function createSyntheticExpression(type, isSpread, tupleNameSource) {
2079
+ return new NodeObject(SyntaxKind.SyntheticExpression, {
2080
+ type,
2081
+ isSpread,
2082
+ tupleNameSource,
2083
+ });
2084
+ }
2085
+ export function createPartiallyEmittedExpression(expression) {
2086
+ return new NodeObject(SyntaxKind.PartiallyEmittedExpression, {
2087
+ expression,
2088
+ });
2089
+ }
2090
+ export function createJsxElement(openingElement, children, closingElement) {
2091
+ return new NodeObject(SyntaxKind.JsxElement, {
2092
+ openingElement,
2093
+ children: createNodeArray(children),
2094
+ closingElement,
2095
+ });
2096
+ }
2097
+ export function createJsxAttributes(properties) {
2098
+ return new NodeObject(SyntaxKind.JsxAttributes, {
2099
+ properties: createNodeArray(properties),
2100
+ });
2101
+ }
2102
+ export function createJsxNamespacedName(namespace, name) {
2103
+ return new NodeObject(SyntaxKind.JsxNamespacedName, {
2104
+ namespace,
2105
+ name,
2106
+ });
2107
+ }
2108
+ export function createJsxOpeningElement(tagName, typeArguments, attributes) {
2109
+ return new NodeObject(SyntaxKind.JsxOpeningElement, {
2110
+ tagName,
2111
+ typeArguments: typeArguments ? createNodeArray(typeArguments) : undefined,
2112
+ attributes,
2113
+ });
2114
+ }
2115
+ export function createJsxSelfClosingElement(tagName, typeArguments, attributes) {
2116
+ return new NodeObject(SyntaxKind.JsxSelfClosingElement, {
2117
+ tagName,
2118
+ typeArguments: typeArguments ? createNodeArray(typeArguments) : undefined,
2119
+ attributes,
2120
+ });
2121
+ }
2122
+ export function createJsxFragment(openingFragment, children, closingFragment) {
2123
+ return new NodeObject(SyntaxKind.JsxFragment, {
2124
+ openingFragment,
2125
+ children: createNodeArray(children),
2126
+ closingFragment,
2127
+ });
2128
+ }
2129
+ export function createJsxOpeningFragment() {
2130
+ return new NodeObject(SyntaxKind.JsxOpeningFragment, undefined);
2131
+ }
2132
+ export function createJsxClosingFragment() {
2133
+ return new NodeObject(SyntaxKind.JsxClosingFragment, undefined);
2134
+ }
2135
+ export function createJsxAttribute(name, initializer) {
2136
+ return new NodeObject(SyntaxKind.JsxAttribute, {
2137
+ name,
2138
+ initializer,
2139
+ });
2140
+ }
2141
+ export function createJsxSpreadAttribute(expression) {
2142
+ return new NodeObject(SyntaxKind.JsxSpreadAttribute, {
2143
+ expression,
2144
+ });
2145
+ }
2146
+ export function createJsxClosingElement(tagName) {
2147
+ return new NodeObject(SyntaxKind.JsxClosingElement, {
2148
+ tagName,
2149
+ });
2150
+ }
2151
+ export function createJsxExpression(dotDotDotToken, expression) {
2152
+ return new NodeObject(SyntaxKind.JsxExpression, {
2153
+ dotDotDotToken,
2154
+ expression,
2155
+ });
2156
+ }
2157
+ export function createJsxText(text, containsOnlyTriviaWhiteSpaces) {
2158
+ return new NodeObject(SyntaxKind.JsxText, {
2159
+ text,
2160
+ containsOnlyTriviaWhiteSpaces,
2161
+ });
2162
+ }
2163
+ export function createSyntaxList(children) {
2164
+ return new NodeObject(SyntaxKind.SyntaxList, {
2165
+ children,
2166
+ });
2167
+ }
2168
+ export function createJSDoc(comment, tags) {
2169
+ return new NodeObject(SyntaxKind.JSDoc, {
2170
+ comment: createNodeArray(comment),
2171
+ tags: tags ? createNodeArray(tags) : undefined,
2172
+ });
2173
+ }
2174
+ export function createJSDocTypeExpression(type) {
2175
+ return new NodeObject(SyntaxKind.JSDocTypeExpression, {
2176
+ type,
2177
+ });
2178
+ }
2179
+ export function createJSDocNonNullableType(type) {
2180
+ return new NodeObject(SyntaxKind.JSDocNonNullableType, {
2181
+ type,
2182
+ });
2183
+ }
2184
+ export function createJSDocNullableType(type) {
2185
+ return new NodeObject(SyntaxKind.JSDocNullableType, {
2186
+ type,
2187
+ });
2188
+ }
2189
+ export function createJSDocAllType() {
2190
+ return new NodeObject(SyntaxKind.JSDocAllType, undefined);
2191
+ }
2192
+ export function createJSDocVariadicType(type) {
2193
+ return new NodeObject(SyntaxKind.JSDocVariadicType, {
2194
+ type,
2195
+ });
2196
+ }
2197
+ export function createJSDocOptionalType(type) {
2198
+ return new NodeObject(SyntaxKind.JSDocOptionalType, {
2199
+ type,
2200
+ });
2201
+ }
2202
+ export function createJSDocTypeTag(tagName, typeExpression, comment) {
2203
+ return new NodeObject(SyntaxKind.JSDocTypeTag, {
2204
+ tagName,
2205
+ typeExpression,
2206
+ comment: comment ? createNodeArray(comment) : undefined,
2207
+ });
2208
+ }
2209
+ export function createJSDocUnknownTag(tagName, comment) {
2210
+ return new NodeObject(SyntaxKind.JSDocUnknownTag, {
2211
+ tagName,
2212
+ comment: comment ? createNodeArray(comment) : undefined,
2213
+ });
2214
+ }
2215
+ export function createJSDocTemplateTag(tagName, constraint, typeParameters, comment) {
2216
+ return new NodeObject(SyntaxKind.JSDocTemplateTag, {
2217
+ tagName,
2218
+ constraint,
2219
+ typeParameters: createNodeArray(typeParameters),
2220
+ comment: comment ? createNodeArray(comment) : undefined,
2221
+ });
2222
+ }
2223
+ export function createJSDocReturnTag(tagName, typeExpression, comment) {
2224
+ return new NodeObject(SyntaxKind.JSDocReturnTag, {
2225
+ tagName,
2226
+ typeExpression,
2227
+ comment: comment ? createNodeArray(comment) : undefined,
2228
+ });
2229
+ }
2230
+ export function createJSDocPublicTag(tagName, comment) {
2231
+ return new NodeObject(SyntaxKind.JSDocPublicTag, {
2232
+ tagName,
2233
+ comment: comment ? createNodeArray(comment) : undefined,
2234
+ });
2235
+ }
2236
+ export function createJSDocPrivateTag(tagName, comment) {
2237
+ return new NodeObject(SyntaxKind.JSDocPrivateTag, {
2238
+ tagName,
2239
+ comment: comment ? createNodeArray(comment) : undefined,
2240
+ });
2241
+ }
2242
+ export function createJSDocProtectedTag(tagName, comment) {
2243
+ return new NodeObject(SyntaxKind.JSDocProtectedTag, {
2244
+ tagName,
2245
+ comment: comment ? createNodeArray(comment) : undefined,
2246
+ });
2247
+ }
2248
+ export function createJSDocReadonlyTag(tagName, comment) {
2249
+ return new NodeObject(SyntaxKind.JSDocReadonlyTag, {
2250
+ tagName,
2251
+ comment: comment ? createNodeArray(comment) : undefined,
2252
+ });
2253
+ }
2254
+ export function createJSDocOverrideTag(tagName, comment) {
2255
+ return new NodeObject(SyntaxKind.JSDocOverrideTag, {
2256
+ tagName,
2257
+ comment: comment ? createNodeArray(comment) : undefined,
2258
+ });
2259
+ }
2260
+ export function createJSDocDeprecatedTag(tagName, comment) {
2261
+ return new NodeObject(SyntaxKind.JSDocDeprecatedTag, {
2262
+ tagName,
2263
+ comment: comment ? createNodeArray(comment) : undefined,
2264
+ });
2265
+ }
2266
+ export function createJSDocSeeTag(tagName, nameExpression, comment) {
2267
+ return new NodeObject(SyntaxKind.JSDocSeeTag, {
2268
+ tagName,
2269
+ nameExpression,
2270
+ comment: comment ? createNodeArray(comment) : undefined,
2271
+ });
2272
+ }
2273
+ export function createJSDocImplementsTag(tagName, className, comment) {
2274
+ return new NodeObject(SyntaxKind.JSDocImplementsTag, {
2275
+ tagName,
2276
+ className,
2277
+ comment: comment ? createNodeArray(comment) : undefined,
2278
+ });
2279
+ }
2280
+ export function createJSDocAugmentsTag(tagName, className, comment) {
2281
+ return new NodeObject(SyntaxKind.JSDocAugmentsTag, {
2282
+ tagName,
2283
+ className,
2284
+ comment: comment ? createNodeArray(comment) : undefined,
2285
+ });
2286
+ }
2287
+ export function createJSDocSatisfiesTag(tagName, typeExpression, comment) {
2288
+ return new NodeObject(SyntaxKind.JSDocSatisfiesTag, {
2289
+ tagName,
2290
+ typeExpression,
2291
+ comment: comment ? createNodeArray(comment) : undefined,
2292
+ });
2293
+ }
2294
+ export function createJSDocThrowsTag(tagName, typeExpression, comment) {
2295
+ return new NodeObject(SyntaxKind.JSDocThrowsTag, {
2296
+ tagName,
2297
+ typeExpression,
2298
+ comment: comment ? createNodeArray(comment) : undefined,
2299
+ });
2300
+ }
2301
+ export function createJSDocThisTag(tagName, typeExpression, comment) {
2302
+ return new NodeObject(SyntaxKind.JSDocThisTag, {
2303
+ tagName,
2304
+ typeExpression,
2305
+ comment: comment ? createNodeArray(comment) : undefined,
2306
+ });
2307
+ }
2308
+ export function createJSDocImportTag(tagName, importClause, moduleSpecifier, attributes, comment) {
2309
+ return new NodeObject(SyntaxKind.JSDocImportTag, {
2310
+ tagName,
2311
+ importClause,
2312
+ moduleSpecifier,
2313
+ attributes,
2314
+ comment: comment ? createNodeArray(comment) : undefined,
2315
+ });
2316
+ }
2317
+ export function createJSDocCallbackTag(tagName, typeExpression, fullName, comment) {
2318
+ return new NodeObject(SyntaxKind.JSDocCallbackTag, {
2319
+ tagName,
2320
+ typeExpression,
2321
+ fullName,
2322
+ comment: comment ? createNodeArray(comment) : undefined,
2323
+ });
2324
+ }
2325
+ export function createJSDocOverloadTag(tagName, typeExpression, comment) {
2326
+ return new NodeObject(SyntaxKind.JSDocOverloadTag, {
2327
+ tagName,
2328
+ typeExpression,
2329
+ comment: comment ? createNodeArray(comment) : undefined,
2330
+ });
2331
+ }
2332
+ export function createJSDocTypedefTag(tagName, typeExpression, name, comment) {
2333
+ return new NodeObject(SyntaxKind.JSDocTypedefTag, {
2334
+ tagName,
2335
+ typeExpression,
2336
+ name,
2337
+ comment: comment ? createNodeArray(comment) : undefined,
2338
+ });
2339
+ }
2340
+ export function createJSDocSignature(typeParameters, parameters, type) {
2341
+ return new NodeObject(SyntaxKind.JSDocSignature, {
2342
+ typeParameters: typeParameters ? createNodeArray(typeParameters) : undefined,
2343
+ parameters: createNodeArray(parameters),
2344
+ type,
2345
+ });
2346
+ }
2347
+ export function createJSDocNameReference(name) {
2348
+ return new NodeObject(SyntaxKind.JSDocNameReference, {
2349
+ name,
2350
+ });
2351
+ }
2352
+ export function createModuleDeclaration(modifiers, keyword, name, body) {
2353
+ return new NodeObject(SyntaxKind.ModuleDeclaration, {
2354
+ modifiers: modifiers ? createNodeArray(modifiers) : undefined,
2355
+ keyword,
2356
+ name,
2357
+ body,
2358
+ });
2359
+ }
2360
+ export function createImportEqualsDeclaration(modifiers, isTypeOnly = false, name, moduleReference) {
2361
+ return new NodeObject(SyntaxKind.ImportEqualsDeclaration, {
2362
+ modifiers: modifiers ? createNodeArray(modifiers) : undefined,
2363
+ isTypeOnly,
2364
+ name,
2365
+ moduleReference,
2366
+ });
2367
+ }
2368
+ export function createExportDeclaration(modifiers, isTypeOnly, exportClause, moduleSpecifier, attributes) {
2369
+ return new NodeObject(SyntaxKind.ExportDeclaration, {
2370
+ modifiers: modifiers ? createNodeArray(modifiers) : undefined,
2371
+ isTypeOnly,
2372
+ exportClause,
2373
+ moduleSpecifier,
2374
+ attributes,
2375
+ });
2376
+ }
2377
+ export function createImportTypeNode(isTypeOf = false, argument, attributes, qualifier, typeArguments) {
2378
+ return new NodeObject(SyntaxKind.ImportType, {
2379
+ isTypeOf,
2380
+ argument,
2381
+ attributes,
2382
+ qualifier,
2383
+ typeArguments: typeArguments ? createNodeArray(typeArguments) : undefined,
2384
+ });
2385
+ }
2386
+ export function createImportClause(phaseModifier, name, namedBindings) {
2387
+ return new NodeObject(SyntaxKind.ImportClause, {
2388
+ phaseModifier,
2389
+ name,
2390
+ namedBindings,
2391
+ });
2392
+ }
2393
+ export function createImportSpecifier(isTypeOnly = false, propertyName, name) {
2394
+ return new NodeObject(SyntaxKind.ImportSpecifier, {
2395
+ isTypeOnly,
2396
+ propertyName,
2397
+ name,
2398
+ });
2399
+ }
2400
+ export function createJSDocText(text) {
2401
+ return new NodeObject(SyntaxKind.JSDocText, {
2402
+ text,
2403
+ });
2404
+ }
2405
+ export function createJSDocLink(name, text) {
2406
+ return new NodeObject(SyntaxKind.JSDocLink, {
2407
+ name,
2408
+ text,
2409
+ });
2410
+ }
2411
+ export function createJSDocLinkPlain(name, text) {
2412
+ return new NodeObject(SyntaxKind.JSDocLinkPlain, {
2413
+ name,
2414
+ text,
2415
+ });
2416
+ }
2417
+ export function createJSDocLinkCode(name, text) {
2418
+ return new NodeObject(SyntaxKind.JSDocLinkCode, {
2419
+ name,
2420
+ text,
2421
+ });
2422
+ }
2423
+ export function createTypeParameterDeclaration(modifiers, name, constraint, expression, defaultType) {
2424
+ return new NodeObject(SyntaxKind.TypeParameter, {
2425
+ modifiers: modifiers ? createNodeArray(modifiers) : undefined,
2426
+ name,
2427
+ constraint,
2428
+ expression,
2429
+ defaultType,
2430
+ });
2431
+ }
2432
+ export function createSyntheticReferenceExpression(expression, thisArg) {
2433
+ return new NodeObject(SyntaxKind.SyntheticReferenceExpression, {
2434
+ expression,
2435
+ thisArg,
2436
+ });
2437
+ }
2438
+ export function createJSDocTypeLiteral(jsdocPropertyTags, isArrayType) {
2439
+ return new NodeObject(SyntaxKind.JSDocTypeLiteral, {
2440
+ jsdocPropertyTags,
2441
+ isArrayType,
2442
+ });
2443
+ }
2444
+ export function createForInStatement(awaitModifier, initializer, expression, statement) {
2445
+ return new NodeObject(SyntaxKind.ForInStatement, {
2446
+ awaitModifier,
2447
+ initializer,
2448
+ expression,
2449
+ statement,
2450
+ });
2451
+ }
2452
+ export function createForOfStatement(awaitModifier, initializer, expression, statement) {
2453
+ return new NodeObject(SyntaxKind.ForOfStatement, {
2454
+ awaitModifier,
2455
+ initializer,
2456
+ expression,
2457
+ statement,
2458
+ });
2459
+ }
2460
+ export function createCaseClause(expression, statements) {
2461
+ return new NodeObject(SyntaxKind.CaseClause, {
2462
+ expression,
2463
+ statements: createNodeArray(statements),
2464
+ });
2465
+ }
2466
+ export function createDefaultClause(expression, statements) {
2467
+ return new NodeObject(SyntaxKind.DefaultClause, {
2468
+ expression,
2469
+ statements: createNodeArray(statements),
2470
+ });
2471
+ }
2472
+ export function createObjectBindingPattern(elements) {
2473
+ return new NodeObject(SyntaxKind.ObjectBindingPattern, {
2474
+ elements: createNodeArray(elements),
2475
+ });
2476
+ }
2477
+ export function createArrayBindingPattern(elements) {
2478
+ return new NodeObject(SyntaxKind.ArrayBindingPattern, {
2479
+ elements: createNodeArray(elements),
2480
+ });
2481
+ }
2482
+ export function createJSDocParameterTag(tagName, name, isBracketed, typeExpression, isNameFirst, comment) {
2483
+ return new NodeObject(SyntaxKind.JSDocParameterTag, {
2484
+ tagName,
2485
+ name,
2486
+ isBracketed,
2487
+ typeExpression,
2488
+ isNameFirst,
2489
+ comment: comment ? createNodeArray(comment) : undefined,
2490
+ });
2491
+ }
2492
+ export function createJSDocPropertyTag(tagName, name, isBracketed, typeExpression, isNameFirst, comment) {
2493
+ return new NodeObject(SyntaxKind.JSDocPropertyTag, {
2494
+ tagName,
2495
+ name,
2496
+ isBracketed,
2497
+ typeExpression,
2498
+ isNameFirst,
2499
+ comment: comment ? createNodeArray(comment) : undefined,
2500
+ });
2501
+ }
2502
+ export function updateQualifiedName(node, left, right) {
2503
+ return node.left !== left || node.right !== right ? createQualifiedName(left, right) : node;
2504
+ }
2505
+ export function updateComputedPropertyName(node, expression) {
2506
+ return node.expression !== expression ? createComputedPropertyName(expression) : node;
2507
+ }
2508
+ export function updateDecorator(node, expression) {
2509
+ return node.expression !== expression ? createDecorator(expression) : node;
2510
+ }
2511
+ export function updateIfStatement(node, expression, thenStatement, elseStatement) {
2512
+ return node.expression !== expression || node.thenStatement !== thenStatement || node.elseStatement !== elseStatement ? createIfStatement(expression, thenStatement, elseStatement) : node;
2513
+ }
2514
+ export function updateDoStatement(node, statement, expression) {
2515
+ return node.statement !== statement || node.expression !== expression ? createDoStatement(statement, expression) : node;
2516
+ }
2517
+ export function updateWhileStatement(node, expression, statement) {
2518
+ return node.expression !== expression || node.statement !== statement ? createWhileStatement(expression, statement) : node;
2519
+ }
2520
+ export function updateForStatement(node, initializer, condition, incrementor, statement) {
2521
+ return node.initializer !== initializer || node.condition !== condition || node.incrementor !== incrementor || node.statement !== statement ? createForStatement(initializer, condition, incrementor, statement) : node;
2522
+ }
2523
+ export function updateBreakStatement(node, label) {
2524
+ return node.label !== label ? createBreakStatement(label) : node;
2525
+ }
2526
+ export function updateContinueStatement(node, label) {
2527
+ return node.label !== label ? createContinueStatement(label) : node;
2528
+ }
2529
+ export function updateReturnStatement(node, expression) {
2530
+ return node.expression !== expression ? createReturnStatement(expression) : node;
2531
+ }
2532
+ export function updateWithStatement(node, expression, statement) {
2533
+ return node.expression !== expression || node.statement !== statement ? createWithStatement(expression, statement) : node;
2534
+ }
2535
+ export function updateSwitchStatement(node, expression, caseBlock) {
2536
+ return node.expression !== expression || node.caseBlock !== caseBlock ? createSwitchStatement(expression, caseBlock) : node;
2537
+ }
2538
+ export function updateCaseBlock(node, clauses) {
2539
+ return node.clauses !== clauses ? createCaseBlock(clauses) : node;
2540
+ }
2541
+ export function updateThrowStatement(node, expression) {
2542
+ return node.expression !== expression ? createThrowStatement(expression) : node;
2543
+ }
2544
+ export function updateTryStatement(node, tryBlock, catchClause, finallyBlock) {
2545
+ return node.tryBlock !== tryBlock || node.catchClause !== catchClause || node.finallyBlock !== finallyBlock ? createTryStatement(tryBlock, catchClause, finallyBlock) : node;
2546
+ }
2547
+ export function updateCatchClause(node, variableDeclaration, block) {
2548
+ return node.variableDeclaration !== variableDeclaration || node.block !== block ? createCatchClause(variableDeclaration, block) : node;
2549
+ }
2550
+ export function updateLabeledStatement(node, label, statement) {
2551
+ return node.label !== label || node.statement !== statement ? createLabeledStatement(label, statement) : node;
2552
+ }
2553
+ export function updateExpressionStatement(node, expression) {
2554
+ return node.expression !== expression ? createExpressionStatement(expression) : node;
2555
+ }
2556
+ export function updateBlock(node, statements) {
2557
+ return node.statements !== statements ? createBlock(statements, node.multiLine) : node;
2558
+ }
2559
+ export function updateVariableStatement(node, modifiers, declarationList) {
2560
+ return node.modifiers !== modifiers || node.declarationList !== declarationList ? createVariableStatement(modifiers, declarationList) : node;
2561
+ }
2562
+ export function updateVariableDeclaration(node, name, exclamationToken, type, initializer) {
2563
+ return node.name !== name || node.exclamationToken !== exclamationToken || node.type !== type || node.initializer !== initializer ? createVariableDeclaration(name, exclamationToken, type, initializer) : node;
2564
+ }
2565
+ export function updateVariableDeclarationList(node, declarations) {
2566
+ return node.declarations !== declarations ? createVariableDeclarationList(declarations, node.flags) : node;
2567
+ }
2568
+ export function updateParameterDeclaration(node, modifiers, dotDotDotToken, name, questionToken, type, initializer) {
2569
+ return node.modifiers !== modifiers || node.dotDotDotToken !== dotDotDotToken || node.name !== name || node.questionToken !== questionToken || node.type !== type || node.initializer !== initializer ? createParameterDeclaration(modifiers, dotDotDotToken, name, questionToken, type, initializer) : node;
2570
+ }
2571
+ export function updateBindingElement(node, dotDotDotToken, propertyName, name, initializer) {
2572
+ return node.dotDotDotToken !== dotDotDotToken || node.propertyName !== propertyName || node.name !== name || node.initializer !== initializer ? createBindingElement(dotDotDotToken, propertyName, name, initializer) : node;
2573
+ }
2574
+ export function updateMissingDeclaration(node, modifiers) {
2575
+ return node.modifiers !== modifiers ? createMissingDeclaration(modifiers) : node;
2576
+ }
2577
+ export function updateFunctionDeclaration(node, modifiers, asteriskToken, name, typeParameters, parameters, type, body) {
2578
+ return node.modifiers !== modifiers || node.asteriskToken !== asteriskToken || node.name !== name || node.typeParameters !== typeParameters || node.parameters !== parameters || node.type !== type || node.body !== body ? createFunctionDeclaration(modifiers, asteriskToken, name, typeParameters, parameters, type, body) : node;
2579
+ }
2580
+ export function updateClassDeclaration(node, modifiers, name, typeParameters, heritageClauses, members) {
2581
+ return node.modifiers !== modifiers || node.name !== name || node.typeParameters !== typeParameters || node.heritageClauses !== heritageClauses || node.members !== members ? createClassDeclaration(modifiers, name, typeParameters, heritageClauses, members) : node;
2582
+ }
2583
+ export function updateClassExpression(node, modifiers, name, typeParameters, heritageClauses, members) {
2584
+ return node.modifiers !== modifiers || node.name !== name || node.typeParameters !== typeParameters || node.heritageClauses !== heritageClauses || node.members !== members ? createClassExpression(modifiers, name, typeParameters, heritageClauses, members) : node;
2585
+ }
2586
+ export function updateHeritageClause(node, types) {
2587
+ return node.types !== types ? createHeritageClause(node.token, types) : node;
2588
+ }
2589
+ export function updateInterfaceDeclaration(node, modifiers, name, typeParameters, heritageClauses, members) {
2590
+ return node.modifiers !== modifiers || node.name !== name || node.typeParameters !== typeParameters || node.heritageClauses !== heritageClauses || node.members !== members ? createInterfaceDeclaration(modifiers, name, typeParameters, heritageClauses, members) : node;
2591
+ }
2592
+ export function updateTypeAliasDeclaration(node, modifiers, name, typeParameters, type) {
2593
+ return node.modifiers !== modifiers || node.name !== name || node.typeParameters !== typeParameters || node.type !== type ? createTypeAliasDeclaration(modifiers, name, typeParameters, type) : node;
2594
+ }
2595
+ export function updateEnumMember(node, name, initializer) {
2596
+ return node.name !== name || node.initializer !== initializer ? createEnumMember(name, initializer) : node;
2597
+ }
2598
+ export function updateEnumDeclaration(node, modifiers, name, members) {
2599
+ return node.modifiers !== modifiers || node.name !== name || node.members !== members ? createEnumDeclaration(modifiers, name, members) : node;
2600
+ }
2601
+ export function updateModuleBlock(node, statements) {
2602
+ return node.statements !== statements ? createModuleBlock(statements) : node;
2603
+ }
2604
+ export function updateImportDeclaration(node, modifiers, importClause, moduleSpecifier, attributes) {
2605
+ return node.modifiers !== modifiers || node.importClause !== importClause || node.moduleSpecifier !== moduleSpecifier || node.attributes !== attributes ? createImportDeclaration(modifiers, importClause, moduleSpecifier, attributes) : node;
2606
+ }
2607
+ export function updateExternalModuleReference(node, expression) {
2608
+ return node.expression !== expression ? createExternalModuleReference(expression) : node;
2609
+ }
2610
+ export function updateNamespaceImport(node, name) {
2611
+ return node.name !== name ? createNamespaceImport(name) : node;
2612
+ }
2613
+ export function updateNamedImports(node, elements) {
2614
+ return node.elements !== elements ? createNamedImports(elements) : node;
2615
+ }
2616
+ export function updateExportAssignment(node, modifiers, type, expression) {
2617
+ return node.modifiers !== modifiers || node.type !== type || node.expression !== expression ? createExportAssignment(modifiers, node.isExportEquals, type, expression) : node;
2618
+ }
2619
+ export function updateNamespaceExportDeclaration(node, modifiers, name) {
2620
+ return node.modifiers !== modifiers || node.name !== name ? createNamespaceExportDeclaration(modifiers, name) : node;
2621
+ }
2622
+ export function updateNamespaceExport(node, name) {
2623
+ return node.name !== name ? createNamespaceExport(name) : node;
2624
+ }
2625
+ export function updateNamedExports(node, elements) {
2626
+ return node.elements !== elements ? createNamedExports(elements) : node;
2627
+ }
2628
+ export function updateExportSpecifier(node, propertyName, name) {
2629
+ return node.propertyName !== propertyName || node.name !== name ? createExportSpecifier(node.isTypeOnly, propertyName, name) : node;
2630
+ }
2631
+ export function updateCallSignatureDeclaration(node, typeParameters, parameters, type) {
2632
+ return node.typeParameters !== typeParameters || node.parameters !== parameters || node.type !== type ? createCallSignatureDeclaration(typeParameters, parameters, type) : node;
2633
+ }
2634
+ export function updateConstructSignatureDeclaration(node, typeParameters, parameters, type) {
2635
+ return node.typeParameters !== typeParameters || node.parameters !== parameters || node.type !== type ? createConstructSignatureDeclaration(typeParameters, parameters, type) : node;
2636
+ }
2637
+ export function updateConstructorDeclaration(node, modifiers, typeParameters, parameters, type, body) {
2638
+ return node.modifiers !== modifiers || node.typeParameters !== typeParameters || node.parameters !== parameters || node.type !== type || node.body !== body ? createConstructorDeclaration(modifiers, typeParameters, parameters, type, body) : node;
2639
+ }
2640
+ export function updateGetAccessorDeclaration(node, modifiers, name, typeParameters, parameters, type, body) {
2641
+ return node.modifiers !== modifiers || node.name !== name || node.typeParameters !== typeParameters || node.parameters !== parameters || node.type !== type || node.body !== body ? createGetAccessorDeclaration(modifiers, name, typeParameters, parameters, type, body) : node;
2642
+ }
2643
+ export function updateSetAccessorDeclaration(node, modifiers, name, typeParameters, parameters, type, body) {
2644
+ return node.modifiers !== modifiers || node.name !== name || node.typeParameters !== typeParameters || node.parameters !== parameters || node.type !== type || node.body !== body ? createSetAccessorDeclaration(modifiers, name, typeParameters, parameters, type, body) : node;
2645
+ }
2646
+ export function updateIndexSignatureDeclaration(node, modifiers, parameters, type) {
2647
+ return node.modifiers !== modifiers || node.parameters !== parameters || node.type !== type ? createIndexSignatureDeclaration(modifiers, parameters, type) : node;
2648
+ }
2649
+ export function updateMethodSignatureDeclaration(node, modifiers, name, postfixToken, typeParameters, parameters, type) {
2650
+ return node.modifiers !== modifiers || node.name !== name || node.postfixToken !== postfixToken || node.typeParameters !== typeParameters || node.parameters !== parameters || node.type !== type ? createMethodSignatureDeclaration(modifiers, name, postfixToken, typeParameters, parameters, type) : node;
2651
+ }
2652
+ export function updateMethodDeclaration(node, modifiers, asteriskToken, name, postfixToken, typeParameters, parameters, type, body) {
2653
+ return node.modifiers !== modifiers || node.asteriskToken !== asteriskToken || node.name !== name || node.postfixToken !== postfixToken || node.typeParameters !== typeParameters || node.parameters !== parameters || node.type !== type || node.body !== body ? createMethodDeclaration(modifiers, asteriskToken, name, postfixToken, typeParameters, parameters, type, body) : node;
2654
+ }
2655
+ export function updatePropertySignatureDeclaration(node, modifiers, name, postfixToken, type, initializer) {
2656
+ return node.modifiers !== modifiers || node.name !== name || node.postfixToken !== postfixToken || node.type !== type || node.initializer !== initializer ? createPropertySignatureDeclaration(modifiers, name, postfixToken, type, initializer) : node;
2657
+ }
2658
+ export function updatePropertyDeclaration(node, modifiers, name, postfixToken, type, initializer) {
2659
+ return node.modifiers !== modifiers || node.name !== name || node.postfixToken !== postfixToken || node.type !== type || node.initializer !== initializer ? createPropertyDeclaration(modifiers, name, postfixToken, type, initializer) : node;
2660
+ }
2661
+ export function updateClassStaticBlockDeclaration(node, modifiers, body) {
2662
+ return node.modifiers !== modifiers || node.body !== body ? createClassStaticBlockDeclaration(modifiers, body) : node;
2663
+ }
2664
+ export function updateBinaryExpression(node, modifiers, left, type, operatorToken, right) {
2665
+ return node.modifiers !== modifiers || node.left !== left || node.type !== type || node.operatorToken !== operatorToken || node.right !== right ? createBinaryExpression(modifiers, left, type, operatorToken, right) : node;
2666
+ }
2667
+ export function updatePrefixUnaryExpression(node, operand) {
2668
+ return node.operand !== operand ? createPrefixUnaryExpression(node.operator, operand) : node;
2669
+ }
2670
+ export function updatePostfixUnaryExpression(node, operand) {
2671
+ return node.operand !== operand ? createPostfixUnaryExpression(operand, node.operator) : node;
2672
+ }
2673
+ export function updateYieldExpression(node, asteriskToken, expression) {
2674
+ return node.asteriskToken !== asteriskToken || node.expression !== expression ? createYieldExpression(asteriskToken, expression) : node;
2675
+ }
2676
+ export function updateArrowFunction(node, modifiers, typeParameters, parameters, type, equalsGreaterThanToken, body) {
2677
+ return node.modifiers !== modifiers || node.typeParameters !== typeParameters || node.parameters !== parameters || node.type !== type || node.equalsGreaterThanToken !== equalsGreaterThanToken || node.body !== body ? createArrowFunction(modifiers, typeParameters, parameters, type, equalsGreaterThanToken, body) : node;
2678
+ }
2679
+ export function updateFunctionExpression(node, modifiers, asteriskToken, name, typeParameters, parameters, type, body) {
2680
+ return node.modifiers !== modifiers || node.asteriskToken !== asteriskToken || node.name !== name || node.typeParameters !== typeParameters || node.parameters !== parameters || node.type !== type || node.body !== body ? createFunctionExpression(modifiers, asteriskToken, name, typeParameters, parameters, type, body) : node;
2681
+ }
2682
+ export function updateAsExpression(node, expression, type) {
2683
+ return node.expression !== expression || node.type !== type ? createAsExpression(expression, type) : node;
2684
+ }
2685
+ export function updateSatisfiesExpression(node, expression, type) {
2686
+ return node.expression !== expression || node.type !== type ? createSatisfiesExpression(expression, type) : node;
2687
+ }
2688
+ export function updateConditionalExpression(node, condition, questionToken, whenTrue, colonToken, whenFalse) {
2689
+ return node.condition !== condition || node.questionToken !== questionToken || node.whenTrue !== whenTrue || node.colonToken !== colonToken || node.whenFalse !== whenFalse ? createConditionalExpression(condition, questionToken, whenTrue, colonToken, whenFalse) : node;
2690
+ }
2691
+ export function updatePropertyAccessExpression(node, expression, questionDotToken, name) {
2692
+ return node.expression !== expression || node.questionDotToken !== questionDotToken || node.name !== name ? createPropertyAccessExpression(expression, questionDotToken, name, node.flags) : node;
2693
+ }
2694
+ export function updateElementAccessExpression(node, expression, questionDotToken, argumentExpression) {
2695
+ return node.expression !== expression || node.questionDotToken !== questionDotToken || node.argumentExpression !== argumentExpression ? createElementAccessExpression(expression, questionDotToken, argumentExpression, node.flags) : node;
2696
+ }
2697
+ export function updateCallExpression(node, expression, questionDotToken, typeArguments, arguments_) {
2698
+ return node.expression !== expression || node.questionDotToken !== questionDotToken || node.typeArguments !== typeArguments || node.arguments !== arguments_ ? createCallExpression(expression, questionDotToken, typeArguments, arguments_, node.flags) : node;
2699
+ }
2700
+ export function updateNewExpression(node, expression, typeArguments, arguments_) {
2701
+ return node.expression !== expression || node.typeArguments !== typeArguments || node.arguments !== arguments_ ? createNewExpression(expression, typeArguments, arguments_) : node;
2702
+ }
2703
+ export function updateMetaProperty(node, name) {
2704
+ return node.name !== name ? createMetaProperty(node.keywordToken, name) : node;
2705
+ }
2706
+ export function updateNonNullExpression(node, expression) {
2707
+ return node.expression !== expression ? createNonNullExpression(expression, node.flags) : node;
2708
+ }
2709
+ export function updateSpreadElement(node, expression) {
2710
+ return node.expression !== expression ? createSpreadElement(expression) : node;
2711
+ }
2712
+ export function updateTemplateExpression(node, head, templateSpans) {
2713
+ return node.head !== head || node.templateSpans !== templateSpans ? createTemplateExpression(head, templateSpans) : node;
2714
+ }
2715
+ export function updateTemplateSpan(node, expression, literal) {
2716
+ return node.expression !== expression || node.literal !== literal ? createTemplateSpan(expression, literal) : node;
2717
+ }
2718
+ export function updateTaggedTemplateExpression(node, tag, questionDotToken, typeArguments, template) {
2719
+ return node.tag !== tag || node.questionDotToken !== questionDotToken || node.typeArguments !== typeArguments || node.template !== template ? createTaggedTemplateExpression(tag, questionDotToken, typeArguments, template, node.flags) : node;
2720
+ }
2721
+ export function updateParenthesizedExpression(node, expression) {
2722
+ return node.expression !== expression ? createParenthesizedExpression(expression) : node;
2723
+ }
2724
+ export function updateArrayLiteralExpression(node, elements) {
2725
+ return node.elements !== elements ? createArrayLiteralExpression(elements, node.multiLine) : node;
2726
+ }
2727
+ export function updateObjectLiteralExpression(node, properties) {
2728
+ return node.properties !== properties ? createObjectLiteralExpression(properties, node.multiLine) : node;
2729
+ }
2730
+ export function updateSpreadAssignment(node, expression) {
2731
+ return node.expression !== expression ? createSpreadAssignment(expression) : node;
2732
+ }
2733
+ export function updatePropertyAssignment(node, modifiers, name, postfixToken, type, initializer) {
2734
+ return node.modifiers !== modifiers || node.name !== name || node.postfixToken !== postfixToken || node.type !== type || node.initializer !== initializer ? createPropertyAssignment(modifiers, name, postfixToken, type, initializer) : node;
2735
+ }
2736
+ export function updateShorthandPropertyAssignment(node, modifiers, name, postfixToken, type, equalsToken, objectAssignmentInitializer) {
2737
+ return node.modifiers !== modifiers || node.name !== name || node.postfixToken !== postfixToken || node.type !== type || node.equalsToken !== equalsToken || node.objectAssignmentInitializer !== objectAssignmentInitializer ? createShorthandPropertyAssignment(modifiers, name, postfixToken, type, equalsToken, objectAssignmentInitializer) : node;
2738
+ }
2739
+ export function updateDeleteExpression(node, expression) {
2740
+ return node.expression !== expression ? createDeleteExpression(expression) : node;
2741
+ }
2742
+ export function updateTypeOfExpression(node, expression) {
2743
+ return node.expression !== expression ? createTypeOfExpression(expression) : node;
2744
+ }
2745
+ export function updateVoidExpression(node, expression) {
2746
+ return node.expression !== expression ? createVoidExpression(expression) : node;
2747
+ }
2748
+ export function updateAwaitExpression(node, expression) {
2749
+ return node.expression !== expression ? createAwaitExpression(expression) : node;
2750
+ }
2751
+ export function updateTypeAssertion(node, type, expression) {
2752
+ return node.type !== type || node.expression !== expression ? createTypeAssertion(type, expression) : node;
2753
+ }
2754
+ export function updateUnionTypeNode(node, types) {
2755
+ return node.types !== types ? createUnionTypeNode(types) : node;
2756
+ }
2757
+ export function updateIntersectionTypeNode(node, types) {
2758
+ return node.types !== types ? createIntersectionTypeNode(types) : node;
2759
+ }
2760
+ export function updateConditionalTypeNode(node, checkType, extendsType, trueType, falseType) {
2761
+ return node.checkType !== checkType || node.extendsType !== extendsType || node.trueType !== trueType || node.falseType !== falseType ? createConditionalTypeNode(checkType, extendsType, trueType, falseType) : node;
2762
+ }
2763
+ export function updateTypeOperatorNode(node, type) {
2764
+ return node.type !== type ? createTypeOperatorNode(node.operator, type) : node;
2765
+ }
2766
+ export function updateInferTypeNode(node, typeParameter) {
2767
+ return node.typeParameter !== typeParameter ? createInferTypeNode(typeParameter) : node;
2768
+ }
2769
+ export function updateArrayTypeNode(node, elementType) {
2770
+ return node.elementType !== elementType ? createArrayTypeNode(elementType) : node;
2771
+ }
2772
+ export function updateIndexedAccessTypeNode(node, objectType, indexType) {
2773
+ return node.objectType !== objectType || node.indexType !== indexType ? createIndexedAccessTypeNode(objectType, indexType) : node;
2774
+ }
2775
+ export function updateTypeReferenceNode(node, typeName, typeArguments) {
2776
+ return node.typeName !== typeName || node.typeArguments !== typeArguments ? createTypeReferenceNode(typeName, typeArguments) : node;
2777
+ }
2778
+ export function updateExpressionWithTypeArguments(node, expression, typeArguments) {
2779
+ return node.expression !== expression || node.typeArguments !== typeArguments ? createExpressionWithTypeArguments(expression, typeArguments) : node;
2780
+ }
2781
+ export function updateLiteralTypeNode(node, literal) {
2782
+ return node.literal !== literal ? createLiteralTypeNode(literal) : node;
2783
+ }
2784
+ export function updateTypePredicateNode(node, assertsModifier, parameterName, type) {
2785
+ return node.assertsModifier !== assertsModifier || node.parameterName !== parameterName || node.type !== type ? createTypePredicateNode(assertsModifier, parameterName, type) : node;
2786
+ }
2787
+ export function updateImportAttribute(node, name, value) {
2788
+ return node.name !== name || node.value !== value ? createImportAttribute(name, value) : node;
2789
+ }
2790
+ export function updateImportAttributes(node, attributes) {
2791
+ return node.attributes !== attributes ? createImportAttributes(node.token, attributes, node.multiLine) : node;
2792
+ }
2793
+ export function updateTypeQueryNode(node, exprName, typeArguments) {
2794
+ return node.exprName !== exprName || node.typeArguments !== typeArguments ? createTypeQueryNode(exprName, typeArguments) : node;
2795
+ }
2796
+ export function updateMappedTypeNode(node, readonlyToken, typeParameter, nameType, questionToken, type, members) {
2797
+ return node.readonlyToken !== readonlyToken || node.typeParameter !== typeParameter || node.nameType !== nameType || node.questionToken !== questionToken || node.type !== type || node.members !== members ? createMappedTypeNode(readonlyToken, typeParameter, nameType, questionToken, type, members) : node;
2798
+ }
2799
+ export function updateTypeLiteralNode(node, members) {
2800
+ return node.members !== members ? createTypeLiteralNode(members) : node;
2801
+ }
2802
+ export function updateTupleTypeNode(node, elements) {
2803
+ return node.elements !== elements ? createTupleTypeNode(elements) : node;
2804
+ }
2805
+ export function updateNamedTupleMember(node, dotDotDotToken, name, questionToken, type) {
2806
+ return node.dotDotDotToken !== dotDotDotToken || node.name !== name || node.questionToken !== questionToken || node.type !== type ? createNamedTupleMember(dotDotDotToken, name, questionToken, type) : node;
2807
+ }
2808
+ export function updateOptionalTypeNode(node, type) {
2809
+ return node.type !== type ? createOptionalTypeNode(type) : node;
2810
+ }
2811
+ export function updateRestTypeNode(node, type) {
2812
+ return node.type !== type ? createRestTypeNode(type) : node;
2813
+ }
2814
+ export function updateParenthesizedTypeNode(node, type) {
2815
+ return node.type !== type ? createParenthesizedTypeNode(type) : node;
2816
+ }
2817
+ export function updateFunctionTypeNode(node, typeParameters, parameters, type) {
2818
+ return node.typeParameters !== typeParameters || node.parameters !== parameters || node.type !== type ? createFunctionTypeNode(typeParameters, parameters, type) : node;
2819
+ }
2820
+ export function updateConstructorTypeNode(node, modifiers, typeParameters, parameters, type) {
2821
+ return node.modifiers !== modifiers || node.typeParameters !== typeParameters || node.parameters !== parameters || node.type !== type ? createConstructorTypeNode(modifiers, typeParameters, parameters, type) : node;
2822
+ }
2823
+ export function updateTemplateLiteralTypeNode(node, head, templateSpans) {
2824
+ return node.head !== head || node.templateSpans !== templateSpans ? createTemplateLiteralTypeNode(head, templateSpans) : node;
2825
+ }
2826
+ export function updateTemplateLiteralTypeSpan(node, type, literal) {
2827
+ return node.type !== type || node.literal !== literal ? createTemplateLiteralTypeSpan(type, literal) : node;
2828
+ }
2829
+ export function updateSyntheticExpression(node, tupleNameSource) {
2830
+ return node.tupleNameSource !== tupleNameSource ? createSyntheticExpression(node.type, node.isSpread, tupleNameSource) : node;
2831
+ }
2832
+ export function updatePartiallyEmittedExpression(node, expression) {
2833
+ return node.expression !== expression ? createPartiallyEmittedExpression(expression) : node;
2834
+ }
2835
+ export function updateJsxElement(node, openingElement, children, closingElement) {
2836
+ return node.openingElement !== openingElement || node.children !== children || node.closingElement !== closingElement ? createJsxElement(openingElement, children, closingElement) : node;
2837
+ }
2838
+ export function updateJsxAttributes(node, properties) {
2839
+ return node.properties !== properties ? createJsxAttributes(properties) : node;
2840
+ }
2841
+ export function updateJsxNamespacedName(node, namespace, name) {
2842
+ return node.namespace !== namespace || node.name !== name ? createJsxNamespacedName(namespace, name) : node;
2843
+ }
2844
+ export function updateJsxOpeningElement(node, tagName, typeArguments, attributes) {
2845
+ return node.tagName !== tagName || node.typeArguments !== typeArguments || node.attributes !== attributes ? createJsxOpeningElement(tagName, typeArguments, attributes) : node;
2846
+ }
2847
+ export function updateJsxSelfClosingElement(node, tagName, typeArguments, attributes) {
2848
+ return node.tagName !== tagName || node.typeArguments !== typeArguments || node.attributes !== attributes ? createJsxSelfClosingElement(tagName, typeArguments, attributes) : node;
2849
+ }
2850
+ export function updateJsxFragment(node, openingFragment, children, closingFragment) {
2851
+ return node.openingFragment !== openingFragment || node.children !== children || node.closingFragment !== closingFragment ? createJsxFragment(openingFragment, children, closingFragment) : node;
2852
+ }
2853
+ export function updateJsxAttribute(node, name, initializer) {
2854
+ return node.name !== name || node.initializer !== initializer ? createJsxAttribute(name, initializer) : node;
2855
+ }
2856
+ export function updateJsxSpreadAttribute(node, expression) {
2857
+ return node.expression !== expression ? createJsxSpreadAttribute(expression) : node;
2858
+ }
2859
+ export function updateJsxClosingElement(node, tagName) {
2860
+ return node.tagName !== tagName ? createJsxClosingElement(tagName) : node;
2861
+ }
2862
+ export function updateJsxExpression(node, dotDotDotToken, expression) {
2863
+ return node.dotDotDotToken !== dotDotDotToken || node.expression !== expression ? createJsxExpression(dotDotDotToken, expression) : node;
2864
+ }
2865
+ export function updateSyntaxList(node, children) {
2866
+ return node.children !== children ? createSyntaxList(children) : node;
2867
+ }
2868
+ export function updateJSDoc(node, comment, tags) {
2869
+ return node.comment !== comment || node.tags !== tags ? createJSDoc(comment, tags) : node;
2870
+ }
2871
+ export function updateJSDocTypeExpression(node, type) {
2872
+ return node.type !== type ? createJSDocTypeExpression(type) : node;
2873
+ }
2874
+ export function updateJSDocNonNullableType(node, type) {
2875
+ return node.type !== type ? createJSDocNonNullableType(type) : node;
2876
+ }
2877
+ export function updateJSDocNullableType(node, type) {
2878
+ return node.type !== type ? createJSDocNullableType(type) : node;
2879
+ }
2880
+ export function updateJSDocVariadicType(node, type) {
2881
+ return node.type !== type ? createJSDocVariadicType(type) : node;
2882
+ }
2883
+ export function updateJSDocOptionalType(node, type) {
2884
+ return node.type !== type ? createJSDocOptionalType(type) : node;
2885
+ }
2886
+ export function updateJSDocTypeTag(node, tagName, typeExpression, comment) {
2887
+ return node.tagName !== tagName || node.typeExpression !== typeExpression || node.comment !== comment ? createJSDocTypeTag(tagName, typeExpression, comment) : node;
2888
+ }
2889
+ export function updateJSDocUnknownTag(node, tagName, comment) {
2890
+ return node.tagName !== tagName || node.comment !== comment ? createJSDocUnknownTag(tagName, comment) : node;
2891
+ }
2892
+ export function updateJSDocTemplateTag(node, tagName, constraint, typeParameters, comment) {
2893
+ return node.tagName !== tagName || node.constraint !== constraint || node.typeParameters !== typeParameters || node.comment !== comment ? createJSDocTemplateTag(tagName, constraint, typeParameters, comment) : node;
2894
+ }
2895
+ export function updateJSDocReturnTag(node, tagName, typeExpression, comment) {
2896
+ return node.tagName !== tagName || node.typeExpression !== typeExpression || node.comment !== comment ? createJSDocReturnTag(tagName, typeExpression, comment) : node;
2897
+ }
2898
+ export function updateJSDocPublicTag(node, tagName, comment) {
2899
+ return node.tagName !== tagName || node.comment !== comment ? createJSDocPublicTag(tagName, comment) : node;
2900
+ }
2901
+ export function updateJSDocPrivateTag(node, tagName, comment) {
2902
+ return node.tagName !== tagName || node.comment !== comment ? createJSDocPrivateTag(tagName, comment) : node;
2903
+ }
2904
+ export function updateJSDocProtectedTag(node, tagName, comment) {
2905
+ return node.tagName !== tagName || node.comment !== comment ? createJSDocProtectedTag(tagName, comment) : node;
2906
+ }
2907
+ export function updateJSDocReadonlyTag(node, tagName, comment) {
2908
+ return node.tagName !== tagName || node.comment !== comment ? createJSDocReadonlyTag(tagName, comment) : node;
2909
+ }
2910
+ export function updateJSDocOverrideTag(node, tagName, comment) {
2911
+ return node.tagName !== tagName || node.comment !== comment ? createJSDocOverrideTag(tagName, comment) : node;
2912
+ }
2913
+ export function updateJSDocDeprecatedTag(node, tagName, comment) {
2914
+ return node.tagName !== tagName || node.comment !== comment ? createJSDocDeprecatedTag(tagName, comment) : node;
2915
+ }
2916
+ export function updateJSDocSeeTag(node, tagName, nameExpression, comment) {
2917
+ return node.tagName !== tagName || node.nameExpression !== nameExpression || node.comment !== comment ? createJSDocSeeTag(tagName, nameExpression, comment) : node;
2918
+ }
2919
+ export function updateJSDocImplementsTag(node, tagName, className, comment) {
2920
+ return node.tagName !== tagName || node.className !== className || node.comment !== comment ? createJSDocImplementsTag(tagName, className, comment) : node;
2921
+ }
2922
+ export function updateJSDocAugmentsTag(node, tagName, className, comment) {
2923
+ return node.tagName !== tagName || node.className !== className || node.comment !== comment ? createJSDocAugmentsTag(tagName, className, comment) : node;
2924
+ }
2925
+ export function updateJSDocSatisfiesTag(node, tagName, typeExpression, comment) {
2926
+ return node.tagName !== tagName || node.typeExpression !== typeExpression || node.comment !== comment ? createJSDocSatisfiesTag(tagName, typeExpression, comment) : node;
2927
+ }
2928
+ export function updateJSDocThrowsTag(node, tagName, typeExpression, comment) {
2929
+ return node.tagName !== tagName || node.typeExpression !== typeExpression || node.comment !== comment ? createJSDocThrowsTag(tagName, typeExpression, comment) : node;
2930
+ }
2931
+ export function updateJSDocThisTag(node, tagName, typeExpression, comment) {
2932
+ return node.tagName !== tagName || node.typeExpression !== typeExpression || node.comment !== comment ? createJSDocThisTag(tagName, typeExpression, comment) : node;
2933
+ }
2934
+ export function updateJSDocImportTag(node, tagName, importClause, moduleSpecifier, attributes, comment) {
2935
+ return node.tagName !== tagName || node.importClause !== importClause || node.moduleSpecifier !== moduleSpecifier || node.attributes !== attributes || node.comment !== comment ? createJSDocImportTag(tagName, importClause, moduleSpecifier, attributes, comment) : node;
2936
+ }
2937
+ export function updateJSDocCallbackTag(node, tagName, typeExpression, fullName, comment) {
2938
+ return node.tagName !== tagName || node.typeExpression !== typeExpression || node.fullName !== fullName || node.comment !== comment ? createJSDocCallbackTag(tagName, typeExpression, fullName, comment) : node;
2939
+ }
2940
+ export function updateJSDocOverloadTag(node, tagName, typeExpression, comment) {
2941
+ return node.tagName !== tagName || node.typeExpression !== typeExpression || node.comment !== comment ? createJSDocOverloadTag(tagName, typeExpression, comment) : node;
2942
+ }
2943
+ export function updateJSDocTypedefTag(node, tagName, typeExpression, name, comment) {
2944
+ return node.tagName !== tagName || node.typeExpression !== typeExpression || node.name !== name || node.comment !== comment ? createJSDocTypedefTag(tagName, typeExpression, name, comment) : node;
2945
+ }
2946
+ export function updateJSDocSignature(node, typeParameters, parameters, type) {
2947
+ return node.typeParameters !== typeParameters || node.parameters !== parameters || node.type !== type ? createJSDocSignature(typeParameters, parameters, type) : node;
2948
+ }
2949
+ export function updateJSDocNameReference(node, name) {
2950
+ return node.name !== name ? createJSDocNameReference(name) : node;
2951
+ }
2952
+ export function updateModuleDeclaration(node, modifiers, name, body) {
2953
+ return node.modifiers !== modifiers || node.name !== name || node.body !== body ? createModuleDeclaration(modifiers, node.keyword, name, body) : node;
2954
+ }
2955
+ export function updateImportEqualsDeclaration(node, modifiers, name, moduleReference) {
2956
+ return node.modifiers !== modifiers || node.name !== name || node.moduleReference !== moduleReference ? createImportEqualsDeclaration(modifiers, node.isTypeOnly, name, moduleReference) : node;
2957
+ }
2958
+ export function updateExportDeclaration(node, modifiers, exportClause, moduleSpecifier, attributes) {
2959
+ return node.modifiers !== modifiers || node.exportClause !== exportClause || node.moduleSpecifier !== moduleSpecifier || node.attributes !== attributes ? createExportDeclaration(modifiers, node.isTypeOnly, exportClause, moduleSpecifier, attributes) : node;
2960
+ }
2961
+ export function updateImportTypeNode(node, argument, attributes, qualifier, typeArguments) {
2962
+ return node.argument !== argument || node.attributes !== attributes || node.qualifier !== qualifier || node.typeArguments !== typeArguments ? createImportTypeNode(node.isTypeOf, argument, attributes, qualifier, typeArguments) : node;
2963
+ }
2964
+ export function updateImportClause(node, name, namedBindings) {
2965
+ return node.name !== name || node.namedBindings !== namedBindings ? createImportClause(node.phaseModifier, name, namedBindings) : node;
2966
+ }
2967
+ export function updateImportSpecifier(node, propertyName, name) {
2968
+ return node.propertyName !== propertyName || node.name !== name ? createImportSpecifier(node.isTypeOnly, propertyName, name) : node;
2969
+ }
2970
+ export function updateJSDocLink(node, name) {
2971
+ return node.name !== name ? createJSDocLink(name, node.text) : node;
2972
+ }
2973
+ export function updateJSDocLinkPlain(node, name) {
2974
+ return node.name !== name ? createJSDocLinkPlain(name, node.text) : node;
2975
+ }
2976
+ export function updateJSDocLinkCode(node, name) {
2977
+ return node.name !== name ? createJSDocLinkCode(name, node.text) : node;
2978
+ }
2979
+ export function updateTypeParameterDeclaration(node, modifiers, name, constraint, expression, defaultType) {
2980
+ return node.modifiers !== modifiers || node.name !== name || node.constraint !== constraint || node.expression !== expression || node.defaultType !== defaultType ? createTypeParameterDeclaration(modifiers, name, constraint, expression, defaultType) : node;
2981
+ }
2982
+ export function updateSyntheticReferenceExpression(node, expression, thisArg) {
2983
+ return node.expression !== expression || node.thisArg !== thisArg ? createSyntheticReferenceExpression(expression, thisArg) : node;
2984
+ }
2985
+ export function updateJSDocTypeLiteral(node, jsdocPropertyTags) {
2986
+ return node.jsdocPropertyTags !== jsdocPropertyTags ? createJSDocTypeLiteral(jsdocPropertyTags, node.isArrayType) : node;
2987
+ }
2988
+ export function updateForInStatement(node, awaitModifier, initializer, expression, statement) {
2989
+ return node.awaitModifier !== awaitModifier || node.initializer !== initializer || node.expression !== expression || node.statement !== statement ? createForInStatement(awaitModifier, initializer, expression, statement) : node;
2990
+ }
2991
+ export function updateForOfStatement(node, awaitModifier, initializer, expression, statement) {
2992
+ return node.awaitModifier !== awaitModifier || node.initializer !== initializer || node.expression !== expression || node.statement !== statement ? createForOfStatement(awaitModifier, initializer, expression, statement) : node;
2993
+ }
2994
+ export function updateCaseClause(node, expression, statements) {
2995
+ return node.expression !== expression || node.statements !== statements ? createCaseClause(expression, statements) : node;
2996
+ }
2997
+ export function updateDefaultClause(node, expression, statements) {
2998
+ return node.expression !== expression || node.statements !== statements ? createDefaultClause(expression, statements) : node;
2999
+ }
3000
+ export function updateObjectBindingPattern(node, elements) {
3001
+ return node.elements !== elements ? createObjectBindingPattern(elements) : node;
3002
+ }
3003
+ export function updateArrayBindingPattern(node, elements) {
3004
+ return node.elements !== elements ? createArrayBindingPattern(elements) : node;
3005
+ }
3006
+ export function updateJSDocParameterTag(node, tagName, name, typeExpression, comment) {
3007
+ return node.tagName !== tagName || node.name !== name || node.typeExpression !== typeExpression || node.comment !== comment ? createJSDocParameterTag(tagName, name, node.isBracketed, typeExpression, node.isNameFirst, comment) : node;
3008
+ }
3009
+ export function updateJSDocPropertyTag(node, tagName, name, typeExpression, comment) {
3010
+ return node.tagName !== tagName || node.name !== name || node.typeExpression !== typeExpression || node.comment !== comment ? createJSDocPropertyTag(tagName, name, node.isBracketed, typeExpression, node.isNameFirst, comment) : node;
3011
+ }
3012
+ export function createSourceFile(statements, endOfFileToken, text, fileName, path) {
3013
+ return new NodeObject(SyntaxKind.SourceFile, {
3014
+ statements: createNodeArray(statements),
3015
+ endOfFileToken,
3016
+ text,
3017
+ fileName,
3018
+ path,
3019
+ });
3020
+ }
3021
+ export function updateSourceFile(node, statements, endOfFileToken) {
3022
+ return node.statements !== statements || node.endOfFileToken !== endOfFileToken
3023
+ ? createSourceFile(statements, endOfFileToken, node.text, node.fileName, node.path)
3024
+ : node;
3025
+ }
3026
+ //# sourceMappingURL=factory.generated.js.map