@openrewrite/rewrite 8.72.2 → 8.72.3

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 (197) hide show
  1. package/dist/execution.js +3 -16
  2. package/dist/execution.js.map +1 -1
  3. package/dist/index.js +34 -49
  4. package/dist/index.js.map +1 -1
  5. package/dist/java/markers.js +12 -29
  6. package/dist/java/markers.js.map +1 -1
  7. package/dist/java/print.js +2 -13
  8. package/dist/java/print.js.map +1 -1
  9. package/dist/java/rpc.js +1344 -1725
  10. package/dist/java/rpc.js.map +1 -1
  11. package/dist/java/type-visitor.js +143 -184
  12. package/dist/java/type-visitor.js.map +1 -1
  13. package/dist/java/visitor.js +1072 -1249
  14. package/dist/java/visitor.js.map +1 -1
  15. package/dist/javascript/add-import.js +495 -534
  16. package/dist/javascript/add-import.js.map +1 -1
  17. package/dist/javascript/autodetect.js +116 -159
  18. package/dist/javascript/autodetect.js.map +1 -1
  19. package/dist/javascript/cleanup/add-parse-int-radix.js +41 -57
  20. package/dist/javascript/cleanup/add-parse-int-radix.js.map +1 -1
  21. package/dist/javascript/cleanup/prefer-optional-chain.js +89 -105
  22. package/dist/javascript/cleanup/prefer-optional-chain.js.map +1 -1
  23. package/dist/javascript/cleanup/use-object-property-shorthand.js +74 -95
  24. package/dist/javascript/cleanup/use-object-property-shorthand.js.map +1 -1
  25. package/dist/javascript/comparator.js +815 -1167
  26. package/dist/javascript/comparator.js.map +1 -1
  27. package/dist/javascript/dependency-workspace.js +206 -219
  28. package/dist/javascript/dependency-workspace.js.map +1 -1
  29. package/dist/javascript/format/format.js +682 -908
  30. package/dist/javascript/format/format.js.map +1 -1
  31. package/dist/javascript/format/minimum-viable-spacing-visitor.js +152 -231
  32. package/dist/javascript/format/minimum-viable-spacing-visitor.js.map +1 -1
  33. package/dist/javascript/format/normalize-whitespace-visitor.js +12 -31
  34. package/dist/javascript/format/normalize-whitespace-visitor.js.map +1 -1
  35. package/dist/javascript/format/prettier-config-loader.js +134 -153
  36. package/dist/javascript/format/prettier-config-loader.js.map +1 -1
  37. package/dist/javascript/format/prettier-format.js +112 -129
  38. package/dist/javascript/format/prettier-format.js.map +1 -1
  39. package/dist/javascript/format/tabs-and-indents-visitor.js +112 -136
  40. package/dist/javascript/format/tabs-and-indents-visitor.js.map +1 -1
  41. package/dist/javascript/markers.js +59 -92
  42. package/dist/javascript/markers.js.map +1 -1
  43. package/dist/javascript/migrate/es6/modernize-octal-escape-sequences.js +39 -52
  44. package/dist/javascript/migrate/es6/modernize-octal-escape-sequences.js.map +1 -1
  45. package/dist/javascript/migrate/es6/modernize-octal-literals.js +25 -38
  46. package/dist/javascript/migrate/es6/modernize-octal-literals.js.map +1 -1
  47. package/dist/javascript/migrate/es6/remove-duplicate-object-keys.js +66 -82
  48. package/dist/javascript/migrate/es6/remove-duplicate-object-keys.js.map +1 -1
  49. package/dist/javascript/migrate/typescript/export-assignment-to-export-default.js +10 -23
  50. package/dist/javascript/migrate/typescript/export-assignment-to-export-default.js.map +1 -1
  51. package/dist/javascript/node-resolution-result.js +137 -166
  52. package/dist/javascript/node-resolution-result.js.map +1 -1
  53. package/dist/javascript/package-json-parser.js +312 -343
  54. package/dist/javascript/package-json-parser.js.map +1 -1
  55. package/dist/javascript/package-manager.js +145 -170
  56. package/dist/javascript/package-manager.js.map +1 -1
  57. package/dist/javascript/parser.d.ts.map +1 -1
  58. package/dist/javascript/parser.js +94 -68
  59. package/dist/javascript/parser.js.map +1 -1
  60. package/dist/javascript/print.js +1572 -1835
  61. package/dist/javascript/print.js.map +1 -1
  62. package/dist/javascript/project-parser.js +151 -172
  63. package/dist/javascript/project-parser.js.map +1 -1
  64. package/dist/javascript/recipes/add-dependency.js +140 -175
  65. package/dist/javascript/recipes/add-dependency.js.map +1 -1
  66. package/dist/javascript/recipes/async-callback-in-sync-array-method.js +20 -36
  67. package/dist/javascript/recipes/async-callback-in-sync-array-method.js.map +1 -1
  68. package/dist/javascript/recipes/auto-format.js +3 -14
  69. package/dist/javascript/recipes/auto-format.js.map +1 -1
  70. package/dist/javascript/recipes/change-import.js +447 -495
  71. package/dist/javascript/recipes/change-import.js.map +1 -1
  72. package/dist/javascript/recipes/order-imports.js +162 -175
  73. package/dist/javascript/recipes/order-imports.js.map +1 -1
  74. package/dist/javascript/recipes/upgrade-dependency-version.js +167 -197
  75. package/dist/javascript/recipes/upgrade-dependency-version.js.map +1 -1
  76. package/dist/javascript/recipes/upgrade-transitive-dependency-version.js +166 -193
  77. package/dist/javascript/recipes/upgrade-transitive-dependency-version.js.map +1 -1
  78. package/dist/javascript/remove-import.js +689 -724
  79. package/dist/javascript/remove-import.js.map +1 -1
  80. package/dist/javascript/rpc.js +1007 -1332
  81. package/dist/javascript/rpc.js.map +1 -1
  82. package/dist/javascript/search/find-dependency.js +84 -110
  83. package/dist/javascript/search/find-dependency.js.map +1 -1
  84. package/dist/javascript/search/uses-method.js +5 -19
  85. package/dist/javascript/search/uses-method.js.map +1 -1
  86. package/dist/javascript/search/uses-type.js +9 -20
  87. package/dist/javascript/search/uses-type.js.map +1 -1
  88. package/dist/javascript/templating/comparator.js +737 -822
  89. package/dist/javascript/templating/comparator.js.map +1 -1
  90. package/dist/javascript/templating/engine.js +211 -245
  91. package/dist/javascript/templating/engine.js.map +1 -1
  92. package/dist/javascript/templating/pattern.js +169 -190
  93. package/dist/javascript/templating/pattern.js.map +1 -1
  94. package/dist/javascript/templating/placeholder-replacement.js +172 -210
  95. package/dist/javascript/templating/placeholder-replacement.js.map +1 -1
  96. package/dist/javascript/templating/rewrite.js +75 -97
  97. package/dist/javascript/templating/rewrite.js.map +1 -1
  98. package/dist/javascript/templating/template.js +69 -82
  99. package/dist/javascript/templating/template.js.map +1 -1
  100. package/dist/javascript/tree-debug.js +109 -137
  101. package/dist/javascript/tree-debug.js.map +1 -1
  102. package/dist/javascript/visitor.js +1090 -1254
  103. package/dist/javascript/visitor.js.map +1 -1
  104. package/dist/json/print.js +72 -103
  105. package/dist/json/print.js.map +1 -1
  106. package/dist/json/rpc.js +120 -181
  107. package/dist/json/rpc.js.map +1 -1
  108. package/dist/json/visitor.js +69 -100
  109. package/dist/json/visitor.js.map +1 -1
  110. package/dist/marketplace.js +20 -33
  111. package/dist/marketplace.js.map +1 -1
  112. package/dist/parse-error.js +41 -62
  113. package/dist/parse-error.js.map +1 -1
  114. package/dist/parser.js +7 -18
  115. package/dist/parser.js.map +1 -1
  116. package/dist/path-utils.js +46 -59
  117. package/dist/path-utils.js.map +1 -1
  118. package/dist/preconditions.js +30 -47
  119. package/dist/preconditions.js.map +1 -1
  120. package/dist/print.js +6 -19
  121. package/dist/print.js.map +1 -1
  122. package/dist/recipe.js +42 -73
  123. package/dist/recipe.js.map +1 -1
  124. package/dist/rpc/index.js +74 -115
  125. package/dist/rpc/index.js.map +1 -1
  126. package/dist/rpc/queue.js +71 -90
  127. package/dist/rpc/queue.js.map +1 -1
  128. package/dist/rpc/recipe.js +32 -57
  129. package/dist/rpc/recipe.js.map +1 -1
  130. package/dist/rpc/request/generate.js +4 -13
  131. package/dist/rpc/request/generate.js.map +1 -1
  132. package/dist/rpc/request/get-languages.js +2 -11
  133. package/dist/rpc/request/get-languages.js.map +1 -1
  134. package/dist/rpc/request/get-marketplace.js +9 -20
  135. package/dist/rpc/request/get-marketplace.js.map +1 -1
  136. package/dist/rpc/request/get-object.js +4 -13
  137. package/dist/rpc/request/get-object.js.map +1 -1
  138. package/dist/rpc/request/install-recipes.js +25 -36
  139. package/dist/rpc/request/install-recipes.js.map +1 -1
  140. package/dist/rpc/request/metrics.js +8 -17
  141. package/dist/rpc/request/metrics.js.map +1 -1
  142. package/dist/rpc/request/parse-project.js +36 -45
  143. package/dist/rpc/request/parse-project.js.map +1 -1
  144. package/dist/rpc/request/parse.js +5 -14
  145. package/dist/rpc/request/parse.js.map +1 -1
  146. package/dist/rpc/request/prepare-recipe.js +37 -52
  147. package/dist/rpc/request/prepare-recipe.js.map +1 -1
  148. package/dist/rpc/request/print.js +5 -14
  149. package/dist/rpc/request/print.js.map +1 -1
  150. package/dist/rpc/request/visit.js +56 -71
  151. package/dist/rpc/request/visit.js.map +1 -1
  152. package/dist/rpc/rewrite-rpc.js +70 -97
  153. package/dist/rpc/rewrite-rpc.js.map +1 -1
  154. package/dist/rpc/server.js +76 -89
  155. package/dist/rpc/server.js.map +1 -1
  156. package/dist/run.js +47 -66
  157. package/dist/run.js.map +1 -1
  158. package/dist/search/is-source-file.js +8 -19
  159. package/dist/search/is-source-file.js.map +1 -1
  160. package/dist/test/rewrite-test.js +154 -188
  161. package/dist/test/rewrite-test.js.map +1 -1
  162. package/dist/text/print.js +23 -38
  163. package/dist/text/print.js.map +1 -1
  164. package/dist/text/rpc.js +29 -44
  165. package/dist/text/rpc.js.map +1 -1
  166. package/dist/text/visitor.js +16 -33
  167. package/dist/text/visitor.js.map +1 -1
  168. package/dist/util.js +13 -24
  169. package/dist/util.js.map +1 -1
  170. package/dist/version.txt +1 -1
  171. package/dist/visitor.js +84 -115
  172. package/dist/visitor.js.map +1 -1
  173. package/dist/yaml/index.d.ts +2 -0
  174. package/dist/yaml/index.d.ts.map +1 -1
  175. package/dist/yaml/index.js +2 -0
  176. package/dist/yaml/index.js.map +1 -1
  177. package/dist/yaml/markers.d.ts +21 -0
  178. package/dist/yaml/markers.d.ts.map +1 -0
  179. package/dist/yaml/markers.js +37 -0
  180. package/dist/yaml/markers.js.map +1 -0
  181. package/dist/yaml/parser.d.ts.map +1 -1
  182. package/dist/yaml/parser.js +4 -1
  183. package/dist/yaml/parser.js.map +1 -1
  184. package/dist/yaml/print.d.ts +1 -1
  185. package/dist/yaml/print.d.ts.map +1 -1
  186. package/dist/yaml/print.js +175 -208
  187. package/dist/yaml/print.js.map +1 -1
  188. package/dist/yaml/rpc.js +154 -219
  189. package/dist/yaml/rpc.js.map +1 -1
  190. package/dist/yaml/visitor.js +78 -113
  191. package/dist/yaml/visitor.js.map +1 -1
  192. package/package.json +1 -1
  193. package/src/javascript/parser.ts +56 -14
  194. package/src/yaml/index.ts +2 -0
  195. package/src/yaml/markers.ts +70 -0
  196. package/src/yaml/parser.ts +5 -1
  197. package/src/yaml/print.ts +5 -2
@@ -1,14 +1,5 @@
1
1
  "use strict";
2
2
  // noinspection JSUnusedGlobalSymbols
3
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
4
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5
- return new (P || (P = Promise))(function (resolve, reject) {
6
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
7
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
8
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
9
- step((generator = generator.apply(thisArg, _arguments || [])).next());
10
- });
11
- };
12
3
  Object.defineProperty(exports, "__esModule", { value: true });
13
4
  exports.JavaScriptVisitor = void 0;
