import { BaseFormatter } from '../classes.baseformatter.js'; import type { IPlannedChange } from '../interfaces.format.js'; import * as plugins from '../mod.plugins.js'; import * as cleanupFormatter from '../format.cleanup.js'; export class CleanupFormatter extends BaseFormatter { get name(): string { return 'cleanup'; } async analyze(): Promise { const changes: IPlannedChange[] = []; // List of files to remove const filesToRemove = [ 'yarn.lock', 'package-lock.json', 'tslint.json', 'defaults.yml', ]; for (const file of filesToRemove) { const exists = await plugins.smartfile.fs.fileExists(file); if (exists) { changes.push({ type: 'delete', path: file, module: this.name, description: `Remove obsolete file`, }); } } return changes; } async applyChange(change: IPlannedChange): Promise { switch (change.type) { case 'delete': await this.deleteFile(change.path); break; } } }