( options: MigrateFilesOptions, framework: MigrationCliReport['framework'] = options.frameworkAdapter ? 'mocha-chai-vitest' : 'preserve' )
| 62 | * A write is attempted only after every result in the dry-run plan succeeds. |
| 63 | */ |
| 64 | export async function createMigrationCliReport( |
| 65 | options: MigrateFilesOptions, |
| 66 | framework: MigrationCliReport['framework'] = options.frameworkAdapter ? 'mocha-chai-vitest' : 'preserve' |
| 67 | ): Promise<MigrationCliReport> { |
| 68 | const plan = await planMigrationFiles({ ...options, write: false }); |
| 69 | const refused = plan.files.some(({ result }) => result.status === 'refused'); |
| 70 | if (options.write && !refused) await applyMigrationPlan(plan, { overwrite: options.overwrite }); |
| 71 | return { |
| 72 | schemaVersion: migrationCliReportSchemaVersion, |
| 73 | engineVersion: migrationEngineVersion, |
| 74 | capabilityRegistryVersion: (options.capabilityRegistry ?? defaultCapabilityRegistry).registryVersion, |
| 75 | operation: options.write ? 'write' : 'dry-run', |
| 76 | status: refused ? 'refused' : 'completed', |
| 77 | mode: options.mode ?? null, |
| 78 | framework, |
| 79 | files: plan.files, |
| 80 | }; |
| 81 | } |
| 82 | |
| 83 | export async function runCli(argv: readonly string[], io: MigrationCliIo = process): Promise<MigrationCliExitCode> { |
| 84 | let options: CliOptions; |
no test coverage detected