36 lines
1.1 KiB
TypeScript
36 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);
|
|
}
|
|
} |