@gluonjs/vue-migration-analyzer
@gluonjs/vue-migration-analyzer / packages/vue-migration-analyzer/src / MigrationFinding
Interface: MigrationFinding
Properties
code
readonlycode:`GVA${number}`
confidence
readonlyconfidence:Confidence
guideUrl
readonlyguideUrl:string
id
readonlyid:string
location
readonlylocation:SourceLocation|null
message
readonlymessage:string
migrationStage
readonlymigrationStage:MigrationStage
relatedStages
readonlyrelatedStages: readonlyMigrationStage[]
severity
readonlyseverity:Severity
Example
Review one actionable migration risk with stable code, severity, confidence, source evidence, primary/related stages, and guide URL:
import {
ANALYZER_LIMITS,
VueMigrationAnalyzerError,
analyzeVueMigration,
formatVueMigrationReport,
type AnalyzedFile,
type AnalyzerOptions,
type BlockKind,
type ComponentInventory,
type Confidence,
type FileKind,
type InventoryCategory,
type InventoryItem,
type InventoryKind,
type MigrationFinding,
type MigrationStage,
type ParseStatus,
type ScriptMode,
type Severity,
type SfcBlock,
type SourceLocation,
type SourcePoint,
type SupportState,
type VueMigrationReport,
} from '@gluonjs/vue-migration-analyzer';
const options = { root: '.' } satisfies AnalyzerOptions;
try {
const report: VueMigrationReport = await analyzeVueMigration(options);
const file: AnalyzedFile | undefined = report.files[0];
const component: ComponentInventory | undefined = report.components[0];
const block: SfcBlock | undefined = component?.blocks[0];
const item: InventoryItem | undefined = report.inventory[0];
const finding: MigrationFinding | undefined = report.findings[0];
const location: SourceLocation | null | undefined = finding?.location;
const point: SourcePoint | undefined = location?.start;
const severity: Severity = finding?.severity ?? 'info';
const confidence: Confidence = finding?.confidence ?? 'indeterminate';
const stage: MigrationStage = finding?.migrationStage ?? 'baseline';
const support: SupportState = report.summary.supportState;
const fileKind: FileKind = file?.kind ?? 'other';
const status: ParseStatus = file?.parseStatus ?? 'skipped';
const scriptMode: ScriptMode = component?.scriptMode ?? 'none';
const blockKind: BlockKind = block?.kind ?? 'custom';
const category: InventoryCategory = item?.category ?? 'remaining-vue';
const inventoryKind: InventoryKind = item?.kind ?? 'vue-dependency';
console.log(formatVueMigrationReport(report, 'human'));
console.log(ANALYZER_LIMITS.analyzedFiles, point, severity, confidence, stage, support, fileKind, status, scriptMode, blockKind, category, inventoryKind);
} catch (error) {
if (error instanceof VueMigrationAnalyzerError) console.error(error.exitCode, error.message);
else throw error;
}