39 lines
1.0 KiB
TypeScript
39 lines
1.0 KiB
TypeScript
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<IPlannedChange[]> {
|
|
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<void> {
|
|
switch (change.type) {
|
|
case 'delete':
|
|
await this.deleteFile(change.path);
|
|
break;
|
|
}
|
|
}
|
|
} |