diff --git a/packages/backend/.eslintrc.json b/packages/backend/.eslintrc.json index 546c349899..039e6d6a59 100644 --- a/packages/backend/.eslintrc.json +++ b/packages/backend/.eslintrc.json @@ -1,9 +1,23 @@ { - "extends": ["../../.eslintrc.json"], - "ignorePatterns": ["!**/*"], + "extends": [ + "../../.eslintrc.json" + ], + "ignorePatterns": [ + "!**/*" + ], "overrides": [ { - "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], + "files": [ + "*.ts", + "*.tsx", + "*.js", + "*.jsx" + ], + "parserOptions": { + "project": [ + "packages/backend/tsconfig.*?.json" + ] + }, "rules": { "brace-style": "off", "comma-dangle": "off", @@ -11,19 +25,54 @@ "no-console": "error", "quotes": "off", "semi": "off", - "@typescript-eslint/brace-style": ["error", "stroustrup"], - "@typescript-eslint/comma-dangle": ["error", "always-multiline"], - "@typescript-eslint/indent": ["error", 4], - "@typescript-eslint/quotes": ["error", "single"], - "@typescript-eslint/semi": ["warn", "never"] + "@typescript-eslint/brace-style": [ + "error", + "stroustrup" + ], + "@typescript-eslint/comma-dangle": [ + "error", + "always-multiline" + ], + "@typescript-eslint/indent": [ + "error", + 4 + ], + "@typescript-eslint/quotes": [ + "error", + "single" + ], + "@typescript-eslint/semi": [ + "warn", + "never" + ], + "no-unused-vars": "off", + "@typescript-eslint/no-explicit-any": "error", + "@typescript-eslint/no-unused-vars": "error", + "@typescript-eslint/no-redundant-type-constituents": "error", + "@typescript-eslint/await-thenable": "error", + "@typescript-eslint/adjacent-overload-signatures": "error", + "comma-spacing": "off", + "@typescript-eslint/comma-spacing": [ + "error", + { + "before": false, + "after": true + } + ] } }, { - "files": ["*.ts", "*.tsx"], + "files": [ + "*.ts", + "*.tsx" + ], "rules": {} }, { - "files": ["*.js", "*.jsx"], + "files": [ + "*.js", + "*.jsx" + ], "rules": {} } ] diff --git a/packages/backend/src/app/app-connection/app-connection.entity.ts b/packages/backend/src/app/app-connection/app-connection.entity.ts index 53044c88b2..604e1c7b91 100644 --- a/packages/backend/src/app/app-connection/app-connection.entity.ts +++ b/packages/backend/src/app/app-connection/app-connection.entity.ts @@ -3,7 +3,7 @@ import { EntitySchema } from 'typeorm' import { ApIdSchema, BaseColumnSchemaPart } from '../helper/base-entity' import { EncryptedObject } from '../helper/encryption' -export type AppConnectionSchema = AppConnection & { project: Project , value: EncryptedObject} +export type AppConnectionSchema = AppConnection & { project: Project, value: EncryptedObject} export const AppConnectionEntity = new EntitySchema({ name: 'app_connection', diff --git a/packages/backend/src/app/app-connection/app-connection.service.ts b/packages/backend/src/app/app-connection/app-connection.service.ts index 041c2aaa01..616b021dc0 100644 --- a/packages/backend/src/app/app-connection/app-connection.service.ts +++ b/packages/backend/src/app/app-connection/app-connection.service.ts @@ -18,7 +18,7 @@ import { databaseConnection } from '../database/database-connection' import { buildPaginator } from '../helper/pagination/build-paginator' import { paginationHelper } from '../helper/pagination/pagination-utils' import { AppConnectionEntity } from './app-connection.entity' -import axios, { AxiosError } from 'axios' +import axios from 'axios' import { createRedisLock } from '../database/redis-connection' import { decryptObject, encryptObject } from '../helper/encryption' import { getEdition } from '../helper/secret-helper' @@ -29,7 +29,7 @@ const appConnectionRepo = databaseConnection.getRepository(AppConnectionEntity) export const appConnectionService = { async upsert({ projectId, request }: { projectId: ProjectId, request: UpsertConnectionRequest }): Promise { - let response: any = request.value + let response: Record = request.value switch (request.value.type) { case AppConnectionType.CLOUD_OAUTH2: response = await claimWithCloud({ @@ -216,7 +216,7 @@ async function claim(request: { redirectUrl: string, code: string, codeVerifier: string -}): Promise { +}): Promise> { try { const params = { client_id: request.clientId, @@ -239,7 +239,7 @@ async function claim(request: { ).data return { ...formatOAuth2Response(response), client_id: request.clientId, client_secret: request.clientSecret } } - catch (e: unknown | AxiosError) { + catch (e: unknown) { logger.error(e) throw new ActivepiecesError({ code: ErrorCode.INVALID_CLAIM, params: { @@ -253,11 +253,11 @@ async function claim(request: { async function claimWithCloud(request: { pieceName: string; code: string; codeVerifier: string, edition: string; clientId: string -}): Promise { +}): Promise> { try { return (await axios.post('https://secrets.activepieces.com/claim', request)).data } - catch (e: unknown | AxiosError) { + catch (e: unknown) { logger.error(e) throw new ActivepiecesError({ code: ErrorCode.INVALID_CLOUD_CLAIM, params: { @@ -267,7 +267,7 @@ async function claimWithCloud(request: { } } -function formatOAuth2Response(response: Record) { +function formatOAuth2Response(response: unknown) { const secondsSinceEpoch = Math.round(Date.now() / 1000) const formattedResponse: BaseOAuth2ConnectionValue = { access_token: response['access_token'], @@ -283,7 +283,7 @@ function formatOAuth2Response(response: Record) { return formattedResponse } -function deleteProps(obj: Record, prop: string[]) { +function deleteProps(obj: Record, prop: string[]) { for (const p of prop) { delete obj[p] } diff --git a/packages/backend/src/app/app-event-routing/app-event-routing.module.ts b/packages/backend/src/app/app-event-routing/app-event-routing.module.ts index fd5292dea4..6a844c019a 100755 --- a/packages/backend/src/app/app-event-routing/app-event-routing.module.ts +++ b/packages/backend/src/app/app-event-routing/app-event-routing.module.ts @@ -19,7 +19,7 @@ export const appEventRoutingController = async (fastify: FastifyInstance) => { }, async ( request: FastifyRequest<{ - Body: any; + Body: unknown; Params: { pieceName: string; } @@ -38,7 +38,7 @@ export const appEventRoutingController = async (fastify: FastifyInstance) => { pieceName: pieceName, event: eventPayload, }) - + logger.info(`Received event ${event} with identifier ${identifierValue} in app ${pieceName}`) if (event && identifierValue) { const listeners = await appEventRoutingService.listListeners({ @@ -58,4 +58,4 @@ export const appEventRoutingController = async (fastify: FastifyInstance) => { }, ) -} \ No newline at end of file +} diff --git a/packages/backend/src/app/authentication/authentication.controller.ts b/packages/backend/src/app/authentication/authentication.controller.ts index ea81cbf33e..479039bf2a 100755 --- a/packages/backend/src/app/authentication/authentication.controller.ts +++ b/packages/backend/src/app/authentication/authentication.controller.ts @@ -15,7 +15,7 @@ export const authenticationController = async (app: FastifyInstance) => { }, async (request: FastifyRequest<{ Body: SignUpRequest }>, reply: FastifyReply) => { const userCreated = await flagService.getOne(ApFlagId.USER_CREATED) - const signUpEnabled = (await system.getBoolean(SystemProp.SIGN_UP_ENABLED)) ?? false + const signUpEnabled = system.getBoolean(SystemProp.SIGN_UP_ENABLED) ?? false if (userCreated && !signUpEnabled) { reply.code(403).send({ message: 'Sign up is disabled', diff --git a/packages/backend/src/app/collections/collection.controller.ts b/packages/backend/src/app/collections/collection.controller.ts index 9829c9282d..3f463fb45f 100755 --- a/packages/backend/src/app/collections/collection.controller.ts +++ b/packages/backend/src/app/collections/collection.controller.ts @@ -75,7 +75,7 @@ export const collectionController = async (fastify: FastifyInstance) => { Body: UpdateCollectionRequest; }>, ) => { - const collection = await collectionService.getOne({ id: request.params.collectionId,projectId: request.principal.projectId }) + const collection = await collectionService.getOne({ id: request.params.collectionId, projectId: request.principal.projectId }) if (collection === null) { throw new ActivepiecesError({ code: ErrorCode.COLLECTION_NOT_FOUND, diff --git a/packages/backend/src/app/flows/flow-version/flow-version.service.ts b/packages/backend/src/app/flows/flow-version/flow-version.service.ts index 68bb57fcd7..780e0f0929 100755 --- a/packages/backend/src/app/flows/flow-version/flow-version.service.ts +++ b/packages/backend/src/app/flows/flow-version/flow-version.service.ts @@ -238,7 +238,7 @@ function validateProps(props: PieceProperty, input: Record) { function buildSchema(props: PieceProperty): TSchema { const entries = Object.entries(props) - const nonNullableUnknownPropType = Type.Not(Type.Null(),Type.Unknown()) + const nonNullableUnknownPropType = Type.Not(Type.Null(), Type.Unknown()) const propsSchema: Record = {} for (let i = 0; i < entries.length; ++i) { const property = entries[i][1] @@ -251,7 +251,7 @@ function buildSchema(props: PieceProperty): TSchema { }) break case PropertyType.CHECKBOX: - propsSchema[name] = Type.Union([Type.Boolean(),Type.String({})]) + propsSchema[name] = Type.Union([Type.Boolean(), Type.String({})]) break case PropertyType.NUMBER: // Because it could be a variable diff --git a/packages/backend/src/app/flows/flow.service.ts b/packages/backend/src/app/flows/flow.service.ts index 13b21218ea..ed8d5c4285 100755 --- a/packages/backend/src/app/flows/flow.service.ts +++ b/packages/backend/src/app/flows/flow.service.ts @@ -113,7 +113,7 @@ export const flowService = { } }, async update({ flowId, projectId, request }: { projectId: ProjectId, flowId: FlowId, request: FlowOperationRequest }): Promise { - const flowLock = await createRedisLock() + const flowLock = createRedisLock() try { await flowLock.acquire(flowId) diff --git a/packages/backend/src/app/flows/trigger-events/trigger-event.service.ts b/packages/backend/src/app/flows/trigger-events/trigger-event.service.ts index 37685c355c..b791c00bfd 100644 --- a/packages/backend/src/app/flows/trigger-events/trigger-event.service.ts +++ b/packages/backend/src/app/flows/trigger-events/trigger-event.service.ts @@ -7,7 +7,7 @@ import { ProjectId, SeekPage, Trigger, - TriggerEvent , + TriggerEvent, TriggerHookType, TriggerType, } from '@activepieces/shared' diff --git a/packages/backend/src/app/helper/engine-helper.ts b/packages/backend/src/app/helper/engine-helper.ts index 4a3391e63f..70b9c6b284 100644 --- a/packages/backend/src/app/helper/engine-helper.ts +++ b/packages/backend/src/app/helper/engine-helper.ts @@ -108,7 +108,7 @@ export const engineHelper = { return result as void }, - async executeProp(operation: ExecutePropsOptions): Promise | Record> { + async executeProp(operation: ExecutePropsOptions): Promise | Record> { const sandbox = sandboxManager.obtainSandbox() let result diff --git a/packages/backend/src/app/helper/openapi/openapi.controller.ts b/packages/backend/src/app/helper/openapi/openapi.controller.ts index edd5a38da4..a9e08ac8b0 100644 --- a/packages/backend/src/app/helper/openapi/openapi.controller.ts +++ b/packages/backend/src/app/helper/openapi/openapi.controller.ts @@ -4,7 +4,7 @@ export const openapiController = async (fastify: FastifyInstance) => { fastify.get( '/', async () => { - return JSON.stringify(fastify.swagger(),null,2) + return JSON.stringify(fastify.swagger(), null, 2) }, ) } \ No newline at end of file diff --git a/packages/backend/src/app/helper/pagination/pagination-utils.ts b/packages/backend/src/app/helper/pagination/pagination-utils.ts index e778f0a5fc..8b0e188867 100755 --- a/packages/backend/src/app/helper/pagination/pagination-utils.ts +++ b/packages/backend/src/app/helper/pagination/pagination-utils.ts @@ -9,7 +9,7 @@ export function btoa(value: string): string { return Buffer.from(value).toString('base64') } -export function encodeByType(type: string, value: any): string | null { +export function encodeByType(type: string, value: unknown): string | null { if (value === null) return null switch (type) { @@ -21,14 +21,14 @@ export function encodeByType(type: string, value: any): string | null { return `${value}` } case 'string': { - return encodeURIComponent(value) + return encodeURIComponent(value as string) } case 'object': { /** * if reflection type is Object, check whether an object is a date. * see: https://github.com/rbuckton/reflect-metadata/issues/84 */ - if (typeof value.getTime === 'function') { + if (typeof (value as Record).getTime === 'function') { return (value as Date).getTime().toString() } diff --git a/packages/backend/src/app/helper/pagination/paginator.ts b/packages/backend/src/app/helper/pagination/paginator.ts index cd2d2817fa..b08661c448 100755 --- a/packages/backend/src/app/helper/pagination/paginator.ts +++ b/packages/backend/src/app/helper/pagination/paginator.ts @@ -13,7 +13,7 @@ export enum Order { DESC = 'DESC', } -export type CursorParam = Record +export type CursorParam = Record export interface CursorResult { beforeCursor: string | null; diff --git a/packages/backend/src/app/workers/flow-worker/flow-worker.ts b/packages/backend/src/app/workers/flow-worker/flow-worker.ts index f6aea2352b..7bed80f009 100755 --- a/packages/backend/src/app/workers/flow-worker/flow-worker.ts +++ b/packages/backend/src/app/workers/flow-worker/flow-worker.ts @@ -110,7 +110,7 @@ async function downloadFiles( projectId: ProjectId, flowVersion: FlowVersion, ): Promise { - const flowLock = await createRedisLock() + const flowLock = createRedisLock() try { logger.info(`[${flowVersion.id}] Acquiring flow lock to build codes`) await flowLock.acquire(flowVersion.id) diff --git a/packages/backend/tsconfig.spec.json b/packages/backend/tsconfig.spec.json index 9b2a121d11..cf0d7db936 100644 --- a/packages/backend/tsconfig.spec.json +++ b/packages/backend/tsconfig.spec.json @@ -9,6 +9,9 @@ "jest.config.ts", "src/**/*.test.ts", "src/**/*.spec.ts", - "src/**/*.d.ts" + "src/**/*.d.ts", + "test/**/*.test.ts", + "test/**/*.spec.ts", + "test/**/*.d.ts", ] }