@planningcenter/tapestry-migration-cli 2.5.0-rc.3 → 2.5.0-rc.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/package.json +2 -2
- package/src/reportGenerator.ts +42 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@planningcenter/tapestry-migration-cli",
|
|
3
|
-
"version": "2.5.0-rc.
|
|
3
|
+
"version": "2.5.0-rc.4",
|
|
4
4
|
"description": "CLI tool for Tapestry migrations",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -51,5 +51,5 @@
|
|
|
51
51
|
"publishConfig": {
|
|
52
52
|
"access": "public"
|
|
53
53
|
},
|
|
54
|
-
"gitHead": "
|
|
54
|
+
"gitHead": "914423c21b5fea1b57801efb46cea9c181e8896f"
|
|
55
55
|
}
|
package/src/reportGenerator.ts
CHANGED
|
@@ -363,6 +363,48 @@ function generateMarkdownReport(
|
|
|
363
363
|
lines.push(`- **${difficulty}:** ${data.count} occurrences`)
|
|
364
364
|
}
|
|
365
365
|
|
|
366
|
+
lines.push("")
|
|
367
|
+
lines.push("## Automatic Changes")
|
|
368
|
+
lines.push("")
|
|
369
|
+
lines.push(
|
|
370
|
+
"The following changes were applied automatically during migration:"
|
|
371
|
+
)
|
|
372
|
+
lines.push("")
|
|
373
|
+
|
|
374
|
+
const changedStats = stats.filter((s) => s.type === "changed")
|
|
375
|
+
|
|
376
|
+
if (changedStats.length > 0) {
|
|
377
|
+
const changedByScope = new Map<string, CommentStats[]>()
|
|
378
|
+
for (const stat of changedStats) {
|
|
379
|
+
if (!changedByScope.has(stat.scope)) {
|
|
380
|
+
changedByScope.set(stat.scope, [])
|
|
381
|
+
}
|
|
382
|
+
changedByScope.get(stat.scope)!.push(stat)
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
for (const [scope, scopeStats] of Array.from(changedByScope.entries()).sort(
|
|
386
|
+
(a, b) => {
|
|
387
|
+
const totalA = a[1].reduce((sum, s) => sum + s.count, 0)
|
|
388
|
+
const totalB = b[1].reduce((sum, s) => sum + s.count, 0)
|
|
389
|
+
return totalB - totalA
|
|
390
|
+
}
|
|
391
|
+
)) {
|
|
392
|
+
lines.push(`### ${scope}`)
|
|
393
|
+
lines.push("")
|
|
394
|
+
|
|
395
|
+
for (const stat of scopeStats) {
|
|
396
|
+
lines.push(
|
|
397
|
+
`- **${stat.normalizedText}** (${stat.count} occurrence${stat.count > 1 ? "s" : ""})`
|
|
398
|
+
)
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
lines.push("")
|
|
402
|
+
}
|
|
403
|
+
} else {
|
|
404
|
+
lines.push("_No automatic changes were applied._")
|
|
405
|
+
lines.push("")
|
|
406
|
+
}
|
|
407
|
+
|
|
366
408
|
lines.push("")
|
|
367
409
|
lines.push("## Comments by Effort (sorted by total effort)")
|
|
368
410
|
lines.push("")
|