From 8773b5cabe20bfc16d3f15f28dc7f564a3613ddb Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Tue, 23 May 2023 11:24:01 +0200 Subject: [PATCH 1/5] configure camelcase exception --- backend/.eslintrc.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/backend/.eslintrc.js b/backend/.eslintrc.js index 798bef1e6..b09fc1d59 100644 --- a/backend/.eslintrc.js +++ b/backend/.eslintrc.js @@ -27,7 +27,8 @@ module.exports = { }, }, rules: { - 'no-console': ['error'], + 'no-console': 'error', + camelcase: ['error', { allow: 'FederationClient_*' }], 'no-debugger': 'error', 'prettier/prettier': [ 'error', From 6d405c43c538adb5b5a7ab43d9a558a6b7f83331 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Tue, 23 May 2023 11:25:44 +0200 Subject: [PATCH 2/5] rename Client to FederationClient and remove camelcase eslint exceptions --- backend/src/federation/client/Client_1_1.ts | 5 ---- .../client/{Client.ts => FederationClient.ts} | 25 ++++++++----------- ...{Client_1_0.ts => FederationClient_1_0.ts} | 3 +-- .../federation/client/FederationClient_1_1.ts | 3 +++ 4 files changed, 15 insertions(+), 21 deletions(-) delete mode 100644 backend/src/federation/client/Client_1_1.ts rename backend/src/federation/client/{Client.ts => FederationClient.ts} (66%) rename backend/src/federation/client/{Client_1_0.ts => FederationClient_1_0.ts} (96%) create mode 100644 backend/src/federation/client/FederationClient_1_1.ts diff --git a/backend/src/federation/client/Client_1_1.ts b/backend/src/federation/client/Client_1_1.ts deleted file mode 100644 index 8525acc5d..000000000 --- a/backend/src/federation/client/Client_1_1.ts +++ /dev/null @@ -1,5 +0,0 @@ -// eslint-disable-next-line camelcase -import { Client_1_0 } from './Client_1_0' - -// eslint-disable-next-line camelcase -export class Client_1_1 extends Client_1_0 {} diff --git a/backend/src/federation/client/Client.ts b/backend/src/federation/client/FederationClient.ts similarity index 66% rename from backend/src/federation/client/Client.ts rename to backend/src/federation/client/FederationClient.ts index 98f63c127..db1e5e3b2 100644 --- a/backend/src/federation/client/Client.ts +++ b/backend/src/federation/client/FederationClient.ts @@ -2,22 +2,19 @@ import { FederatedCommunity as DbFederatedCommunity } from '@entity/FederatedCom import { ApiVersionType } from '@/federation/enum/apiVersionType' -// eslint-disable-next-line camelcase -import { Client_1_0 } from './Client_1_0' -// eslint-disable-next-line camelcase -import { Client_1_1 } from './Client_1_1' +import { FederationClient_1_0 } from './FederationClient_1_0' +import { FederationClient_1_1 } from './FederationClient_1_1' -// eslint-disable-next-line camelcase -type FederationClient = Client_1_0 | Client_1_1 +type FederationClientType = FederationClient_1_0 | FederationClient_1_1 interface ClientInstance { id: number // eslint-disable-next-line no-use-before-define - client: FederationClient + client: FederationClientType } // eslint-disable-next-line @typescript-eslint/no-extraneous-class -export class Client { +export class FederationClient { private static instanceArray: ClientInstance[] = [] /** @@ -30,9 +27,9 @@ export class Client { private static createFederationClient = (dbCom: DbFederatedCommunity) => { switch (dbCom.apiVersion) { case ApiVersionType.V1_0: - return new Client_1_0(dbCom) + return new FederationClient_1_0(dbCom) case ApiVersionType.V1_1: - return new Client_1_1(dbCom) + return new FederationClient_1_1(dbCom) default: return null } @@ -44,14 +41,14 @@ export class Client { * This implementation let you subclass the Singleton class while keeping * just one instance of each subclass around. */ - public static getInstance(dbCom: DbFederatedCommunity): FederationClient | null { - const instance = Client.instanceArray.find((instance) => instance.id === dbCom.id) + public static getInstance(dbCom: DbFederatedCommunity): FederationClientType | null { + const instance = FederationClient.instanceArray.find((instance) => instance.id === dbCom.id) if (instance) { return instance.client } - const client = Client.createFederationClient(dbCom) + const client = FederationClient.createFederationClient(dbCom) if (client) { - Client.instanceArray.push({ id: dbCom.id, client } as ClientInstance) + FederationClient.instanceArray.push({ id: dbCom.id, client } as ClientInstance) } return client } diff --git a/backend/src/federation/client/Client_1_0.ts b/backend/src/federation/client/FederationClient_1_0.ts similarity index 96% rename from backend/src/federation/client/Client_1_0.ts rename to backend/src/federation/client/FederationClient_1_0.ts index 0c0d458c8..c8e878ded 100644 --- a/backend/src/federation/client/Client_1_0.ts +++ b/backend/src/federation/client/FederationClient_1_0.ts @@ -4,8 +4,7 @@ import { GraphQLClient } from 'graphql-request' import { getPublicKey } from '@/federation/query/getPublicKey' import { backendLogger as logger } from '@/server/logger' -// eslint-disable-next-line camelcase -export class Client_1_0 { +export class FederationClient_1_0 { dbCom: DbFederatedCommunity endpoint: string client: GraphQLClient diff --git a/backend/src/federation/client/FederationClient_1_1.ts b/backend/src/federation/client/FederationClient_1_1.ts new file mode 100644 index 000000000..27679b423 --- /dev/null +++ b/backend/src/federation/client/FederationClient_1_1.ts @@ -0,0 +1,3 @@ +import { FederationClient_1_0 } from './FederationClient_1_0' + +export class FederationClient_1_1 extends FederationClient_1_0 {} From 9157a57fb350bf68f7e28e3a66c6b71641a785f8 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Tue, 23 May 2023 11:27:04 +0200 Subject: [PATCH 3/5] fix rule, use array for allow list --- backend/.eslintrc.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/.eslintrc.js b/backend/.eslintrc.js index b09fc1d59..ecb8331d3 100644 --- a/backend/.eslintrc.js +++ b/backend/.eslintrc.js @@ -28,7 +28,7 @@ module.exports = { }, rules: { 'no-console': 'error', - camelcase: ['error', { allow: 'FederationClient_*' }], + camelcase: ['error', { allow: ['FederationClient_*'] }], 'no-debugger': 'error', 'prettier/prettier': [ 'error', From ade05101e21da4cb3c1a9ea5369299cdd1e81b8d Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Tue, 23 May 2023 11:30:18 +0200 Subject: [PATCH 4/5] configure camelcase exceptions --- backend/.eslintrc.js | 1 + backend/src/federation/validateCommunities.test.ts | 1 + backend/src/federation/validateCommunities.ts | 4 ++-- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/backend/.eslintrc.js b/backend/.eslintrc.js index ecb8331d3..78ac9e41e 100644 --- a/backend/.eslintrc.js +++ b/backend/.eslintrc.js @@ -185,6 +185,7 @@ module.exports = { tsconfigRootDir: __dirname, project: ['./tsconfig.json', '**/tsconfig.json'], // this is to properly reference the referenced project database without requirement of compiling it + // eslint-disable-next-line camelcase EXPERIMENTAL_useSourceOfProjectReferenceRedirect: true, }, }, diff --git a/backend/src/federation/validateCommunities.test.ts b/backend/src/federation/validateCommunities.test.ts index 77d0cc2ad..c75408762 100644 --- a/backend/src/federation/validateCommunities.test.ts +++ b/backend/src/federation/validateCommunities.test.ts @@ -70,6 +70,7 @@ describe('validate Communities', () => { .into(DbFederatedCommunity) .values(variables1) .orUpdate({ + // eslint-disable-next-line camelcase conflict_target: ['id', 'publicKey', 'apiVersion'], overwrite: ['end_point', 'last_announced_at'], }) diff --git a/backend/src/federation/validateCommunities.ts b/backend/src/federation/validateCommunities.ts index 4b337eda9..91c85d09b 100644 --- a/backend/src/federation/validateCommunities.ts +++ b/backend/src/federation/validateCommunities.ts @@ -5,7 +5,7 @@ import { FederatedCommunity as DbFederatedCommunity } from '@entity/FederatedCom import { backendLogger as logger } from '@/server/logger' -import { Client } from './client/Client' +import { FederationClient } from './client/FederationClient' import { ApiVersionType } from './enum/apiVersionType' export function startValidateCommunities(timerInterval: number): void { @@ -37,7 +37,7 @@ export async function validateCommunities(): Promise { continue } try { - const client = Client.getInstance(dbCom) + const client = FederationClient.getInstance(dbCom) const pubKey = await client?.getPublicKey() if (pubKey && pubKey === dbCom.publicKey.toString()) { await DbFederatedCommunity.update({ id: dbCom.id }, { verifiedAt: new Date() }) From 0ce40428649bbbb967b9c7efee71ea5637444c96 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Tue, 23 May 2023 11:30:49 +0200 Subject: [PATCH 5/5] more camelcase exceptions --- backend/src/federation/validateCommunities.test.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/backend/src/federation/validateCommunities.test.ts b/backend/src/federation/validateCommunities.test.ts index c75408762..cf8624be1 100644 --- a/backend/src/federation/validateCommunities.test.ts +++ b/backend/src/federation/validateCommunities.test.ts @@ -103,6 +103,7 @@ describe('validate Communities', () => { .into(DbFederatedCommunity) .values(variables2) .orUpdate({ + // eslint-disable-next-line camelcase conflict_target: ['id', 'publicKey', 'apiVersion'], overwrite: ['end_point', 'last_announced_at'], }) @@ -141,6 +142,7 @@ describe('validate Communities', () => { .into(DbFederatedCommunity) .values(variables3) .orUpdate({ + // eslint-disable-next-line camelcase conflict_target: ['id', 'publicKey', 'apiVersion'], overwrite: ['end_point', 'last_announced_at'], })