44 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
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<IPlannedChange[]> {
 | 
						|
    // 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: '<various files>',
 | 
						|
        module: this.name,
 | 
						|
        description: `Run ${this.name} formatter`,
 | 
						|
      },
 | 
						|
    ];
 | 
						|
  }
 | 
						|
 | 
						|
  async applyChange(change: IPlannedChange): Promise<void> {
 | 
						|
    // Run the legacy format module
 | 
						|
    await this.formatModule.run(this.project);
 | 
						|
  }
 | 
						|
}
 |