@openrewrite/rewrite 8.68.0 → 8.69.0-20251204-195759
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/cli/cli-utils.d.ts +0 -5
- package/dist/cli/cli-utils.d.ts.map +1 -1
- package/dist/cli/cli-utils.js +15 -84
- package/dist/cli/cli-utils.js.map +1 -1
- package/dist/cli/rewrite.d.ts.map +1 -1
- package/dist/cli/rewrite.js +71 -33
- package/dist/cli/rewrite.js.map +1 -1
- package/dist/run.d.ts +7 -0
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +63 -14
- package/dist/run.js.map +1 -1
- package/dist/version.txt +1 -1
- package/package.json +1 -1
- package/src/cli/cli-utils.ts +17 -88
- package/src/cli/rewrite.ts +35 -17
- package/src/run.ts +25 -8
package/dist/cli/cli-utils.d.ts
CHANGED
|
@@ -38,11 +38,6 @@ export declare function loadLocalRecipes(localPath: string, registry: RecipeRegi
|
|
|
38
38
|
* Install a recipe package from NPM and load its recipes into the registry
|
|
39
39
|
*/
|
|
40
40
|
export declare function installRecipePackage(packageName: string, installDir: string, registry: RecipeRegistry, verbose?: boolean): Promise<void>;
|
|
41
|
-
/**
|
|
42
|
-
* Set up shared dependencies to avoid instanceof failures when loading recipes
|
|
43
|
-
* from a separate node_modules directory
|
|
44
|
-
*/
|
|
45
|
-
export declare function setupSharedDependencies(targetModulePath: string): void;
|
|
46
41
|
/**
|
|
47
42
|
* Find a recipe by name in the registry
|
|
48
43
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-utils.d.ts","sourceRoot":"","sources":["../../src/cli/cli-utils.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,MAAM,EAAE,cAAc,EAAC,MAAM,WAAW,CAAC;AACjD,OAAO,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AAYnC;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAqBjD;AAED,MAAM,WAAW,UAAU;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAqB9D;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAsBzE;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAClC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,cAAc,EACxB,OAAO,GAAE,OAAe,GACzB,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"cli-utils.d.ts","sourceRoot":"","sources":["../../src/cli/cli-utils.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,MAAM,EAAE,cAAc,EAAC,MAAM,WAAW,CAAC;AACjD,OAAO,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AAYnC;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAqBjD;AAED,MAAM,WAAW,UAAU;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAqB9D;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAsBzE;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAClC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,cAAc,EACxB,OAAO,GAAE,OAAe,GACzB,OAAO,CAAC,IAAI,CAAC,CA8Df;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACtC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,cAAc,EACxB,OAAO,GAAE,OAAe,GACzB,OAAO,CAAC,IAAI,CAAC,CA0Df;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CACtB,QAAQ,EAAE,cAAc,EACxB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC7B,MAAM,GAAG,IAAI,CA8Cf;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAmEpG;AAED;;GAEG;AACH,wBAAsB,aAAa,CAC/B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EACpB,WAAW,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CAsBf;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAcxD;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC5B,SAAS,EAAE,MAAM,EAAE,EACnB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,OAAe,GACzB,OAAO,CAAC,UAAU,EAAE,CAAC,CAuDvB"}
|
package/dist/cli/cli-utils.js
CHANGED
|
@@ -54,7 +54,6 @@ exports.parseRecipeSpec = parseRecipeSpec;
|
|
|
54
54
|
exports.parseRecipeOptions = parseRecipeOptions;
|
|
55
55
|
exports.loadLocalRecipes = loadLocalRecipes;
|
|
56
56
|
exports.installRecipePackage = installRecipePackage;
|
|
57
|
-
exports.setupSharedDependencies = setupSharedDependencies;
|
|
58
57
|
exports.findRecipe = findRecipe;
|
|
59
58
|
exports.discoverFiles = discoverFiles;
|
|
60
59
|
exports.walkDirectory = walkDirectory;
|
|
@@ -190,22 +189,25 @@ function loadLocalRecipes(localPath_1, registry_1) {
|
|
|
190
189
|
if (stat.isDirectory()) {
|
|
191
190
|
// Look for package.json to find the main entry point
|
|
192
191
|
const packageJsonPath = path.join(resolvedPath, 'package.json');
|
|
192
|
+
let mainFromPkg;
|
|
193
193
|
if (fs.existsSync(packageJsonPath)) {
|
|
194
194
|
const pkg = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
195
|
+
mainFromPkg = pkg.main;
|
|
196
|
+
}
|
|
197
|
+
// Try the main field first, then common fallbacks
|
|
198
|
+
const candidates = [
|
|
199
|
+
mainFromPkg,
|
|
200
|
+
'dist/index.js',
|
|
201
|
+
'dist/src/index.js',
|
|
202
|
+
'index.js',
|
|
203
|
+
'src/index.ts'
|
|
204
|
+
].filter((c) => !!c);
|
|
205
|
+
const found = candidates.find(c => fs.existsSync(path.join(resolvedPath, c)));
|
|
206
|
+
if (found) {
|
|
207
|
+
modulePath = path.join(resolvedPath, found);
|
|
198
208
|
}
|
|
199
209
|
else {
|
|
200
|
-
|
|
201
|
-
const candidates = ['dist/index.js', 'index.js', 'src/index.ts'];
|
|
202
|
-
const found = candidates.find(c => fs.existsSync(path.join(resolvedPath, c)));
|
|
203
|
-
if (found) {
|
|
204
|
-
modulePath = path.join(resolvedPath, found);
|
|
205
|
-
}
|
|
206
|
-
else {
|
|
207
|
-
throw new Error(`Cannot find entry point in ${resolvedPath}. Expected package.json with main field or dist/index.js`);
|
|
208
|
-
}
|
|
210
|
+
throw new Error(`Cannot find entry point in ${resolvedPath}. Tried: ${candidates.join(', ')}`);
|
|
209
211
|
}
|
|
210
212
|
}
|
|
211
213
|
else {
|
|
@@ -217,8 +219,6 @@ function loadLocalRecipes(localPath_1, registry_1) {
|
|
|
217
219
|
if (verbose) {
|
|
218
220
|
console.log(`Loading recipes from ${modulePath}...`);
|
|
219
221
|
}
|
|
220
|
-
// Set up shared dependencies
|
|
221
|
-
setupSharedDependencies(modulePath);
|
|
222
222
|
const recipeModule = require(modulePath);
|
|
223
223
|
if (typeof recipeModule.activate !== 'function') {
|
|
224
224
|
throw new Error(`${localPath} does not export an 'activate' function`);
|
|
@@ -276,8 +276,6 @@ function installRecipePackage(packageName_1, installDir_1, registry_1) {
|
|
|
276
276
|
});
|
|
277
277
|
// Load the module and activate recipes
|
|
278
278
|
const resolvedPath = require.resolve(path.join(installDir, 'node_modules', packageName));
|
|
279
|
-
// Set up shared dependencies to avoid instanceof failures
|
|
280
|
-
setupSharedDependencies(resolvedPath);
|
|
281
279
|
const recipeModule = require(resolvedPath);
|
|
282
280
|
if (typeof recipeModule.activate !== 'function') {
|
|
283
281
|
throw new Error(`${packageName} does not export an 'activate' function`);
|
|
@@ -291,73 +289,6 @@ function installRecipePackage(packageName_1, installDir_1, registry_1) {
|
|
|
291
289
|
}
|
|
292
290
|
});
|
|
293
291
|
}
|
|
294
|
-
/**
|
|
295
|
-
* Set up shared dependencies to avoid instanceof failures when loading recipes
|
|
296
|
-
* from a separate node_modules directory
|
|
297
|
-
*/
|
|
298
|
-
function setupSharedDependencies(targetModulePath) {
|
|
299
|
-
const sharedDeps = ['@openrewrite/rewrite'];
|
|
300
|
-
const targetDir = path.dirname(targetModulePath);
|
|
301
|
-
for (const depName of sharedDeps) {
|
|
302
|
-
try {
|
|
303
|
-
const hostPackageEntry = require.resolve(depName);
|
|
304
|
-
// Find host package root
|
|
305
|
-
let hostPackageRoot = path.dirname(hostPackageEntry);
|
|
306
|
-
while (hostPackageRoot !== path.dirname(hostPackageRoot)) {
|
|
307
|
-
const pkgJsonPath = path.join(hostPackageRoot, 'package.json');
|
|
308
|
-
if (fs.existsSync(pkgJsonPath)) {
|
|
309
|
-
try {
|
|
310
|
-
const pkg = JSON.parse(fs.readFileSync(pkgJsonPath, 'utf8'));
|
|
311
|
-
if (pkg.name === depName) {
|
|
312
|
-
break;
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
catch (_a) {
|
|
316
|
-
// Not a valid package.json
|
|
317
|
-
}
|
|
318
|
-
}
|
|
319
|
-
hostPackageRoot = path.dirname(hostPackageRoot);
|
|
320
|
-
}
|
|
321
|
-
// Find target package root
|
|
322
|
-
let targetPackageRoot;
|
|
323
|
-
let searchDir = targetDir;
|
|
324
|
-
while (searchDir !== path.dirname(searchDir)) {
|
|
325
|
-
const nodeModulesPath = path.join(searchDir, 'node_modules', ...depName.split('/'));
|
|
326
|
-
if (fs.existsSync(nodeModulesPath)) {
|
|
327
|
-
const pkgJsonPath = path.join(nodeModulesPath, 'package.json');
|
|
328
|
-
if (fs.existsSync(pkgJsonPath)) {
|
|
329
|
-
try {
|
|
330
|
-
const pkg = JSON.parse(fs.readFileSync(pkgJsonPath, 'utf8'));
|
|
331
|
-
if (pkg.name === depName) {
|
|
332
|
-
targetPackageRoot = nodeModulesPath;
|
|
333
|
-
break;
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
catch (_b) {
|
|
337
|
-
// Not a valid package.json
|
|
338
|
-
}
|
|
339
|
-
}
|
|
340
|
-
}
|
|
341
|
-
searchDir = path.dirname(searchDir);
|
|
342
|
-
}
|
|
343
|
-
if (!targetPackageRoot || hostPackageRoot === targetPackageRoot) {
|
|
344
|
-
continue;
|
|
345
|
-
}
|
|
346
|
-
// Map all cached modules
|
|
347
|
-
const hostPrefix = hostPackageRoot + path.sep;
|
|
348
|
-
for (const cachedPath of Object.keys(require.cache)) {
|
|
349
|
-
if (cachedPath.startsWith(hostPrefix)) {
|
|
350
|
-
const relativePath = cachedPath.substring(hostPrefix.length);
|
|
351
|
-
const targetPath = path.join(targetPackageRoot, relativePath);
|
|
352
|
-
require.cache[targetPath] = require.cache[cachedPath];
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
}
|
|
356
|
-
catch (_c) {
|
|
357
|
-
// Failed to set up shared dependency
|
|
358
|
-
}
|
|
359
|
-
}
|
|
360
|
-
}
|
|
361
292
|
/**
|
|
362
293
|
* Find a recipe by name in the registry
|
|
363
294
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-utils.js","sourceRoot":"","sources":["../../src/cli/cli-utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli-utils.js","sourceRoot":"","sources":["../../src/cli/cli-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rewrite.d.ts","sourceRoot":"","sources":["../../src/cli/rewrite.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"rewrite.d.ts","sourceRoot":"","sources":["../../src/cli/rewrite.ts"],"names":[],"mappings":";AAqCA,OAAO,SAAS,CAAC;AACjB,OAAO,SAAS,CAAC;AACjB,OAAO,SAAS,CAAC;AACjB,OAAO,eAAe,CAAC"}
|
package/dist/cli/rewrite.js
CHANGED
|
@@ -42,6 +42,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
42
42
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
43
43
|
});
|
|
44
44
|
};
|
|
45
|
+
var __asyncValues = (this && this.__asyncValues) || function (o) {
|
|
46
|
+
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
47
|
+
var m = o[Symbol.asyncIterator], i;
|
|
48
|
+
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
|
49
|
+
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
|
50
|
+
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
|
51
|
+
};
|
|
45
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
46
53
|
/*
|
|
47
54
|
* Copyright 2025 the original author or authors.
|
|
@@ -61,6 +68,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
61
68
|
const commander_1 = require("commander");
|
|
62
69
|
const fsp = __importStar(require("fs/promises"));
|
|
63
70
|
const path = __importStar(require("path"));
|
|
71
|
+
const child_process_1 = require("child_process");
|
|
64
72
|
const recipe_1 = require("../recipe");
|
|
65
73
|
const execution_1 = require("../execution");
|
|
66
74
|
const run_1 = require("../run");
|
|
@@ -77,6 +85,7 @@ require('v8').setFlagsFromString('--stack-size=8000');
|
|
|
77
85
|
const DEFAULT_RECIPE_DIR = path.join(process.env.HOME || '', '.rewrite', 'javascript', 'recipes');
|
|
78
86
|
function main() {
|
|
79
87
|
return __awaiter(this, void 0, void 0, function* () {
|
|
88
|
+
var _a, e_1, _b, _c;
|
|
80
89
|
const program = new commander_1.Command();
|
|
81
90
|
program
|
|
82
91
|
.name('rewrite')
|
|
@@ -86,10 +95,20 @@ function main() {
|
|
|
86
95
|
.option('-d, --recipe-dir <dir>', 'Directory for recipe installation', DEFAULT_RECIPE_DIR)
|
|
87
96
|
.option('-o, --option <option...>', 'Recipe options in format "key=value"', [])
|
|
88
97
|
.option('-v, --verbose', 'Enable verbose output', false)
|
|
98
|
+
.option('--debug', 'Start with Node.js debugger (--inspect-brk)', false)
|
|
89
99
|
.parse();
|
|
90
100
|
const recipeArg = program.args[0];
|
|
91
101
|
const opts = program.opts();
|
|
92
102
|
opts.option = opts.option || [];
|
|
103
|
+
// Handle --debug by re-spawning with --inspect-brk
|
|
104
|
+
if (opts.debug) {
|
|
105
|
+
const args = process.argv.slice(2).filter(arg => arg !== '--debug');
|
|
106
|
+
const child = (0, child_process_1.spawn)(process.execPath, ['--inspect-brk', process.argv[1], ...args], {
|
|
107
|
+
stdio: 'inherit'
|
|
108
|
+
});
|
|
109
|
+
child.on('exit', (code) => process.exit(code !== null && code !== void 0 ? code : 0));
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
93
112
|
// Parse recipe specification
|
|
94
113
|
const recipeSpec = (0, cli_utils_1.parseRecipeSpec)(recipeArg);
|
|
95
114
|
if (!recipeSpec) {
|
|
@@ -147,45 +166,64 @@ function main() {
|
|
|
147
166
|
console.log('No files could be parsed.');
|
|
148
167
|
return;
|
|
149
168
|
}
|
|
150
|
-
// Run the recipe
|
|
169
|
+
// Run the recipe with streaming output
|
|
151
170
|
const ctx = new execution_1.ExecutionContext();
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
// Apply changes
|
|
167
|
-
if (result.after) {
|
|
168
|
-
const filePath = path.join(projectRoot, result.after.sourcePath);
|
|
169
|
-
const content = yield print_1.TreePrinters.print(result.after);
|
|
170
|
-
// Ensure directory exists
|
|
171
|
-
yield fsp.mkdir(path.dirname(filePath), { recursive: true });
|
|
172
|
-
yield fsp.writeFile(filePath, content);
|
|
173
|
-
if (result.before) {
|
|
174
|
-
console.log(` Modified: ${result.after.sourcePath}`);
|
|
175
|
-
}
|
|
176
|
-
else {
|
|
177
|
-
console.log(` Created: ${result.after.sourcePath}`);
|
|
171
|
+
let changeCount = 0;
|
|
172
|
+
try {
|
|
173
|
+
for (var _d = true, _e = __asyncValues((0, run_1.scheduleRunStreaming)(recipe, parsedFiles, ctx)), _f; _f = yield _e.next(), _a = _f.done, !_a; _d = true) {
|
|
174
|
+
_c = _f.value;
|
|
175
|
+
_d = false;
|
|
176
|
+
const result = _c;
|
|
177
|
+
if (opts.dryRun) {
|
|
178
|
+
// Print colorized diff immediately (skip empty diffs)
|
|
179
|
+
const diff = yield result.diff();
|
|
180
|
+
const hasChanges = diff.split('\n').some(line => (line.startsWith('+') || line.startsWith('-')) &&
|
|
181
|
+
!line.startsWith('+++') && !line.startsWith('---'));
|
|
182
|
+
if (hasChanges) {
|
|
183
|
+
changeCount++;
|
|
184
|
+
console.log((0, cli_utils_1.colorizeDiff)(diff));
|
|
178
185
|
}
|
|
179
186
|
}
|
|
180
|
-
else
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
187
|
+
else {
|
|
188
|
+
// Apply changes immediately
|
|
189
|
+
if (result.after) {
|
|
190
|
+
const filePath = path.join(projectRoot, result.after.sourcePath);
|
|
191
|
+
const content = yield print_1.TreePrinters.print(result.after);
|
|
192
|
+
// Ensure directory exists
|
|
193
|
+
yield fsp.mkdir(path.dirname(filePath), { recursive: true });
|
|
194
|
+
yield fsp.writeFile(filePath, content);
|
|
195
|
+
changeCount++;
|
|
196
|
+
if (result.before) {
|
|
197
|
+
console.log(` Modified: ${result.after.sourcePath}`);
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
console.log(` Created: ${result.after.sourcePath}`);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
else if (result.before) {
|
|
204
|
+
const filePath = path.join(projectRoot, result.before.sourcePath);
|
|
205
|
+
yield fsp.unlink(filePath);
|
|
206
|
+
changeCount++;
|
|
207
|
+
console.log(` Deleted: ${result.before.sourcePath}`);
|
|
208
|
+
}
|
|
184
209
|
}
|
|
185
210
|
}
|
|
186
211
|
}
|
|
187
|
-
|
|
188
|
-
|
|
212
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
213
|
+
finally {
|
|
214
|
+
try {
|
|
215
|
+
if (!_d && !_a && (_b = _e.return)) yield _b.call(_e);
|
|
216
|
+
}
|
|
217
|
+
finally { if (e_1) throw e_1.error; }
|
|
218
|
+
}
|
|
219
|
+
if (changeCount === 0) {
|
|
220
|
+
console.log('No changes to make.');
|
|
221
|
+
}
|
|
222
|
+
else if (opts.dryRun) {
|
|
223
|
+
console.log(`\n${changeCount} file(s) would be changed.`);
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
console.log(`\n${changeCount} file(s) changed.`);
|
|
189
227
|
}
|
|
190
228
|
});
|
|
191
229
|
}
|
package/dist/cli/rewrite.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rewrite.js","sourceRoot":"","sources":["../../src/cli/rewrite.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rewrite.js","sourceRoot":"","sources":["../../src/cli/rewrite.ts"],"names":[],"mappings":"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"}
|
package/dist/run.d.ts
CHANGED
|
@@ -11,4 +11,11 @@ export declare class Result {
|
|
|
11
11
|
diff(): Promise<string>;
|
|
12
12
|
}
|
|
13
13
|
export declare function scheduleRun(recipe: Recipe, before: SourceFile[], ctx: ExecutionContext): Promise<RecipeRun>;
|
|
14
|
+
/**
|
|
15
|
+
* Streaming version of scheduleRun that yields results as soon as each file is processed.
|
|
16
|
+
* This allows callers to print diffs immediately and free memory earlier.
|
|
17
|
+
*
|
|
18
|
+
* For scanning recipes, the scan phase completes on all files before yielding any results.
|
|
19
|
+
*/
|
|
20
|
+
export declare function scheduleRunStreaming(recipe: Recipe, before: SourceFile[], ctx: ExecutionContext): AsyncGenerator<Result, void, undefined>;
|
|
14
21
|
//# sourceMappingURL=run.d.ts.map
|
package/dist/run.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAeA,OAAO,EAAC,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAa,UAAU,EAAC,MAAM,QAAQ,CAAC;AAG9C,OAAO,EAAC,MAAM,EAAiB,MAAM,UAAU,CAAC;AAEhD,MAAM,WAAW,SAAS;IACtB,SAAS,EAAE,MAAM,EAAE,CAAA;CACtB;AAED,qBAAa,MAAM;aACa,MAAM,CAAC,EAAE,UAAU;aAAkB,KAAK,CAAC,EAAE,UAAU;gBAAvD,MAAM,CAAC,EAAE,UAAU,YAAA,EAAkB,KAAK,CAAC,EAAE,UAAU,YAAA;IAG7E,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;CAWhC;AAsBD,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAeA,OAAO,EAAC,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAa,UAAU,EAAC,MAAM,QAAQ,CAAC;AAG9C,OAAO,EAAC,MAAM,EAAiB,MAAM,UAAU,CAAC;AAEhD,MAAM,WAAW,SAAS;IACtB,SAAS,EAAE,MAAM,EAAE,CAAA;CACtB;AAED,qBAAa,MAAM;aACa,MAAM,CAAC,EAAE,UAAU;aAAkB,KAAK,CAAC,EAAE,UAAU;gBAAvD,MAAM,CAAC,EAAE,UAAU,YAAA,EAAkB,KAAK,CAAC,EAAE,UAAU,YAAA;IAG7E,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;CAWhC;AAsBD,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,CAMjH;AAED;;;;;GAKG;AACH,wBAAuB,oBAAoB,CACvC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,UAAU,EAAE,EACpB,GAAG,EAAE,gBAAgB,GACtB,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAuCzC"}
|
package/dist/run.js
CHANGED
|
@@ -8,9 +8,30 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
+
var __asyncValues = (this && this.__asyncValues) || function (o) {
|
|
12
|
+
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
13
|
+
var m = o[Symbol.asyncIterator], i;
|
|
14
|
+
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
|
15
|
+
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
|
16
|
+
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
|
17
|
+
};
|
|
18
|
+
var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
|
|
19
|
+
var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
|
|
20
|
+
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
21
|
+
var g = generator.apply(thisArg, _arguments || []), i, q = [];
|
|
22
|
+
return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
|
|
23
|
+
function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
|
|
24
|
+
function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
|
|
25
|
+
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
|
|
26
|
+
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
|
|
27
|
+
function fulfill(value) { resume("next", value); }
|
|
28
|
+
function reject(value) { resume("throw", value); }
|
|
29
|
+
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
|
|
30
|
+
};
|
|
11
31
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
32
|
exports.Result = void 0;
|
|
13
33
|
exports.scheduleRun = scheduleRun;
|
|
34
|
+
exports.scheduleRunStreaming = scheduleRunStreaming;
|
|
14
35
|
const tree_1 = require("./tree");
|
|
15
36
|
const diff_1 = require("diff");
|
|
16
37
|
const print_1 = require("./print");
|
|
@@ -53,39 +74,67 @@ function recursiveOnComplete(recipe, ctx) {
|
|
|
53
74
|
}
|
|
54
75
|
function scheduleRun(recipe, before, ctx) {
|
|
55
76
|
return __awaiter(this, void 0, void 0, function* () {
|
|
77
|
+
var _a, e_1, _b, _c;
|
|
78
|
+
const changeset = [];
|
|
79
|
+
try {
|
|
80
|
+
for (var _d = true, _e = __asyncValues(scheduleRunStreaming(recipe, before, ctx)), _f; _f = yield _e.next(), _a = _f.done, !_a; _d = true) {
|
|
81
|
+
_c = _f.value;
|
|
82
|
+
_d = false;
|
|
83
|
+
const result = _c;
|
|
84
|
+
changeset.push(result);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
88
|
+
finally {
|
|
89
|
+
try {
|
|
90
|
+
if (!_d && !_a && (_b = _e.return)) yield _b.call(_e);
|
|
91
|
+
}
|
|
92
|
+
finally { if (e_1) throw e_1.error; }
|
|
93
|
+
}
|
|
94
|
+
return { changeset };
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Streaming version of scheduleRun that yields results as soon as each file is processed.
|
|
99
|
+
* This allows callers to print diffs immediately and free memory earlier.
|
|
100
|
+
*
|
|
101
|
+
* For scanning recipes, the scan phase completes on all files before yielding any results.
|
|
102
|
+
*/
|
|
103
|
+
function scheduleRunStreaming(recipe, before, ctx) {
|
|
104
|
+
return __asyncGenerator(this, arguments, function* scheduleRunStreaming_1() {
|
|
56
105
|
const cursor = (0, tree_1.rootCursor)();
|
|
57
|
-
|
|
106
|
+
// Phase 1: Run scanners on all files (if any scanning recipes exist)
|
|
107
|
+
if (yield __await(hasScanningRecipe(recipe))) {
|
|
58
108
|
for (const b of before) {
|
|
59
|
-
yield recurseRecipeList(recipe, b, (recipe, b2) => __awaiter(this, void 0, void 0, function* () {
|
|
109
|
+
yield __await(recurseRecipeList(recipe, b, (recipe, b2) => __awaiter(this, void 0, void 0, function* () {
|
|
60
110
|
if (recipe instanceof recipe_1.ScanningRecipe) {
|
|
61
111
|
return (yield recipe.scanner(recipe.accumulator(cursor, ctx))).visit(b2, ctx, cursor);
|
|
62
112
|
}
|
|
63
|
-
}));
|
|
113
|
+
})));
|
|
64
114
|
}
|
|
65
115
|
}
|
|
66
|
-
|
|
116
|
+
// Phase 2: Collect generated files
|
|
117
|
+
const generated = (yield __await(recurseRecipeList(recipe, [], (recipe, generated) => __awaiter(this, void 0, void 0, function* () {
|
|
67
118
|
if (recipe instanceof recipe_1.ScanningRecipe) {
|
|
68
119
|
generated.push(...yield recipe.generate(recipe.accumulator(cursor, ctx), ctx));
|
|
69
120
|
}
|
|
70
121
|
return generated;
|
|
71
|
-
})));
|
|
72
|
-
|
|
122
|
+
}))));
|
|
123
|
+
// Phase 3: Edit existing files and yield results immediately
|
|
73
124
|
for (const b of before) {
|
|
74
|
-
const editedB = yield recurseRecipeList(recipe, b, (recipe, b2) => __awaiter(this, void 0, void 0, function* () { return (yield recipe.editor()).visit(b2, ctx, cursor); }));
|
|
125
|
+
const editedB = yield __await(recurseRecipeList(recipe, b, (recipe, b2) => __awaiter(this, void 0, void 0, function* () { return (yield recipe.editor()).visit(b2, ctx, cursor); })));
|
|
75
126
|
if (editedB !== b) {
|
|
76
|
-
|
|
127
|
+
yield yield __await(new Result(b, editedB));
|
|
77
128
|
}
|
|
78
129
|
}
|
|
130
|
+
// Phase 4: Edit generated files and yield results
|
|
79
131
|
for (const g of generated) {
|
|
80
|
-
const editedG = yield recurseRecipeList(recipe, g, (recipe, g2) => __awaiter(this, void 0, void 0, function* () { return (yield recipe.editor()).visit(g2, ctx, cursor); }));
|
|
132
|
+
const editedG = yield __await(recurseRecipeList(recipe, g, (recipe, g2) => __awaiter(this, void 0, void 0, function* () { return (yield recipe.editor()).visit(g2, ctx, cursor); })));
|
|
81
133
|
if (editedG) {
|
|
82
|
-
|
|
134
|
+
yield yield __await(new Result(undefined, editedG));
|
|
83
135
|
}
|
|
84
136
|
}
|
|
85
|
-
yield recursiveOnComplete(recipe, ctx);
|
|
86
|
-
return {
|
|
87
|
-
changeset: changeset
|
|
88
|
-
};
|
|
137
|
+
yield __await(recursiveOnComplete(recipe, ctx));
|
|
89
138
|
});
|
|
90
139
|
}
|
|
91
140
|
//# sourceMappingURL=run.js.map
|
package/dist/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
|
package/dist/version.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
8.
|
|
1
|
+
8.69.0-20251204-195759
|
package/package.json
CHANGED
package/src/cli/cli-utils.ts
CHANGED
|
@@ -150,20 +150,26 @@ export async function loadLocalRecipes(
|
|
|
150
150
|
if (stat.isDirectory()) {
|
|
151
151
|
// Look for package.json to find the main entry point
|
|
152
152
|
const packageJsonPath = path.join(resolvedPath, 'package.json');
|
|
153
|
+
let mainFromPkg: string | undefined;
|
|
153
154
|
if (fs.existsSync(packageJsonPath)) {
|
|
154
155
|
const pkg = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
156
|
+
mainFromPkg = pkg.main;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
// Try the main field first, then common fallbacks
|
|
160
|
+
const candidates = [
|
|
161
|
+
mainFromPkg,
|
|
162
|
+
'dist/index.js',
|
|
163
|
+
'dist/src/index.js',
|
|
164
|
+
'index.js',
|
|
165
|
+
'src/index.ts'
|
|
166
|
+
].filter((c): c is string => !!c);
|
|
167
|
+
|
|
168
|
+
const found = candidates.find(c => fs.existsSync(path.join(resolvedPath, c)));
|
|
169
|
+
if (found) {
|
|
170
|
+
modulePath = path.join(resolvedPath, found);
|
|
158
171
|
} else {
|
|
159
|
-
|
|
160
|
-
const candidates = ['dist/index.js', 'index.js', 'src/index.ts'];
|
|
161
|
-
const found = candidates.find(c => fs.existsSync(path.join(resolvedPath, c)));
|
|
162
|
-
if (found) {
|
|
163
|
-
modulePath = path.join(resolvedPath, found);
|
|
164
|
-
} else {
|
|
165
|
-
throw new Error(`Cannot find entry point in ${resolvedPath}. Expected package.json with main field or dist/index.js`);
|
|
166
|
-
}
|
|
172
|
+
throw new Error(`Cannot find entry point in ${resolvedPath}. Tried: ${candidates.join(', ')}`);
|
|
167
173
|
}
|
|
168
174
|
} else {
|
|
169
175
|
modulePath = resolvedPath;
|
|
@@ -177,9 +183,6 @@ export async function loadLocalRecipes(
|
|
|
177
183
|
console.log(`Loading recipes from ${modulePath}...`);
|
|
178
184
|
}
|
|
179
185
|
|
|
180
|
-
// Set up shared dependencies
|
|
181
|
-
setupSharedDependencies(modulePath);
|
|
182
|
-
|
|
183
186
|
const recipeModule = require(modulePath);
|
|
184
187
|
|
|
185
188
|
if (typeof recipeModule.activate !== 'function') {
|
|
@@ -248,10 +251,6 @@ export async function installRecipePackage(
|
|
|
248
251
|
|
|
249
252
|
// Load the module and activate recipes
|
|
250
253
|
const resolvedPath = require.resolve(path.join(installDir, 'node_modules', packageName));
|
|
251
|
-
|
|
252
|
-
// Set up shared dependencies to avoid instanceof failures
|
|
253
|
-
setupSharedDependencies(resolvedPath);
|
|
254
|
-
|
|
255
254
|
const recipeModule = require(resolvedPath);
|
|
256
255
|
|
|
257
256
|
if (typeof recipeModule.activate !== 'function') {
|
|
@@ -268,76 +267,6 @@ export async function installRecipePackage(
|
|
|
268
267
|
}
|
|
269
268
|
}
|
|
270
269
|
|
|
271
|
-
/**
|
|
272
|
-
* Set up shared dependencies to avoid instanceof failures when loading recipes
|
|
273
|
-
* from a separate node_modules directory
|
|
274
|
-
*/
|
|
275
|
-
export function setupSharedDependencies(targetModulePath: string): void {
|
|
276
|
-
const sharedDeps = ['@openrewrite/rewrite'];
|
|
277
|
-
const targetDir = path.dirname(targetModulePath);
|
|
278
|
-
|
|
279
|
-
for (const depName of sharedDeps) {
|
|
280
|
-
try {
|
|
281
|
-
const hostPackageEntry = require.resolve(depName);
|
|
282
|
-
|
|
283
|
-
// Find host package root
|
|
284
|
-
let hostPackageRoot = path.dirname(hostPackageEntry);
|
|
285
|
-
while (hostPackageRoot !== path.dirname(hostPackageRoot)) {
|
|
286
|
-
const pkgJsonPath = path.join(hostPackageRoot, 'package.json');
|
|
287
|
-
if (fs.existsSync(pkgJsonPath)) {
|
|
288
|
-
try {
|
|
289
|
-
const pkg = JSON.parse(fs.readFileSync(pkgJsonPath, 'utf8'));
|
|
290
|
-
if (pkg.name === depName) {
|
|
291
|
-
break;
|
|
292
|
-
}
|
|
293
|
-
} catch {
|
|
294
|
-
// Not a valid package.json
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
hostPackageRoot = path.dirname(hostPackageRoot);
|
|
298
|
-
}
|
|
299
|
-
|
|
300
|
-
// Find target package root
|
|
301
|
-
let targetPackageRoot: string | undefined;
|
|
302
|
-
let searchDir = targetDir;
|
|
303
|
-
while (searchDir !== path.dirname(searchDir)) {
|
|
304
|
-
const nodeModulesPath = path.join(searchDir, 'node_modules', ...depName.split('/'));
|
|
305
|
-
if (fs.existsSync(nodeModulesPath)) {
|
|
306
|
-
const pkgJsonPath = path.join(nodeModulesPath, 'package.json');
|
|
307
|
-
if (fs.existsSync(pkgJsonPath)) {
|
|
308
|
-
try {
|
|
309
|
-
const pkg = JSON.parse(fs.readFileSync(pkgJsonPath, 'utf8'));
|
|
310
|
-
if (pkg.name === depName) {
|
|
311
|
-
targetPackageRoot = nodeModulesPath;
|
|
312
|
-
break;
|
|
313
|
-
}
|
|
314
|
-
} catch {
|
|
315
|
-
// Not a valid package.json
|
|
316
|
-
}
|
|
317
|
-
}
|
|
318
|
-
}
|
|
319
|
-
searchDir = path.dirname(searchDir);
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
if (!targetPackageRoot || hostPackageRoot === targetPackageRoot) {
|
|
323
|
-
continue;
|
|
324
|
-
}
|
|
325
|
-
|
|
326
|
-
// Map all cached modules
|
|
327
|
-
const hostPrefix = hostPackageRoot + path.sep;
|
|
328
|
-
for (const cachedPath of Object.keys(require.cache)) {
|
|
329
|
-
if (cachedPath.startsWith(hostPrefix)) {
|
|
330
|
-
const relativePath = cachedPath.substring(hostPrefix.length);
|
|
331
|
-
const targetPath = path.join(targetPackageRoot, relativePath);
|
|
332
|
-
require.cache[targetPath] = require.cache[cachedPath];
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
} catch {
|
|
336
|
-
// Failed to set up shared dependency
|
|
337
|
-
}
|
|
338
|
-
}
|
|
339
|
-
}
|
|
340
|
-
|
|
341
270
|
/**
|
|
342
271
|
* Find a recipe by name in the registry
|
|
343
272
|
*
|
package/src/cli/rewrite.ts
CHANGED
|
@@ -17,9 +17,10 @@
|
|
|
17
17
|
import {Command} from 'commander';
|
|
18
18
|
import * as fsp from 'fs/promises';
|
|
19
19
|
import * as path from 'path';
|
|
20
|
+
import {spawn} from 'child_process';
|
|
20
21
|
import {RecipeRegistry} from '../recipe';
|
|
21
22
|
import {ExecutionContext} from '../execution';
|
|
22
|
-
import {
|
|
23
|
+
import {scheduleRunStreaming} from '../run';
|
|
23
24
|
import {TreePrinters} from '../print';
|
|
24
25
|
import {activate} from '../index';
|
|
25
26
|
import {
|
|
@@ -49,6 +50,7 @@ interface CliOptions {
|
|
|
49
50
|
recipeDir?: string;
|
|
50
51
|
option: string[];
|
|
51
52
|
verbose: boolean;
|
|
53
|
+
debug: boolean;
|
|
52
54
|
}
|
|
53
55
|
|
|
54
56
|
async function main() {
|
|
@@ -61,12 +63,23 @@ async function main() {
|
|
|
61
63
|
.option('-d, --recipe-dir <dir>', 'Directory for recipe installation', DEFAULT_RECIPE_DIR)
|
|
62
64
|
.option('-o, --option <option...>', 'Recipe options in format "key=value"', [])
|
|
63
65
|
.option('-v, --verbose', 'Enable verbose output', false)
|
|
66
|
+
.option('--debug', 'Start with Node.js debugger (--inspect-brk)', false)
|
|
64
67
|
.parse();
|
|
65
68
|
|
|
66
69
|
const recipeArg = program.args[0];
|
|
67
70
|
const opts = program.opts() as CliOptions;
|
|
68
71
|
opts.option = opts.option || [];
|
|
69
72
|
|
|
73
|
+
// Handle --debug by re-spawning with --inspect-brk
|
|
74
|
+
if (opts.debug) {
|
|
75
|
+
const args = process.argv.slice(2).filter(arg => arg !== '--debug');
|
|
76
|
+
const child = spawn(process.execPath, ['--inspect-brk', process.argv[1], ...args], {
|
|
77
|
+
stdio: 'inherit'
|
|
78
|
+
});
|
|
79
|
+
child.on('exit', (code) => process.exit(code ?? 0));
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
|
|
70
83
|
// Parse recipe specification
|
|
71
84
|
const recipeSpec = parseRecipeSpec(recipeArg);
|
|
72
85
|
if (!recipeSpec) {
|
|
@@ -135,25 +148,24 @@ async function main() {
|
|
|
135
148
|
return;
|
|
136
149
|
}
|
|
137
150
|
|
|
138
|
-
// Run the recipe
|
|
151
|
+
// Run the recipe with streaming output
|
|
139
152
|
const ctx = new ExecutionContext();
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
if (changeset.length === 0) {
|
|
143
|
-
console.log('No changes to make.');
|
|
144
|
-
return;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
console.log(`\n${changeset.length} file(s) ${opts.dryRun ? 'would be ' : ''}changed:\n`);
|
|
153
|
+
let changeCount = 0;
|
|
148
154
|
|
|
149
|
-
|
|
150
|
-
for (const result of changeset) {
|
|
155
|
+
for await (const result of scheduleRunStreaming(recipe, parsedFiles, ctx)) {
|
|
151
156
|
if (opts.dryRun) {
|
|
152
|
-
// Print colorized diff
|
|
157
|
+
// Print colorized diff immediately (skip empty diffs)
|
|
153
158
|
const diff = await result.diff();
|
|
154
|
-
|
|
159
|
+
const hasChanges = diff.split('\n').some(line =>
|
|
160
|
+
(line.startsWith('+') || line.startsWith('-')) &&
|
|
161
|
+
!line.startsWith('+++') && !line.startsWith('---')
|
|
162
|
+
);
|
|
163
|
+
if (hasChanges) {
|
|
164
|
+
changeCount++;
|
|
165
|
+
console.log(colorizeDiff(diff));
|
|
166
|
+
}
|
|
155
167
|
} else {
|
|
156
|
-
// Apply changes
|
|
168
|
+
// Apply changes immediately
|
|
157
169
|
if (result.after) {
|
|
158
170
|
const filePath = path.join(projectRoot, result.after.sourcePath);
|
|
159
171
|
const content = await TreePrinters.print(result.after);
|
|
@@ -162,6 +174,7 @@ async function main() {
|
|
|
162
174
|
await fsp.mkdir(path.dirname(filePath), {recursive: true});
|
|
163
175
|
await fsp.writeFile(filePath, content);
|
|
164
176
|
|
|
177
|
+
changeCount++;
|
|
165
178
|
if (result.before) {
|
|
166
179
|
console.log(` Modified: ${result.after.sourcePath}`);
|
|
167
180
|
} else {
|
|
@@ -170,13 +183,18 @@ async function main() {
|
|
|
170
183
|
} else if (result.before) {
|
|
171
184
|
const filePath = path.join(projectRoot, result.before.sourcePath);
|
|
172
185
|
await fsp.unlink(filePath);
|
|
186
|
+
changeCount++;
|
|
173
187
|
console.log(` Deleted: ${result.before.sourcePath}`);
|
|
174
188
|
}
|
|
175
189
|
}
|
|
176
190
|
}
|
|
177
191
|
|
|
178
|
-
if (
|
|
179
|
-
console.log('
|
|
192
|
+
if (changeCount === 0) {
|
|
193
|
+
console.log('No changes to make.');
|
|
194
|
+
} else if (opts.dryRun) {
|
|
195
|
+
console.log(`\n${changeCount} file(s) would be changed.`);
|
|
196
|
+
} else {
|
|
197
|
+
console.log(`\n${changeCount} file(s) changed.`);
|
|
180
198
|
}
|
|
181
199
|
}
|
|
182
200
|
|
package/src/run.ts
CHANGED
|
@@ -61,7 +61,27 @@ async function recursiveOnComplete(recipe: Recipe, ctx: ExecutionContext): Promi
|
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
export async function scheduleRun(recipe: Recipe, before: SourceFile[], ctx: ExecutionContext): Promise<RecipeRun> {
|
|
64
|
+
const changeset: Result[] = [];
|
|
65
|
+
for await (const result of scheduleRunStreaming(recipe, before, ctx)) {
|
|
66
|
+
changeset.push(result);
|
|
67
|
+
}
|
|
68
|
+
return { changeset };
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Streaming version of scheduleRun that yields results as soon as each file is processed.
|
|
73
|
+
* This allows callers to print diffs immediately and free memory earlier.
|
|
74
|
+
*
|
|
75
|
+
* For scanning recipes, the scan phase completes on all files before yielding any results.
|
|
76
|
+
*/
|
|
77
|
+
export async function* scheduleRunStreaming(
|
|
78
|
+
recipe: Recipe,
|
|
79
|
+
before: SourceFile[],
|
|
80
|
+
ctx: ExecutionContext
|
|
81
|
+
): AsyncGenerator<Result, void, undefined> {
|
|
64
82
|
const cursor = rootCursor();
|
|
83
|
+
|
|
84
|
+
// Phase 1: Run scanners on all files (if any scanning recipes exist)
|
|
65
85
|
if (await hasScanningRecipe(recipe)) {
|
|
66
86
|
for (const b of before) {
|
|
67
87
|
await recurseRecipeList(recipe, b, async (recipe, b2) => {
|
|
@@ -72,6 +92,7 @@ export async function scheduleRun(recipe: Recipe, before: SourceFile[], ctx: Exe
|
|
|
72
92
|
}
|
|
73
93
|
}
|
|
74
94
|
|
|
95
|
+
// Phase 2: Collect generated files
|
|
75
96
|
const generated = (await recurseRecipeList(recipe, [] as SourceFile[], async (recipe, generated) => {
|
|
76
97
|
if (recipe instanceof ScanningRecipe) {
|
|
77
98
|
generated.push(...await recipe.generate(recipe.accumulator(cursor, ctx), ctx));
|
|
@@ -79,25 +100,21 @@ export async function scheduleRun(recipe: Recipe, before: SourceFile[], ctx: Exe
|
|
|
79
100
|
return generated;
|
|
80
101
|
}))!;
|
|
81
102
|
|
|
82
|
-
|
|
83
|
-
|
|
103
|
+
// Phase 3: Edit existing files and yield results immediately
|
|
84
104
|
for (const b of before) {
|
|
85
105
|
const editedB = await recurseRecipeList(recipe, b, async (recipe, b2) => (await recipe.editor()).visit(b2, ctx, cursor));
|
|
86
106
|
if (editedB !== b) {
|
|
87
|
-
|
|
107
|
+
yield new Result(b, editedB);
|
|
88
108
|
}
|
|
89
109
|
}
|
|
90
110
|
|
|
111
|
+
// Phase 4: Edit generated files and yield results
|
|
91
112
|
for (const g of generated) {
|
|
92
113
|
const editedG = await recurseRecipeList(recipe, g, async (recipe, g2) => (await recipe.editor()).visit(g2, ctx, cursor));
|
|
93
114
|
if (editedG) {
|
|
94
|
-
|
|
115
|
+
yield new Result(undefined, editedG);
|
|
95
116
|
}
|
|
96
117
|
}
|
|
97
118
|
|
|
98
119
|
await recursiveOnComplete(recipe, ctx);
|
|
99
|
-
|
|
100
|
-
return {
|
|
101
|
-
changeset: changeset
|
|
102
|
-
};
|
|
103
120
|
}
|