14
5
  /*
@@ -31,1262 +22,1107 @@ const java_1 = require("../java");
31
22
  const mutative_1 = require("mutative");
32
23
  const tree_1 = require("./tree");
33
24
  class JavaScriptVisitor extends java_1.JavaVisitor {
34
- isAcceptable(sourceFile) {
35
- return __awaiter(this, void 0, void 0, function* () {
36
- return (0, tree_1.isJavaScript)(sourceFile);
37
- });
25
+ async isAcceptable(sourceFile) {
26
+ return (0, tree_1.isJavaScript)(sourceFile);
38
27
  }
39
28
  // noinspection JSUnusedGlobalSymbols,JSUnusedLocalSymbols
40
- visitExpression(expression, p) {
41
- return __awaiter(this, void 0, void 0, function* () {
42
- return expression;
43
- });
29
+ async visitExpression(expression, p) {
30
+ return expression;
44
31
  }
45
32
  // noinspection JSUnusedGlobalSymbols,JSUnusedLocalSymbols
46
- visitStatement(statement, p) {
47
- return __awaiter(this, void 0, void 0, function* () {
48
- return statement;
49
- });
33
+ async visitStatement(statement, p) {
34
+ return statement;
50
35
  }
51
36
  // noinspection JSUnusedLocalSymbols
52
- visitSpace(space, p) {
53
- return __awaiter(this, void 0, void 0, function* () {
54
- return space;
55
- });
37
+ async visitSpace(space, p) {
38
+ return space;
56
39
  }
57
40
  // noinspection JSUnusedLocalSymbols
58
- visitType(javaType, p) {
59
- return __awaiter(this, void 0, void 0, function* () {
60
- return javaType;
61
- });
41
+ async visitType(javaType, p) {
42
+ return javaType;
62
43
  }
63
44
  // noinspection JSUnusedLocalSymbols
64
- visitTypeName(nameTree, p) {
65
- return __awaiter(this, void 0, void 0, function* () {
66
- return nameTree;
67
- });
68
- }
69
- produceJavaScript(before, p, recipe) {
70
- return __awaiter(this, void 0, void 0, function* () {
71
- const [draft, finishDraft] = (0, mutative_1.create)(before);
72
- draft.prefix = yield this.visitSpace(before.prefix, p);
73
- draft.markers = yield this.visitMarkers(before.markers, p);
74
- if (recipe) {
75
- yield recipe(draft);
76
- }
77
- return finishDraft();
78
- });
79
- }
80
- visitAlias(alias, p) {
81
- return __awaiter(this, void 0, void 0, function* () {
82
- const expression = yield this.visitExpression(alias, p);
83
- if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.Alias) {
84
- return expression;
85
- }
86
- alias = expression;
87
- const updates = {
88
- prefix: yield this.visitSpace(alias.prefix, p),
89
- markers: yield this.visitMarkers(alias.markers, p),
90
- propertyName: yield this.visitRightPadded(alias.propertyName, p),
91
- alias: yield this.visitDefined(alias.alias, p)
92
- };
93
- return (0, util_1.updateIfChanged)(alias, updates);
94
- });
95
- }
96
- visitArrowFunction(arrowFunction, p) {
97
- return __awaiter(this, void 0, void 0, function* () {
98
- const expression = yield this.visitExpression(arrowFunction, p);
99
- if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.ArrowFunction) {
100
- return expression;
101
- }
102
- arrowFunction = expression;
103
- const statement = yield this.visitStatement(arrowFunction, p);
104
- if (!(statement === null || statement === void 0 ? void 0 : statement.kind) || statement.kind !== tree_1.JS.Kind.ArrowFunction) {
105
- return statement;
106
- }
107
- arrowFunction = statement;
108
- const updates = {
109
- prefix: yield this.visitSpace(arrowFunction.prefix, p),
110
- markers: yield this.visitMarkers(arrowFunction.markers, p),
111
- leadingAnnotations: yield (0, util_1.mapAsync)(arrowFunction.leadingAnnotations, item => this.visitDefined(item, p)),
112
- modifiers: yield (0, util_1.mapAsync)(arrowFunction.modifiers, item => this.visitDefined(item, p)),
113
- typeParameters: arrowFunction.typeParameters && (yield this.visitDefined(arrowFunction.typeParameters, p)),
114
- lambda: yield this.visitDefined(arrowFunction.lambda, p),
115
- returnTypeExpression: arrowFunction.returnTypeExpression && (yield this.visitDefined(arrowFunction.returnTypeExpression, p))
116
- };
117
- return (0, util_1.updateIfChanged)(arrowFunction, updates);
118
- });
119
- }
120
- visitAs(as_, p) {
121
- return __awaiter(this, void 0, void 0, function* () {
122
- const updates = {
123
- prefix: yield this.visitSpace(as_.prefix, p),
124
- markers: yield this.visitMarkers(as_.markers, p),
125
- left: yield this.visitRightPadded(as_.left, p),
126
- right: yield this.visitDefined(as_.right, p),
127
- type: as_.type && (yield this.visitType(as_.type, p))
128
- };
129
- return (0, util_1.updateIfChanged)(as_, updates);
130
- });
131
- }
132
- visitAwait(await_, p) {
133
- return __awaiter(this, void 0, void 0, function* () {
134
- const expression = yield this.visitExpression(await_, p);
135
- if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.Await) {
136
- return expression;
137
- }
138
- await_ = expression;
139
- const updates = {
140
- prefix: yield this.visitSpace(await_.prefix, p),
141
- markers: yield this.visitMarkers(await_.markers, p),
142
- expression: yield this.visitDefined(await_.expression, p),
143
- type: await_.type && (yield this.visitType(await_.type, p))
144
- };
145
- return (0, util_1.updateIfChanged)(await_, updates);
146
- });
147
- }
148
- visitJsxTag(element, p) {
149
- return __awaiter(this, void 0, void 0, function* () {
150
- const updates = {
151
- prefix: yield this.visitSpace(element.prefix, p),
152
- markers: yield this.visitMarkers(element.markers, p),
153
- openName: yield this.visitLeftPadded(element.openName, p),
154
- typeArguments: element.typeArguments && (yield this.visitContainer(element.typeArguments, p)),
155
- afterName: yield this.visitSpace(element.afterName, p),
156
- attributes: yield (0, util_1.mapAsync)(element.attributes, attr => this.visitRightPadded(attr, p)),
157
- selfClosing: element.selfClosing && (yield this.visitSpace(element.selfClosing, p)),
158
- children: element.children && (yield (0, util_1.mapAsync)(element.children, child => this.visit(child, p))),
159
- closingName: element.closingName && (yield this.visitLeftPadded(element.closingName, p)),
160
- afterClosingName: element.afterClosingName && (yield this.visitSpace(element.afterClosingName, p))
161
- };
162
- return (0, util_1.updateIfChanged)(element, updates);
163
- });
164
- }
165
- visitJsxAttribute(attribute, p) {
166
- return __awaiter(this, void 0, void 0, function* () {
167
- const updates = {
168
- prefix: yield this.visitSpace(attribute.prefix, p),
169
- markers: yield this.visitMarkers(attribute.markers, p),
170
- key: yield this.visitDefined(attribute.key, p),
171
- value: attribute.value && (yield this.visitLeftPadded(attribute.value, p))
172
- };
173
- return (0, util_1.updateIfChanged)(attribute, updates);
174
- });
175
- }
176
- visitJsxSpreadAttribute(spread, p) {
177
- return __awaiter(this, void 0, void 0, function* () {
178
- const updates = {
179
- prefix: yield this.visitSpace(spread.prefix, p),
180
- markers: yield this.visitMarkers(spread.markers, p),
181
- dots: yield this.visitSpace(spread.dots, p),
182
- expression: yield this.visitRightPadded(spread.expression, p)
183
- };
184
- return (0, util_1.updateIfChanged)(spread, updates);
185
- });
186
- }
187
- visitJsxEmbeddedExpression(expr, p) {
188
- return __awaiter(this, void 0, void 0, function* () {
189
- const updates = {
190
- prefix: yield this.visitSpace(expr.prefix, p),
191
- markers: yield this.visitMarkers(expr.markers, p),
192
- expression: yield this.visitRightPadded(expr.expression, p)
193
- };
194
- return (0, util_1.updateIfChanged)(expr, updates);
195
- });
196
- }
197
- visitJsxNamespacedName(ns, p) {
198
- return __awaiter(this, void 0, void 0, function* () {
199
- const updates = {
200
- prefix: yield this.visitSpace(ns.prefix, p),
201
- markers: yield this.visitMarkers(ns.markers, p),
202
- namespace: yield this.visitDefined(ns.namespace, p),
203
- name: yield this.visitLeftPadded(ns.name, p)
204
- };
205
- return (0, util_1.updateIfChanged)(ns, updates);
206
- });
207
- }
208
- visitJsCompilationUnit(compilationUnit, p) {
209
- return __awaiter(this, void 0, void 0, function* () {
210
- const updates = {
211
- prefix: yield this.visitSpace(compilationUnit.prefix, p),
212
- markers: yield this.visitMarkers(compilationUnit.markers, p),
213
- statements: yield (0, util_1.mapAsync)(compilationUnit.statements, stmt => this.visitRightPadded(stmt, p)),
214
- eof: yield this.visitSpace(compilationUnit.eof, p)
215
- };
216
- return (0, util_1.updateIfChanged)(compilationUnit, updates);
217
- });
218
- }
219
- visitConditionalType(conditionalType, p) {
220
- return __awaiter(this, void 0, void 0, function* () {
221
- const expression = yield this.visitExpression(conditionalType, p);
222
- if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.ConditionalType) {
223
- return expression;
224
- }
225
- conditionalType = expression;
226
- const updates = {
227
- prefix: yield this.visitSpace(conditionalType.prefix, p),
228
- markers: yield this.visitMarkers(conditionalType.markers, p),
229
- checkType: yield this.visitDefined(conditionalType.checkType, p),
230
- condition: yield this.visitLeftPadded(conditionalType.condition, p),
231
- type: conditionalType.type && (yield this.visitType(conditionalType.type, p))
232
- };
233
- return (0, util_1.updateIfChanged)(conditionalType, updates);
234
- });
235
- }
236
- visitDelete(delete_, p) {
237
- return __awaiter(this, void 0, void 0, function* () {
238
- const expression = yield this.visitExpression(delete_, p);
239
- if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.Delete) {
240
- return expression;
241
- }
242
- delete_ = expression;
243
- const statement = yield this.visitStatement(delete_, p);
244
- if (!(statement === null || statement === void 0 ? void 0 : statement.kind) || statement.kind !== tree_1.JS.Kind.Delete) {
245
- return statement;
246
- }
247
- delete_ = statement;
248
- const updates = {
249
- prefix: yield this.visitSpace(delete_.prefix, p),
250
- markers: yield this.visitMarkers(delete_.markers, p),
251
- expression: yield this.visitDefined(delete_.expression, p)
252
- };
253
- return (0, util_1.updateIfChanged)(delete_, updates);
254
- });
255
- }
256
- visitExpressionStatement(expressionStatement, p) {
257
- return __awaiter(this, void 0, void 0, function* () {
258
- const expression = yield this.visitExpression(expressionStatement, p);
259
- if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.ExpressionStatement) {
260
- return expression;
261
- }
262
- expressionStatement = expression;
263
- const statement = yield this.visitStatement(expressionStatement, p);
264
- if (!(statement === null || statement === void 0 ? void 0 : statement.kind) || statement.kind !== tree_1.JS.Kind.ExpressionStatement) {
265
- return statement;
266
- }
267
- expressionStatement = statement;
268
- const updates = {
269
- prefix: yield this.visitSpace(expressionStatement.prefix, p),
270
- markers: yield this.visitMarkers(expressionStatement.markers, p),
271
- expression: yield this.visitDefined(expressionStatement.expression, p)
272
- };
273
- return (0, util_1.updateIfChanged)(expressionStatement, updates);
274
- });
275
- }
276
- visitExpressionWithTypeArguments(expressionWithTypeArguments, p) {
277
- return __awaiter(this, void 0, void 0, function* () {
278
- const expression = yield this.visitExpression(expressionWithTypeArguments, p);
279
- if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.ExpressionWithTypeArguments) {
280
- return expression;
281
- }
282
- expressionWithTypeArguments = expression;
283
- const updates = {
284
- prefix: yield this.visitSpace(expressionWithTypeArguments.prefix, p),
285
- markers: yield this.visitMarkers(expressionWithTypeArguments.markers, p),
286
- clazz: yield this.visitDefined(expressionWithTypeArguments.clazz, p),
287
- typeArguments: expressionWithTypeArguments.typeArguments && (yield this.visitContainer(expressionWithTypeArguments.typeArguments, p)),
288
- type: expressionWithTypeArguments.type && (yield this.visitType(expressionWithTypeArguments.type, p))
289
- };
290
- return (0, util_1.updateIfChanged)(expressionWithTypeArguments, updates);
291
- });
292
- }
293
- visitFunctionCall(functionCall, p) {
294
- return __awaiter(this, void 0, void 0, function* () {
295
- const expression = yield this.visitExpression(functionCall, p);
296
- if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.FunctionCall) {
297
- return expression;
298
- }
299
- functionCall = expression;
300
- const statement = yield this.visitStatement(functionCall, p);
301
- if (!(statement === null || statement === void 0 ? void 0 : statement.kind) || statement.kind !== tree_1.JS.Kind.FunctionCall) {
302
- return statement;
303
- }
304
- functionCall = statement;
305
- const updates = {
306
- prefix: yield this.visitSpace(functionCall.prefix, p),
307
- markers: yield this.visitMarkers(functionCall.markers, p),
308
- function: yield this.visitOptionalRightPadded(functionCall.function, p),
309
- typeParameters: yield this.visitOptionalContainer(functionCall.typeParameters, p),
310
- arguments: yield this.visitContainer(functionCall.arguments, p),
311
- methodType: yield this.visitType(functionCall.methodType, p)
312
- };
313
- return (0, util_1.updateIfChanged)(functionCall, updates);
314
- });
315
- }
316
- visitFunctionType(functionType, p) {
317
- return __awaiter(this, void 0, void 0, function* () {
318
- const expression = yield this.visitExpression(functionType, p);
319
- if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.FunctionType) {
320
- return expression;
321
- }
322
- functionType = expression;
323
- const updates = {
324
- prefix: yield this.visitSpace(functionType.prefix, p),
325
- markers: yield this.visitMarkers(functionType.markers, p),
326
- constructorType: yield this.visitLeftPadded(functionType.constructorType, p),
327
- typeParameters: functionType.typeParameters && (yield this.visitDefined(functionType.typeParameters, p)),
328
- parameters: yield this.visitContainer(functionType.parameters, p),
329
- returnType: yield this.visitLeftPadded(functionType.returnType, p)
330
- };
331
- return (0, util_1.updateIfChanged)(functionType, updates);
332
- });
333
- }
334
- visitInferType(inferType, p) {
335
- return __awaiter(this, void 0, void 0, function* () {
336
- const expression = yield this.visitExpression(inferType, p);
337
- if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.InferType) {
338
- return expression;
339
- }
340
- inferType = expression;
341
- const updates = {
342
- prefix: yield this.visitSpace(inferType.prefix, p),
343
- markers: yield this.visitMarkers(inferType.markers, p),
344
- typeParameter: yield this.visitLeftPadded(inferType.typeParameter, p),
345
- type: inferType.type && (yield this.visitType(inferType.type, p))
346
- };
347
- return (0, util_1.updateIfChanged)(inferType, updates);
348
- });
349
- }
350
- visitImportType(importType, p) {
351
- return __awaiter(this, void 0, void 0, function* () {
352
- const expression = yield this.visitExpression(importType, p);
353
- if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.ImportType) {
354
- return expression;
355
- }
356
- importType = expression;
357
- const updates = {
358
- prefix: yield this.visitSpace(importType.prefix, p),
359
- markers: yield this.visitMarkers(importType.markers, p),
360
- hasTypeof: yield this.visitRightPadded(importType.hasTypeof, p),
361
- argumentAndAttributes: yield this.visitContainer(importType.argumentAndAttributes, p),
362
- qualifier: importType.qualifier && (yield this.visitLeftPadded(importType.qualifier, p)),
363
- typeArguments: importType.typeArguments && (yield this.visitContainer(importType.typeArguments, p)),
364
- type: importType.type && (yield this.visitType(importType.type, p))
365
- };
366
- return (0, util_1.updateIfChanged)(importType, updates);
367
- });
368
- }
369
- visitImportDeclaration(jsImport, p) {
370
- return __awaiter(this, void 0, void 0, function* () {
371
- const statement = yield this.visitStatement(jsImport, p);
372
- if (!(statement === null || statement === void 0 ? void 0 : statement.kind) || statement.kind !== tree_1.JS.Kind.Import) {
373
- return statement;
374
- }
375
- jsImport = statement;
376
- const updates = {
377
- prefix: yield this.visitSpace(jsImport.prefix, p),
378
- markers: yield this.visitMarkers(jsImport.markers, p),
379
- modifiers: yield (0, util_1.mapAsync)(jsImport.modifiers, item => this.visitDefined(item, p)),
380
- importClause: jsImport.importClause && (yield this.visitDefined(jsImport.importClause, p)),
381
- moduleSpecifier: jsImport.moduleSpecifier && (yield this.visitLeftPadded(jsImport.moduleSpecifier, p)),
382
- attributes: jsImport.attributes && (yield this.visitDefined(jsImport.attributes, p)),
383
- initializer: jsImport.initializer && (yield this.visitLeftPadded(jsImport.initializer, p))
384
- };
385
- return (0, util_1.updateIfChanged)(jsImport, updates);
386
- });
387
- }
388
- visitImportClause(importClause, p) {
389
- return __awaiter(this, void 0, void 0, function* () {
390
- const updates = {
391
- prefix: yield this.visitSpace(importClause.prefix, p),
392
- markers: yield this.visitMarkers(importClause.markers, p),
393
- name: importClause.name && (yield this.visitRightPadded(importClause.name, p)),
394
- namedBindings: importClause.namedBindings && (yield this.visitDefined(importClause.namedBindings, p))
395
- };
396
- return (0, util_1.updateIfChanged)(importClause, updates);
397
- });
398
- }
399
- visitNamedImports(namedImports, p) {
400
- return __awaiter(this, void 0, void 0, function* () {
401
- const expression = yield this.visitExpression(namedImports, p);
402
- if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.NamedImports) {
403
- return expression;
404
- }
405
- namedImports = expression;
406
- const updates = {
407
- prefix: yield this.visitSpace(namedImports.prefix, p),
408
- markers: yield this.visitMarkers(namedImports.markers, p),
409
- elements: yield this.visitContainer(namedImports.elements, p),
410
- type: namedImports.type && (yield this.visitType(namedImports.type, p))
411
- };
412
- return (0, util_1.updateIfChanged)(namedImports, updates);
413
- });
414
- }
415
- visitImportSpecifier(importSpecifier, p) {
416
- return __awaiter(this, void 0, void 0, function* () {
417
- const expression = yield this.visitExpression(importSpecifier, p);
418
- if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.ImportSpecifier) {
419
- return expression;
420
- }
421
- importSpecifier = expression;
422
- const updates = {
423
- prefix: yield this.visitSpace(importSpecifier.prefix, p),
424
- markers: yield this.visitMarkers(importSpecifier.markers, p),
425
- importType: yield this.visitLeftPadded(importSpecifier.importType, p),
426
- specifier: yield this.visitDefined(importSpecifier.specifier, p),
427
- type: importSpecifier.type && (yield this.visitType(importSpecifier.type, p))
428
- };
429
- return (0, util_1.updateIfChanged)(importSpecifier, updates);
430
- });
431
- }
432
- visitImportAttributes(importAttributes, p) {
433
- return __awaiter(this, void 0, void 0, function* () {
434
- const updates = {
435
- prefix: yield this.visitSpace(importAttributes.prefix, p),
436
- markers: yield this.visitMarkers(importAttributes.markers, p),
437
- elements: yield this.visitContainer(importAttributes.elements, p)
438
- };
439
- return (0, util_1.updateIfChanged)(importAttributes, updates);
440
- });
441
- }
442
- visitImportTypeAttributes(importTypeAttributes, p) {
443
- return __awaiter(this, void 0, void 0, function* () {
444
- const updates = {
445
- prefix: yield this.visitSpace(importTypeAttributes.prefix, p),
446
- markers: yield this.visitMarkers(importTypeAttributes.markers, p),
447
- token: yield this.visitRightPadded(importTypeAttributes.token, p),
448
- elements: yield this.visitContainer(importTypeAttributes.elements, p),
449
- end: yield this.visitSpace(importTypeAttributes.end, p)
450
- };
451
- return (0, util_1.updateIfChanged)(importTypeAttributes, updates);
452
- });
453
- }
454
- visitImportAttribute(importAttribute, p) {
455
- return __awaiter(this, void 0, void 0, function* () {
456
- const statement = yield this.visitStatement(importAttribute, p);
457
- if (!(statement === null || statement === void 0 ? void 0 : statement.kind) || statement.kind !== tree_1.JS.Kind.ImportAttribute) {
458
- return statement;
459
- }
460
- importAttribute = statement;
461
- const updates = {
462
- prefix: yield this.visitSpace(importAttribute.prefix, p),
463
- markers: yield this.visitMarkers(importAttribute.markers, p),
464
- name: yield this.visitDefined(importAttribute.name, p),
465
- value: yield this.visitLeftPadded(importAttribute.value, p)
466
- };
467
- return (0, util_1.updateIfChanged)(importAttribute, updates);
468
- });
469
- }
470
- visitBinaryExtensions(jsBinary, p) {
471
- return __awaiter(this, void 0, void 0, function* () {
472
- const updates = {
473
- prefix: yield this.visitSpace(jsBinary.prefix, p),
474
- markers: yield this.visitMarkers(jsBinary.markers, p),
475
- left: yield this.visitDefined(jsBinary.left, p),
476
- operator: yield this.visitLeftPadded(jsBinary.operator, p),
477
- right: yield this.visitDefined(jsBinary.right, p),
478
- type: jsBinary.type && (yield this.visitType(jsBinary.type, p))
479
- };
480
- return (0, util_1.updateIfChanged)(jsBinary, updates);
481
- });
482
- }
483
- visitLiteralType(literalType, p) {
484
- return __awaiter(this, void 0, void 0, function* () {
485
- const expression = yield this.visitExpression(literalType, p);
486
- if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.LiteralType) {
487
- return expression;
488
- }
489
- literalType = expression;
490
- const updates = {
491
- prefix: yield this.visitSpace(literalType.prefix, p),
492
- markers: yield this.visitMarkers(literalType.markers, p),
493
- literal: yield this.visitDefined(literalType.literal, p),
494
- type: (yield this.visitType(literalType.type, p))
495
- };
496
- return (0, util_1.updateIfChanged)(literalType, updates);
497
- });
498
- }
499
- visitMappedType(mappedType, p) {
500
- return __awaiter(this, void 0, void 0, function* () {
501
- const expression = yield this.visitExpression(mappedType, p);
502
- if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.MappedType) {
503
- return expression;
504
- }
505
- mappedType = expression;
506
- const updates = {
507
- prefix: yield this.visitSpace(mappedType.prefix, p),
508
- markers: yield this.visitMarkers(mappedType.markers, p),
509
- prefixToken: mappedType.prefixToken && (yield this.visitLeftPadded(mappedType.prefixToken, p)),
510
- hasReadonly: yield this.visitLeftPadded(mappedType.hasReadonly, p),
511
- keysRemapping: yield this.visitDefined(mappedType.keysRemapping, p),
512
- suffixToken: mappedType.suffixToken && (yield this.visitLeftPadded(mappedType.suffixToken, p)),
513
- hasQuestionToken: yield this.visitLeftPadded(mappedType.hasQuestionToken, p),
514
- valueType: yield this.visitContainer(mappedType.valueType, p),
515
- type: mappedType.type && (yield this.visitType(mappedType.type, p))
516
- };
517
- return (0, util_1.updateIfChanged)(mappedType, updates);
518
- });
519
- }
520
- visitMappedTypeKeysRemapping(keysRemapping, p) {
521
- return __awaiter(this, void 0, void 0, function* () {
522
- const updates = {
523
- prefix: yield this.visitSpace(keysRemapping.prefix, p),
524
- markers: yield this.visitMarkers(keysRemapping.markers, p),
525
- typeParameter: yield this.visitRightPadded(keysRemapping.typeParameter, p),
526
- nameType: keysRemapping.nameType && (yield this.visitRightPadded(keysRemapping.nameType, p))
527
- };
528
- return (0, util_1.updateIfChanged)(keysRemapping, updates);
529
- });
530
- }
531
- visitMappedTypeParameter(mappedTypeParameter, p) {
532
- return __awaiter(this, void 0, void 0, function* () {
533
- const updates = {
534
- prefix: yield this.visitSpace(mappedTypeParameter.prefix, p),
535
- markers: yield this.visitMarkers(mappedTypeParameter.markers, p),
536
- name: yield this.visitDefined(mappedTypeParameter.name, p),
537
- iterateType: yield this.visitLeftPadded(mappedTypeParameter.iterateType, p)
538
- };
539
- return (0, util_1.updateIfChanged)(mappedTypeParameter, updates);
540
- });
541
- }
542
- visitObjectBindingPattern(objectBindingPattern, p) {
543
- return __awaiter(this, void 0, void 0, function* () {
544
- const expression = yield this.visitExpression(objectBindingPattern, p);
545
- if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.ObjectBindingPattern) {
546
- return expression;
547
- }
548
- objectBindingPattern = expression;
549
- const updates = {
550
- prefix: yield this.visitSpace(objectBindingPattern.prefix, p),
551
- markers: yield this.visitMarkers(objectBindingPattern.markers, p),
552
- leadingAnnotations: yield (0, util_1.mapAsync)(objectBindingPattern.leadingAnnotations, item => this.visitDefined(item, p)),
553
- modifiers: yield (0, util_1.mapAsync)(objectBindingPattern.modifiers, item => this.visitDefined(item, p)),
554
- typeExpression: objectBindingPattern.typeExpression && (yield this.visitDefined(objectBindingPattern.typeExpression, p)),
555
- bindings: yield this.visitContainer(objectBindingPattern.bindings, p),
556
- initializer: objectBindingPattern.initializer && (yield this.visitLeftPadded(objectBindingPattern.initializer, p))
557
- };
558
- return (0, util_1.updateIfChanged)(objectBindingPattern, updates);
559
- });
560
- }
561
- visitPropertyAssignment(propertyAssignment, p) {
562
- return __awaiter(this, void 0, void 0, function* () {
563
- const statement = yield this.visitStatement(propertyAssignment, p);
564
- if (!(statement === null || statement === void 0 ? void 0 : statement.kind) || statement.kind !== tree_1.JS.Kind.PropertyAssignment) {
565
- return statement;
566
- }
567
- propertyAssignment = statement;
568
- const updates = {
569
- prefix: yield this.visitSpace(propertyAssignment.prefix, p),
570
- markers: yield this.visitMarkers(propertyAssignment.markers, p),
571
- name: yield this.visitRightPadded(propertyAssignment.name, p),
572
- initializer: propertyAssignment.initializer && (yield this.visitDefined(propertyAssignment.initializer, p))
573
- };
574
- return (0, util_1.updateIfChanged)(propertyAssignment, updates);
575
- });
576
- }
577
- visitSatisfiesExpression(satisfiesExpression, p) {
578
- return __awaiter(this, void 0, void 0, function* () {
579
- const expression = yield this.visitExpression(satisfiesExpression, p);
580
- if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.SatisfiesExpression) {
581
- return expression;
582
- }
583
- satisfiesExpression = expression;
584
- const updates = {
585
- prefix: yield this.visitSpace(satisfiesExpression.prefix, p),
586
- markers: yield this.visitMarkers(satisfiesExpression.markers, p),
587
- expression: yield this.visitDefined(satisfiesExpression.expression, p),
588
- satisfiesType: yield this.visitLeftPadded(satisfiesExpression.satisfiesType, p),
589
- type: satisfiesExpression.type && (yield this.visitType(satisfiesExpression.type, p))
590
- };
591
- return (0, util_1.updateIfChanged)(satisfiesExpression, updates);
592
- });
593
- }
594
- visitScopedVariableDeclarations(scopedVariableDeclarations, p) {
595
- return __awaiter(this, void 0, void 0, function* () {
596
- const statement = yield this.visitStatement(scopedVariableDeclarations, p);
597
- if (!(statement === null || statement === void 0 ? void 0 : statement.kind) || statement.kind !== tree_1.JS.Kind.ScopedVariableDeclarations) {
598
- return statement;
599
- }
600
- scopedVariableDeclarations = statement;
601
- const updates = {
602
- prefix: yield this.visitSpace(scopedVariableDeclarations.prefix, p),
603
- markers: yield this.visitMarkers(scopedVariableDeclarations.markers, p),
604
- modifiers: yield (0, util_1.mapAsync)(scopedVariableDeclarations.modifiers, item => this.visitDefined(item, p)),
605
- variables: yield (0, util_1.mapAsync)(scopedVariableDeclarations.variables, item => this.visitRightPadded(item, p))
606
- };
607
- return (0, util_1.updateIfChanged)(scopedVariableDeclarations, updates);
608
- });
609
- }
610
- visitShebang(shebang, p) {
611
- return __awaiter(this, void 0, void 0, function* () {
612
- const updates = {
613
- prefix: yield this.visitSpace(shebang.prefix, p),
614
- markers: yield this.visitMarkers(shebang.markers, p)
615
- };
616
- return (0, util_1.updateIfChanged)(shebang, updates);
617
- });
618
- }
619
- visitSpread(spread, p) {
620
- return __awaiter(this, void 0, void 0, function* () {
621
- const expression = yield this.visitExpression(spread, p);
622
- if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.Spread) {
623
- return expression;
624
- }
625
- spread = expression;
626
- const statement = yield this.visitStatement(spread, p);
627
- if (!(statement === null || statement === void 0 ? void 0 : statement.kind) || statement.kind !== tree_1.JS.Kind.Spread) {
628
- return statement;
629
- }
630
- spread = statement;
631
- const updates = {
632
- prefix: yield this.visitSpace(spread.prefix, p),
633
- markers: yield this.visitMarkers(spread.markers, p),
634
- expression: yield this.visitDefined(spread.expression, p),
635
- type: yield this.visitType(spread.type, p)
636
- };
637
- return (0, util_1.updateIfChanged)(spread, updates);
638
- });
639
- }
640
- visitStatementExpression(statementExpression, p) {
641
- return __awaiter(this, void 0, void 0, function* () {
642
- const expression = yield this.visitExpression(statementExpression, p);
643
- if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.StatementExpression) {
644
- return expression;
645
- }
646
- statementExpression = expression;
647
- const statement = yield this.visitStatement(statementExpression, p);
648
- if (!(statement === null || statement === void 0 ? void 0 : statement.kind) || statement.kind !== tree_1.JS.Kind.StatementExpression) {
649
- return statement;
650
- }
651
- statementExpression = statement;
652
- const updates = {
653
- prefix: yield this.visitSpace(statementExpression.prefix, p),
654
- markers: yield this.visitMarkers(statementExpression.markers, p),
655
- statement: yield this.visitDefined(statementExpression.statement, p)
656
- };
657
- return (0, util_1.updateIfChanged)(statementExpression, updates);
658
- });
659
- }
660
- visitTaggedTemplateExpression(taggedTemplateExpression, p) {
661
- return __awaiter(this, void 0, void 0, function* () {
662
- const expression = yield this.visitExpression(taggedTemplateExpression, p);
663
- if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.TaggedTemplateExpression) {
664
- return expression;
665
- }
666
- taggedTemplateExpression = expression;
667
- const statement = yield this.visitStatement(taggedTemplateExpression, p);
668
- if (!(statement === null || statement === void 0 ? void 0 : statement.kind) || statement.kind !== tree_1.JS.Kind.TaggedTemplateExpression) {
669
- return statement;
670
- }
671
- taggedTemplateExpression = statement;
672
- const updates = {
673
- prefix: yield this.visitSpace(taggedTemplateExpression.prefix, p),
674
- markers: yield this.visitMarkers(taggedTemplateExpression.markers, p),
675
- tag: taggedTemplateExpression.tag && (yield this.visitRightPadded(taggedTemplateExpression.tag, p)),
676
- typeArguments: taggedTemplateExpression.typeArguments && (yield this.visitContainer(taggedTemplateExpression.typeArguments, p)),
677
- templateExpression: yield this.visitDefined(taggedTemplateExpression.templateExpression, p),
678
- type: taggedTemplateExpression.type && (yield this.visitType(taggedTemplateExpression.type, p))
679
- };
680
- return (0, util_1.updateIfChanged)(taggedTemplateExpression, updates);
681
- });
682
- }
683
- visitTemplateExpression(templateExpression, p) {
684
- return __awaiter(this, void 0, void 0, function* () {
685
- const expression = yield this.visitExpression(templateExpression, p);
686
- if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.TemplateExpression) {
687
- return expression;
688
- }
689
- templateExpression = expression;
690
- const statement = yield this.visitStatement(templateExpression, p);
691
- if (!(statement === null || statement === void 0 ? void 0 : statement.kind) || statement.kind !== tree_1.JS.Kind.TemplateExpression) {
692
- return statement;
693
- }
694
- templateExpression = statement;
695
- const updates = {
696
- prefix: yield this.visitSpace(templateExpression.prefix, p),
697
- markers: yield this.visitMarkers(templateExpression.markers, p),
698
- head: yield this.visitDefined(templateExpression.head, p),
699
- spans: yield (0, util_1.mapAsync)(templateExpression.spans, item => this.visitRightPadded(item, p)),
700
- type: templateExpression.type && (yield this.visitType(templateExpression.type, p))
701
- };
702
- return (0, util_1.updateIfChanged)(templateExpression, updates);
703
- });
704
- }
705
- visitTemplateExpressionSpan(span, p) {
706
- return __awaiter(this, void 0, void 0, function* () {
707
- const updates = {
708
- prefix: yield this.visitSpace(span.prefix, p),
709
- markers: yield this.visitMarkers(span.markers, p),
710
- expression: yield this.visitDefined(span.expression, p),
711
- tail: yield this.visitDefined(span.tail, p)
712
- };
713
- return (0, util_1.updateIfChanged)(span, updates);
714
- });
715
- }
716
- visitTuple(tuple, p) {
717
- return __awaiter(this, void 0, void 0, function* () {
718
- const expression = yield this.visitExpression(tuple, p);
719
- if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.Tuple) {
720
- return expression;
721
- }
722
- tuple = expression;
723
- const updates = {
724
- prefix: yield this.visitSpace(tuple.prefix, p),
725
- markers: yield this.visitMarkers(tuple.markers, p),
726
- elements: yield this.visitContainer(tuple.elements, p),
727
- type: tuple.type && (yield this.visitType(tuple.type, p))
728
- };
729
- return (0, util_1.updateIfChanged)(tuple, updates);
730
- });
731
- }
732
- visitTypeDeclaration(typeDeclaration, p) {
733
- return __awaiter(this, void 0, void 0, function* () {
734
- const statement = yield this.visitStatement(typeDeclaration, p);
735
- if (!(statement === null || statement === void 0 ? void 0 : statement.kind) || statement.kind !== tree_1.JS.Kind.TypeDeclaration) {
736
- return statement;
737
- }
738
- typeDeclaration = statement;
739
- const updates = {
740
- prefix: yield this.visitSpace(typeDeclaration.prefix, p),
741
- markers: yield this.visitMarkers(typeDeclaration.markers, p),
742
- modifiers: yield (0, util_1.mapAsync)(typeDeclaration.modifiers, item => this.visitDefined(item, p)),
743
- name: yield this.visitLeftPadded(typeDeclaration.name, p),
744
- typeParameters: typeDeclaration.typeParameters && (yield this.visitDefined(typeDeclaration.typeParameters, p)),
745
- initializer: yield this.visitLeftPadded(typeDeclaration.initializer, p),
746
- type: typeDeclaration.type && (yield this.visitType(typeDeclaration.type, p))
747
- };
748
- return (0, util_1.updateIfChanged)(typeDeclaration, updates);
749
- });
750
- }
751
- visitTypeOf(typeOf, p) {
752
- return __awaiter(this, void 0, void 0, function* () {
753
- const expression = yield this.visitExpression(typeOf, p);
754
- if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.TypeOf) {
755
- return expression;
756
- }
757
- typeOf = expression;
758
- const updates = {
759
- prefix: yield this.visitSpace(typeOf.prefix, p),
760
- markers: yield this.visitMarkers(typeOf.markers, p),
761
- expression: yield this.visitDefined(typeOf.expression, p),
762
- type: typeOf.type && (yield this.visitType(typeOf.type, p))
763
- };
764
- return (0, util_1.updateIfChanged)(typeOf, updates);
765
- });
766
- }
767
- visitTypeTreeExpression(typeTreeExpression, p) {
768
- return __awaiter(this, void 0, void 0, function* () {
769
- const expression = yield this.visitExpression(typeTreeExpression, p);
770
- if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.TypeTreeExpression) {
771
- return expression;
772
- }
773
- typeTreeExpression = expression;
774
- const updates = {
775
- prefix: yield this.visitSpace(typeTreeExpression.prefix, p),
776
- markers: yield this.visitMarkers(typeTreeExpression.markers, p),
777
- expression: yield this.visitDefined(typeTreeExpression.expression, p)
778
- };
779
- return (0, util_1.updateIfChanged)(typeTreeExpression, updates);
780
- });
781
- }
782
- visitAssignmentOperationExtensions(assignmentOperation, p) {
783
- return __awaiter(this, void 0, void 0, function* () {
784
- const updates = {
785
- prefix: yield this.visitSpace(assignmentOperation.prefix, p),
786
- markers: yield this.visitMarkers(assignmentOperation.markers, p),
787
- variable: yield this.visitDefined(assignmentOperation.variable, p),
788
- operator: yield this.visitLeftPadded(assignmentOperation.operator, p),
789
- assignment: yield this.visitDefined(assignmentOperation.assignment, p),
790
- type: assignmentOperation.type && (yield this.visitType(assignmentOperation.type, p))
791
- };
792
- return (0, util_1.updateIfChanged)(assignmentOperation, updates);
793
- });
794
- }
795
- visitIndexedAccessType(indexedAccessType, p) {
796
- return __awaiter(this, void 0, void 0, function* () {
797
- const expression = yield this.visitExpression(indexedAccessType, p);
798
- if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.IndexedAccessType) {
799
- return expression;
800
- }
801
- indexedAccessType = expression;
802
- const updates = {
803
- prefix: yield this.visitSpace(indexedAccessType.prefix, p),
804
- markers: yield this.visitMarkers(indexedAccessType.markers, p),
805
- objectType: yield this.visitDefined(indexedAccessType.objectType, p),
806
- indexType: yield this.visitDefined(indexedAccessType.indexType, p),
807
- type: indexedAccessType.type && (yield this.visitType(indexedAccessType.type, p))
808
- };
809
- return (0, util_1.updateIfChanged)(indexedAccessType, updates);
810
- });
811
- }
812
- visitIndexedAccessTypeIndexType(indexType, p) {
813
- return __awaiter(this, void 0, void 0, function* () {
814
- const updates = {
815
- prefix: yield this.visitSpace(indexType.prefix, p),
816
- markers: yield this.visitMarkers(indexType.markers, p),
817
- element: yield this.visitRightPadded(indexType.element, p),
818
- type: indexType.type && (yield this.visitType(indexType.type, p))
819
- };
820
- return (0, util_1.updateIfChanged)(indexType, updates);
821
- });
822
- }
823
- visitTypeQuery(typeQuery, p) {
824
- return __awaiter(this, void 0, void 0, function* () {
825
- const expression = yield this.visitExpression(typeQuery, p);
826
- if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.TypeQuery) {
827
- return expression;
828
- }
829
- typeQuery = expression;
830
- const updates = {
831
- prefix: yield this.visitSpace(typeQuery.prefix, p),
832
- markers: yield this.visitMarkers(typeQuery.markers, p),
833
- typeExpression: yield this.visitDefined(typeQuery.typeExpression, p),
834
- typeArguments: typeQuery.typeArguments && (yield this.visitContainer(typeQuery.typeArguments, p)),
835
- type: typeQuery.type && (yield this.visitType(typeQuery.type, p))
836
- };
837
- return (0, util_1.updateIfChanged)(typeQuery, updates);
838
- });
839
- }
840
- visitTypeInfo(typeInfo, p) {
841
- return __awaiter(this, void 0, void 0, function* () {
842
- const expression = yield this.visitExpression(typeInfo, p);
843
- if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.TypeInfo) {
844
- return expression;
845
- }
846
- typeInfo = expression;
847
- const updates = {
848
- prefix: yield this.visitSpace(typeInfo.prefix, p),
849
- markers: yield this.visitMarkers(typeInfo.markers, p),
850
- typeIdentifier: yield this.visitDefined(typeInfo.typeIdentifier, p)
851
- };
852
- return (0, util_1.updateIfChanged)(typeInfo, updates);
853
- });
854
- }
855
- visitComputedPropertyName(computedPropertyName, p) {
856
- return __awaiter(this, void 0, void 0, function* () {
857
- const expression = yield this.visitExpression(computedPropertyName, p);
858
- if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.ComputedPropertyName) {
859
- return expression;
860
- }
861
- computedPropertyName = expression;
862
- const updates = {
863
- prefix: yield this.visitSpace(computedPropertyName.prefix, p),
864
- markers: yield this.visitMarkers(computedPropertyName.markers, p),
865
- expression: yield this.visitRightPadded(computedPropertyName.expression, p)
866
- };
867
- return (0, util_1.updateIfChanged)(computedPropertyName, updates);
868
- });
869
- }
870
- visitTypeOperator(typeOperator, p) {
871
- return __awaiter(this, void 0, void 0, function* () {
872
- const expression = yield this.visitExpression(typeOperator, p);
873
- if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.TypeOperator) {
874
- return expression;
875
- }
876
- typeOperator = expression;
877
- const updates = {
878
- prefix: yield this.visitSpace(typeOperator.prefix, p),
879
- markers: yield this.visitMarkers(typeOperator.markers, p),
880
- expression: yield this.visitLeftPadded(typeOperator.expression, p)
881
- };
882
- return (0, util_1.updateIfChanged)(typeOperator, updates);
883
- });
884
- }
885
- visitTypePredicate(typePredicate, p) {
886
- return __awaiter(this, void 0, void 0, function* () {
887
- const expression = yield this.visitExpression(typePredicate, p);
888
- if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.TypePredicate) {
889
- return expression;
890
- }
891
- typePredicate = expression;
892
- const updates = {
893
- prefix: yield this.visitSpace(typePredicate.prefix, p),
894
- markers: yield this.visitMarkers(typePredicate.markers, p),
895
- asserts: yield this.visitLeftPadded(typePredicate.asserts, p),
896
- parameterName: yield this.visitDefined(typePredicate.parameterName, p),
897
- expression: typePredicate.expression && (yield this.visitLeftPadded(typePredicate.expression, p)),
898
- type: typePredicate.type && (yield this.visitType(typePredicate.type, p))
899
- };
900
- return (0, util_1.updateIfChanged)(typePredicate, updates);
901
- });
902
- }
903
- visitUnion(union, p) {
904
- return __awaiter(this, void 0, void 0, function* () {
905
- const expression = yield this.visitExpression(union, p);
906
- if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.Union) {
907
- return expression;
908
- }
909
- union = expression;
910
- const updates = {
911
- prefix: yield this.visitSpace(union.prefix, p),
912
- markers: yield this.visitMarkers(union.markers, p),
913
- types: yield (0, util_1.mapAsync)(union.types, item => this.visitRightPadded(item, p)),
914
- type: union.type && (yield this.visitType(union.type, p))
915
- };
916
- return (0, util_1.updateIfChanged)(union, updates);
917
- });
918
- }
919
- visitIntersection(intersection, p) {
920
- return __awaiter(this, void 0, void 0, function* () {
921
- const expression = yield this.visitExpression(intersection, p);
922
- if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.Intersection) {
923
- return expression;
924
- }
925
- intersection = expression;
926
- const updates = {
927
- prefix: yield this.visitSpace(intersection.prefix, p),
928
- markers: yield this.visitMarkers(intersection.markers, p),
929
- types: yield (0, util_1.mapAsync)(intersection.types, item => this.visitRightPadded(item, p)),
930
- type: intersection.type && (yield this.visitType(intersection.type, p))
931
- };
932
- return (0, util_1.updateIfChanged)(intersection, updates);
933
- });
934
- }
935
- visitVoid(void_, p) {
936
- return __awaiter(this, void 0, void 0, function* () {
937
- const expression = yield this.visitExpression(void_, p);
938
- if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.Void) {
939
- return expression;
940
- }
941
- void_ = expression;
942
- const updates = {
943
- prefix: yield this.visitSpace(void_.prefix, p),
944
- markers: yield this.visitMarkers(void_.markers, p),
945
- expression: yield this.visitDefined(void_.expression, p)
946
- };
947
- return (0, util_1.updateIfChanged)(void_, updates);
948
- });
949
- }
950
- visitWithStatement(withStatement, p) {
951
- return __awaiter(this, void 0, void 0, function* () {
952
- const statement = yield this.visitStatement(withStatement, p);
953
- if (!(statement === null || statement === void 0 ? void 0 : statement.kind) || statement.kind !== tree_1.JS.Kind.WithStatement) {
954
- return statement;
955
- }
956
- withStatement = statement;
957
- const updates = {
958
- prefix: yield this.visitSpace(withStatement.prefix, p),
959
- markers: yield this.visitMarkers(withStatement.markers, p),
960
- expression: yield this.visitDefined(withStatement.expression, p),
961
- body: yield this.visitRightPadded(withStatement.body, p)
962
- };
963
- return (0, util_1.updateIfChanged)(withStatement, updates);
964
- });
965
- }
966
- visitIndexSignatureDeclaration(indexSignatureDeclaration, p) {
967
- return __awaiter(this, void 0, void 0, function* () {
968
- const statement = yield this.visitStatement(indexSignatureDeclaration, p);
969
- if (!(statement === null || statement === void 0 ? void 0 : statement.kind) || statement.kind !== tree_1.JS.Kind.IndexSignatureDeclaration) {
970
- return statement;
971
- }
972
- indexSignatureDeclaration = statement;
973
- const updates = {
974
- prefix: yield this.visitSpace(indexSignatureDeclaration.prefix, p),
975
- markers: yield this.visitMarkers(indexSignatureDeclaration.markers, p),
976
- modifiers: yield (0, util_1.mapAsync)(indexSignatureDeclaration.modifiers, item => this.visitDefined(item, p)),
977
- parameters: yield this.visitContainer(indexSignatureDeclaration.parameters, p),
978
- typeExpression: yield this.visitLeftPadded(indexSignatureDeclaration.typeExpression, p),
979
- type: indexSignatureDeclaration.type && (yield this.visitType(indexSignatureDeclaration.type, p))
980
- };
981
- return (0, util_1.updateIfChanged)(indexSignatureDeclaration, updates);
982
- });
983
- }
984
- visitComputedPropertyMethodDeclaration(computedPropMethod, p) {
985
- return __awaiter(this, void 0, void 0, function* () {
986
- const statement = yield this.visitStatement(computedPropMethod, p);
987
- if (!(statement === null || statement === void 0 ? void 0 : statement.kind) || statement.kind !== tree_1.JS.Kind.ComputedPropertyMethodDeclaration) {
988
- return statement;
989
- }
990
- computedPropMethod = statement;
991
- const updates = {
992
- prefix: yield this.visitSpace(computedPropMethod.prefix, p),
993
- markers: yield this.visitMarkers(computedPropMethod.markers, p),
994
- leadingAnnotations: yield (0, util_1.mapAsync)(computedPropMethod.leadingAnnotations, item => this.visitDefined(item, p)),
995
- modifiers: yield (0, util_1.mapAsync)(computedPropMethod.modifiers, item => this.visitDefined(item, p)),
996
- typeParameters: computedPropMethod.typeParameters && (yield this.visitDefined(computedPropMethod.typeParameters, p)),
997
- returnTypeExpression: computedPropMethod.returnTypeExpression && (yield this.visitDefined(computedPropMethod.returnTypeExpression, p)),
998
- name: yield this.visitDefined(computedPropMethod.name, p),
999
- parameters: yield this.visitContainer(computedPropMethod.parameters, p),
1000
- body: computedPropMethod.body && (yield this.visitDefined(computedPropMethod.body, p)),
1001
- methodType: computedPropMethod.methodType && (yield this.visitType(computedPropMethod.methodType, p))
1002
- };
1003
- return (0, util_1.updateIfChanged)(computedPropMethod, updates);
1004
- });
1005
- }
1006
- visitForOfLoop(forOfLoop, p) {
1007
- return __awaiter(this, void 0, void 0, function* () {
1008
- const updates = {
1009
- prefix: yield this.visitSpace(forOfLoop.prefix, p),
1010
- markers: yield this.visitMarkers(forOfLoop.markers, p),
1011
- loop: yield this.visitDefined(forOfLoop.loop, p)
1012
- };
1013
- return (0, util_1.updateIfChanged)(forOfLoop, updates);
1014
- });
1015
- }
1016
- visitForInLoop(forInLoop, p) {
1017
- return __awaiter(this, void 0, void 0, function* () {
1018
- const updates = {
1019
- prefix: yield this.visitSpace(forInLoop.prefix, p),
1020
- markers: yield this.visitMarkers(forInLoop.markers, p),
1021
- control: yield this.visitDefined(forInLoop.control, p),
1022
- body: yield this.visitRightPadded(forInLoop.body, p)
1023
- };
1024
- return (0, util_1.updateIfChanged)(forInLoop, updates);
1025
- });
1026
- }
1027
- visitNamespaceDeclaration(namespaceDeclaration, p) {
1028
- return __awaiter(this, void 0, void 0, function* () {
1029
- const statement = yield this.visitStatement(namespaceDeclaration, p);
1030
- if (!(statement === null || statement === void 0 ? void 0 : statement.kind) || statement.kind !== tree_1.JS.Kind.NamespaceDeclaration) {
1031
- return statement;
1032
- }
1033
- namespaceDeclaration = statement;
1034
- const updates = {
1035
- prefix: yield this.visitSpace(namespaceDeclaration.prefix, p),
1036
- markers: yield this.visitMarkers(namespaceDeclaration.markers, p),
1037
- modifiers: yield (0, util_1.mapAsync)(namespaceDeclaration.modifiers, item => this.visitDefined(item, p)),
1038
- keywordType: yield this.visitLeftPadded(namespaceDeclaration.keywordType, p),
1039
- name: yield this.visitRightPadded(namespaceDeclaration.name, p),
1040
- body: namespaceDeclaration.body && (yield this.visitDefined(namespaceDeclaration.body, p))
1041
- };
1042
- return (0, util_1.updateIfChanged)(namespaceDeclaration, updates);
1043
- });
1044
- }
1045
- visitTypeLiteral(typeLiteral, p) {
1046
- return __awaiter(this, void 0, void 0, function* () {
1047
- const updates = {
1048
- prefix: yield this.visitSpace(typeLiteral.prefix, p),
1049
- markers: yield this.visitMarkers(typeLiteral.markers, p),
1050
- members: yield this.visitDefined(typeLiteral.members, p),
1051
- type: typeLiteral.type && (yield this.visitType(typeLiteral.type, p))
1052
- };
1053
- return (0, util_1.updateIfChanged)(typeLiteral, updates);
1054
- });
1055
- }
1056
- visitArrayBindingPattern(arrayBindingPattern, p) {
1057
- return __awaiter(this, void 0, void 0, function* () {
1058
- const updates = {
1059
- prefix: yield this.visitSpace(arrayBindingPattern.prefix, p),
1060
- markers: yield this.visitMarkers(arrayBindingPattern.markers, p),
1061
- elements: yield this.visitContainer(arrayBindingPattern.elements, p),
1062
- type: arrayBindingPattern.type && (yield this.visitType(arrayBindingPattern.type, p))
1063
- };
1064
- return (0, util_1.updateIfChanged)(arrayBindingPattern, updates);
1065
- });
1066
- }
1067
- visitBindingElement(bindingElement, p) {
1068
- return __awaiter(this, void 0, void 0, function* () {
1069
- const statement = yield this.visitStatement(bindingElement, p);
1070
- if (!(statement === null || statement === void 0 ? void 0 : statement.kind) || statement.kind !== tree_1.JS.Kind.BindingElement) {
1071
- return statement;
1072
- }
1073
- bindingElement = statement;
1074
- const updates = {
1075
- prefix: yield this.visitSpace(bindingElement.prefix, p),
1076
- markers: yield this.visitMarkers(bindingElement.markers, p),
1077
- propertyName: bindingElement.propertyName && (yield this.visitRightPadded(bindingElement.propertyName, p)),
1078
- name: yield this.visitDefined(bindingElement.name, p),
1079
- initializer: bindingElement.initializer && (yield this.visitLeftPadded(bindingElement.initializer, p)),
1080
- variableType: bindingElement.variableType && (yield this.visitType(bindingElement.variableType, p))
1081
- };
1082
- return (0, util_1.updateIfChanged)(bindingElement, updates);
1083
- });
1084
- }
1085
- visitExportDeclaration(exportDeclaration, p) {
1086
- return __awaiter(this, void 0, void 0, function* () {
1087
- const statement = yield this.visitStatement(exportDeclaration, p);
1088
- if (!(statement === null || statement === void 0 ? void 0 : statement.kind) || statement.kind !== tree_1.JS.Kind.ExportDeclaration) {
1089
- return statement;
1090
- }
1091
- exportDeclaration = statement;
1092
- const updates = {
1093
- prefix: yield this.visitSpace(exportDeclaration.prefix, p),
1094
- markers: yield this.visitMarkers(exportDeclaration.markers, p),
1095
- modifiers: yield (0, util_1.mapAsync)(exportDeclaration.modifiers, item => this.visitDefined(item, p)),
1096
- typeOnly: yield this.visitLeftPadded(exportDeclaration.typeOnly, p),
1097
- exportClause: exportDeclaration.exportClause && (yield this.visitDefined(exportDeclaration.exportClause, p)),
1098
- moduleSpecifier: exportDeclaration.moduleSpecifier && (yield this.visitLeftPadded(exportDeclaration.moduleSpecifier, p)),
1099
- attributes: exportDeclaration.attributes && (yield this.visitDefined(exportDeclaration.attributes, p))
1100
- };
1101
- return (0, util_1.updateIfChanged)(exportDeclaration, updates);
1102
- });
1103
- }
1104
- visitExportAssignment(exportAssignment, p) {
1105
- return __awaiter(this, void 0, void 0, function* () {
1106
- const statement = yield this.visitStatement(exportAssignment, p);
1107
- if (!(statement === null || statement === void 0 ? void 0 : statement.kind) || statement.kind !== tree_1.JS.Kind.ExportAssignment) {
1108
- return statement;
1109
- }
1110
- exportAssignment = statement;
1111
- const updates = {
1112
- prefix: yield this.visitSpace(exportAssignment.prefix, p),
1113
- markers: yield this.visitMarkers(exportAssignment.markers, p),
1114
- expression: yield this.visitLeftPadded(exportAssignment.expression, p)
1115
- };
1116
- return (0, util_1.updateIfChanged)(exportAssignment, updates);
1117
- });
1118
- }
1119
- visitNamedExports(namedExports, p) {
1120
- return __awaiter(this, void 0, void 0, function* () {
1121
- const updates = {
1122
- prefix: yield this.visitSpace(namedExports.prefix, p),
1123
- markers: yield this.visitMarkers(namedExports.markers, p),
1124
- elements: yield this.visitContainer(namedExports.elements, p),
1125
- type: namedExports.type && (yield this.visitType(namedExports.type, p))
1126
- };
1127
- return (0, util_1.updateIfChanged)(namedExports, updates);
1128
- });
1129
- }
1130
- visitExportSpecifier(exportSpecifier, p) {
1131
- return __awaiter(this, void 0, void 0, function* () {
1132
- const updates = {
1133
- prefix: yield this.visitSpace(exportSpecifier.prefix, p),
1134
- markers: yield this.visitMarkers(exportSpecifier.markers, p),
1135
- typeOnly: yield this.visitLeftPadded(exportSpecifier.typeOnly, p),
1136
- specifier: yield this.visitDefined(exportSpecifier.specifier, p),
1137
- type: exportSpecifier.type && (yield this.visitType(exportSpecifier.type, p))
1138
- };
1139
- return (0, util_1.updateIfChanged)(exportSpecifier, updates);
1140
- });
1141
- }
1142
- accept(j, p) {
1143
- const _super = Object.create(null, {
1144
- accept: { get: () => super.accept }
1145
- });
1146
- return __awaiter(this, void 0, void 0, function* () {
1147
- if ((0, tree_1.isJavaScript)(j)) {
1148
- const tree = j;
1149
- switch (tree.kind) {
1150
- case tree_1.JS.Kind.Alias:
1151
- return this.visitAlias(tree, p);
1152
- case tree_1.JS.Kind.ArrowFunction:
1153
- return this.visitArrowFunction(tree, p);
1154
- case tree_1.JS.Kind.As:
1155
- return this.visitAs(tree, p);
1156
- case tree_1.JS.Kind.Await:
1157
- return this.visitAwait(tree, p);
1158
- case tree_1.JS.Kind.CompilationUnit:
1159
- return this.visitJsCompilationUnit(tree, p);
1160
- case tree_1.JS.Kind.ComputedPropertyName:
1161
- return this.visitComputedPropertyName(tree, p);
1162
- case tree_1.JS.Kind.ConditionalType:
1163
- return this.visitConditionalType(tree, p);
1164
- case tree_1.JS.Kind.Delete:
1165
- return this.visitDelete(tree, p);
1166
- case tree_1.JS.Kind.ExpressionStatement:
1167
- return this.visitExpressionStatement(tree, p);
1168
- case tree_1.JS.Kind.ExpressionWithTypeArguments:
1169
- return this.visitExpressionWithTypeArguments(tree, p);
1170
- case tree_1.JS.Kind.FunctionCall:
1171
- return this.visitFunctionCall(tree, p);
1172
- case tree_1.JS.Kind.FunctionType:
1173
- return this.visitFunctionType(tree, p);
1174
- case tree_1.JS.Kind.InferType:
1175
- return this.visitInferType(tree, p);
1176
- case tree_1.JS.Kind.ImportType:
1177
- return this.visitImportType(tree, p);
1178
- case tree_1.JS.Kind.Import:
1179
- return this.visitImportDeclaration(tree, p);
1180
- case tree_1.JS.Kind.ImportClause:
1181
- return this.visitImportClause(tree, p);
1182
- case tree_1.JS.Kind.NamedImports:
1183
- return this.visitNamedImports(tree, p);
1184
- case tree_1.JS.Kind.ImportSpecifier:
1185
- return this.visitImportSpecifier(tree, p);
1186
- case tree_1.JS.Kind.ImportAttributes:
1187
- return this.visitImportAttributes(tree, p);
1188
- case tree_1.JS.Kind.ImportTypeAttributes:
1189
- return this.visitImportTypeAttributes(tree, p);
1190
- case tree_1.JS.Kind.ImportAttribute:
1191
- return this.visitImportAttribute(tree, p);
1192
- case tree_1.JS.Kind.JsxAttribute:
1193
- return this.visitJsxAttribute(tree, p);
1194
- case tree_1.JS.Kind.JsxSpreadAttribute:
1195
- return this.visitJsxSpreadAttribute(tree, p);
1196
- case tree_1.JS.Kind.JsxEmbeddedExpression:
1197
- return this.visitJsxEmbeddedExpression(tree, p);
1198
- case tree_1.JS.Kind.JsxNamespacedName:
1199
- return this.visitJsxNamespacedName(tree, p);
1200
- case tree_1.JS.Kind.JsxTag:
1201
- return this.visitJsxTag(tree, p);
1202
- case tree_1.JS.Kind.Binary:
1203
- return this.visitBinaryExtensions(tree, p);
1204
- case tree_1.JS.Kind.LiteralType:
1205
- return this.visitLiteralType(tree, p);
1206
- case tree_1.JS.Kind.MappedType:
1207
- return this.visitMappedType(tree, p);
1208
- case tree_1.JS.Kind.MappedTypeKeysRemapping:
1209
- return this.visitMappedTypeKeysRemapping(tree, p);
1210
- case tree_1.JS.Kind.MappedTypeParameter:
1211
- return this.visitMappedTypeParameter(tree, p);
1212
- case tree_1.JS.Kind.ObjectBindingPattern:
1213
- return this.visitObjectBindingPattern(tree, p);
1214
- case tree_1.JS.Kind.PropertyAssignment:
1215
- return this.visitPropertyAssignment(tree, p);
1216
- case tree_1.JS.Kind.SatisfiesExpression:
1217
- return this.visitSatisfiesExpression(tree, p);
1218
- case tree_1.JS.Kind.ScopedVariableDeclarations:
1219
- return this.visitScopedVariableDeclarations(tree, p);
1220
- case tree_1.JS.Kind.Shebang:
1221
- return this.visitShebang(tree, p);
1222
- case tree_1.JS.Kind.Spread:
1223
- return this.visitSpread(tree, p);
1224
- case tree_1.JS.Kind.StatementExpression:
1225
- return this.visitStatementExpression(tree, p);
1226
- case tree_1.JS.Kind.TaggedTemplateExpression:
1227
- return this.visitTaggedTemplateExpression(tree, p);
1228
- case tree_1.JS.Kind.TemplateExpression:
1229
- return this.visitTemplateExpression(tree, p);
1230
- case tree_1.JS.Kind.TemplateExpressionSpan:
1231
- return this.visitTemplateExpressionSpan(tree, p);
1232
- case tree_1.JS.Kind.Tuple:
1233
- return this.visitTuple(tree, p);
1234
- case tree_1.JS.Kind.TypeDeclaration:
1235
- return this.visitTypeDeclaration(tree, p);
1236
- case tree_1.JS.Kind.TypeOf:
1237
- return this.visitTypeOf(tree, p);
1238
- case tree_1.JS.Kind.TypeTreeExpression:
1239
- return this.visitTypeTreeExpression(tree, p);
1240
- case tree_1.JS.Kind.AssignmentOperation:
1241
- return this.visitAssignmentOperationExtensions(tree, p);
1242
- case tree_1.JS.Kind.IndexedAccessType:
1243
- return this.visitIndexedAccessType(tree, p);
1244
- case tree_1.JS.Kind.IndexType:
1245
- return this.visitIndexedAccessTypeIndexType(tree, p);
1246
- case tree_1.JS.Kind.TypeQuery:
1247
- return this.visitTypeQuery(tree, p);
1248
- case tree_1.JS.Kind.TypeInfo:
1249
- return this.visitTypeInfo(tree, p);
1250
- case tree_1.JS.Kind.TypeOperator:
1251
- return this.visitTypeOperator(tree, p);
1252
- case tree_1.JS.Kind.TypePredicate:
1253
- return this.visitTypePredicate(tree, p);
1254
- case tree_1.JS.Kind.Union:
1255
- return this.visitUnion(tree, p);
1256
- case tree_1.JS.Kind.Intersection:
1257
- return this.visitIntersection(tree, p);
1258
- case tree_1.JS.Kind.Void:
1259
- return this.visitVoid(tree, p);
1260
- case tree_1.JS.Kind.WithStatement:
1261
- return this.visitWithStatement(tree, p);
1262
- case tree_1.JS.Kind.IndexSignatureDeclaration:
1263
- return this.visitIndexSignatureDeclaration(tree, p);
1264
- case tree_1.JS.Kind.ComputedPropertyMethodDeclaration:
1265
- return this.visitComputedPropertyMethodDeclaration(tree, p);
1266
- case tree_1.JS.Kind.ForOfLoop:
1267
- return this.visitForOfLoop(tree, p);
1268
- case tree_1.JS.Kind.ForInLoop:
1269
- return this.visitForInLoop(tree, p);
1270
- case tree_1.JS.Kind.NamespaceDeclaration:
1271
- return this.visitNamespaceDeclaration(tree, p);
1272
- case tree_1.JS.Kind.TypeLiteral:
1273
- return this.visitTypeLiteral(tree, p);
1274
- case tree_1.JS.Kind.ArrayBindingPattern:
1275
- return this.visitArrayBindingPattern(tree, p);
1276
- case tree_1.JS.Kind.BindingElement:
1277
- return this.visitBindingElement(tree, p);
1278
- case tree_1.JS.Kind.ExportDeclaration:
1279
- return this.visitExportDeclaration(tree, p);
1280
- case tree_1.JS.Kind.ExportAssignment:
1281
- return this.visitExportAssignment(tree, p);
1282
- case tree_1.JS.Kind.NamedExports:
1283
- return this.visitNamedExports(tree, p);
1284
- case tree_1.JS.Kind.ExportSpecifier:
1285
- return this.visitExportSpecifier(tree, p);
1286
- }
45
+ async visitTypeName(nameTree, p) {
46
+ return nameTree;
47
+ }
48
+ async produceJavaScript(before, p, recipe) {
49
+ const [draft, finishDraft] = (0, mutative_1.create)(before);
50
+ draft.prefix = await this.visitSpace(before.prefix, p);
51
+ draft.markers = await this.visitMarkers(before.markers, p);
52
+ if (recipe) {
53
+ await recipe(draft);
54
+ }
55
+ return finishDraft();
56
+ }
57
+ async visitAlias(alias, p) {
58
+ const expression = await this.visitExpression(alias, p);
59
+ if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.Alias) {
60
+ return expression;
61
+ }
62
+ alias = expression;
63
+ const updates = {
64
+ prefix: await this.visitSpace(alias.prefix, p),
65
+ markers: await this.visitMarkers(alias.markers, p),
66
+ propertyName: await this.visitRightPadded(alias.propertyName, p),
67
+ alias: await this.visitDefined(alias.alias, p)
68
+ };
69
+ return (0, util_1.updateIfChanged)(alias, updates);
70
+ }
71
+ async visitArrowFunction(arrowFunction, p) {
72
+ const expression = await this.visitExpression(arrowFunction, p);
73
+ if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.ArrowFunction) {
74
+ return expression;
75
+ }
76
+ arrowFunction = expression;
77
+ const statement = await this.visitStatement(arrowFunction, p);
78
+ if (!(statement === null || statement === void 0 ? void 0 : statement.kind) || statement.kind !== tree_1.JS.Kind.ArrowFunction) {
79
+ return statement;
80
+ }
81
+ arrowFunction = statement;
82
+ const updates = {
83
+ prefix: await this.visitSpace(arrowFunction.prefix, p),
84
+ markers: await this.visitMarkers(arrowFunction.markers, p),
85
+ leadingAnnotations: await (0, util_1.mapAsync)(arrowFunction.leadingAnnotations, item => this.visitDefined(item, p)),
86
+ modifiers: await (0, util_1.mapAsync)(arrowFunction.modifiers, item => this.visitDefined(item, p)),
87
+ typeParameters: arrowFunction.typeParameters && await this.visitDefined(arrowFunction.typeParameters, p),
88
+ lambda: await this.visitDefined(arrowFunction.lambda, p),
89
+ returnTypeExpression: arrowFunction.returnTypeExpression && await this.visitDefined(arrowFunction.returnTypeExpression, p)
90
+ };
91
+ return (0, util_1.updateIfChanged)(arrowFunction, updates);
92
+ }
93
+ async visitAs(as_, p) {
94
+ const updates = {
95
+ prefix: await this.visitSpace(as_.prefix, p),
96
+ markers: await this.visitMarkers(as_.markers, p),
97
+ left: await this.visitRightPadded(as_.left, p),
98
+ right: await this.visitDefined(as_.right, p),
99
+ type: as_.type && await this.visitType(as_.type, p)
100
+ };
101
+ return (0, util_1.updateIfChanged)(as_, updates);
102
+ }
103
+ async visitAwait(await_, p) {
104
+ const expression = await this.visitExpression(await_, p);
105
+ if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.Await) {
106
+ return expression;
107
+ }
108
+ await_ = expression;
109
+ const updates = {
110
+ prefix: await this.visitSpace(await_.prefix, p),
111
+ markers: await this.visitMarkers(await_.markers, p),
112
+ expression: await this.visitDefined(await_.expression, p),
113
+ type: await_.type && await this.visitType(await_.type, p)
114
+ };
115
+ return (0, util_1.updateIfChanged)(await_, updates);
116
+ }
117
+ async visitJsxTag(element, p) {
118
+ const updates = {
119
+ prefix: await this.visitSpace(element.prefix, p),
120
+ markers: await this.visitMarkers(element.markers, p),
121
+ openName: await this.visitLeftPadded(element.openName, p),
122
+ typeArguments: element.typeArguments && await this.visitContainer(element.typeArguments, p),
123
+ afterName: await this.visitSpace(element.afterName, p),
124
+ attributes: await (0, util_1.mapAsync)(element.attributes, attr => this.visitRightPadded(attr, p)),
125
+ selfClosing: element.selfClosing && await this.visitSpace(element.selfClosing, p),
126
+ children: element.children && await (0, util_1.mapAsync)(element.children, child => this.visit(child, p)),
127
+ closingName: element.closingName && await this.visitLeftPadded(element.closingName, p),
128
+ afterClosingName: element.afterClosingName && await this.visitSpace(element.afterClosingName, p)
129
+ };
130
+ return (0, util_1.updateIfChanged)(element, updates);
131
+ }
132
+ async visitJsxAttribute(attribute, p) {
133
+ const updates = {
134
+ prefix: await this.visitSpace(attribute.prefix, p),
135
+ markers: await this.visitMarkers(attribute.markers, p),
136
+ key: await this.visitDefined(attribute.key, p),
137
+ value: attribute.value && await this.visitLeftPadded(attribute.value, p)
138
+ };
139
+ return (0, util_1.updateIfChanged)(attribute, updates);
140
+ }
141
+ async visitJsxSpreadAttribute(spread, p) {
142
+ const updates = {
143
+ prefix: await this.visitSpace(spread.prefix, p),
144
+ markers: await this.visitMarkers(spread.markers, p),
145
+ dots: await this.visitSpace(spread.dots, p),
146
+ expression: await this.visitRightPadded(spread.expression, p)
147
+ };
148
+ return (0, util_1.updateIfChanged)(spread, updates);
149
+ }
150
+ async visitJsxEmbeddedExpression(expr, p) {
151
+ const updates = {
152
+ prefix: await this.visitSpace(expr.prefix, p),
153
+ markers: await this.visitMarkers(expr.markers, p),
154
+ expression: await this.visitRightPadded(expr.expression, p)
155
+ };
156
+ return (0, util_1.updateIfChanged)(expr, updates);
157
+ }
158
+ async visitJsxNamespacedName(ns, p) {
159
+ const updates = {
160
+ prefix: await this.visitSpace(ns.prefix, p),
161
+ markers: await this.visitMarkers(ns.markers, p),
162
+ namespace: await this.visitDefined(ns.namespace, p),
163
+ name: await this.visitLeftPadded(ns.name, p)
164
+ };
165
+ return (0, util_1.updateIfChanged)(ns, updates);
166
+ }
167
+ async visitJsCompilationUnit(compilationUnit, p) {
168
+ const updates = {
169
+ prefix: await this.visitSpace(compilationUnit.prefix, p),
170
+ markers: await this.visitMarkers(compilationUnit.markers, p),
171
+ statements: await (0, util_1.mapAsync)(compilationUnit.statements, stmt => this.visitRightPadded(stmt, p)),
172
+ eof: await this.visitSpace(compilationUnit.eof, p)
173
+ };
174
+ return (0, util_1.updateIfChanged)(compilationUnit, updates);
175
+ }
176
+ async visitConditionalType(conditionalType, p) {
177
+ const expression = await this.visitExpression(conditionalType, p);
178
+ if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.ConditionalType) {
179
+ return expression;
180
+ }
181
+ conditionalType = expression;
182
+ const updates = {
183
+ prefix: await this.visitSpace(conditionalType.prefix, p),
184
+ markers: await this.visitMarkers(conditionalType.markers, p),
185
+ checkType: await this.visitDefined(conditionalType.checkType, p),
186
+ condition: await this.visitLeftPadded(conditionalType.condition, p),
187
+ type: conditionalType.type && await this.visitType(conditionalType.type, p)
188
+ };
189
+ return (0, util_1.updateIfChanged)(conditionalType, updates);
190
+ }
191
+ async visitDelete(delete_, p) {
192
+ const expression = await this.visitExpression(delete_, p);
193
+ if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.Delete) {
194
+ return expression;
195
+ }
196
+ delete_ = expression;
197
+ const statement = await this.visitStatement(delete_, p);
198
+ if (!(statement === null || statement === void 0 ? void 0 : statement.kind) || statement.kind !== tree_1.JS.Kind.Delete) {
199
+ return statement;
200
+ }
201
+ delete_ = statement;
202
+ const updates = {
203
+ prefix: await this.visitSpace(delete_.prefix, p),
204
+ markers: await this.visitMarkers(delete_.markers, p),
205
+ expression: await this.visitDefined(delete_.expression, p)
206
+ };
207
+ return (0, util_1.updateIfChanged)(delete_, updates);
208
+ }
209
+ async visitExpressionStatement(expressionStatement, p) {
210
+ const expression = await this.visitExpression(expressionStatement, p);
211
+ if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.ExpressionStatement) {
212
+ return expression;
213
+ }
214
+ expressionStatement = expression;
215
+ const statement = await this.visitStatement(expressionStatement, p);
216
+ if (!(statement === null || statement === void 0 ? void 0 : statement.kind) || statement.kind !== tree_1.JS.Kind.ExpressionStatement) {
217
+ return statement;
218
+ }
219
+ expressionStatement = statement;
220
+ const updates = {
221
+ prefix: await this.visitSpace(expressionStatement.prefix, p),
222
+ markers: await this.visitMarkers(expressionStatement.markers, p),
223
+ expression: await this.visitDefined(expressionStatement.expression, p)
224
+ };
225
+ return (0, util_1.updateIfChanged)(expressionStatement, updates);
226
+ }
227
+ async visitExpressionWithTypeArguments(expressionWithTypeArguments, p) {
228
+ const expression = await this.visitExpression(expressionWithTypeArguments, p);
229
+ if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.ExpressionWithTypeArguments) {
230
+ return expression;
231
+ }
232
+ expressionWithTypeArguments = expression;
233
+ const updates = {
234
+ prefix: await this.visitSpace(expressionWithTypeArguments.prefix, p),
235
+ markers: await this.visitMarkers(expressionWithTypeArguments.markers, p),
236
+ clazz: await this.visitDefined(expressionWithTypeArguments.clazz, p),
237
+ typeArguments: expressionWithTypeArguments.typeArguments && await this.visitContainer(expressionWithTypeArguments.typeArguments, p),
238
+ type: expressionWithTypeArguments.type && await this.visitType(expressionWithTypeArguments.type, p)
239
+ };
240
+ return (0, util_1.updateIfChanged)(expressionWithTypeArguments, updates);
241
+ }
242
+ async visitFunctionCall(functionCall, p) {
243
+ const expression = await this.visitExpression(functionCall, p);
244
+ if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.FunctionCall) {
245
+ return expression;
246
+ }
247
+ functionCall = expression;
248
+ const statement = await this.visitStatement(functionCall, p);
249
+ if (!(statement === null || statement === void 0 ? void 0 : statement.kind) || statement.kind !== tree_1.JS.Kind.FunctionCall) {
250
+ return statement;
251
+ }
252
+ functionCall = statement;
253
+ const updates = {
254
+ prefix: await this.visitSpace(functionCall.prefix, p),
255
+ markers: await this.visitMarkers(functionCall.markers, p),
256
+ function: await this.visitOptionalRightPadded(functionCall.function, p),
257
+ typeParameters: await this.visitOptionalContainer(functionCall.typeParameters, p),
258
+ arguments: await this.visitContainer(functionCall.arguments, p),
259
+ methodType: await this.visitType(functionCall.methodType, p)
260
+ };
261
+ return (0, util_1.updateIfChanged)(functionCall, updates);
262
+ }
263
+ async visitFunctionType(functionType, p) {
264
+ const expression = await this.visitExpression(functionType, p);
265
+ if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.FunctionType) {
266
+ return expression;
267
+ }
268
+ functionType = expression;
269
+ const updates = {
270
+ prefix: await this.visitSpace(functionType.prefix, p),
271
+ markers: await this.visitMarkers(functionType.markers, p),
272
+ constructorType: await this.visitLeftPadded(functionType.constructorType, p),
273
+ typeParameters: functionType.typeParameters && await this.visitDefined(functionType.typeParameters, p),
274
+ parameters: await this.visitContainer(functionType.parameters, p),
275
+ returnType: await this.visitLeftPadded(functionType.returnType, p)
276
+ };
277
+ return (0, util_1.updateIfChanged)(functionType, updates);
278
+ }
279
+ async visitInferType(inferType, p) {
280
+ const expression = await this.visitExpression(inferType, p);
281
+ if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.InferType) {
282
+ return expression;
283
+ }
284
+ inferType = expression;
285
+ const updates = {
286
+ prefix: await this.visitSpace(inferType.prefix, p),
287
+ markers: await this.visitMarkers(inferType.markers, p),
288
+ typeParameter: await this.visitLeftPadded(inferType.typeParameter, p),
289
+ type: inferType.type && await this.visitType(inferType.type, p)
290
+ };
291
+ return (0, util_1.updateIfChanged)(inferType, updates);
292
+ }
293
+ async visitImportType(importType, p) {
294
+ const expression = await this.visitExpression(importType, p);
295
+ if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.ImportType) {
296
+ return expression;
297
+ }
298
+ importType = expression;
299
+ const updates = {
300
+ prefix: await this.visitSpace(importType.prefix, p),
301
+ markers: await this.visitMarkers(importType.markers, p),
302
+ hasTypeof: await this.visitRightPadded(importType.hasTypeof, p),
303
+ argumentAndAttributes: await this.visitContainer(importType.argumentAndAttributes, p),
304
+ qualifier: importType.qualifier && await this.visitLeftPadded(importType.qualifier, p),
305
+ typeArguments: importType.typeArguments && await this.visitContainer(importType.typeArguments, p),
306
+ type: importType.type && await this.visitType(importType.type, p)
307
+ };
308
+ return (0, util_1.updateIfChanged)(importType, updates);
309
+ }
310
+ async visitImportDeclaration(jsImport, p) {
311
+ const statement = await this.visitStatement(jsImport, p);
312
+ if (!(statement === null || statement === void 0 ? void 0 : statement.kind) || statement.kind !== tree_1.JS.Kind.Import) {
313
+ return statement;
314
+ }
315
+ jsImport = statement;
316
+ const updates = {
317
+ prefix: await this.visitSpace(jsImport.prefix, p),
318
+ markers: await this.visitMarkers(jsImport.markers, p),
319
+ modifiers: await (0, util_1.mapAsync)(jsImport.modifiers, item => this.visitDefined(item, p)),
320
+ importClause: jsImport.importClause && await this.visitDefined(jsImport.importClause, p),
321
+ moduleSpecifier: jsImport.moduleSpecifier && await this.visitLeftPadded(jsImport.moduleSpecifier, p),
322
+ attributes: jsImport.attributes && await this.visitDefined(jsImport.attributes, p),
323
+ initializer: jsImport.initializer && await this.visitLeftPadded(jsImport.initializer, p)
324
+ };
325
+ return (0, util_1.updateIfChanged)(jsImport, updates);
326
+ }
327
+ async visitImportClause(importClause, p) {
328
+ const updates = {
329
+ prefix: await this.visitSpace(importClause.prefix, p),
330
+ markers: await this.visitMarkers(importClause.markers, p),
331
+ name: importClause.name && await this.visitRightPadded(importClause.name, p),
332
+ namedBindings: importClause.namedBindings && await this.visitDefined(importClause.namedBindings, p)
333
+ };
334
+ return (0, util_1.updateIfChanged)(importClause, updates);
335
+ }
336
+ async visitNamedImports(namedImports, p) {
337
+ const expression = await this.visitExpression(namedImports, p);
338
+ if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.NamedImports) {
339
+ return expression;
340
+ }
341
+ namedImports = expression;
342
+ const updates = {
343
+ prefix: await this.visitSpace(namedImports.prefix, p),
344
+ markers: await this.visitMarkers(namedImports.markers, p),
345
+ elements: await this.visitContainer(namedImports.elements, p),
346
+ type: namedImports.type && await this.visitType(namedImports.type, p)
347
+ };
348
+ return (0, util_1.updateIfChanged)(namedImports, updates);
349
+ }
350
+ async visitImportSpecifier(importSpecifier, p) {
351
+ const expression = await this.visitExpression(importSpecifier, p);
352
+ if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.ImportSpecifier) {
353
+ return expression;
354
+ }
355
+ importSpecifier = expression;
356
+ const updates = {
357
+ prefix: await this.visitSpace(importSpecifier.prefix, p),
358
+ markers: await this.visitMarkers(importSpecifier.markers, p),
359
+ importType: await this.visitLeftPadded(importSpecifier.importType, p),
360
+ specifier: await this.visitDefined(importSpecifier.specifier, p),
361
+ type: importSpecifier.type && await this.visitType(importSpecifier.type, p)
362
+ };
363
+ return (0, util_1.updateIfChanged)(importSpecifier, updates);
364
+ }
365
+ async visitImportAttributes(importAttributes, p) {
366
+ const updates = {
367
+ prefix: await this.visitSpace(importAttributes.prefix, p),
368
+ markers: await this.visitMarkers(importAttributes.markers, p),
369
+ elements: await this.visitContainer(importAttributes.elements, p)
370
+ };
371
+ return (0, util_1.updateIfChanged)(importAttributes, updates);
372
+ }
373
+ async visitImportTypeAttributes(importTypeAttributes, p) {
374
+ const updates = {
375
+ prefix: await this.visitSpace(importTypeAttributes.prefix, p),
376
+ markers: await this.visitMarkers(importTypeAttributes.markers, p),
377
+ token: await this.visitRightPadded(importTypeAttributes.token, p),
378
+ elements: await this.visitContainer(importTypeAttributes.elements, p),
379
+ end: await this.visitSpace(importTypeAttributes.end, p)
380
+ };
381
+ return (0, util_1.updateIfChanged)(importTypeAttributes, updates);
382
+ }
383
+ async visitImportAttribute(importAttribute, p) {
384
+ const statement = await this.visitStatement(importAttribute, p);
385
+ if (!(statement === null || statement === void 0 ? void 0 : statement.kind) || statement.kind !== tree_1.JS.Kind.ImportAttribute) {
386
+ return statement;
387
+ }
388
+ importAttribute = statement;
389
+ const updates = {
390
+ prefix: await this.visitSpace(importAttribute.prefix, p),
391
+ markers: await this.visitMarkers(importAttribute.markers, p),
392
+ name: await this.visitDefined(importAttribute.name, p),
393
+ value: await this.visitLeftPadded(importAttribute.value, p)
394
+ };
395
+ return (0, util_1.updateIfChanged)(importAttribute, updates);
396
+ }
397
+ async visitBinaryExtensions(jsBinary, p) {
398
+ const updates = {
399
+ prefix: await this.visitSpace(jsBinary.prefix, p),
400
+ markers: await this.visitMarkers(jsBinary.markers, p),
401
+ left: await this.visitDefined(jsBinary.left, p),
402
+ operator: await this.visitLeftPadded(jsBinary.operator, p),
403
+ right: await this.visitDefined(jsBinary.right, p),
404
+ type: jsBinary.type && await this.visitType(jsBinary.type, p)
405
+ };
406
+ return (0, util_1.updateIfChanged)(jsBinary, updates);
407
+ }
408
+ async visitLiteralType(literalType, p) {
409
+ const expression = await this.visitExpression(literalType, p);
410
+ if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.LiteralType) {
411
+ return expression;
412
+ }
413
+ literalType = expression;
414
+ const updates = {
415
+ prefix: await this.visitSpace(literalType.prefix, p),
416
+ markers: await this.visitMarkers(literalType.markers, p),
417
+ literal: await this.visitDefined(literalType.literal, p),
418
+ type: (await this.visitType(literalType.type, p))
419
+ };
420
+ return (0, util_1.updateIfChanged)(literalType, updates);
421
+ }
422
+ async visitMappedType(mappedType, p) {
423
+ const expression = await this.visitExpression(mappedType, p);
424
+ if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.MappedType) {
425
+ return expression;
426
+ }
427
+ mappedType = expression;
428
+ const updates = {
429
+ prefix: await this.visitSpace(mappedType.prefix, p),
430
+ markers: await this.visitMarkers(mappedType.markers, p),
431
+ prefixToken: mappedType.prefixToken && await this.visitLeftPadded(mappedType.prefixToken, p),
432
+ hasReadonly: await this.visitLeftPadded(mappedType.hasReadonly, p),
433
+ keysRemapping: await this.visitDefined(mappedType.keysRemapping, p),
434
+ suffixToken: mappedType.suffixToken && await this.visitLeftPadded(mappedType.suffixToken, p),
435
+ hasQuestionToken: await this.visitLeftPadded(mappedType.hasQuestionToken, p),
436
+ valueType: await this.visitContainer(mappedType.valueType, p),
437
+ type: mappedType.type && await this.visitType(mappedType.type, p)
438
+ };
439
+ return (0, util_1.updateIfChanged)(mappedType, updates);
440
+ }
441
+ async visitMappedTypeKeysRemapping(keysRemapping, p) {
442
+ const updates = {
443
+ prefix: await this.visitSpace(keysRemapping.prefix, p),
444
+ markers: await this.visitMarkers(keysRemapping.markers, p),
445
+ typeParameter: await this.visitRightPadded(keysRemapping.typeParameter, p),
446
+ nameType: keysRemapping.nameType && await this.visitRightPadded(keysRemapping.nameType, p)
447
+ };
448
+ return (0, util_1.updateIfChanged)(keysRemapping, updates);
449
+ }
450
+ async visitMappedTypeParameter(mappedTypeParameter, p) {
451
+ const updates = {
452
+ prefix: await this.visitSpace(mappedTypeParameter.prefix, p),
453
+ markers: await this.visitMarkers(mappedTypeParameter.markers, p),
454
+ name: await this.visitDefined(mappedTypeParameter.name, p),
455
+ iterateType: await this.visitLeftPadded(mappedTypeParameter.iterateType, p)
456
+ };
457
+ return (0, util_1.updateIfChanged)(mappedTypeParameter, updates);
458
+ }
459
+ async visitObjectBindingPattern(objectBindingPattern, p) {
460
+ const expression = await this.visitExpression(objectBindingPattern, p);
461
+ if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.ObjectBindingPattern) {
462
+ return expression;
463
+ }
464
+ objectBindingPattern = expression;
465
+ const updates = {
466
+ prefix: await this.visitSpace(objectBindingPattern.prefix, p),
467
+ markers: await this.visitMarkers(objectBindingPattern.markers, p),
468
+ leadingAnnotations: await (0, util_1.mapAsync)(objectBindingPattern.leadingAnnotations, item => this.visitDefined(item, p)),
469
+ modifiers: await (0, util_1.mapAsync)(objectBindingPattern.modifiers, item => this.visitDefined(item, p)),
470
+ typeExpression: objectBindingPattern.typeExpression && await this.visitDefined(objectBindingPattern.typeExpression, p),
471
+ bindings: await this.visitContainer(objectBindingPattern.bindings, p),
472
+ initializer: objectBindingPattern.initializer && await this.visitLeftPadded(objectBindingPattern.initializer, p)
473
+ };
474
+ return (0, util_1.updateIfChanged)(objectBindingPattern, updates);
475
+ }
476
+ async visitPropertyAssignment(propertyAssignment, p) {
477
+ const statement = await this.visitStatement(propertyAssignment, p);
478
+ if (!(statement === null || statement === void 0 ? void 0 : statement.kind) || statement.kind !== tree_1.JS.Kind.PropertyAssignment) {
479
+ return statement;
480
+ }
481
+ propertyAssignment = statement;
482
+ const updates = {
483
+ prefix: await this.visitSpace(propertyAssignment.prefix, p),
484
+ markers: await this.visitMarkers(propertyAssignment.markers, p),
485
+ name: await this.visitRightPadded(propertyAssignment.name, p),
486
+ initializer: propertyAssignment.initializer && await this.visitDefined(propertyAssignment.initializer, p)
487
+ };
488
+ return (0, util_1.updateIfChanged)(propertyAssignment, updates);
489
+ }
490
+ async visitSatisfiesExpression(satisfiesExpression, p) {
491
+ const expression = await this.visitExpression(satisfiesExpression, p);
492
+ if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.SatisfiesExpression) {
493
+ return expression;
494
+ }
495
+ satisfiesExpression = expression;
496
+ const updates = {
497
+ prefix: await this.visitSpace(satisfiesExpression.prefix, p),
498
+ markers: await this.visitMarkers(satisfiesExpression.markers, p),
499
+ expression: await this.visitDefined(satisfiesExpression.expression, p),
500
+ satisfiesType: await this.visitLeftPadded(satisfiesExpression.satisfiesType, p),
501
+ type: satisfiesExpression.type && await this.visitType(satisfiesExpression.type, p)
502
+ };
503
+ return (0, util_1.updateIfChanged)(satisfiesExpression, updates);
504
+ }
505
+ async visitScopedVariableDeclarations(scopedVariableDeclarations, p) {
506
+ const statement = await this.visitStatement(scopedVariableDeclarations, p);
507
+ if (!(statement === null || statement === void 0 ? void 0 : statement.kind) || statement.kind !== tree_1.JS.Kind.ScopedVariableDeclarations) {
508
+ return statement;
509
+ }
510
+ scopedVariableDeclarations = statement;
511
+ const updates = {
512
+ prefix: await this.visitSpace(scopedVariableDeclarations.prefix, p),
513
+ markers: await this.visitMarkers(scopedVariableDeclarations.markers, p),
514
+ modifiers: await (0, util_1.mapAsync)(scopedVariableDeclarations.modifiers, item => this.visitDefined(item, p)),
515
+ variables: await (0, util_1.mapAsync)(scopedVariableDeclarations.variables, item => this.visitRightPadded(item, p))
516
+ };
517
+ return (0, util_1.updateIfChanged)(scopedVariableDeclarations, updates);
518
+ }
519
+ async visitShebang(shebang, p) {
520
+ const updates = {
521
+ prefix: await this.visitSpace(shebang.prefix, p),
522
+ markers: await this.visitMarkers(shebang.markers, p)
523
+ };
524
+ return (0, util_1.updateIfChanged)(shebang, updates);
525
+ }
526
+ async visitSpread(spread, p) {
527
+ const expression = await this.visitExpression(spread, p);
528
+ if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.Spread) {
529
+ return expression;
530
+ }
531
+ spread = expression;
532
+ const statement = await this.visitStatement(spread, p);
533
+ if (!(statement === null || statement === void 0 ? void 0 : statement.kind) || statement.kind !== tree_1.JS.Kind.Spread) {
534
+ return statement;
535
+ }
536
+ spread = statement;
537
+ const updates = {
538
+ prefix: await this.visitSpace(spread.prefix, p),
539
+ markers: await this.visitMarkers(spread.markers, p),
540
+ expression: await this.visitDefined(spread.expression, p),
541
+ type: await this.visitType(spread.type, p)
542
+ };
543
+ return (0, util_1.updateIfChanged)(spread, updates);
544
+ }
545
+ async visitStatementExpression(statementExpression, p) {
546
+ const expression = await this.visitExpression(statementExpression, p);
547
+ if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.StatementExpression) {
548
+ return expression;
549
+ }
550
+ statementExpression = expression;
551
+ const statement = await this.visitStatement(statementExpression, p);
552
+ if (!(statement === null || statement === void 0 ? void 0 : statement.kind) || statement.kind !== tree_1.JS.Kind.StatementExpression) {
553
+ return statement;
554
+ }
555
+ statementExpression = statement;
556
+ const updates = {
557
+ prefix: await this.visitSpace(statementExpression.prefix, p),
558
+ markers: await this.visitMarkers(statementExpression.markers, p),
559
+ statement: await this.visitDefined(statementExpression.statement, p)
560
+ };
561
+ return (0, util_1.updateIfChanged)(statementExpression, updates);
562
+ }
563
+ async visitTaggedTemplateExpression(taggedTemplateExpression, p) {
564
+ const expression = await this.visitExpression(taggedTemplateExpression, p);
565
+ if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.TaggedTemplateExpression) {
566
+ return expression;
567
+ }
568
+ taggedTemplateExpression = expression;
569
+ const statement = await this.visitStatement(taggedTemplateExpression, p);
570
+ if (!(statement === null || statement === void 0 ? void 0 : statement.kind) || statement.kind !== tree_1.JS.Kind.TaggedTemplateExpression) {
571
+ return statement;
572
+ }
573
+ taggedTemplateExpression = statement;
574
+ const updates = {
575
+ prefix: await this.visitSpace(taggedTemplateExpression.prefix, p),
576
+ markers: await this.visitMarkers(taggedTemplateExpression.markers, p),
577
+ tag: taggedTemplateExpression.tag && await this.visitRightPadded(taggedTemplateExpression.tag, p),
578
+ typeArguments: taggedTemplateExpression.typeArguments && await this.visitContainer(taggedTemplateExpression.typeArguments, p),
579
+ templateExpression: await this.visitDefined(taggedTemplateExpression.templateExpression, p),
580
+ type: taggedTemplateExpression.type && await this.visitType(taggedTemplateExpression.type, p)
581
+ };
582
+ return (0, util_1.updateIfChanged)(taggedTemplateExpression, updates);
583
+ }
584
+ async visitTemplateExpression(templateExpression, p) {
585
+ const expression = await this.visitExpression(templateExpression, p);
586
+ if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.TemplateExpression) {
587
+ return expression;
588
+ }
589
+ templateExpression = expression;
590
+ const statement = await this.visitStatement(templateExpression, p);
591
+ if (!(statement === null || statement === void 0 ? void 0 : statement.kind) || statement.kind !== tree_1.JS.Kind.TemplateExpression) {
592
+ return statement;
593
+ }
594
+ templateExpression = statement;
595
+ const updates = {
596
+ prefix: await this.visitSpace(templateExpression.prefix, p),
597
+ markers: await this.visitMarkers(templateExpression.markers, p),
598
+ head: await this.visitDefined(templateExpression.head, p),
599
+ spans: await (0, util_1.mapAsync)(templateExpression.spans, item => this.visitRightPadded(item, p)),
600
+ type: templateExpression.type && await this.visitType(templateExpression.type, p)
601
+ };
602
+ return (0, util_1.updateIfChanged)(templateExpression, updates);
603
+ }
604
+ async visitTemplateExpressionSpan(span, p) {
605
+ const updates = {
606
+ prefix: await this.visitSpace(span.prefix, p),
607
+ markers: await this.visitMarkers(span.markers, p),
608
+ expression: await this.visitDefined(span.expression, p),
609
+ tail: await this.visitDefined(span.tail, p)
610
+ };
611
+ return (0, util_1.updateIfChanged)(span, updates);
612
+ }
613
+ async visitTuple(tuple, p) {
614
+ const expression = await this.visitExpression(tuple, p);
615
+ if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.Tuple) {
616
+ return expression;
617
+ }
618
+ tuple = expression;
619
+ const updates = {
620
+ prefix: await this.visitSpace(tuple.prefix, p),
621
+ markers: await this.visitMarkers(tuple.markers, p),
622
+ elements: await this.visitContainer(tuple.elements, p),
623
+ type: tuple.type && await this.visitType(tuple.type, p)
624
+ };
625
+ return (0, util_1.updateIfChanged)(tuple, updates);
626
+ }
627
+ async visitTypeDeclaration(typeDeclaration, p) {
628
+ const statement = await this.visitStatement(typeDeclaration, p);
629
+ if (!(statement === null || statement === void 0 ? void 0 : statement.kind) || statement.kind !== tree_1.JS.Kind.TypeDeclaration) {
630
+ return statement;
631
+ }
632
+ typeDeclaration = statement;
633
+ const updates = {
634
+ prefix: await this.visitSpace(typeDeclaration.prefix, p),
635
+ markers: await this.visitMarkers(typeDeclaration.markers, p),
636
+ modifiers: await (0, util_1.mapAsync)(typeDeclaration.modifiers, item => this.visitDefined(item, p)),
637
+ name: await this.visitLeftPadded(typeDeclaration.name, p),
638
+ typeParameters: typeDeclaration.typeParameters && await this.visitDefined(typeDeclaration.typeParameters, p),
639
+ initializer: await this.visitLeftPadded(typeDeclaration.initializer, p),
640
+ type: typeDeclaration.type && await this.visitType(typeDeclaration.type, p)
641
+ };
642
+ return (0, util_1.updateIfChanged)(typeDeclaration, updates);
643
+ }
644
+ async visitTypeOf(typeOf, p) {
645
+ const expression = await this.visitExpression(typeOf, p);
646
+ if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.TypeOf) {
647
+ return expression;
648
+ }
649
+ typeOf = expression;
650
+ const updates = {
651
+ prefix: await this.visitSpace(typeOf.prefix, p),
652
+ markers: await this.visitMarkers(typeOf.markers, p),
653
+ expression: await this.visitDefined(typeOf.expression, p),
654
+ type: typeOf.type && await this.visitType(typeOf.type, p)
655
+ };
656
+ return (0, util_1.updateIfChanged)(typeOf, updates);
657
+ }
658
+ async visitTypeTreeExpression(typeTreeExpression, p) {
659
+ const expression = await this.visitExpression(typeTreeExpression, p);
660
+ if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.TypeTreeExpression) {
661
+ return expression;
662
+ }
663
+ typeTreeExpression = expression;
664
+ const updates = {
665
+ prefix: await this.visitSpace(typeTreeExpression.prefix, p),
666
+ markers: await this.visitMarkers(typeTreeExpression.markers, p),
667
+ expression: await this.visitDefined(typeTreeExpression.expression, p)
668
+ };
669
+ return (0, util_1.updateIfChanged)(typeTreeExpression, updates);
670
+ }
671
+ async visitAssignmentOperationExtensions(assignmentOperation, p) {
672
+ const updates = {
673
+ prefix: await this.visitSpace(assignmentOperation.prefix, p),
674
+ markers: await this.visitMarkers(assignmentOperation.markers, p),
675
+ variable: await this.visitDefined(assignmentOperation.variable, p),
676
+ operator: await this.visitLeftPadded(assignmentOperation.operator, p),
677
+ assignment: await this.visitDefined(assignmentOperation.assignment, p),
678
+ type: assignmentOperation.type && await this.visitType(assignmentOperation.type, p)
679
+ };
680
+ return (0, util_1.updateIfChanged)(assignmentOperation, updates);
681
+ }
682
+ async visitIndexedAccessType(indexedAccessType, p) {
683
+ const expression = await this.visitExpression(indexedAccessType, p);
684
+ if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.IndexedAccessType) {
685
+ return expression;
686
+ }
687
+ indexedAccessType = expression;
688
+ const updates = {
689
+ prefix: await this.visitSpace(indexedAccessType.prefix, p),
690
+ markers: await this.visitMarkers(indexedAccessType.markers, p),
691
+ objectType: await this.visitDefined(indexedAccessType.objectType, p),
692
+ indexType: await this.visitDefined(indexedAccessType.indexType, p),
693
+ type: indexedAccessType.type && await this.visitType(indexedAccessType.type, p)
694
+ };
695
+ return (0, util_1.updateIfChanged)(indexedAccessType, updates);
696
+ }
697
+ async visitIndexedAccessTypeIndexType(indexType, p) {
698
+ const updates = {
699
+ prefix: await this.visitSpace(indexType.prefix, p),
700
+ markers: await this.visitMarkers(indexType.markers, p),
701
+ element: await this.visitRightPadded(indexType.element, p),
702
+ type: indexType.type && await this.visitType(indexType.type, p)
703
+ };
704
+ return (0, util_1.updateIfChanged)(indexType, updates);
705
+ }
706
+ async visitTypeQuery(typeQuery, p) {
707
+ const expression = await this.visitExpression(typeQuery, p);
708
+ if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.TypeQuery) {
709
+ return expression;
710
+ }
711
+ typeQuery = expression;
712
+ const updates = {
713
+ prefix: await this.visitSpace(typeQuery.prefix, p),
714
+ markers: await this.visitMarkers(typeQuery.markers, p),
715
+ typeExpression: await this.visitDefined(typeQuery.typeExpression, p),
716
+ typeArguments: typeQuery.typeArguments && await this.visitContainer(typeQuery.typeArguments, p),
717
+ type: typeQuery.type && await this.visitType(typeQuery.type, p)
718
+ };
719
+ return (0, util_1.updateIfChanged)(typeQuery, updates);
720
+ }
721
+ async visitTypeInfo(typeInfo, p) {
722
+ const expression = await this.visitExpression(typeInfo, p);
723
+ if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.TypeInfo) {
724
+ return expression;
725
+ }
726
+ typeInfo = expression;
727
+ const updates = {
728
+ prefix: await this.visitSpace(typeInfo.prefix, p),
729
+ markers: await this.visitMarkers(typeInfo.markers, p),
730
+ typeIdentifier: await this.visitDefined(typeInfo.typeIdentifier, p)
731
+ };
732
+ return (0, util_1.updateIfChanged)(typeInfo, updates);
733
+ }
734
+ async visitComputedPropertyName(computedPropertyName, p) {
735
+ const expression = await this.visitExpression(computedPropertyName, p);
736
+ if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.ComputedPropertyName) {
737
+ return expression;
738
+ }
739
+ computedPropertyName = expression;
740
+ const updates = {
741
+ prefix: await this.visitSpace(computedPropertyName.prefix, p),
742
+ markers: await this.visitMarkers(computedPropertyName.markers, p),
743
+ expression: await this.visitRightPadded(computedPropertyName.expression, p)
744
+ };
745
+ return (0, util_1.updateIfChanged)(computedPropertyName, updates);
746
+ }
747
+ async visitTypeOperator(typeOperator, p) {
748
+ const expression = await this.visitExpression(typeOperator, p);
749
+ if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.TypeOperator) {
750
+ return expression;
751
+ }
752
+ typeOperator = expression;
753
+ const updates = {
754
+ prefix: await this.visitSpace(typeOperator.prefix, p),
755
+ markers: await this.visitMarkers(typeOperator.markers, p),
756
+ expression: await this.visitLeftPadded(typeOperator.expression, p)
757
+ };
758
+ return (0, util_1.updateIfChanged)(typeOperator, updates);
759
+ }
760
+ async visitTypePredicate(typePredicate, p) {
761
+ const expression = await this.visitExpression(typePredicate, p);
762
+ if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.TypePredicate) {
763
+ return expression;
764
+ }
765
+ typePredicate = expression;
766
+ const updates = {
767
+ prefix: await this.visitSpace(typePredicate.prefix, p),
768
+ markers: await this.visitMarkers(typePredicate.markers, p),
769
+ asserts: await this.visitLeftPadded(typePredicate.asserts, p),
770
+ parameterName: await this.visitDefined(typePredicate.parameterName, p),
771
+ expression: typePredicate.expression && await this.visitLeftPadded(typePredicate.expression, p),
772
+ type: typePredicate.type && await this.visitType(typePredicate.type, p)
773
+ };
774
+ return (0, util_1.updateIfChanged)(typePredicate, updates);
775
+ }
776
+ async visitUnion(union, p) {
777
+ const expression = await this.visitExpression(union, p);
778
+ if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.Union) {
779
+ return expression;
780
+ }
781
+ union = expression;
782
+ const updates = {
783
+ prefix: await this.visitSpace(union.prefix, p),
784
+ markers: await this.visitMarkers(union.markers, p),
785
+ types: await (0, util_1.mapAsync)(union.types, item => this.visitRightPadded(item, p)),
786
+ type: union.type && await this.visitType(union.type, p)
787
+ };
788
+ return (0, util_1.updateIfChanged)(union, updates);
789
+ }
790
+ async visitIntersection(intersection, p) {
791
+ const expression = await this.visitExpression(intersection, p);
792
+ if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.Intersection) {
793
+ return expression;
794
+ }
795
+ intersection = expression;
796
+ const updates = {
797
+ prefix: await this.visitSpace(intersection.prefix, p),
798
+ markers: await this.visitMarkers(intersection.markers, p),
799
+ types: await (0, util_1.mapAsync)(intersection.types, item => this.visitRightPadded(item, p)),
800
+ type: intersection.type && await this.visitType(intersection.type, p)
801
+ };
802
+ return (0, util_1.updateIfChanged)(intersection, updates);
803
+ }
804
+ async visitVoid(void_, p) {
805
+ const expression = await this.visitExpression(void_, p);
806
+ if (!(expression === null || expression === void 0 ? void 0 : expression.kind) || expression.kind !== tree_1.JS.Kind.Void) {
807
+ return expression;
808
+ }
809
+ void_ = expression;
810
+ const updates = {
811
+ prefix: await this.visitSpace(void_.prefix, p),
812
+ markers: await this.visitMarkers(void_.markers, p),
813
+ expression: await this.visitDefined(void_.expression, p)
814
+ };
815
+ return (0, util_1.updateIfChanged)(void_, updates);
816
+ }
817
+ async visitWithStatement(withStatement, p) {
818
+ const statement = await this.visitStatement(withStatement, p);
819
+ if (!(statement === null || statement === void 0 ? void 0 : statement.kind) || statement.kind !== tree_1.JS.Kind.WithStatement) {
820
+ return statement;
821
+ }
822
+ withStatement = statement;
823
+ const updates = {
824
+ prefix: await this.visitSpace(withStatement.prefix, p),
825
+ markers: await this.visitMarkers(withStatement.markers, p),
826
+ expression: await this.visitDefined(withStatement.expression, p),
827
+ body: await this.visitRightPadded(withStatement.body, p)
828
+ };
829
+ return (0, util_1.updateIfChanged)(withStatement, updates);
830
+ }
831
+ async visitIndexSignatureDeclaration(indexSignatureDeclaration, p) {
832
+ const statement = await this.visitStatement(indexSignatureDeclaration, p);
833
+ if (!(statement === null || statement === void 0 ? void 0 : statement.kind) || statement.kind !== tree_1.JS.Kind.IndexSignatureDeclaration) {
834
+ return statement;
835
+ }
836
+ indexSignatureDeclaration = statement;
837
+ const updates = {
838
+ prefix: await this.visitSpace(indexSignatureDeclaration.prefix, p),
839
+ markers: await this.visitMarkers(indexSignatureDeclaration.markers, p),
840
+ modifiers: await (0, util_1.mapAsync)(indexSignatureDeclaration.modifiers, item => this.visitDefined(item, p)),
841
+ parameters: await this.visitContainer(indexSignatureDeclaration.parameters, p),
842
+ typeExpression: await this.visitLeftPadded(indexSignatureDeclaration.typeExpression, p),
843
+ type: indexSignatureDeclaration.type && await this.visitType(indexSignatureDeclaration.type, p)
844
+ };
845
+ return (0, util_1.updateIfChanged)(indexSignatureDeclaration, updates);
846
+ }
847
+ async visitComputedPropertyMethodDeclaration(computedPropMethod, p) {
848
+ const statement = await this.visitStatement(computedPropMethod, p);
849
+ if (!(statement === null || statement === void 0 ? void 0 : statement.kind) || statement.kind !== tree_1.JS.Kind.ComputedPropertyMethodDeclaration) {
850
+ return statement;
851
+ }
852
+ computedPropMethod = statement;
853
+ const updates = {
854
+ prefix: await this.visitSpace(computedPropMethod.prefix, p),
855
+ markers: await this.visitMarkers(computedPropMethod.markers, p),
856
+ leadingAnnotations: await (0, util_1.mapAsync)(computedPropMethod.leadingAnnotations, item => this.visitDefined(item, p)),
857
+ modifiers: await (0, util_1.mapAsync)(computedPropMethod.modifiers, item => this.visitDefined(item, p)),
858
+ typeParameters: computedPropMethod.typeParameters && await this.visitDefined(computedPropMethod.typeParameters, p),
859
+ returnTypeExpression: computedPropMethod.returnTypeExpression && await this.visitDefined(computedPropMethod.returnTypeExpression, p),
860
+ name: await this.visitDefined(computedPropMethod.name, p),
861
+ parameters: await this.visitContainer(computedPropMethod.parameters, p),
862
+ body: computedPropMethod.body && await this.visitDefined(computedPropMethod.body, p),
863
+ methodType: computedPropMethod.methodType && await this.visitType(computedPropMethod.methodType, p)
864
+ };
865
+ return (0, util_1.updateIfChanged)(computedPropMethod, updates);
866
+ }
867
+ async visitForOfLoop(forOfLoop, p) {
868
+ const updates = {
869
+ prefix: await this.visitSpace(forOfLoop.prefix, p),
870
+ markers: await this.visitMarkers(forOfLoop.markers, p),
871
+ loop: await this.visitDefined(forOfLoop.loop, p)
872
+ };
873
+ return (0, util_1.updateIfChanged)(forOfLoop, updates);
874
+ }
875
+ async visitForInLoop(forInLoop, p) {
876
+ const updates = {
877
+ prefix: await this.visitSpace(forInLoop.prefix, p),
878
+ markers: await this.visitMarkers(forInLoop.markers, p),
879
+ control: await this.visitDefined(forInLoop.control, p),
880
+ body: await this.visitRightPadded(forInLoop.body, p)
881
+ };
882
+ return (0, util_1.updateIfChanged)(forInLoop, updates);
883
+ }
884
+ async visitNamespaceDeclaration(namespaceDeclaration, p) {
885
+ const statement = await this.visitStatement(namespaceDeclaration, p);
886
+ if (!(statement === null || statement === void 0 ? void 0 : statement.kind) || statement.kind !== tree_1.JS.Kind.NamespaceDeclaration) {
887
+ return statement;
888
+ }
889
+ namespaceDeclaration = statement;
890
+ const updates = {
891
+ prefix: await this.visitSpace(namespaceDeclaration.prefix, p),
892
+ markers: await this.visitMarkers(namespaceDeclaration.markers, p),
893
+ modifiers: await (0, util_1.mapAsync)(namespaceDeclaration.modifiers, item => this.visitDefined(item, p)),
894
+ keywordType: await this.visitLeftPadded(namespaceDeclaration.keywordType, p),
895
+ name: await this.visitRightPadded(namespaceDeclaration.name, p),
896
+ body: namespaceDeclaration.body && await this.visitDefined(namespaceDeclaration.body, p)
897
+ };
898
+ return (0, util_1.updateIfChanged)(namespaceDeclaration, updates);
899
+ }
900
+ async visitTypeLiteral(typeLiteral, p) {
901
+ const updates = {
902
+ prefix: await this.visitSpace(typeLiteral.prefix, p),
903
+ markers: await this.visitMarkers(typeLiteral.markers, p),
904
+ members: await this.visitDefined(typeLiteral.members, p),
905
+ type: typeLiteral.type && await this.visitType(typeLiteral.type, p)
906
+ };
907
+ return (0, util_1.updateIfChanged)(typeLiteral, updates);
908
+ }
909
+ async visitArrayBindingPattern(arrayBindingPattern, p) {
910
+ const updates = {
911
+ prefix: await this.visitSpace(arrayBindingPattern.prefix, p),
912
+ markers: await this.visitMarkers(arrayBindingPattern.markers, p),
913
+ elements: await this.visitContainer(arrayBindingPattern.elements, p),
914
+ type: arrayBindingPattern.type && await this.visitType(arrayBindingPattern.type, p)
915
+ };
916
+ return (0, util_1.updateIfChanged)(arrayBindingPattern, updates);
917
+ }
918
+ async visitBindingElement(bindingElement, p) {
919
+ const statement = await this.visitStatement(bindingElement, p);
920
+ if (!(statement === null || statement === void 0 ? void 0 : statement.kind) || statement.kind !== tree_1.JS.Kind.BindingElement) {
921
+ return statement;
922
+ }
923
+ bindingElement = statement;
924
+ const updates = {
925
+ prefix: await this.visitSpace(bindingElement.prefix, p),
926
+ markers: await this.visitMarkers(bindingElement.markers, p),
927
+ propertyName: bindingElement.propertyName && await this.visitRightPadded(bindingElement.propertyName, p),
928
+ name: await this.visitDefined(bindingElement.name, p),
929
+ initializer: bindingElement.initializer && await this.visitLeftPadded(bindingElement.initializer, p),
930
+ variableType: bindingElement.variableType && await this.visitType(bindingElement.variableType, p)
931
+ };
932
+ return (0, util_1.updateIfChanged)(bindingElement, updates);
933
+ }
934
+ async visitExportDeclaration(exportDeclaration, p) {
935
+ const statement = await this.visitStatement(exportDeclaration, p);
936
+ if (!(statement === null || statement === void 0 ? void 0 : statement.kind) || statement.kind !== tree_1.JS.Kind.ExportDeclaration) {
937
+ return statement;
938
+ }
939
+ exportDeclaration = statement;
940
+ const updates = {
941
+ prefix: await this.visitSpace(exportDeclaration.prefix, p),
942
+ markers: await this.visitMarkers(exportDeclaration.markers, p),
943
+ modifiers: await (0, util_1.mapAsync)(exportDeclaration.modifiers, item => this.visitDefined(item, p)),
944
+ typeOnly: await this.visitLeftPadded(exportDeclaration.typeOnly, p),
945
+ exportClause: exportDeclaration.exportClause && await this.visitDefined(exportDeclaration.exportClause, p),
946
+ moduleSpecifier: exportDeclaration.moduleSpecifier && await this.visitLeftPadded(exportDeclaration.moduleSpecifier, p),
947
+ attributes: exportDeclaration.attributes && await this.visitDefined(exportDeclaration.attributes, p)
948
+ };
949
+ return (0, util_1.updateIfChanged)(exportDeclaration, updates);
950
+ }
951
+ async visitExportAssignment(exportAssignment, p) {
952
+ const statement = await this.visitStatement(exportAssignment, p);
953
+ if (!(statement === null || statement === void 0 ? void 0 : statement.kind) || statement.kind !== tree_1.JS.Kind.ExportAssignment) {
954
+ return statement;
955
+ }
956
+ exportAssignment = statement;
957
+ const updates = {
958
+ prefix: await this.visitSpace(exportAssignment.prefix, p),
959
+ markers: await this.visitMarkers(exportAssignment.markers, p),
960
+ expression: await this.visitLeftPadded(exportAssignment.expression, p)
961
+ };
962
+ return (0, util_1.updateIfChanged)(exportAssignment, updates);
963
+ }
964
+ async visitNamedExports(namedExports, p) {
965
+ const updates = {
966
+ prefix: await this.visitSpace(namedExports.prefix, p),
967
+ markers: await this.visitMarkers(namedExports.markers, p),
968
+ elements: await this.visitContainer(namedExports.elements, p),
969
+ type: namedExports.type && await this.visitType(namedExports.type, p)
970
+ };
971
+ return (0, util_1.updateIfChanged)(namedExports, updates);
972
+ }
973
+ async visitExportSpecifier(exportSpecifier, p) {
974
+ const updates = {
975
+ prefix: await this.visitSpace(exportSpecifier.prefix, p),
976
+ markers: await this.visitMarkers(exportSpecifier.markers, p),
977
+ typeOnly: await this.visitLeftPadded(exportSpecifier.typeOnly, p),
978
+ specifier: await this.visitDefined(exportSpecifier.specifier, p),
979
+ type: exportSpecifier.type && await this.visitType(exportSpecifier.type, p)
980
+ };
981
+ return (0, util_1.updateIfChanged)(exportSpecifier, updates);
982
+ }
983
+ async accept(j, p) {
984
+ if ((0, tree_1.isJavaScript)(j)) {
985
+ const tree = j;
986
+ switch (tree.kind) {
987
+ case tree_1.JS.Kind.Alias:
988
+ return this.visitAlias(tree, p);
989
+ case tree_1.JS.Kind.ArrowFunction:
990
+ return this.visitArrowFunction(tree, p);
991
+ case tree_1.JS.Kind.As:
992
+ return this.visitAs(tree, p);
993
+ case tree_1.JS.Kind.Await:
994
+ return this.visitAwait(tree, p);
995
+ case tree_1.JS.Kind.CompilationUnit:
996
+ return this.visitJsCompilationUnit(tree, p);
997
+ case tree_1.JS.Kind.ComputedPropertyName:
998
+ return this.visitComputedPropertyName(tree, p);
999
+ case tree_1.JS.Kind.ConditionalType:
1000
+ return this.visitConditionalType(tree, p);
1001
+ case tree_1.JS.Kind.Delete:
1002
+ return this.visitDelete(tree, p);
1003
+ case tree_1.JS.Kind.ExpressionStatement:
1004
+ return this.visitExpressionStatement(tree, p);
1005
+ case tree_1.JS.Kind.ExpressionWithTypeArguments:
1006
+ return this.visitExpressionWithTypeArguments(tree, p);
1007
+ case tree_1.JS.Kind.FunctionCall:
1008
+ return this.visitFunctionCall(tree, p);
1009
+ case tree_1.JS.Kind.FunctionType:
1010
+ return this.visitFunctionType(tree, p);
1011
+ case tree_1.JS.Kind.InferType:
1012
+ return this.visitInferType(tree, p);
1013
+ case tree_1.JS.Kind.ImportType:
1014
+ return this.visitImportType(tree, p);
1015
+ case tree_1.JS.Kind.Import:
1016
+ return this.visitImportDeclaration(tree, p);
1017
+ case tree_1.JS.Kind.ImportClause:
1018
+ return this.visitImportClause(tree, p);
1019
+ case tree_1.JS.Kind.NamedImports:
1020
+ return this.visitNamedImports(tree, p);
1021
+ case tree_1.JS.Kind.ImportSpecifier:
1022
+ return this.visitImportSpecifier(tree, p);
1023
+ case tree_1.JS.Kind.ImportAttributes:
1024
+ return this.visitImportAttributes(tree, p);
1025
+ case tree_1.JS.Kind.ImportTypeAttributes:
1026
+ return this.visitImportTypeAttributes(tree, p);
1027
+ case tree_1.JS.Kind.ImportAttribute:
1028
+ return this.visitImportAttribute(tree, p);
1029
+ case tree_1.JS.Kind.JsxAttribute:
1030
+ return this.visitJsxAttribute(tree, p);
1031
+ case tree_1.JS.Kind.JsxSpreadAttribute:
1032
+ return this.visitJsxSpreadAttribute(tree, p);
1033
+ case tree_1.JS.Kind.JsxEmbeddedExpression:
1034
+ return this.visitJsxEmbeddedExpression(tree, p);
1035
+ case tree_1.JS.Kind.JsxNamespacedName:
1036
+ return this.visitJsxNamespacedName(tree, p);
1037
+ case tree_1.JS.Kind.JsxTag:
1038
+ return this.visitJsxTag(tree, p);
1039
+ case tree_1.JS.Kind.Binary:
1040
+ return this.visitBinaryExtensions(tree, p);
1041
+ case tree_1.JS.Kind.LiteralType:
1042
+ return this.visitLiteralType(tree, p);
1043
+ case tree_1.JS.Kind.MappedType:
1044
+ return this.visitMappedType(tree, p);
1045
+ case tree_1.JS.Kind.MappedTypeKeysRemapping:
1046
+ return this.visitMappedTypeKeysRemapping(tree, p);
1047
+ case tree_1.JS.Kind.MappedTypeParameter:
1048
+ return this.visitMappedTypeParameter(tree, p);
1049
+ case tree_1.JS.Kind.ObjectBindingPattern:
1050
+ return this.visitObjectBindingPattern(tree, p);
1051
+ case tree_1.JS.Kind.PropertyAssignment:
1052
+ return this.visitPropertyAssignment(tree, p);
1053
+ case tree_1.JS.Kind.SatisfiesExpression:
1054
+ return this.visitSatisfiesExpression(tree, p);
1055
+ case tree_1.JS.Kind.ScopedVariableDeclarations:
1056
+ return this.visitScopedVariableDeclarations(tree, p);
1057
+ case tree_1.JS.Kind.Shebang:
1058
+ return this.visitShebang(tree, p);
1059
+ case tree_1.JS.Kind.Spread:
1060
+ return this.visitSpread(tree, p);
1061
+ case tree_1.JS.Kind.StatementExpression:
1062
+ return this.visitStatementExpression(tree, p);
1063
+ case tree_1.JS.Kind.TaggedTemplateExpression:
1064
+ return this.visitTaggedTemplateExpression(tree, p);
1065
+ case tree_1.JS.Kind.TemplateExpression:
1066
+ return this.visitTemplateExpression(tree, p);
1067
+ case tree_1.JS.Kind.TemplateExpressionSpan:
1068
+ return this.visitTemplateExpressionSpan(tree, p);
1069
+ case tree_1.JS.Kind.Tuple:
1070
+ return this.visitTuple(tree, p);
1071
+ case tree_1.JS.Kind.TypeDeclaration:
1072
+ return this.visitTypeDeclaration(tree, p);
1073
+ case tree_1.JS.Kind.TypeOf:
1074
+ return this.visitTypeOf(tree, p);
1075
+ case tree_1.JS.Kind.TypeTreeExpression:
1076
+ return this.visitTypeTreeExpression(tree, p);
1077
+ case tree_1.JS.Kind.AssignmentOperation:
1078
+ return this.visitAssignmentOperationExtensions(tree, p);
1079
+ case tree_1.JS.Kind.IndexedAccessType:
1080
+ return this.visitIndexedAccessType(tree, p);
1081
+ case tree_1.JS.Kind.IndexType:
1082
+ return this.visitIndexedAccessTypeIndexType(tree, p);
1083
+ case tree_1.JS.Kind.TypeQuery:
1084
+ return this.visitTypeQuery(tree, p);
1085
+ case tree_1.JS.Kind.TypeInfo:
1086
+ return this.visitTypeInfo(tree, p);
1087
+ case tree_1.JS.Kind.TypeOperator:
1088
+ return this.visitTypeOperator(tree, p);
1089
+ case tree_1.JS.Kind.TypePredicate:
1090
+ return this.visitTypePredicate(tree, p);
1091
+ case tree_1.JS.Kind.Union:
1092
+ return this.visitUnion(tree, p);
1093
+ case tree_1.JS.Kind.Intersection:
1094
+ return this.visitIntersection(tree, p);
1095
+ case tree_1.JS.Kind.Void:
1096
+ return this.visitVoid(tree, p);
1097
+ case tree_1.JS.Kind.WithStatement:
1098
+ return this.visitWithStatement(tree, p);
1099
+ case tree_1.JS.Kind.IndexSignatureDeclaration:
1100
+ return this.visitIndexSignatureDeclaration(tree, p);
1101
+ case tree_1.JS.Kind.ComputedPropertyMethodDeclaration:
1102
+ return this.visitComputedPropertyMethodDeclaration(tree, p);
1103
+ case tree_1.JS.Kind.ForOfLoop:
1104
+ return this.visitForOfLoop(tree, p);
1105
+ case tree_1.JS.Kind.ForInLoop:
1106
+ return this.visitForInLoop(tree, p);
1107
+ case tree_1.JS.Kind.NamespaceDeclaration:
1108
+ return this.visitNamespaceDeclaration(tree, p);
1109
+ case tree_1.JS.Kind.TypeLiteral:
1110
+ return this.visitTypeLiteral(tree, p);
1111
+ case tree_1.JS.Kind.ArrayBindingPattern:
1112
+ return this.visitArrayBindingPattern(tree, p);
1113
+ case tree_1.JS.Kind.BindingElement:
1114
+ return this.visitBindingElement(tree, p);
1115
+ case tree_1.JS.Kind.ExportDeclaration:
1116
+ return this.visitExportDeclaration(tree, p);
1117
+ case tree_1.JS.Kind.ExportAssignment:
1118
+ return this.visitExportAssignment(tree, p);
1119
+ case tree_1.JS.Kind.NamedExports:
1120
+ return this.visitNamedExports(tree, p);
1121
+ case tree_1.JS.Kind.ExportSpecifier:
1122
+ return this.visitExportSpecifier(tree, p);
1287
1123
  }
1288
- return _super.accept.call(this, j, p);
1289
- });
1124
+ }
1125
+ return super.accept(j, p);
1290
1126
  }
1291
1127
  }
1292
1128
  exports.JavaScriptVisitor = JavaScriptVisitor;