@openrewrite/rewrite 8.72.2 → 8.72.4
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.
- package/dist/execution.js +3 -16
- package/dist/execution.js.map +1 -1
- package/dist/index.js +34 -49
- package/dist/index.js.map +1 -1
- package/dist/java/markers.js +12 -29
- package/dist/java/markers.js.map +1 -1
- package/dist/java/print.js +2 -13
- package/dist/java/print.js.map +1 -1
- package/dist/java/rpc.js +1344 -1725
- package/dist/java/rpc.js.map +1 -1
- package/dist/java/type-visitor.js +143 -184
- package/dist/java/type-visitor.js.map +1 -1
- package/dist/java/visitor.js +1072 -1249
- package/dist/java/visitor.js.map +1 -1
- package/dist/javascript/add-import.js +495 -534
- package/dist/javascript/add-import.js.map +1 -1
- package/dist/javascript/autodetect.js +116 -159
- package/dist/javascript/autodetect.js.map +1 -1
- package/dist/javascript/cleanup/add-parse-int-radix.js +41 -57
- package/dist/javascript/cleanup/add-parse-int-radix.js.map +1 -1
- package/dist/javascript/cleanup/prefer-optional-chain.js +89 -105
- package/dist/javascript/cleanup/prefer-optional-chain.js.map +1 -1
- package/dist/javascript/cleanup/use-object-property-shorthand.js +74 -95
- package/dist/javascript/cleanup/use-object-property-shorthand.js.map +1 -1
- package/dist/javascript/comparator.js +815 -1167
- package/dist/javascript/comparator.js.map +1 -1
- package/dist/javascript/dependency-workspace.js +206 -219
- package/dist/javascript/dependency-workspace.js.map +1 -1
- package/dist/javascript/format/format.js +682 -908
- package/dist/javascript/format/format.js.map +1 -1
- package/dist/javascript/format/minimum-viable-spacing-visitor.js +152 -231
- package/dist/javascript/format/minimum-viable-spacing-visitor.js.map +1 -1
- package/dist/javascript/format/normalize-whitespace-visitor.js +12 -31
- package/dist/javascript/format/normalize-whitespace-visitor.js.map +1 -1
- package/dist/javascript/format/prettier-config-loader.js +134 -153
- package/dist/javascript/format/prettier-config-loader.js.map +1 -1
- package/dist/javascript/format/prettier-format.js +112 -129
- package/dist/javascript/format/prettier-format.js.map +1 -1
- package/dist/javascript/format/tabs-and-indents-visitor.js +112 -136
- package/dist/javascript/format/tabs-and-indents-visitor.js.map +1 -1
- package/dist/javascript/markers.js +59 -92
- package/dist/javascript/markers.js.map +1 -1
- package/dist/javascript/migrate/es6/modernize-octal-escape-sequences.js +39 -52
- package/dist/javascript/migrate/es6/modernize-octal-escape-sequences.js.map +1 -1
- package/dist/javascript/migrate/es6/modernize-octal-literals.js +25 -38
- package/dist/javascript/migrate/es6/modernize-octal-literals.js.map +1 -1
- package/dist/javascript/migrate/es6/remove-duplicate-object-keys.js +66 -82
- package/dist/javascript/migrate/es6/remove-duplicate-object-keys.js.map +1 -1
- package/dist/javascript/migrate/typescript/export-assignment-to-export-default.js +10 -23
- package/dist/javascript/migrate/typescript/export-assignment-to-export-default.js.map +1 -1
- package/dist/javascript/node-resolution-result.js +137 -166
- package/dist/javascript/node-resolution-result.js.map +1 -1
- package/dist/javascript/package-json-parser.js +312 -343
- package/dist/javascript/package-json-parser.js.map +1 -1
- package/dist/javascript/package-manager.js +145 -170
- package/dist/javascript/package-manager.js.map +1 -1
- package/dist/javascript/parser.d.ts.map +1 -1
- package/dist/javascript/parser.js +94 -68
- package/dist/javascript/parser.js.map +1 -1
- package/dist/javascript/print.js +1572 -1835
- package/dist/javascript/print.js.map +1 -1
- package/dist/javascript/project-parser.js +151 -172
- package/dist/javascript/project-parser.js.map +1 -1
- package/dist/javascript/recipes/add-dependency.js +140 -175
- package/dist/javascript/recipes/add-dependency.js.map +1 -1
- package/dist/javascript/recipes/async-callback-in-sync-array-method.js +20 -36
- package/dist/javascript/recipes/async-callback-in-sync-array-method.js.map +1 -1
- package/dist/javascript/recipes/auto-format.js +3 -14
- package/dist/javascript/recipes/auto-format.js.map +1 -1
- package/dist/javascript/recipes/change-import.js +447 -495
- package/dist/javascript/recipes/change-import.js.map +1 -1
- package/dist/javascript/recipes/order-imports.js +162 -175
- package/dist/javascript/recipes/order-imports.js.map +1 -1
- package/dist/javascript/recipes/upgrade-dependency-version.js +167 -197
- package/dist/javascript/recipes/upgrade-dependency-version.js.map +1 -1
- package/dist/javascript/recipes/upgrade-transitive-dependency-version.js +166 -193
- package/dist/javascript/recipes/upgrade-transitive-dependency-version.js.map +1 -1
- package/dist/javascript/remove-import.js +689 -724
- package/dist/javascript/remove-import.js.map +1 -1
- package/dist/javascript/rpc.js +1007 -1332
- package/dist/javascript/rpc.js.map +1 -1
- package/dist/javascript/search/find-dependency.js +84 -110
- package/dist/javascript/search/find-dependency.js.map +1 -1
- package/dist/javascript/search/uses-method.js +5 -19
- package/dist/javascript/search/uses-method.js.map +1 -1
- package/dist/javascript/search/uses-type.js +9 -20
- package/dist/javascript/search/uses-type.js.map +1 -1
- package/dist/javascript/templating/comparator.js +737 -822
- package/dist/javascript/templating/comparator.js.map +1 -1
- package/dist/javascript/templating/engine.js +211 -245
- package/dist/javascript/templating/engine.js.map +1 -1
- package/dist/javascript/templating/pattern.js +169 -190
- package/dist/javascript/templating/pattern.js.map +1 -1
- package/dist/javascript/templating/placeholder-replacement.js +172 -210
- package/dist/javascript/templating/placeholder-replacement.js.map +1 -1
- package/dist/javascript/templating/rewrite.js +75 -97
- package/dist/javascript/templating/rewrite.js.map +1 -1
- package/dist/javascript/templating/template.js +69 -82
- package/dist/javascript/templating/template.js.map +1 -1
- package/dist/javascript/tree-debug.js +109 -137
- package/dist/javascript/tree-debug.js.map +1 -1
- package/dist/javascript/visitor.js +1090 -1254
- package/dist/javascript/visitor.js.map +1 -1
- package/dist/json/print.js +72 -103
- package/dist/json/print.js.map +1 -1
- package/dist/json/rpc.js +120 -181
- package/dist/json/rpc.js.map +1 -1
- package/dist/json/visitor.js +69 -100
- package/dist/json/visitor.js.map +1 -1
- package/dist/marketplace.js +20 -33
- package/dist/marketplace.js.map +1 -1
- package/dist/parse-error.js +41 -62
- package/dist/parse-error.js.map +1 -1
- package/dist/parser.js +7 -18
- package/dist/parser.js.map +1 -1
- package/dist/path-utils.js +46 -59
- package/dist/path-utils.js.map +1 -1
- package/dist/preconditions.js +30 -47
- package/dist/preconditions.js.map +1 -1
- package/dist/print.js +6 -19
- package/dist/print.js.map +1 -1
- package/dist/recipe.js +42 -73
- package/dist/recipe.js.map +1 -1
- package/dist/rpc/index.js +74 -115
- package/dist/rpc/index.js.map +1 -1
- package/dist/rpc/queue.js +71 -90
- package/dist/rpc/queue.js.map +1 -1
- package/dist/rpc/recipe.js +32 -57
- package/dist/rpc/recipe.js.map +1 -1
- package/dist/rpc/request/generate.js +4 -13
- package/dist/rpc/request/generate.js.map +1 -1
- package/dist/rpc/request/get-languages.js +2 -11
- package/dist/rpc/request/get-languages.js.map +1 -1
- package/dist/rpc/request/get-marketplace.js +9 -20
- package/dist/rpc/request/get-marketplace.js.map +1 -1
- package/dist/rpc/request/get-object.js +4 -13
- package/dist/rpc/request/get-object.js.map +1 -1
- package/dist/rpc/request/install-recipes.js +25 -36
- package/dist/rpc/request/install-recipes.js.map +1 -1
- package/dist/rpc/request/metrics.js +8 -17
- package/dist/rpc/request/metrics.js.map +1 -1
- package/dist/rpc/request/parse-project.js +36 -45
- package/dist/rpc/request/parse-project.js.map +1 -1
- package/dist/rpc/request/parse.js +5 -14
- package/dist/rpc/request/parse.js.map +1 -1
- package/dist/rpc/request/prepare-recipe.js +37 -52
- package/dist/rpc/request/prepare-recipe.js.map +1 -1
- package/dist/rpc/request/print.js +5 -14
- package/dist/rpc/request/print.js.map +1 -1
- package/dist/rpc/request/visit.js +56 -71
- package/dist/rpc/request/visit.js.map +1 -1
- package/dist/rpc/rewrite-rpc.js +70 -97
- package/dist/rpc/rewrite-rpc.js.map +1 -1
- package/dist/rpc/server.js +76 -89
- package/dist/rpc/server.js.map +1 -1
- package/dist/run.js +47 -66
- package/dist/run.js.map +1 -1
- package/dist/search/is-source-file.js +8 -19
- package/dist/search/is-source-file.js.map +1 -1
- package/dist/test/rewrite-test.js +154 -188
- package/dist/test/rewrite-test.js.map +1 -1
- package/dist/text/print.js +23 -38
- package/dist/text/print.js.map +1 -1
- package/dist/text/rpc.js +29 -44
- package/dist/text/rpc.js.map +1 -1
- package/dist/text/visitor.js +16 -33
- package/dist/text/visitor.js.map +1 -1
- package/dist/util.js +13 -24
- package/dist/util.js.map +1 -1
- package/dist/version.txt +1 -1
- package/dist/visitor.js +84 -115
- package/dist/visitor.js.map +1 -1
- package/dist/yaml/index.d.ts +2 -0
- package/dist/yaml/index.d.ts.map +1 -1
- package/dist/yaml/index.js +2 -0
- package/dist/yaml/index.js.map +1 -1
- package/dist/yaml/markers.d.ts +21 -0
- package/dist/yaml/markers.d.ts.map +1 -0
- package/dist/yaml/markers.js +37 -0
- package/dist/yaml/markers.js.map +1 -0
- package/dist/yaml/parser.d.ts.map +1 -1
- package/dist/yaml/parser.js +4 -1
- package/dist/yaml/parser.js.map +1 -1
- package/dist/yaml/print.d.ts +1 -1
- package/dist/yaml/print.d.ts.map +1 -1
- package/dist/yaml/print.js +175 -208
- package/dist/yaml/print.js.map +1 -1
- package/dist/yaml/rpc.js +154 -219
- package/dist/yaml/rpc.js.map +1 -1
- package/dist/yaml/visitor.js +78 -113
- package/dist/yaml/visitor.js.map +1 -1
- package/package.json +1 -1
- package/src/javascript/parser.ts +56 -14
- package/src/yaml/index.ts +2 -0
- package/src/yaml/markers.ts +70 -0
- package/src/yaml/parser.ts +5 -1
- package/src/yaml/print.ts +5 -2
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
var __asyncValues = (this && this.__asyncValues) || function (o) {
|
|
12
3
|
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
13
4
|
var m = o[Symbol.asyncIterator], i;
|
|
@@ -63,213 +54,192 @@ class RecipeSpec {
|
|
|
63
54
|
dataTable(name, allRows) {
|
|
64
55
|
this.dataTableAssertions[name] = allRows;
|
|
65
56
|
}
|
|
66
|
-
rewriteRun(...sourceSpecs) {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
flattenedSpecs.push(spec);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
84
|
-
finally {
|
|
85
|
-
try {
|
|
86
|
-
if (!_d && !_a && (_b = _e.return)) yield _b.call(_e);
|
|
87
|
-
}
|
|
88
|
-
finally { if (e_1) throw e_1.error; }
|
|
57
|
+
async rewriteRun(...sourceSpecs) {
|
|
58
|
+
var _a, e_1, _b, _c;
|
|
59
|
+
// Flatten generators into a list of sourceSpecs
|
|
60
|
+
const flattenedSpecs = [];
|
|
61
|
+
for (const specOrGenerator of sourceSpecs) {
|
|
62
|
+
if (specOrGenerator && typeof specOrGenerator.next === 'function') {
|
|
63
|
+
// Check if it's an async generator
|
|
64
|
+
if (typeof specOrGenerator[Symbol.asyncIterator] === 'function') {
|
|
65
|
+
try {
|
|
66
|
+
for (var _d = true, _e = (e_1 = void 0, __asyncValues(specOrGenerator)), _f; _f = await _e.next(), _a = _f.done, !_a; _d = true) {
|
|
67
|
+
_c = _f.value;
|
|
68
|
+
_d = false;
|
|
69
|
+
const spec = _c;
|
|
70
|
+
flattenedSpecs.push(spec);
|
|
89
71
|
}
|
|
90
72
|
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
73
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
74
|
+
finally {
|
|
75
|
+
try {
|
|
76
|
+
if (!_d && !_a && (_b = _e.return)) await _b.call(_e);
|
|
95
77
|
}
|
|
78
|
+
finally { if (e_1) throw e_1.error; }
|
|
96
79
|
}
|
|
97
80
|
}
|
|
98
81
|
else {
|
|
99
|
-
|
|
82
|
+
// Sync generator
|
|
83
|
+
for (const spec of specOrGenerator) {
|
|
84
|
+
flattenedSpecs.push(spec);
|
|
85
|
+
}
|
|
100
86
|
}
|
|
101
87
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
if (!groups[kind]) {
|
|
105
|
-
groups[kind] = [];
|
|
106
|
-
}
|
|
107
|
-
groups[kind].push(spec);
|
|
108
|
-
return groups;
|
|
109
|
-
}, {});
|
|
110
|
-
const allParsed = [];
|
|
111
|
-
for (const kind in specsByKind) {
|
|
112
|
-
const specs = specsByKind[kind];
|
|
113
|
-
const parsed = yield this.parse(specs);
|
|
114
|
-
yield this.expectNoParseFailures(parsed);
|
|
115
|
-
yield this.expectWhitespaceNotToContainNonwhitespaceCharacters(parsed);
|
|
116
|
-
this.checkParsePrintIdempotence && (yield this.expectParsePrintIdempotence(parsed));
|
|
117
|
-
allParsed.push(...parsed);
|
|
88
|
+
else {
|
|
89
|
+
flattenedSpecs.push(specOrGenerator);
|
|
118
90
|
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
// }
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
expectNoParseFailures(parsed) {
|
|
128
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
129
|
-
for (const [_, sourceFile] of parsed) {
|
|
130
|
-
if (sourceFile.kind === parse_error_1.ParseErrorKind) {
|
|
131
|
-
throw new Error("Parsed source contains a ParseError: " +
|
|
132
|
-
sourceFile.markers.markers.find(m => m.kind === markers_1.MarkersKind.ParseExceptionResult).message);
|
|
133
|
-
}
|
|
91
|
+
}
|
|
92
|
+
const specsByKind = flattenedSpecs.reduce((groups, spec) => {
|
|
93
|
+
const kind = spec.kind;
|
|
94
|
+
if (!groups[kind]) {
|
|
95
|
+
groups[kind] = [];
|
|
134
96
|
}
|
|
135
|
-
|
|
97
|
+
groups[kind].push(spec);
|
|
98
|
+
return groups;
|
|
99
|
+
}, {});
|
|
100
|
+
const allParsed = [];
|
|
101
|
+
for (const kind in specsByKind) {
|
|
102
|
+
const specs = specsByKind[kind];
|
|
103
|
+
const parsed = await this.parse(specs);
|
|
104
|
+
await this.expectNoParseFailures(parsed);
|
|
105
|
+
await this.expectWhitespaceNotToContainNonwhitespaceCharacters(parsed);
|
|
106
|
+
this.checkParsePrintIdempotence && await this.expectParsePrintIdempotence(parsed);
|
|
107
|
+
allParsed.push(...parsed);
|
|
108
|
+
}
|
|
109
|
+
const changeset = (await (0, run_1.scheduleRun)(this.recipe, allParsed.map(([_, sourceFile]) => sourceFile), this.recipeExecutionContext)).changeset;
|
|
110
|
+
await this.expectResultsToMatchAfter(flattenedSpecs, changeset, allParsed);
|
|
111
|
+
await this.expectGeneratedFiles(flattenedSpecs, changeset);
|
|
112
|
+
// for (const [name, assertion] of Object.entries(this.dataTableAssertions)) {
|
|
113
|
+
// assertion(getRows(name, this.recipeExecutionContext));
|
|
114
|
+
// }
|
|
136
115
|
}
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
116
|
+
async expectNoParseFailures(parsed) {
|
|
117
|
+
for (const [_, sourceFile] of parsed) {
|
|
118
|
+
if (sourceFile.kind === parse_error_1.ParseErrorKind) {
|
|
119
|
+
throw new Error("Parsed source contains a ParseError: " +
|
|
120
|
+
sourceFile.markers.markers.find(m => m.kind === markers_1.MarkersKind.ParseExceptionResult).message);
|
|
142
121
|
}
|
|
143
|
-
}
|
|
122
|
+
}
|
|
144
123
|
}
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
})) === null || _a === void 0 ? void 0 : _a.after;
|
|
159
|
-
if (!spec.after) {
|
|
160
|
-
if (after) {
|
|
161
|
-
expect(yield print_1.TreePrinters.print(after)).toEqual(dedent(spec.before));
|
|
162
|
-
// TODO: Consider throwing an error, as there should typically have been no change to the LST
|
|
163
|
-
// fail("Expected after to be undefined.");
|
|
164
|
-
}
|
|
165
|
-
if (spec.afterRecipe) {
|
|
166
|
-
yield spec.afterRecipe(matchingSpec[1]);
|
|
167
|
-
}
|
|
124
|
+
async expectParsePrintIdempotence(parsed) {
|
|
125
|
+
for (const [spec, sourceFile] of parsed) {
|
|
126
|
+
const beforeSource = dedent(spec.before);
|
|
127
|
+
expect(await print_1.TreePrinters.print(sourceFile)).toEqual(beforeSource);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
async expectResultsToMatchAfter(specs, changeset, parsed) {
|
|
131
|
+
var _a;
|
|
132
|
+
for (const spec of specs) {
|
|
133
|
+
const matchingSpec = parsed.find(([s, _]) => s === spec);
|
|
134
|
+
const after = (_a = changeset.find(c => {
|
|
135
|
+
if (c.before) {
|
|
136
|
+
return c.before === matchingSpec[1];
|
|
168
137
|
}
|
|
169
|
-
else {
|
|
170
|
-
|
|
138
|
+
else if (c.after) {
|
|
139
|
+
const matchingSpec = specs.find(s => s.path === c.after.sourcePath);
|
|
140
|
+
return !!matchingSpec;
|
|
171
141
|
}
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
if (spec.before) {
|
|
179
|
-
continue;
|
|
142
|
+
})) === null || _a === void 0 ? void 0 : _a.after;
|
|
143
|
+
if (!spec.after) {
|
|
144
|
+
if (after) {
|
|
145
|
+
expect(await print_1.TreePrinters.print(after)).toEqual(dedent(spec.before));
|
|
146
|
+
// TODO: Consider throwing an error, as there should typically have been no change to the LST
|
|
147
|
+
// fail("Expected after to be undefined.");
|
|
180
148
|
}
|
|
181
|
-
if (
|
|
182
|
-
|
|
149
|
+
if (spec.afterRecipe) {
|
|
150
|
+
await spec.afterRecipe(matchingSpec[1]);
|
|
183
151
|
}
|
|
184
|
-
const after = changeset.find(c => { var _a; return ((_a = c.after) === null || _a === void 0 ? void 0 : _a.sourcePath) === spec.path; });
|
|
185
|
-
yield this.expectAfter(spec, after === null || after === void 0 ? void 0 : after.after);
|
|
186
152
|
}
|
|
187
|
-
|
|
153
|
+
else {
|
|
154
|
+
await this.expectAfter(spec, after);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
188
157
|
}
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
if (
|
|
192
|
-
|
|
158
|
+
async expectGeneratedFiles(specs, changeset) {
|
|
159
|
+
for (const spec of specs) {
|
|
160
|
+
if (spec.before) {
|
|
161
|
+
continue;
|
|
193
162
|
}
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
const actualAfter = yield print_1.TreePrinters.print(after);
|
|
197
|
-
const afterSource = typeof spec.after === "function" ?
|
|
198
|
-
spec.after(actualAfter) : spec.after;
|
|
199
|
-
expect(actualAfter).toEqual(afterSource);
|
|
200
|
-
if (spec.afterRecipe) {
|
|
201
|
-
yield spec.afterRecipe(after);
|
|
163
|
+
if (!spec.after) {
|
|
164
|
+
throw new Error("Expected after to be defined if before is undefined.");
|
|
202
165
|
}
|
|
203
|
-
|
|
166
|
+
const after = changeset.find(c => { var _a; return ((_a = c.after) === null || _a === void 0 ? void 0 : _a.sourcePath) === spec.path; });
|
|
167
|
+
await this.expectAfter(spec, after === null || after === void 0 ? void 0 : after.after);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
async expectAfter(spec, after) {
|
|
171
|
+
if (!after) {
|
|
172
|
+
throw new Error('Expected for recipe to have produced a change for file:\n' + (0, util_1.trimIndent)(spec.before));
|
|
173
|
+
}
|
|
174
|
+
expect(after).toBeDefined();
|
|
175
|
+
await new ValidateWhitespaceVisitor().visit(after, this.executionContext);
|
|
176
|
+
const actualAfter = await print_1.TreePrinters.print(after);
|
|
177
|
+
const afterSource = typeof spec.after === "function" ?
|
|
178
|
+
spec.after(actualAfter) : spec.after;
|
|
179
|
+
expect(actualAfter).toEqual(afterSource);
|
|
180
|
+
if (spec.afterRecipe) {
|
|
181
|
+
await spec.afterRecipe(after);
|
|
182
|
+
}
|
|
204
183
|
}
|
|
205
184
|
/**
|
|
206
185
|
* Parse the whole group together so the sources can reference once another.
|
|
207
186
|
*/
|
|
208
|
-
parse(specs) {
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
before.push([spec, { text: dedent(spec.before), sourcePath: sourcePath }]);
|
|
217
|
-
}
|
|
187
|
+
async parse(specs) {
|
|
188
|
+
var _a, e_2, _b, _c;
|
|
189
|
+
let snowflake = (0, snowflake_id_1.SnowflakeId)();
|
|
190
|
+
const before = [];
|
|
191
|
+
for (const spec of specs) {
|
|
192
|
+
if (spec.before) {
|
|
193
|
+
const sourcePath = spec.path || `${snowflake.generate()}.${spec.ext}`;
|
|
194
|
+
before.push([spec, { text: dedent(spec.before), sourcePath: sourcePath }]);
|
|
218
195
|
}
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
196
|
+
}
|
|
197
|
+
const parser = specs[0].parser(this.executionContext);
|
|
198
|
+
const parsed = [];
|
|
199
|
+
try {
|
|
200
|
+
for (var _d = true, _e = __asyncValues(parser.parse(...before.map(([_, parserInput]) => parserInput))), _f; _f = await _e.next(), _a = _f.done, !_a; _d = true) {
|
|
201
|
+
_c = _f.value;
|
|
202
|
+
_d = false;
|
|
203
|
+
const sourceFile = _c;
|
|
204
|
+
parsed.push(sourceFile);
|
|
228
205
|
}
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
finally { if (e_2) throw e_2.error; }
|
|
206
|
+
}
|
|
207
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
208
|
+
finally {
|
|
209
|
+
try {
|
|
210
|
+
if (!_d && !_a && (_b = _e.return)) await _b.call(_e);
|
|
235
211
|
}
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
return
|
|
212
|
+
finally { if (e_2) throw e_2.error; }
|
|
213
|
+
}
|
|
214
|
+
const specToParsed = before.map(([spec, _], i) => [spec, parsed[i]]);
|
|
215
|
+
return await (0, util_1.mapAsync)(specToParsed, async ([spec, sourceFile]) => {
|
|
216
|
+
const b = spec.beforeRecipe ? spec.beforeRecipe(sourceFile) : sourceFile;
|
|
217
|
+
if (b !== undefined) {
|
|
218
|
+
if (b instanceof Promise) {
|
|
219
|
+
const mapped = await b;
|
|
220
|
+
if (mapped === undefined) {
|
|
221
|
+
throw new Error("Expected beforeRecipe to return a SourceFile, but got undefined. Did you forget a return statement?");
|
|
246
222
|
}
|
|
247
|
-
return [spec,
|
|
223
|
+
return [spec, mapped];
|
|
248
224
|
}
|
|
249
|
-
return [spec,
|
|
250
|
-
}));
|
|
251
|
-
});
|
|
252
|
-
}
|
|
253
|
-
expectWhitespaceNotToContainNonwhitespaceCharacters(parsed) {
|
|
254
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
255
|
-
const validator = new ValidateWhitespaceVisitor();
|
|
256
|
-
for (const [_, sourceFile] of parsed) {
|
|
257
|
-
yield validator.visit(sourceFile, this.executionContext);
|
|
225
|
+
return [spec, b];
|
|
258
226
|
}
|
|
227
|
+
return [spec, sourceFile];
|
|
259
228
|
});
|
|
260
229
|
}
|
|
230
|
+
async expectWhitespaceNotToContainNonwhitespaceCharacters(parsed) {
|
|
231
|
+
const validator = new ValidateWhitespaceVisitor();
|
|
232
|
+
for (const [_, sourceFile] of parsed) {
|
|
233
|
+
await validator.visit(sourceFile, this.executionContext);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
261
236
|
}
|
|
262
237
|
exports.RecipeSpec = RecipeSpec;
|
|
263
238
|
class ValidateWhitespaceVisitor extends javascript_1.JavaScriptVisitor {
|
|
264
|
-
visitSpace(space, p) {
|
|
265
|
-
const
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
269
|
-
const ret = _super.visitSpace.call(this, space, p);
|
|
270
|
-
expect(space.whitespace).toMatch(/^\s*$/);
|
|
271
|
-
return ret;
|
|
272
|
-
});
|
|
239
|
+
async visitSpace(space, p) {
|
|
240
|
+
const ret = super.visitSpace(space, p);
|
|
241
|
+
expect(space.whitespace).toMatch(/^\s*$/);
|
|
242
|
+
return ret;
|
|
273
243
|
}
|
|
274
244
|
}
|
|
275
245
|
class NoopRecipe extends recipe_1.Recipe {
|
|
@@ -279,10 +249,8 @@ class NoopRecipe extends recipe_1.Recipe {
|
|
|
279
249
|
this.displayName = "Do nothing";
|
|
280
250
|
this.description = "Default no-op test, does nothing.";
|
|
281
251
|
}
|
|
282
|
-
editor() {
|
|
283
|
-
return
|
|
284
|
-
return (0, visitor_1.noopVisitor)();
|
|
285
|
-
});
|
|
252
|
+
async editor() {
|
|
253
|
+
return (0, visitor_1.noopVisitor)();
|
|
286
254
|
}
|
|
287
255
|
}
|
|
288
256
|
/**
|
|
@@ -360,10 +328,8 @@ class AdHocRecipe extends recipe_1.Recipe {
|
|
|
360
328
|
this.displayName = "ad-hoc";
|
|
361
329
|
this.description = "ad-hoc.";
|
|
362
330
|
}
|
|
363
|
-
editor() {
|
|
364
|
-
return
|
|
365
|
-
return this.visitor;
|
|
366
|
-
});
|
|
331
|
+
async editor() {
|
|
332
|
+
return this.visitor;
|
|
367
333
|
}
|
|
368
334
|
}
|
|
369
335
|
exports.AdHocRecipe = AdHocRecipe;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rewrite-test.js","sourceRoot":"","sources":["../../src/test/rewrite-test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rewrite-test.js","sourceRoot":"","sources":["../../src/test/rewrite-test.ts"],"names":[],"mappings":"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"}
|
package/dist/text/print.js
CHANGED
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
/*
|
|
13
4
|
* Copyright 2025 the original author or authors.
|
|
@@ -29,37 +20,31 @@ const visitor_1 = require("./visitor");
|
|
|
29
20
|
const tree_1 = require("./tree");
|
|
30
21
|
const tree_2 = require("../tree");
|
|
31
22
|
class PlainTextPrinter extends visitor_1.PlainTextVisitor {
|
|
32
|
-
visitText(text, p) {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
return text;
|
|
41
|
-
});
|
|
23
|
+
async visitText(text, p) {
|
|
24
|
+
await this.visitMarkableText(text.markers, text.text, p);
|
|
25
|
+
for (const snippet of text.snippets) {
|
|
26
|
+
this.cursor = new tree_2.Cursor(snippet, this.cursor);
|
|
27
|
+
await this.visitSnippet(snippet, p);
|
|
28
|
+
this.cursor = this.cursor.parent;
|
|
29
|
+
}
|
|
30
|
+
return text;
|
|
42
31
|
}
|
|
43
|
-
visitSnippet(snippet, p) {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
return snippet;
|
|
47
|
-
});
|
|
32
|
+
async visitSnippet(snippet, p) {
|
|
33
|
+
await this.visitMarkableText(snippet.markers, snippet.text, p);
|
|
34
|
+
return snippet;
|
|
48
35
|
}
|
|
49
|
-
visitMarkableText(markers, text, p) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
}
|
|
62
|
-
});
|
|
36
|
+
async visitMarkableText(markers, text, p) {
|
|
37
|
+
for (const marker of markers.markers) {
|
|
38
|
+
p.append(p.markerPrinter.beforePrefix(marker, new tree_2.Cursor(marker, this.cursor), PlainTextPrinter.TEXT_MARKER_WRAPPER));
|
|
39
|
+
}
|
|
40
|
+
await this.visitMarkers(markers, p);
|
|
41
|
+
for (const marker of markers.markers) {
|
|
42
|
+
p.append(p.markerPrinter.beforeSyntax(marker, new tree_2.Cursor(marker, this.cursor), PlainTextPrinter.TEXT_MARKER_WRAPPER));
|
|
43
|
+
}
|
|
44
|
+
p.append(text);
|
|
45
|
+
for (const marker of markers.markers) {
|
|
46
|
+
p.append(p.markerPrinter.afterSyntax(marker, new tree_2.Cursor(marker, this.cursor), PlainTextPrinter.TEXT_MARKER_WRAPPER));
|
|
47
|
+
}
|
|
63
48
|
}
|
|
64
49
|
}
|
|
65
50
|
PlainTextPrinter.TEXT_MARKER_WRAPPER = (out) => `~~${out}${out ? "~~" : ""}>`;
|
package/dist/text/print.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"print.js","sourceRoot":"","sources":["../../src/text/print.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"print.js","sourceRoot":"","sources":["../../src/text/print.ts"],"names":[],"mappings":";;AAAA;;;;;;;;;;;;;;GAcG;AACH,oCAA0D;AAC1D,uCAA2C;AAC3C,iCAAiC;AACjC,kCAA+B;AAG/B,MAAM,gBAAiB,SAAQ,0BAAoC;IAG/D,KAAK,CAAC,SAAS,CAAC,IAAe,EAAE,CAAqB;QAClD,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACzD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,CAAC,MAAM,GAAG,IAAI,aAAM,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/C,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACpC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAO,CAAC;QACtC,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAA0B,EAAE,CAAqB;QAChE,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/D,OAAO,OAAO,CAAC;IACnB,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,OAAgB,EAAE,IAAY,EAAE,CAAqB;QACjF,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACnC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,aAAM,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC1H,CAAC;QACD,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACpC,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACnC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,aAAM,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC1H,CAAC;QACD,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACf,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACnC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,aAAM,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACzH,CAAC;IACL,CAAC;;AA7BuB,oCAAmB,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;AAgCzG,oBAAY,CAAC,QAAQ,CAAC,gBAAS,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC"}
|