From 25394ed2cd6236f446572d7fcc4d84d7a22eda08 Mon Sep 17 00:00:00 2001 From: Amer Harb Date: Sat, 23 Mar 2024 01:37:41 +0100 Subject: [PATCH 1/7] use static function directly --- webapp/src/Cache.ts | 4 ++-- webapp/src/RepoGit.ts | 6 ------ webapp/src/app/api/messages/[projectName]/route.ts | 4 ++-- webapp/src/app/api/pull-request/[projectName]/route.ts | 4 ++-- .../api/translations/[projectName]/[lang]/[msgId]/route.ts | 4 ++-- 5 files changed, 8 insertions(+), 14 deletions(-) diff --git a/webapp/src/Cache.ts b/webapp/src/Cache.ts index 44d04c9a..f70b3735 100644 --- a/webapp/src/Cache.ts +++ b/webapp/src/Cache.ts @@ -1,9 +1,9 @@ /* global globalThis */ -import { getRepoGit } from '@/RepoGit'; import { LanguageNotSupported } from '@/errors'; import { LyraProjectConfig } from '@/utils/lyraConfig'; import { ProjectStore } from '@/store/ProjectStore'; +import { RepoGit } from '@/RepoGit'; import { ServerConfig } from '@/utils/serverConfig'; import { Store } from '@/store/Store'; import YamlTranslationAdapter from '@/utils/adapters/YamlTranslationAdapter'; @@ -12,7 +12,7 @@ export class Cache { public static async getLanguage(projectName: string, lang: string) { const serverProjectConfig = await ServerConfig.getProjectConfig(projectName); - const repo = await getRepoGit(serverProjectConfig); + const repo = await RepoGit.getRepoGit(serverProjectConfig); const lyraConfig = await repo.getLyraConfig(); const lyraProjectConfig = lyraConfig.getProjectConfigByPath( serverProjectConfig.projectPath, diff --git a/webapp/src/RepoGit.ts b/webapp/src/RepoGit.ts index 21f67243..e05c3d27 100644 --- a/webapp/src/RepoGit.ts +++ b/webapp/src/RepoGit.ts @@ -176,9 +176,3 @@ export class RepoGit { return paths; } } - -export async function getRepoGit( - config: ServerProjectConfig, -): Promise { - return RepoGit.getRepoGit(config); -} diff --git a/webapp/src/app/api/messages/[projectName]/route.ts b/webapp/src/app/api/messages/[projectName]/route.ts index 8f67178d..77f8ea93 100644 --- a/webapp/src/app/api/messages/[projectName]/route.ts +++ b/webapp/src/app/api/messages/[projectName]/route.ts @@ -1,6 +1,6 @@ import MessageAdapterFactory from '@/utils/adapters/MessageAdapterFactory'; +import { RepoGit } from '@/RepoGit'; import { ServerConfig } from '@/utils/serverConfig'; -import { getRepoGit, RepoGit } from '@/RepoGit'; import { LyraConfigReadingError, ProjectNameNotFoundError, @@ -17,7 +17,7 @@ export async function GET( const serverProjectConfig = await ServerConfig.getProjectConfig(projectName); await RepoGit.cloneIfNotExist(serverProjectConfig); - const repo = await getRepoGit(serverProjectConfig); + const repo = await RepoGit.getRepoGit(serverProjectConfig); const lyraConfig = await repo.getLyraConfig(); const projectConfig = lyraConfig.getProjectConfigByPath( serverProjectConfig.projectPath, diff --git a/webapp/src/app/api/pull-request/[projectName]/route.ts b/webapp/src/app/api/pull-request/[projectName]/route.ts index e8ba1534..172c220e 100644 --- a/webapp/src/app/api/pull-request/[projectName]/route.ts +++ b/webapp/src/app/api/pull-request/[projectName]/route.ts @@ -1,5 +1,5 @@ -import { getRepoGit } from '@/RepoGit'; import { ProjectNameNotFoundError } from '@/errors'; +import { RepoGit } from '@/RepoGit'; import { NextRequest, NextResponse } from 'next/server'; import { ServerConfig, ServerProjectConfig } from '@/utils/serverConfig'; @@ -37,7 +37,7 @@ export async function POST( try { syncLock.set(repoPath, true); - const repoGit = await getRepoGit(serverProjectConfig); + const repoGit = await RepoGit.getRepoGit(serverProjectConfig); const baseBranch = await repoGit.checkoutBaseAndPull(); const langFilePaths = await repoGit.saveLanguageFiles( serverProjectConfig.projectPath, diff --git a/webapp/src/app/api/translations/[projectName]/[lang]/[msgId]/route.ts b/webapp/src/app/api/translations/[projectName]/[lang]/[msgId]/route.ts index 018a5da5..0607513e 100644 --- a/webapp/src/app/api/translations/[projectName]/[lang]/[msgId]/route.ts +++ b/webapp/src/app/api/translations/[projectName]/[lang]/[msgId]/route.ts @@ -1,6 +1,6 @@ import { Cache } from '@/Cache'; +import { RepoGit } from '@/RepoGit'; import { ServerConfig } from '@/utils/serverConfig'; -import { getRepoGit, RepoGit } from '@/RepoGit'; import { LanguageNotFound, LanguageNotSupported, @@ -26,7 +26,7 @@ export async function PUT( // TODO: include getProjectConfig & readFromDir in a try/catch block and check for error to return a certain 500 error const serverProjectConfig = await ServerConfig.getProjectConfig(projectName); await RepoGit.cloneIfNotExist(serverProjectConfig); - const repo = await getRepoGit(serverProjectConfig); + const repo = await RepoGit.getRepoGit(serverProjectConfig); const lyraConfig = await repo.getLyraConfig(); try { From 587e04b4ee1fa3552986fdd363836c6b96bc65a0 Mon Sep 17 00:00:00 2001 From: Amer Harb Date: Sat, 23 Mar 2024 01:40:52 +0100 Subject: [PATCH 2/7] rename variable config --- webapp/src/RepoGit.ts | 6 +++--- webapp/src/utils/adapters/MessageAdapterFactory.ts | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/webapp/src/RepoGit.ts b/webapp/src/RepoGit.ts index e05c3d27..66601ade 100644 --- a/webapp/src/RepoGit.ts +++ b/webapp/src/RepoGit.ts @@ -25,15 +25,15 @@ export class RepoGit { this.git = new SimpleGitWrapper(spConfig.repoPath); } - static async getRepoGit(config: ServerProjectConfig): Promise { - const key = config.repoPath; + static async getRepoGit(spConfig: ServerProjectConfig): Promise { + const key = spConfig.repoPath; if (key in RepoGit.repositories) { return RepoGit.repositories[key]; } const { promise, resolve, reject } = Promise.withResolvers(); RepoGit.repositories[key] = promise; - const repository = new RepoGit(config); + const repository = new RepoGit(spConfig); repository.checkoutBaseAndPull().then(() => resolve(repository), reject); return promise; diff --git a/webapp/src/utils/adapters/MessageAdapterFactory.ts b/webapp/src/utils/adapters/MessageAdapterFactory.ts index 61e1eed4..047654e4 100644 --- a/webapp/src/utils/adapters/MessageAdapterFactory.ts +++ b/webapp/src/utils/adapters/MessageAdapterFactory.ts @@ -3,11 +3,11 @@ import YamlMessageAdapter from './YamlMessageAdapter'; import { LyraProjectConfig, MessageKind } from '../lyraConfig'; export default class MessageAdapterFactory { - static createAdapter(config: LyraProjectConfig) { - if (config.messageKind == MessageKind.TS) { - return new TsMessageAdapter(config.absMessagesPath); + static createAdapter(lpConfig: LyraProjectConfig) { + if (lpConfig.messageKind == MessageKind.TS) { + return new TsMessageAdapter(lpConfig.absMessagesPath); } else { - return new YamlMessageAdapter(config.absMessagesPath); + return new YamlMessageAdapter(lpConfig.absMessagesPath); } } } From 9a53a87410605032e1b5b6645ac64d138485830c Mon Sep 17 00:00:00 2001 From: Amer Harb Date: Sat, 23 Mar 2024 01:42:20 +0100 Subject: [PATCH 3/7] rename repo to repoGit --- webapp/src/Cache.ts | 4 ++-- webapp/src/app/api/messages/[projectName]/route.ts | 4 ++-- .../api/translations/[projectName]/[lang]/[msgId]/route.ts | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/webapp/src/Cache.ts b/webapp/src/Cache.ts index f70b3735..9ca9a511 100644 --- a/webapp/src/Cache.ts +++ b/webapp/src/Cache.ts @@ -12,8 +12,8 @@ export class Cache { public static async getLanguage(projectName: string, lang: string) { const serverProjectConfig = await ServerConfig.getProjectConfig(projectName); - const repo = await RepoGit.getRepoGit(serverProjectConfig); - const lyraConfig = await repo.getLyraConfig(); + const repoGit = await RepoGit.getRepoGit(serverProjectConfig); + const lyraConfig = await repoGit.getLyraConfig(); const lyraProjectConfig = lyraConfig.getProjectConfigByPath( serverProjectConfig.projectPath, ); diff --git a/webapp/src/app/api/messages/[projectName]/route.ts b/webapp/src/app/api/messages/[projectName]/route.ts index 77f8ea93..abc4e68b 100644 --- a/webapp/src/app/api/messages/[projectName]/route.ts +++ b/webapp/src/app/api/messages/[projectName]/route.ts @@ -17,8 +17,8 @@ export async function GET( const serverProjectConfig = await ServerConfig.getProjectConfig(projectName); await RepoGit.cloneIfNotExist(serverProjectConfig); - const repo = await RepoGit.getRepoGit(serverProjectConfig); - const lyraConfig = await repo.getLyraConfig(); + const repoGit = await RepoGit.getRepoGit(serverProjectConfig); + const lyraConfig = await repoGit.getLyraConfig(); const projectConfig = lyraConfig.getProjectConfigByPath( serverProjectConfig.projectPath, ); diff --git a/webapp/src/app/api/translations/[projectName]/[lang]/[msgId]/route.ts b/webapp/src/app/api/translations/[projectName]/[lang]/[msgId]/route.ts index 0607513e..1eb17f70 100644 --- a/webapp/src/app/api/translations/[projectName]/[lang]/[msgId]/route.ts +++ b/webapp/src/app/api/translations/[projectName]/[lang]/[msgId]/route.ts @@ -26,8 +26,8 @@ export async function PUT( // TODO: include getProjectConfig & readFromDir in a try/catch block and check for error to return a certain 500 error const serverProjectConfig = await ServerConfig.getProjectConfig(projectName); await RepoGit.cloneIfNotExist(serverProjectConfig); - const repo = await RepoGit.getRepoGit(serverProjectConfig); - const lyraConfig = await repo.getLyraConfig(); + const repoGit = await RepoGit.getRepoGit(serverProjectConfig); + const lyraConfig = await repoGit.getLyraConfig(); try { const projectConfig = lyraConfig.getProjectConfigByPath( From f14a1ef6c1cf77f6b7c68542223eee5a1602f58f Mon Sep 17 00:00:00 2001 From: Amer Harb Date: Sat, 23 Mar 2024 01:44:16 +0100 Subject: [PATCH 4/7] update TODO --- .../app/api/translations/[projectName]/[lang]/[msgId]/route.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webapp/src/app/api/translations/[projectName]/[lang]/[msgId]/route.ts b/webapp/src/app/api/translations/[projectName]/[lang]/[msgId]/route.ts index 1eb17f70..9cec29da 100644 --- a/webapp/src/app/api/translations/[projectName]/[lang]/[msgId]/route.ts +++ b/webapp/src/app/api/translations/[projectName]/[lang]/[msgId]/route.ts @@ -23,7 +23,7 @@ export async function PUT( const { lang, msgId, projectName } = context.params; const payload = await req.json(); const { text } = payload; - // TODO: include getProjectConfig & readFromDir in a try/catch block and check for error to return a certain 500 error + // TODO: include getProjectConfig() in a try/catch block and check for error to return a certain 500 error const serverProjectConfig = await ServerConfig.getProjectConfig(projectName); await RepoGit.cloneIfNotExist(serverProjectConfig); const repoGit = await RepoGit.getRepoGit(serverProjectConfig); From 08e5b4d59df3942cd3cc5e5b34e2e647841d6309 Mon Sep 17 00:00:00 2001 From: Amer Harb Date: Sat, 23 Mar 2024 01:55:46 +0100 Subject: [PATCH 5/7] make cloneIfNotExist a private function --- webapp/src/RepoGit.ts | 3 ++- webapp/src/app/api/messages/[projectName]/route.ts | 1 - .../app/api/translations/[projectName]/[lang]/[msgId]/route.ts | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/webapp/src/RepoGit.ts b/webapp/src/RepoGit.ts index 66601ade..a5f66c6f 100644 --- a/webapp/src/RepoGit.ts +++ b/webapp/src/RepoGit.ts @@ -30,6 +30,7 @@ export class RepoGit { if (key in RepoGit.repositories) { return RepoGit.repositories[key]; } + await RepoGit.cloneIfNotExist(spConfig); const { promise, resolve, reject } = Promise.withResolvers(); RepoGit.repositories[key] = promise; @@ -39,7 +40,7 @@ export class RepoGit { return promise; } - public static async cloneIfNotExist( + private static async cloneIfNotExist( spConfig: ServerProjectConfig, ): Promise { if (!fs.existsSync(spConfig.repoPath)) { diff --git a/webapp/src/app/api/messages/[projectName]/route.ts b/webapp/src/app/api/messages/[projectName]/route.ts index abc4e68b..1ef605de 100644 --- a/webapp/src/app/api/messages/[projectName]/route.ts +++ b/webapp/src/app/api/messages/[projectName]/route.ts @@ -16,7 +16,6 @@ export async function GET( const projectName = context.params.projectName; const serverProjectConfig = await ServerConfig.getProjectConfig(projectName); - await RepoGit.cloneIfNotExist(serverProjectConfig); const repoGit = await RepoGit.getRepoGit(serverProjectConfig); const lyraConfig = await repoGit.getLyraConfig(); const projectConfig = lyraConfig.getProjectConfigByPath( diff --git a/webapp/src/app/api/translations/[projectName]/[lang]/[msgId]/route.ts b/webapp/src/app/api/translations/[projectName]/[lang]/[msgId]/route.ts index 9cec29da..aadc2ffe 100644 --- a/webapp/src/app/api/translations/[projectName]/[lang]/[msgId]/route.ts +++ b/webapp/src/app/api/translations/[projectName]/[lang]/[msgId]/route.ts @@ -25,7 +25,6 @@ export async function PUT( const { text } = payload; // TODO: include getProjectConfig() in a try/catch block and check for error to return a certain 500 error const serverProjectConfig = await ServerConfig.getProjectConfig(projectName); - await RepoGit.cloneIfNotExist(serverProjectConfig); const repoGit = await RepoGit.getRepoGit(serverProjectConfig); const lyraConfig = await repoGit.getLyraConfig(); From 2a11e03b09fe84716e3a37f6470e339c2eba3024 Mon Sep 17 00:00:00 2001 From: Amer Harb Date: Tue, 26 Mar 2024 00:32:26 +0100 Subject: [PATCH 6/7] Revert "make cloneIfNotExist a private function" This reverts commit 08e5b4d59df3942cd3cc5e5b34e2e647841d6309. --- webapp/src/RepoGit.ts | 3 +-- webapp/src/app/api/messages/[projectName]/route.ts | 1 + .../app/api/translations/[projectName]/[lang]/[msgId]/route.ts | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/webapp/src/RepoGit.ts b/webapp/src/RepoGit.ts index a5f66c6f..66601ade 100644 --- a/webapp/src/RepoGit.ts +++ b/webapp/src/RepoGit.ts @@ -30,7 +30,6 @@ export class RepoGit { if (key in RepoGit.repositories) { return RepoGit.repositories[key]; } - await RepoGit.cloneIfNotExist(spConfig); const { promise, resolve, reject } = Promise.withResolvers(); RepoGit.repositories[key] = promise; @@ -40,7 +39,7 @@ export class RepoGit { return promise; } - private static async cloneIfNotExist( + public static async cloneIfNotExist( spConfig: ServerProjectConfig, ): Promise { if (!fs.existsSync(spConfig.repoPath)) { diff --git a/webapp/src/app/api/messages/[projectName]/route.ts b/webapp/src/app/api/messages/[projectName]/route.ts index 1ef605de..abc4e68b 100644 --- a/webapp/src/app/api/messages/[projectName]/route.ts +++ b/webapp/src/app/api/messages/[projectName]/route.ts @@ -16,6 +16,7 @@ export async function GET( const projectName = context.params.projectName; const serverProjectConfig = await ServerConfig.getProjectConfig(projectName); + await RepoGit.cloneIfNotExist(serverProjectConfig); const repoGit = await RepoGit.getRepoGit(serverProjectConfig); const lyraConfig = await repoGit.getLyraConfig(); const projectConfig = lyraConfig.getProjectConfigByPath( diff --git a/webapp/src/app/api/translations/[projectName]/[lang]/[msgId]/route.ts b/webapp/src/app/api/translations/[projectName]/[lang]/[msgId]/route.ts index aadc2ffe..9cec29da 100644 --- a/webapp/src/app/api/translations/[projectName]/[lang]/[msgId]/route.ts +++ b/webapp/src/app/api/translations/[projectName]/[lang]/[msgId]/route.ts @@ -25,6 +25,7 @@ export async function PUT( const { text } = payload; // TODO: include getProjectConfig() in a try/catch block and check for error to return a certain 500 error const serverProjectConfig = await ServerConfig.getProjectConfig(projectName); + await RepoGit.cloneIfNotExist(serverProjectConfig); const repoGit = await RepoGit.getRepoGit(serverProjectConfig); const lyraConfig = await repoGit.getLyraConfig(); From 5383fa4b24a69bce802b1ff2e8f996a113f63086 Mon Sep 17 00:00:00 2001 From: Amer Harb Date: Tue, 26 Mar 2024 00:34:12 +0100 Subject: [PATCH 7/7] update TODO --- .../app/api/translations/[projectName]/[lang]/[msgId]/route.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webapp/src/app/api/translations/[projectName]/[lang]/[msgId]/route.ts b/webapp/src/app/api/translations/[projectName]/[lang]/[msgId]/route.ts index 9cec29da..8f20522d 100644 --- a/webapp/src/app/api/translations/[projectName]/[lang]/[msgId]/route.ts +++ b/webapp/src/app/api/translations/[projectName]/[lang]/[msgId]/route.ts @@ -23,7 +23,7 @@ export async function PUT( const { lang, msgId, projectName } = context.params; const payload = await req.json(); const { text } = payload; - // TODO: include getProjectConfig() in a try/catch block and check for error to return a certain 500 error + // TODO: include getProjectConfig() and getLyraConfig() in a try/catch block and check for error to return a certain 500 error const serverProjectConfig = await ServerConfig.getProjectConfig(projectName); await RepoGit.cloneIfNotExist(serverProjectConfig); const repoGit = await RepoGit.getRepoGit(serverProjectConfig);