diff --git a/backend/src/federation/validateCommunities.test.ts b/backend/src/federation/validateCommunities.test.ts index bfb43fd35..160068140 100644 --- a/backend/src/federation/validateCommunities.test.ts +++ b/backend/src/federation/validateCommunities.test.ts @@ -12,7 +12,9 @@ import { clearLogs, getLogger, printLogs } from 'config-schema/test/testSetup' import { validateCommunities } from './validateCommunities' const logger = getLogger(`${LOG4JS_FEDERATION_CATEGORY_NAME}.validateCommunities`) -const federationClientLogger = getLogger(`${LOG4JS_FEDERATION_CLIENT1_0_CATEGORY_NAME}.FederationClient`) +const federationClientLogger = getLogger( + `${LOG4JS_FEDERATION_CLIENT1_0_CATEGORY_NAME}.FederationClient`, +) let con: DataSource let testEnv: { @@ -88,8 +90,9 @@ describe('validate Communities', () => { }) it('logs requestGetPublicKey missing response data ', () => { expect(federationClientLogger.warn).toBeCalledWith( - 'getPublicKey without response data from endpoint', 'http//localhost:5001/api/1_0/' - ) + 'getPublicKey without response data from endpoint', + 'http//localhost:5001/api/1_0/', + ) }) }) @@ -160,7 +163,10 @@ describe('validate Communities', () => { expect(logger.debug).toBeCalledWith(`found 1 dbCommunities`) }) it('logs requestGetPublicKey for community api 1_0 ', () => { - expect(federationClientLogger.debug).toBeCalledWith('getPublicKey from endpoint', 'http//localhost:5001/api/1_0/') + expect(federationClientLogger.debug).toBeCalledWith( + 'getPublicKey from endpoint', + 'http//localhost:5001/api/1_0/', + ) }) it('logs not matching publicKeys', () => { expect(logger.debug).toBeCalledWith( @@ -279,7 +285,10 @@ describe('validate Communities', () => { ) }) it('logs requestGetPublicKey for community api 1_1 ', () => { - expect(federationClientLogger.debug).toBeCalledWith('getPublicKey from endpoint', 'http//localhost:5001/api/1_1/') + expect(federationClientLogger.debug).toBeCalledWith( + 'getPublicKey from endpoint', + 'http//localhost:5001/api/1_1/', + ) }) }) describe('with three Communities of api 1_0, 1_1 and 2_0', () => { @@ -328,10 +337,17 @@ describe('validate Communities', () => { ) }) it('logs requestGetPublicKey for community api 1_1 ', () => { - expect(federationClientLogger.debug).toBeCalledWith('getPublicKey from endpoint', 'http//localhost:5001/api/1_1/') + expect(federationClientLogger.debug).toBeCalledWith( + 'getPublicKey from endpoint', + 'http//localhost:5001/api/1_1/', + ) }) it('logs unsupported api for community with api 2_0 ', () => { - expect(logger.debug).toBeCalledWith('dbCom with unsupported apiVersion', dbCom.endPoint, '2_0') + expect(logger.debug).toBeCalledWith( + 'dbCom with unsupported apiVersion', + dbCom.endPoint, + '2_0', + ) }) }) }) diff --git a/backend/src/graphql/resolver/ContributionLinkResolver.test.ts b/backend/src/graphql/resolver/ContributionLinkResolver.test.ts index bf8c37126..9db6a7d99 100644 --- a/backend/src/graphql/resolver/ContributionLinkResolver.test.ts +++ b/backend/src/graphql/resolver/ContributionLinkResolver.test.ts @@ -6,6 +6,7 @@ import { DataSource } from 'typeorm' import { cleanDB, resetToken, testEnvironment } from '@test/helpers' +import { LOG4JS_BASE_CATEGORY_NAME } from '@/config/const' import { EventType } from '@/event/Events' import { userFactory } from '@/seeds/factory/user' import { @@ -17,13 +18,10 @@ import { import { listContributionLinks } from '@/seeds/graphql/queries' import { bibiBloxberg } from '@/seeds/users/bibi-bloxberg' import { peterLustig } from '@/seeds/users/peter-lustig' -import { clearLogs, getLogger, printLogs } from 'config-schema/test/testSetup' -import { LOG4JS_BASE_CATEGORY_NAME } from '@/config/const' -import { LOG4JS_RESOLVER_CATEGORY_NAME } from '.' +import { getLogger } from 'config-schema/test/testSetup' jest.mock('@/password/EncryptorUtils') -const logger = getLogger(`${LOG4JS_RESOLVER_CATEGORY_NAME}.ContributionLinkResolver`) const logErrorLogger = getLogger(`${LOG4JS_BASE_CATEGORY_NAME}.server.LogError`) let mutate: ApolloServerTestClient['mutate'] diff --git a/backend/src/graphql/resolver/ContributionMessageResolver.test.ts b/backend/src/graphql/resolver/ContributionMessageResolver.test.ts index 16ad4dbb2..74af7acc7 100644 --- a/backend/src/graphql/resolver/ContributionMessageResolver.test.ts +++ b/backend/src/graphql/resolver/ContributionMessageResolver.test.ts @@ -7,8 +7,10 @@ import { ContributionStatus } from '@enum/ContributionStatus' import { cleanDB, resetToken, testEnvironment } from '@test/helpers' import { i18n as localization } from '@test/testSetup' +import { LOG4JS_BASE_CATEGORY_NAME } from '@/config/const' import { sendAddedContributionMessageEmail } from '@/emails/sendEmailVariants' import { EventType } from '@/event/Events' +import { LOG4JS_INTERACTION_CATEGORY_NAME } from '@/interactions' import { userFactory } from '@/seeds/factory/user' import { adminCreateContributionMessage, @@ -22,12 +24,12 @@ import { bobBaumeister } from '@/seeds/users/bob-baumeister' import { peterLustig } from '@/seeds/users/peter-lustig' import { clearLogs, getLogger, printLogs } from 'config-schema/test/testSetup' import { LOG4JS_RESOLVER_CATEGORY_NAME } from '.' -import { LOG4JS_BASE_CATEGORY_NAME } from '@/config/const' -import { LOG4JS_INTERACTION_CATEGORY_NAME } from '@/interactions' const logger = getLogger(`${LOG4JS_RESOLVER_CATEGORY_NAME}.ContributionMessageResolver`) const logErrorLogger = getLogger(`${LOG4JS_BASE_CATEGORY_NAME}.server.LogError`) -const interactionLogger = getLogger(`${LOG4JS_INTERACTION_CATEGORY_NAME}.updateUnconfirmedContribution`) +const interactionLogger = getLogger( + `${LOG4JS_INTERACTION_CATEGORY_NAME}.updateUnconfirmedContribution`, +) jest.mock('@/password/EncryptorUtils') jest.mock('@/emails/sendEmailVariants', () => { @@ -156,7 +158,9 @@ describe('ContributionMessageResolver', () => { message: 'Test', }, }) - expect(interactionLogger.debug).toBeCalledWith('use UnconfirmedContributionUserAddMessageRole') + expect(interactionLogger.debug).toBeCalledWith( + 'use UnconfirmedContributionUserAddMessageRole', + ) expect(mutationResult).toEqual( expect.objectContaining({ data: { @@ -350,7 +354,9 @@ describe('ContributionMessageResolver', () => { }, }) - expect(interactionLogger.debug).toBeCalledWith('use UnconfirmedContributionAdminAddMessageRole') + expect(interactionLogger.debug).toBeCalledWith( + 'use UnconfirmedContributionAdminAddMessageRole', + ) expect(mutationResult).toEqual( expect.objectContaining({ @@ -380,7 +386,9 @@ describe('ContributionMessageResolver', () => { message: 'Test', }, }) - expect(interactionLogger.debug).toBeCalledWith('use UnconfirmedContributionAdminAddMessageRole') + expect(interactionLogger.debug).toBeCalledWith( + 'use UnconfirmedContributionAdminAddMessageRole', + ) expect(mutationResult).toEqual( expect.objectContaining({ diff --git a/backend/src/graphql/resolver/ContributionResolver.test.ts b/backend/src/graphql/resolver/ContributionResolver.test.ts index 77e879f8d..90858cfa3 100644 --- a/backend/src/graphql/resolver/ContributionResolver.test.ts +++ b/backend/src/graphql/resolver/ContributionResolver.test.ts @@ -16,6 +16,7 @@ import { } from '@test/helpers' import { i18n as localization } from '@test/testSetup' +import { LOG4JS_BASE_CATEGORY_NAME } from '@/config/const' import { sendContributionConfirmedEmail, sendContributionDeletedEmail, @@ -50,14 +51,13 @@ import { peterLustig } from '@/seeds/users/peter-lustig' import { raeuberHotzenplotz } from '@/seeds/users/raeuber-hotzenplotz' import { stephenHawking } from '@/seeds/users/stephen-hawking' import { getFirstDayOfPreviousNMonth } from '@/util/utilities' -import { getLogger, clearLogs, printLogs } from 'config-schema/test/testSetup' +import { clearLogs, getLogger, printLogs } from 'config-schema/test/testSetup' import { getLogger as originalGetLogger } from 'log4js' -import { LOG4JS_BASE_CATEGORY_NAME } from '@/config/const' jest.mock('@/emails/sendEmailVariants') jest.mock('@/password/EncryptorUtils') -const logger = getLogger(`${LOG4JS_BASE_CATEGORY_NAME}.server.LogError` ) +const logger = getLogger(`${LOG4JS_BASE_CATEGORY_NAME}.server.LogError`) let mutate: ApolloServerTestClient['mutate'] let query: ApolloServerTestClient['query'] diff --git a/backend/src/graphql/resolver/TransactionLinkResolver.test.ts b/backend/src/graphql/resolver/TransactionLinkResolver.test.ts index f0107dcdd..7862f71f0 100644 --- a/backend/src/graphql/resolver/TransactionLinkResolver.test.ts +++ b/backend/src/graphql/resolver/TransactionLinkResolver.test.ts @@ -34,12 +34,10 @@ import { bibiBloxberg } from '@/seeds/users/bibi-bloxberg' import { peterLustig } from '@/seeds/users/peter-lustig' import { TRANSACTIONS_LOCK } from '@/util/TRANSACTIONS_LOCK' -import { getLogger } from 'config-schema/test/testSetup' import { LOG4JS_BASE_CATEGORY_NAME } from '@/config/const' -import { LOG4JS_RESOLVER_CATEGORY_NAME } from '.' +import { getLogger } from 'config-schema/test/testSetup' import { transactionLinkCode } from './TransactionLinkResolver' -const logger = getLogger(`${LOG4JS_RESOLVER_CATEGORY_NAME}.TransactionLinkResolver`) const logErrorLogger = getLogger(`${LOG4JS_BASE_CATEGORY_NAME}.server.LogError`) jest.mock('@/password/EncryptorUtils') @@ -322,7 +320,10 @@ describe('TransactionLinkResolver', () => { }) it('logs the error "Contribution link is not valid yet"', () => { - expect(logErrorLogger.error).toBeCalledWith('Contribution link is not valid yet', validFrom) + expect(logErrorLogger.error).toBeCalledWith( + 'Contribution link is not valid yet', + validFrom, + ) expect(logErrorLogger.error).toBeCalledWith( 'Creation from contribution link was not successful', new Error('Contribution link is not valid yet'), @@ -361,7 +362,10 @@ describe('TransactionLinkResolver', () => { }) it('logs the error "Contribution link has unknown cycle"', () => { - expect(logErrorLogger.error).toBeCalledWith('Contribution link has unknown cycle', 'INVALID') + expect(logErrorLogger.error).toBeCalledWith( + 'Contribution link has unknown cycle', + 'INVALID', + ) expect(logErrorLogger.error).toBeCalledWith( 'Creation from contribution link was not successful', new Error('Contribution link has unknown cycle'), @@ -400,7 +404,10 @@ describe('TransactionLinkResolver', () => { }) it('logs the error "Contribution link is no longer valid"', () => { - expect(logErrorLogger.error).toBeCalledWith('Contribution link is no longer valid', validTo) + expect(logErrorLogger.error).toBeCalledWith( + 'Contribution link is no longer valid', + validTo, + ) expect(logErrorLogger.error).toBeCalledWith( 'Creation from contribution link was not successful', new Error('Contribution link is no longer valid'), diff --git a/backend/src/graphql/resolver/TransactionResolver.test.ts b/backend/src/graphql/resolver/TransactionResolver.test.ts index dd0983efc..97b3084d9 100644 --- a/backend/src/graphql/resolver/TransactionResolver.test.ts +++ b/backend/src/graphql/resolver/TransactionResolver.test.ts @@ -14,6 +14,7 @@ import { v4 as uuidv4 } from 'uuid' import { cleanDB, testEnvironment } from '@test/helpers' import { CONFIG } from '@/config' +import { LOG4JS_BASE_CATEGORY_NAME } from '@/config/const' import { EventType } from '@/event/Events' import { SendCoinsClient } from '@/federation/client/1_0/SendCoinsClient' import { SendCoinsArgs } from '@/federation/client/1_0/model/SendCoinsArgs' @@ -32,7 +33,6 @@ import { garrickOllivander } from '@/seeds/users/garrick-ollivander' import { peterLustig } from '@/seeds/users/peter-lustig' import { stephenHawking } from '@/seeds/users/stephen-hawking' import { getLogger } from 'config-schema/test/testSetup' -import { LOG4JS_BASE_CATEGORY_NAME } from '@/config/const' jest.mock('@/password/EncryptorUtils') diff --git a/backend/src/graphql/resolver/UserResolver.test.ts b/backend/src/graphql/resolver/UserResolver.test.ts index 0edcf30cf..806ae6bda 100644 --- a/backend/src/graphql/resolver/UserResolver.test.ts +++ b/backend/src/graphql/resolver/UserResolver.test.ts @@ -67,10 +67,10 @@ import { stephenHawking } from '@/seeds/users/stephen-hawking' import { printTimeDuration } from '@/util/time' import { objectValuesToArray } from '@/util/utilities' +import { LOG4JS_BASE_CATEGORY_NAME } from '@/config/const' import { clearLogs, getLogger, printLogs } from 'config-schema/test/testSetup' import { LOG4JS_RESOLVER_CATEGORY_NAME } from '.' import { Location2Point } from './util/Location2Point' -import { LOG4JS_BASE_CATEGORY_NAME } from '@/config/const' jest.mock('@/apis/humhub/HumHubClient') jest.mock('@/password/EncryptorUtils') @@ -709,7 +709,9 @@ describe('UserResolver', () => { }) it('logs the error found', () => { - expect(logger.warn).toBeCalledWith(`findUserByEmail failed, user with email=${variables.email} not found`) + expect(logger.warn).toBeCalledWith( + `findUserByEmail failed, user with email=${variables.email} not found`, + ) }) }) @@ -1114,7 +1116,9 @@ describe('UserResolver', () => { }) it('logs warning before throwing error', () => { - expect(logger.warn).toBeCalledWith('email already sent 0 minutes ago, min wait time: 10 minutes') + expect(logger.warn).toBeCalledWith( + 'email already sent 0 minutes ago, min wait time: 10 minutes', + ) }) }) }) @@ -1762,7 +1766,10 @@ describe('UserResolver', () => { }) it('logs the error thrown', () => { - expect(logErrorLogger.error).toBeCalledWith('Could not find user with given ID', admin.id + 1) + expect(logErrorLogger.error).toBeCalledWith( + 'Could not find user with given ID', + admin.id + 1, + ) }) }) @@ -1878,7 +1885,9 @@ describe('UserResolver', () => { ) }) it('logs the error thrown', () => { - expect(logErrorLogger.error).toBeCalledWith('Administrator can not change his own role') + expect(logErrorLogger.error).toBeCalledWith( + 'Administrator can not change his own role', + ) }) }) @@ -1923,7 +1932,10 @@ describe('UserResolver', () => { }) it('logs the error thrown', () => { - expect(logErrorLogger.error).toBeCalledWith('User already has role=', RoleNames.ADMIN) + expect(logErrorLogger.error).toBeCalledWith( + 'User already has role=', + RoleNames.ADMIN, + ) }) }) @@ -1947,7 +1959,10 @@ describe('UserResolver', () => { }) it('logs the error thrown', () => { - expect(logErrorLogger.error).toBeCalledWith('User already has role=', RoleNames.MODERATOR) + expect(logErrorLogger.error).toBeCalledWith( + 'User already has role=', + RoleNames.MODERATOR, + ) }) }) @@ -2041,7 +2056,10 @@ describe('UserResolver', () => { }) it('logs the error thrown', () => { - expect(logErrorLogger.error).toBeCalledWith('Could not find user with given ID', admin.id + 1) + expect(logErrorLogger.error).toBeCalledWith( + 'Could not find user with given ID', + admin.id + 1, + ) }) }) @@ -2111,7 +2129,10 @@ describe('UserResolver', () => { }) it('logs the error thrown', () => { - expect(logErrorLogger.error).toBeCalledWith('Could not find user with given ID', user.id) + expect(logErrorLogger.error).toBeCalledWith( + 'Could not find user with given ID', + user.id, + ) }) }) }) @@ -2187,7 +2208,9 @@ describe('UserResolver', () => { }) it('logs the error thrown', () => { - expect(logger.warn).toBeCalledWith('findUserByEmail failed, user with email=invalid not found') + expect(logger.warn).toBeCalledWith( + 'findUserByEmail failed, user with email=invalid not found', + ) }) }) @@ -2331,7 +2354,10 @@ describe('UserResolver', () => { }) it('logs the error thrown', () => { - expect(logErrorLogger.error).toBeCalledWith('Could not find user with given ID', admin.id + 1) + expect(logErrorLogger.error).toBeCalledWith( + 'Could not find user with given ID', + admin.id + 1, + ) }) }) diff --git a/backend/src/graphql/resolver/UserResolver.ts b/backend/src/graphql/resolver/UserResolver.ts index 861ee3622..2dc571901 100644 --- a/backend/src/graphql/resolver/UserResolver.ts +++ b/backend/src/graphql/resolver/UserResolver.ts @@ -525,8 +525,13 @@ export class UserResolver { return true } if (!canEmailResend(user.emailContact.updatedAt || user.emailContact.createdAt)) { - const diff = durationInMinutesFromDates(user.emailContact.updatedAt || user.emailContact.createdAt, new Date()) - logger.warn(`email already sent ${printTimeDuration(diff)} ago, min wait time: ${printTimeDuration(CONFIG.EMAIL_CODE_REQUEST_TIME)}`) + const diff = durationInMinutesFromDates( + user.emailContact.updatedAt || user.emailContact.createdAt, + new Date(), + ) + logger.warn( + `email already sent ${printTimeDuration(diff)} ago, min wait time: ${printTimeDuration(CONFIG.EMAIL_CODE_REQUEST_TIME)}`, + ) throw new LogError( `Email already sent less than ${printTimeDuration(CONFIG.EMAIL_CODE_REQUEST_TIME)} ago`, ) @@ -751,7 +756,7 @@ export class UserResolver { 'Please enter a valid password with at least 8 characters, upper and lower case letters, at least one number and one special character!', ) } - + if (!(await verifyPassword(user, password))) { logger.debug('old password is invalid') throw new LogError(`Old password is invalid`) @@ -1095,13 +1100,13 @@ export class UserResolver { ): Promise { const logger = createLogger() email = email.trim().toLowerCase() - const user = await findUserByEmail(email) + const user = await findUserByEmail(email) logger.addContext('user', user.id) logger.info('sendActivationEmail...') if (user.deletedAt || user.emailContact.deletedAt) { logger.warn('call for activation of deleted user') throw new Error('User with given email contact is deleted') - } + } user.emailContact.emailResendCount++ await user.emailContact.save() @@ -1165,7 +1170,7 @@ export async function findUserByEmail(email: string): Promise { relations: { userRoles: true, emailContact: true }, }) return dbUser - } catch(e) { + } catch (e) { const logger = createLogger() if (e instanceof EntityNotFoundError) { // TODO: discuss if it is ok to print email in log for this case diff --git a/config-schema/biome.json b/config-schema/biome.json deleted file mode 100644 index 5b6f222fc..000000000 --- a/config-schema/biome.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", - "vcs": { "enabled": false, "clientKind": "git", "useIgnoreFile": false }, - "files": { - "ignoreUnknown": false, - "ignore": ["build", "node_modules", "testSetup.ts"], - "include": ["./src/**/*.js", "./src/**/*.ts"] - }, - "formatter": { - "enabled": true, - "useEditorconfig": true, - "formatWithErrors": false, - "indentStyle": "space", - "indentWidth": 2, - "lineEnding": "lf", - "lineWidth": 100, - "attributePosition": "auto", - "bracketSpacing": true - }, - "organizeImports": { "enabled": true }, - "linter": { - "enabled": true, - "rules": { - "recommended": false, - "complexity": { - "noExtraBooleanCast": "error", - "noMultipleSpacesInRegularExpressionLiterals": "error", - "noUselessCatch": "error", - "noUselessConstructor": "error", - "noUselessLoneBlockStatements": "error", - "noUselessRename": "error", - "noUselessTernary": "error", - "noUselessUndefinedInitialization": "error", - "noVoid": "error", - "noWith": "error", - "useLiteralKeys": "error", - "useRegexLiterals": "error" - }, - "correctness": { - "noConstAssign": "error", - "noConstantCondition": "error", - "noEmptyCharacterClassInRegex": "error", - "noEmptyPattern": "error", - "noGlobalObjectCalls": "error", - "noInnerDeclarations": "error", - "noInvalidConstructorSuper": "error", - "noInvalidUseBeforeDeclaration": "error", - "noNewSymbol": "error", - "noNodejsModules": "off", - "noNonoctalDecimalEscape": "error", - "noPrecisionLoss": "error", - "noSelfAssign": "error", - "noSetterReturn": "error", - "noSwitchDeclarations": "error", - "noUndeclaredVariables": "error", - "noUnreachable": "error", - "noUnreachableSuper": "error", - "noUnsafeFinally": "error", - "noUnsafeOptionalChaining": "error", - "noUnusedLabels": "error", - "noUnusedVariables": "error", - "useArrayLiterals": "error", - "useIsNan": "error", - "useValidForDirection": "error", - "useYield": "error" - }, - "security": { "noGlobalEval": "error" }, - "style": { - "noCommaOperator": "error", - "noDefaultExport": "error", - "noVar": "warn", - "noYodaExpression": "error", - "useBlockStatements": "error", - "useConsistentBuiltinInstantiation": "error", - "useConst": "error", - "useSingleVarDeclarator": "error" - }, - "suspicious": { - "noAsyncPromiseExecutor": "error", - "noCatchAssign": "error", - "noClassAssign": "error", - "noCompareNegZero": "error", - "noConsole": "error", - "noControlCharactersInRegex": "error", - "noDebugger": "error", - "noDoubleEquals": "error", - "noDuplicateCase": "error", - "noDuplicateClassMembers": "error", - "noDuplicateObjectKeys": "error", - "noDuplicateParameters": "error", - "noEmptyBlockStatements": "error", - "noFallthroughSwitchClause": "error", - "noFunctionAssign": "error", - "noGlobalAssign": "error", - "noImportAssign": "error", - "noMisleadingCharacterClass": "error", - "noPrototypeBuiltins": "error", - "noRedeclare": "error", - "noSelfCompare": "error", - "noShadowRestrictedNames": "error", - "noSparseArray": "error", - "noUnsafeNegation": "error", - "useDefaultSwitchClauseLast": "error", - "useGetterReturn": "error", - "useValidTypeof": "error" - } - }, - "ignore": ["**/node_modules", "**/*.min.js", "**/build", "**/coverage"] - }, - "javascript": { - "formatter": { - "jsxQuoteStyle": "single", - "quoteProperties": "asNeeded", - "trailingCommas": "all", - "semicolons": "asNeeded", - "arrowParentheses": "always", - "bracketSameLine": false, - "quoteStyle": "single", - "attributePosition": "auto", - "bracketSpacing": true - }, - "globals": ["document", "navigator", "window"] - }, - "overrides": [ - { - "include": ["*.ts", "*.tsx"], - "linter": { "rules": { "complexity": { "noVoid": "error" } } } - }, - { "include": ["*.test.ts"], "linter": { "rules": {} } } - ] -} diff --git a/config-schema/src/commonSchema.ts b/config-schema/src/commonSchema.ts index bee046c7a..12946fdae 100644 --- a/config-schema/src/commonSchema.ts +++ b/config-schema/src/commonSchema.ts @@ -127,7 +127,9 @@ export const LOG4JS_CONFIG = Joi.string() export const LOG4JS_CONFIG_PLACEHOLDER = Joi.string() .pattern(/^[a-zA-Z0-9-_]+(%v)?\.json$/) - .message('LOG4JS_CONFIG_PLACEHOLDER must be a valid filename ending with .json can contain %v as API Version placeholder before ending') + .message( + 'LOG4JS_CONFIG_PLACEHOLDER must be a valid filename ending with .json can contain %v as API Version placeholder before ending', + ) .description('config file name for log4js config file') .default('log4js-config.json') .required() diff --git a/config-schema/src/const.ts b/config-schema/src/const.ts index 87df0f804..1a593f101 100644 --- a/config-schema/src/const.ts +++ b/config-schema/src/const.ts @@ -1 +1 @@ -export const DECAY_START_TIME = new Date('2021-05-13T17:46:31Z') \ No newline at end of file +export const DECAY_START_TIME = new Date('2021-05-13T17:46:31Z') diff --git a/config-schema/src/log4js-config/coloredContext.test.ts b/config-schema/src/log4js-config/coloredContext.test.ts index 38bde4d96..56a7b7b64 100644 --- a/config-schema/src/log4js-config/coloredContext.test.ts +++ b/config-schema/src/log4js-config/coloredContext.test.ts @@ -1,6 +1,6 @@ -import { createColoredContextLayout } from './coloredContext' -import { levels, LoggingEvent } from 'log4js' +import { LoggingEvent, levels } from 'log4js' import colors from 'yoctocolors-cjs' +import { createColoredContextLayout } from './coloredContext' let defaultLogEvent: LoggingEvent let colorFn: (input: string) => string @@ -76,13 +76,13 @@ describe('createColoredContextLayout', () => { }) it('format withStack: error, withLine: true, withFile: warn', () => { const coloredString = colorFn(`[${startTimeString}] [${levels.INFO}] config:1 -`) - expect(createColoredContextLayout({ - withStack: 'error', - withFile: 'warn', - withLine: true - })(defaultLogEvent)).toBe( - `${coloredString} user=1 message`, - ) + expect( + createColoredContextLayout({ + withStack: 'error', + withFile: 'warn', + withLine: true, + })(defaultLogEvent), + ).toBe(`${coloredString} user=1 message`) }) }) @@ -123,13 +123,13 @@ describe('createColoredContextLayout', () => { }) it('format withStack: error, withLine: true, withFile: warn', () => { const coloredString = colorFn(`[${startTimeString}] [${levels.ERROR}] config -`) - expect(createColoredContextLayout({ - withStack: 'error', - withFile: 'warn', - withLine: true - })(defaultLogEvent)).toBe( - `${coloredString} user=1 message \nstack`, - ) + expect( + createColoredContextLayout({ + withStack: 'error', + withFile: 'warn', + withLine: true, + })(defaultLogEvent), + ).toBe(`${coloredString} user=1 message \nstack`) }) }) }) diff --git a/config-schema/src/log4js-config/coloredContext.ts b/config-schema/src/log4js-config/coloredContext.ts index 0fc7476a8..f8be6b003 100644 --- a/config-schema/src/log4js-config/coloredContext.ts +++ b/config-schema/src/log4js-config/coloredContext.ts @@ -1,6 +1,6 @@ import { Level, LoggingEvent } from 'log4js' import colors from 'yoctocolors-cjs' -import { LogLevel, ColoredContextLayoutConfig } from './types' +import { ColoredContextLayoutConfig, LogLevel } from './types' function colorize(str: string, level: Level): string { switch (level.colour) { @@ -68,7 +68,10 @@ enum DetailKind { File = 'file', Line = 'line', } -function resolveDetailKind(logEvent: LoggingEvent, config: ColoredContextLayoutConfig): DetailKind | undefined { +function resolveDetailKind( + logEvent: LoggingEvent, + config: ColoredContextLayoutConfig, +): DetailKind | undefined { if (logEvent.callStack && isEnabledByLogLevel(logEvent.level, config.withStack)) { return DetailKind.Callstack } @@ -99,7 +102,7 @@ export function createColoredContextLayout(config: ColoredContextLayoutConfig) { result.push(composeContextString(logEvent.context)) } result.push(composeDataString(logEvent.data)) - + if (detailKind === DetailKind.File) { result.push(`\n at ${logEvent.fileName}:${logEvent.lineNumber}`) } diff --git a/config-schema/src/log4js-config/index.test.ts b/config-schema/src/log4js-config/index.test.ts index 5f5ea6b5b..fbc722c0a 100644 --- a/config-schema/src/log4js-config/index.test.ts +++ b/config-schema/src/log4js-config/index.test.ts @@ -2,9 +2,7 @@ import { createLog4jsConfig, defaultCategory } from '.' describe('createLog4jsConfig', () => { it('should create a log4js config', () => { - const config = createLog4jsConfig([ - defaultCategory('test', 'debug') - ]) + const config = createLog4jsConfig([defaultCategory('test', 'debug')]) expect(config).toBeDefined() expect(config.appenders).toBeDefined() expect(config.categories).toBeDefined() @@ -21,8 +19,8 @@ describe('createLog4jsConfig', () => { layout: { type: 'coloredContext', withStack: 'error', - withLine: true - } + withLine: true, + }, }) }) -}) \ No newline at end of file +}) diff --git a/config-schema/src/log4js-config/types/Category.ts b/config-schema/src/log4js-config/types/Category.ts index 880fd141b..3be4e24b3 100644 --- a/config-schema/src/log4js-config/types/Category.ts +++ b/config-schema/src/log4js-config/types/Category.ts @@ -1,5 +1,5 @@ -import { LogLevel } from './LogLevel' import { ColoredContextLayoutConfig } from './ColoredContextLayoutConfig' +import { LogLevel } from './LogLevel' /** * Configuration for a log4js category. diff --git a/config-schema/src/log4js-config/types/ColoredContextLayoutConfig.ts b/config-schema/src/log4js-config/types/ColoredContextLayoutConfig.ts index 7084adfa1..1a01f666f 100644 --- a/config-schema/src/log4js-config/types/ColoredContextLayoutConfig.ts +++ b/config-schema/src/log4js-config/types/ColoredContextLayoutConfig.ts @@ -4,4 +4,4 @@ export type ColoredContextLayoutConfig = { withStack?: LogLevel | boolean withFile?: LogLevel | boolean withLine?: LogLevel | boolean -} \ No newline at end of file +} diff --git a/config-schema/src/log4js-config/types/CustomFileAppender.ts b/config-schema/src/log4js-config/types/CustomFileAppender.ts index 5bb67769c..eab3250a3 100644 --- a/config-schema/src/log4js-config/types/CustomFileAppender.ts +++ b/config-schema/src/log4js-config/types/CustomFileAppender.ts @@ -1,5 +1,5 @@ -import { LogLevel } from './LogLevel' import { ColoredContextLayoutConfig } from './ColoredContextLayoutConfig' +import { LogLevel } from './LogLevel' /** * use default dateFile Template for custom file appenders * diff --git a/federation/src/graphql/api/1_0/resolver/PublicCommunityInfoResolver.test.ts b/federation/src/graphql/api/1_0/resolver/PublicCommunityInfoResolver.test.ts index 781da1a54..e7bf40bed 100644 --- a/federation/src/graphql/api/1_0/resolver/PublicCommunityInfoResolver.test.ts +++ b/federation/src/graphql/api/1_0/resolver/PublicCommunityInfoResolver.test.ts @@ -2,8 +2,8 @@ import { CONFIG } from '@/config' import { LOG4JS_BASE_CATEGORY_NAME } from '@/config/const' import { createServer } from '@/server/createServer' import { createTestClient } from 'apollo-server-testing' -import { getLogger } from 'log4js' import { Community as DbCommunity } from 'database' +import { getLogger } from 'log4js' import { DataSource } from 'typeorm' let query: any diff --git a/federation/src/graphql/api/1_0/resolver/PublicKeyResolver.test.ts b/federation/src/graphql/api/1_0/resolver/PublicKeyResolver.test.ts index c6d516342..13ec75dfc 100644 --- a/federation/src/graphql/api/1_0/resolver/PublicKeyResolver.test.ts +++ b/federation/src/graphql/api/1_0/resolver/PublicKeyResolver.test.ts @@ -2,8 +2,8 @@ import { CONFIG } from '@/config' import { LOG4JS_BASE_CATEGORY_NAME } from '@/config/const' import { createServer } from '@/server/createServer' import { createTestClient } from 'apollo-server-testing' -import { getLogger } from 'log4js' import { FederatedCommunity as DbFederatedCommunity } from 'database' +import { getLogger } from 'log4js' let query: any diff --git a/federation/src/graphql/api/1_0/resolver/SendCoinsResolver.test.ts b/federation/src/graphql/api/1_0/resolver/SendCoinsResolver.test.ts index 6ec69493e..d41ea1936 100644 --- a/federation/src/graphql/api/1_0/resolver/SendCoinsResolver.test.ts +++ b/federation/src/graphql/api/1_0/resolver/SendCoinsResolver.test.ts @@ -3,10 +3,10 @@ import { LOG4JS_BASE_CATEGORY_NAME } from '@/config/const' import { fullName } from '@/graphql/util/fullName' import { cleanDB, testEnvironment } from '@test/helpers' import { ApolloServerTestClient } from 'apollo-server-testing' -import { getLogger } from 'log4js' import { Community as DbCommunity, User as DbUser, UserContact as DbUserContact } from 'database' import Decimal from 'decimal.js-light' import { GraphQLError } from 'graphql' +import { getLogger } from 'log4js' import { DataSource } from 'typeorm' import { SendCoinsArgs } from '../model/SendCoinsArgs' diff --git a/federation/src/graphql/api/1_1/resolver/PublicKeyResolver.test.ts b/federation/src/graphql/api/1_1/resolver/PublicKeyResolver.test.ts index 9d543eec5..40db6db76 100644 --- a/federation/src/graphql/api/1_1/resolver/PublicKeyResolver.test.ts +++ b/federation/src/graphql/api/1_1/resolver/PublicKeyResolver.test.ts @@ -2,8 +2,8 @@ import { CONFIG } from '@/config' import { LOG4JS_BASE_CATEGORY_NAME } from '@/config/const' import { createServer } from '@/server/createServer' import { createTestClient } from 'apollo-server-testing' -import { getLogger } from 'log4js' import { FederatedCommunity as DbFederatedCommunity } from 'database' +import { getLogger } from 'log4js' let query: any diff --git a/federation/src/index.ts b/federation/src/index.ts index de2634465..4492f24fb 100644 --- a/federation/src/index.ts +++ b/federation/src/index.ts @@ -8,7 +8,7 @@ import { CONFIG } from './config' import { LOG4JS_BASE_CATEGORY_NAME } from './config/const' async function main() { - // init logger + // init logger const log4jsConfigFileName = CONFIG.LOG4JS_CONFIG_PLACEHOLDER.replace('%v', CONFIG.FEDERATION_API) initLogger( [defaultCategory('federation', CONFIG.LOG_LEVEL), defaultCategory('apollo', CONFIG.LOG_LEVEL)],