import { BaseFormatter } from '../classes.baseformatter.js'; import type { IPlannedChange } from '../interfaces.format.js'; import { Project } from '../../classes.project.js'; import * as plugins from '../mod.plugins.js'; // This is a wrapper for existing format modules export class LegacyFormatter extends BaseFormatter { private moduleName: string; private formatModule: any; constructor( context: any, project: Project, moduleName: string, formatModule: any, ) { super(context, project); this.moduleName = moduleName; this.formatModule = formatModule; } get name(): string { return this.moduleName; } async analyze(): Promise { // For legacy modules, we can't easily predict changes // So we'll return a generic change that indicates the module will run return [ { type: 'modify', path: '', module: this.name, description: `Run ${this.name} formatter`, }, ]; } async applyChange(change: IPlannedChange): Promise { // Run the legacy format module await this.formatModule.run(this.project); } }