Actuellement, on a une situation où on a une classe GitAgent qui nous sert uniquement à définir un singleton
|
const gitAgent = new GitAgent() |
|
|
|
export default gitAgent |
Aussi, beaucoup de méthodes prennent un ScribouilliGitRepo en argument (en gros toutes, sauf celles qui n'ont aucun arguments) et le ScribouilliGitRepo est utilisé exclusivement soit pour extraire le repoDirectory, la remoteURL ou appeler .path(filename)
Ces 3 trucs-là ne sont d'ailleurs utilisés que par gitAgent (qui internalise/gère le FS et internalise la gestion des push/pull avec les remote). Et ptèt enlever ces éléments de ScribouilliGitRepo s'ils ne sont vraiment pas utilisés ailleurs
Donc, ptèt que ces trucs-là devraient faire partie directement de la classe GitAgent et même être passés au constructeur
On pourrait mettre aussi l'initialisation du onMergeConflict dans un lieu mieux adapté, parce qu'elle est actuellement un peu dans un endroit random
On en profiterait alors pour enlever tous les arguments ScribouilliGitRepo
On pourrait mettre l'instance gitAgent dans le store
Et ne la changer que quand le repo visé (spécifiquement, quand les paramètres repoName et account de l'URL changent... d'ailleurs je remarque qu'on fait beaucoup de boulot dans setCurrentRepositoryFromQuerystring alors que souvent, si repoName et account, y'a rien à faire)