diff --git a/src/fix.ts b/src/fix.ts index 1436780..cf91cb1 100644 --- a/src/fix.ts +++ b/src/fix.ts @@ -1,8 +1,10 @@ import * as t from "ts-morph"; import { IOffendingMembers } from "./analyze"; +import { SourceFile } from "ts-morph"; export const fix = (membersToFix: IOffendingMembers[]): Promise => { - const savePromises: Promise[] = []; + const touchedFiles: Set = new Set(); + membersToFix.forEach(({ file, declaration, reason }) => { if (reason === "unused") { declaration.remove(); @@ -11,8 +13,8 @@ export const fix = (membersToFix: IOffendingMembers[]): Promise => { declaration.set({ scope: t.Scope.Private }); } - savePromises.push(file.save()); + touchedFiles.add(file); }); - return Promise.all(savePromises); + return Promise.all(Array.from(touchedFiles).map((file) => file.save())); };