From 044607e2a05f4f574c987ca6ade207f440ad36cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E0=A4=95=E0=A4=BE=E0=A4=B0=E0=A4=A4=E0=A5=8B=E0=A4=AB?= =?UTF-8?q?=E0=A5=8D=E0=A4=AB=E0=A5=87=E0=A4=B2=E0=A4=B8=E0=A5=8D=E0=A4=95?= =?UTF-8?q?=E0=A5=8D=E0=A4=B0=E0=A4=BF=E0=A4=AA=E0=A5=8D=E0=A4=9F=E2=84=A2?= Date: Wed, 5 Jun 2024 09:50:48 +0200 Subject: [PATCH] ci: Consistent tsconfig setup for backend packages and fix pnpm typecheck for composite packages (no-changelog) (#9604) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Iván Ovejero --- .github/workflows/ci-pull-requests.yml | 3 ++ package.json | 4 +-- packages/@n8n/client-oauth2/package.json | 2 +- .../@n8n/client-oauth2/tsconfig.build.json | 1 + packages/@n8n/client-oauth2/tsconfig.json | 2 -- packages/@n8n/codemirror-lang/tsconfig.json | 3 +- packages/@n8n/imap/package.json | 2 +- packages/@n8n/imap/tsconfig.build.json | 1 + packages/@n8n/imap/tsconfig.json | 2 -- packages/@n8n/nodes-langchain/package.json | 2 +- .../@n8n/nodes-langchain/tsconfig.build.json | 5 +--- packages/@n8n/nodes-langchain/tsconfig.json | 30 +++++++------------ packages/@n8n/permissions/package.json | 2 +- packages/@n8n/permissions/tsconfig.build.json | 1 + packages/@n8n/permissions/tsconfig.json | 2 -- packages/cli/package.json | 2 +- packages/core/package.json | 2 +- packages/core/tsconfig.build.json | 1 + packages/core/tsconfig.json | 1 - packages/design-system/src/mixins/locale.ts | 4 +-- packages/design-system/tsconfig.json | 1 - .../Peekalink/test/Peekalink.node.test.ts | 5 ++-- .../test/node/StopAndError.test.ts | 6 ++-- packages/nodes-base/package.json | 2 +- packages/workflow/package.json | 2 +- packages/workflow/tsconfig.build.json | 1 + packages/workflow/tsconfig.json | 1 - tsconfig.backend.json | 3 +- tsconfig.build.json | 1 - 29 files changed, 39 insertions(+), 55 deletions(-) diff --git a/.github/workflows/ci-pull-requests.yml b/.github/workflows/ci-pull-requests.yml index d467189d764..f6e9d8a7d5e 100644 --- a/.github/workflows/ci-pull-requests.yml +++ b/.github/workflows/ci-pull-requests.yml @@ -24,6 +24,9 @@ jobs: - name: Build run: pnpm build + - name: Run typecheck + run: pnpm typecheck + - name: Cache build artifacts uses: actions/cache/save@v4.0.0 with: diff --git a/package.json b/package.json index f87f6981701..ecb2e74ba1b 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "build": "turbo run build", "build:backend": "pnpm --filter=!@n8n/chat --filter=!@n8n/codemirror-lang --filter=!n8n-design-system --filter=!n8n-editor-ui build", "build:frontend": "pnpm --filter=@n8n/chat --filter=@n8n/codemirror-lang --filter=n8n-design-system --filter=n8n-editor-ui build", - "typecheck": "turbo run typecheck", + "typecheck": "pnpm --filter=!@n8n/chat --filter=!@n8n/storybook --filter=!n8n-core --filter=!n8n-editor-ui --filter=!n8n-workflow --filter=!n8n typecheck", "dev": "turbo run dev --parallel --filter=!n8n-design-system --filter=!@n8n/chat", "dev:ai": "turbo run dev --parallel --filter=@n8n/nodes-langchain --filter=n8n --filter=n8n-core", "clean": "turbo run clean --parallel", @@ -26,7 +26,7 @@ "start:tunnel": "./packages/cli/bin/n8n start --tunnel", "start:windows": "cd packages/cli/bin && n8n", "test": "turbo run test", - "test:backend": "pnpm --filter=!@n8n/chat --filter=!@n8n/codemirror-lang --filter=!n8n-design-system --filter=!n8n-editor-ui --filter=!n8n-nodes-base test --filter=!@n8n/n8n-nodes-langchain test", + "test:backend": "pnpm --filter=!@n8n/chat --filter=!@n8n/codemirror-lang --filter=!n8n-design-system --filter=!n8n-editor-ui --filter=!n8n-nodes-base --filter=!@n8n/n8n-nodes-langchain test", "test:nodes": "pnpm --filter=n8n-nodes-base --filter=@n8n/n8n-nodes-langchain test", "test:frontend": "pnpm --filter=@n8n/chat --filter=@n8n/codemirror-lang --filter=n8n-design-system --filter=n8n-editor-ui test", "watch": "turbo run watch --parallel", diff --git a/packages/@n8n/client-oauth2/package.json b/packages/@n8n/client-oauth2/package.json index 96f568f060f..6182d6314ca 100644 --- a/packages/@n8n/client-oauth2/package.json +++ b/packages/@n8n/client-oauth2/package.json @@ -4,7 +4,7 @@ "scripts": { "clean": "rimraf dist .turbo", "dev": "pnpm watch", - "typecheck": "tsc", + "typecheck": "tsc --noEmit", "build": "tsc -p tsconfig.build.json", "format": "prettier --write . --ignore-path ../../../.prettierignore", "lint": "eslint . --quiet", diff --git a/packages/@n8n/client-oauth2/tsconfig.build.json b/packages/@n8n/client-oauth2/tsconfig.build.json index 30910a3bf1e..82375d5e15c 100644 --- a/packages/@n8n/client-oauth2/tsconfig.build.json +++ b/packages/@n8n/client-oauth2/tsconfig.build.json @@ -1,6 +1,7 @@ { "extends": ["./tsconfig.json", "../../../tsconfig.build.json"], "compilerOptions": { + "composite": true, "rootDir": "src", "outDir": "dist", "tsBuildInfoFile": "dist/build.tsbuildinfo" diff --git a/packages/@n8n/client-oauth2/tsconfig.json b/packages/@n8n/client-oauth2/tsconfig.json index a6938155828..8b5a78cf753 100644 --- a/packages/@n8n/client-oauth2/tsconfig.json +++ b/packages/@n8n/client-oauth2/tsconfig.json @@ -3,8 +3,6 @@ "compilerOptions": { "rootDir": ".", "types": ["node", "jest"], - "composite": true, - "noEmit": true, "baseUrl": "src", "paths": { "@/*": ["./*"] diff --git a/packages/@n8n/codemirror-lang/tsconfig.json b/packages/@n8n/codemirror-lang/tsconfig.json index 77ff04eab73..04a4944207f 100644 --- a/packages/@n8n/codemirror-lang/tsconfig.json +++ b/packages/@n8n/codemirror-lang/tsconfig.json @@ -2,8 +2,7 @@ "extends": "../../../tsconfig.json", "compilerOptions": { "rootDir": ".", - "tsBuildInfoFile": "dist/typecheck.tsbuildinfo", - "strict": true + "tsBuildInfoFile": "dist/typecheck.tsbuildinfo" }, "include": ["src/**/*.ts", "test/**/*.ts"] } diff --git a/packages/@n8n/imap/package.json b/packages/@n8n/imap/package.json index b0c19477304..f8ffd762caa 100644 --- a/packages/@n8n/imap/package.json +++ b/packages/@n8n/imap/package.json @@ -4,7 +4,7 @@ "scripts": { "clean": "rimraf dist .turbo", "dev": "pnpm watch", - "typecheck": "tsc", + "typecheck": "tsc --noEmit", "build": "tsc -p tsconfig.build.json", "format": "prettier --write . --ignore-path ../../../.prettierignore", "lint": "eslint . --quiet", diff --git a/packages/@n8n/imap/tsconfig.build.json b/packages/@n8n/imap/tsconfig.build.json index 30910a3bf1e..82375d5e15c 100644 --- a/packages/@n8n/imap/tsconfig.build.json +++ b/packages/@n8n/imap/tsconfig.build.json @@ -1,6 +1,7 @@ { "extends": ["./tsconfig.json", "../../../tsconfig.build.json"], "compilerOptions": { + "composite": true, "rootDir": "src", "outDir": "dist", "tsBuildInfoFile": "dist/build.tsbuildinfo" diff --git a/packages/@n8n/imap/tsconfig.json b/packages/@n8n/imap/tsconfig.json index ca1ca3154c5..9c32bd67a1e 100644 --- a/packages/@n8n/imap/tsconfig.json +++ b/packages/@n8n/imap/tsconfig.json @@ -3,8 +3,6 @@ "compilerOptions": { "rootDir": ".", "types": ["node", "jest"], - "composite": true, - "noEmit": true, "baseUrl": "src", "tsBuildInfoFile": "dist/typecheck.tsbuildinfo" }, diff --git a/packages/@n8n/nodes-langchain/package.json b/packages/@n8n/nodes-langchain/package.json index 0dc7d50ac82..0f640ac34ef 100644 --- a/packages/@n8n/nodes-langchain/package.json +++ b/packages/@n8n/nodes-langchain/package.json @@ -12,7 +12,7 @@ "scripts": { "clean": "rimraf dist .turbo", "dev": "pnpm run watch", - "typecheck": "tsc", + "typecheck": "tsc --noEmit", "build": "tsc -p tsconfig.build.json && pnpm n8n-copy-icons && pnpm build:metadata", "build:metadata": "pnpm n8n-generate-known && pnpm n8n-generate-ui-types", "format": "prettier nodes credentials --write", diff --git a/packages/@n8n/nodes-langchain/tsconfig.build.json b/packages/@n8n/nodes-langchain/tsconfig.build.json index a3b8ff9a405..66ebb20b174 100644 --- a/packages/@n8n/nodes-langchain/tsconfig.build.json +++ b/packages/@n8n/nodes-langchain/tsconfig.build.json @@ -1,9 +1,6 @@ { - "extends": ["./tsconfig.json"], + "extends": ["./tsconfig.json", "../../../tsconfig.build.json"], "compilerOptions": { - "types": ["node"], - "noEmit": false, - "declaration": true, "outDir": "dist", "tsBuildInfoFile": "dist/build.tsbuildinfo" }, diff --git a/packages/@n8n/nodes-langchain/tsconfig.json b/packages/@n8n/nodes-langchain/tsconfig.json index 734160344cb..f210bbc5b3b 100644 --- a/packages/@n8n/nodes-langchain/tsconfig.json +++ b/packages/@n8n/nodes-langchain/tsconfig.json @@ -1,24 +1,14 @@ { + "extends": ["../../../tsconfig.json", "../../../tsconfig.backend.json"], "compilerOptions": { - "strict": true, - "module": "commonjs", - "moduleResolution": "node", - "target": "es2019", - "lib": ["es2019", "es2020", "es2022.error"], - "removeComments": true, - "useUnknownInCatchVariables": false, - "forceConsistentCasingInFileNames": true, - "noImplicitAny": true, - "noImplicitReturns": true, - "strictNullChecks": true, - "preserveConstEnums": true, - "esModuleInterop": true, - "resolveJsonModule": true, - "incremental": true, - "declaration": true, - "sourceMap": true, - "skipLibCheck": true, - "outDir": "./dist/" + "lib": ["es2020", "es2022.error"], + "tsBuildInfoFile": "dist/typecheck.tsbuildinfo", + // TODO: remove all options below this line + "useUnknownInCatchVariables": false }, - "include": ["credentials/**/*", "nodes/**/*", "utils/**/*.ts", "nodes/**/*.json", "types/*.ts"] + "include": ["credentials/**/*", "nodes/**/*", "utils/**/*.ts", "nodes/**/*.json", "types/*.ts"], + "references": [ + { "path": "../../workflow/tsconfig.build.json" }, + { "path": "../../core/tsconfig.build.json" } + ] } diff --git a/packages/@n8n/permissions/package.json b/packages/@n8n/permissions/package.json index be477741699..e39b333c849 100644 --- a/packages/@n8n/permissions/package.json +++ b/packages/@n8n/permissions/package.json @@ -4,7 +4,7 @@ "scripts": { "clean": "rimraf dist .turbo", "dev": "pnpm watch", - "typecheck": "tsc", + "typecheck": "tsc --noEmit", "build": "tsc -p tsconfig.build.json", "format": "prettier --write . --ignore-path ../../../.prettierignore", "lint": "eslint . --quiet", diff --git a/packages/@n8n/permissions/tsconfig.build.json b/packages/@n8n/permissions/tsconfig.build.json index 30910a3bf1e..82375d5e15c 100644 --- a/packages/@n8n/permissions/tsconfig.build.json +++ b/packages/@n8n/permissions/tsconfig.build.json @@ -1,6 +1,7 @@ { "extends": ["./tsconfig.json", "../../../tsconfig.build.json"], "compilerOptions": { + "composite": true, "rootDir": "src", "outDir": "dist", "tsBuildInfoFile": "dist/build.tsbuildinfo" diff --git a/packages/@n8n/permissions/tsconfig.json b/packages/@n8n/permissions/tsconfig.json index a6938155828..8b5a78cf753 100644 --- a/packages/@n8n/permissions/tsconfig.json +++ b/packages/@n8n/permissions/tsconfig.json @@ -3,8 +3,6 @@ "compilerOptions": { "rootDir": ".", "types": ["node", "jest"], - "composite": true, - "noEmit": true, "baseUrl": "src", "paths": { "@/*": ["./*"] diff --git a/packages/cli/package.json b/packages/cli/package.json index 48c4c469936..18424d013cc 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -21,7 +21,7 @@ }, "scripts": { "clean": "rimraf dist .turbo", - "typecheck": "tsc", + "typecheck": "tsc --noEmit", "build": "tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json && node scripts/build.mjs", "buildAndDev": "pnpm run build && pnpm run dev", "dev": "concurrently -k -n \"TypeScript,Node\" -c \"yellow.bold,cyan.bold\" \"npm run watch\" \"nodemon\"", diff --git a/packages/core/package.json b/packages/core/package.json index 2e130e39fce..5f275454193 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -22,7 +22,7 @@ }, "scripts": { "clean": "rimraf dist .turbo", - "typecheck": "tsc", + "typecheck": "tsc --noEmit", "build": "tsc -p tsconfig.build.json", "dev": "pnpm watch", "format": "prettier --write . --ignore-path ../../.prettierignore", diff --git a/packages/core/tsconfig.build.json b/packages/core/tsconfig.build.json index 1e8a2ff7fa4..1b9ea8720bd 100644 --- a/packages/core/tsconfig.build.json +++ b/packages/core/tsconfig.build.json @@ -1,6 +1,7 @@ { "extends": ["./tsconfig.json", "../../tsconfig.build.json"], "compilerOptions": { + "composite": true, "rootDir": "src", "outDir": "dist", "tsBuildInfoFile": "dist/build.tsbuildinfo" diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json index cf60622e2be..401bb177c4c 100644 --- a/packages/core/tsconfig.json +++ b/packages/core/tsconfig.json @@ -2,7 +2,6 @@ "extends": ["../../tsconfig.json", "../../tsconfig.backend.json"], "compilerOptions": { "rootDir": ".", - "composite": true, "baseUrl": "src", "paths": { "@/*": ["./*"] diff --git a/packages/design-system/src/mixins/locale.ts b/packages/design-system/src/mixins/locale.ts index a695c0ca555..7c4ab37a6bd 100644 --- a/packages/design-system/src/mixins/locale.ts +++ b/packages/design-system/src/mixins/locale.ts @@ -2,8 +2,8 @@ import { t } from '../locale'; export default { methods: { - t(path: string, ...args: string[]) { - return t.call(this, path, ...args); + t(path: string, options: object) { + return t.call(this, path, options); }, }, }; diff --git a/packages/design-system/tsconfig.json b/packages/design-system/tsconfig.json index afd462cb8f9..fd2232a2be0 100644 --- a/packages/design-system/tsconfig.json +++ b/packages/design-system/tsconfig.json @@ -17,7 +17,6 @@ }, "lib": ["esnext", "dom", "dom.iterable", "scripthost"], // TODO: remove all options below this line - "strict": false, "noImplicitAny": false, "noImplicitReturns": false }, diff --git a/packages/nodes-base/nodes/Peekalink/test/Peekalink.node.test.ts b/packages/nodes-base/nodes/Peekalink/test/Peekalink.node.test.ts index a51dc545feb..1abfe7b995e 100644 --- a/packages/nodes-base/nodes/Peekalink/test/Peekalink.node.test.ts +++ b/packages/nodes-base/nodes/Peekalink/test/Peekalink.node.test.ts @@ -2,6 +2,7 @@ import { apiUrl } from '../Peekalink.node'; import type { WorkflowTestData } from '@test/nodes/types'; import { executeWorkflow } from '@test/nodes/ExecuteWorkflow'; import * as Helpers from '@test/nodes/Helpers'; +import { NodeConnectionType } from 'n8n-workflow'; describe('Peekalink Node', () => { const exampleComPreview = { @@ -57,7 +58,7 @@ describe('Peekalink Node', () => { [ { node: 'Peekalink', - type: 'main', + type: NodeConnectionType.Main, index: 0, }, ], @@ -129,7 +130,7 @@ describe('Peekalink Node', () => { [ { node: 'Peekalink', - type: 'main', + type: NodeConnectionType.Main, index: 0, }, ], diff --git a/packages/nodes-base/nodes/StopAndError/test/node/StopAndError.test.ts b/packages/nodes-base/nodes/StopAndError/test/node/StopAndError.test.ts index dc0c630de68..4cc003fa7f3 100644 --- a/packages/nodes-base/nodes/StopAndError/test/node/StopAndError.test.ts +++ b/packages/nodes-base/nodes/StopAndError/test/node/StopAndError.test.ts @@ -1,5 +1,5 @@ /* eslint-disable @typescript-eslint/no-loop-func */ -import type { IDataObject } from 'n8n-workflow'; +import { NodeConnectionType, type IDataObject } from 'n8n-workflow'; import type { WorkflowTestData } from '@test/nodes/types'; import { executeWorkflow } from '@test/nodes/ExecuteWorkflow'; import * as Helpers from '@test/nodes/Helpers'; @@ -49,12 +49,12 @@ describe('Execute Stop and Error Node', () => { [ { node: 'Stop and Error1', - type: 'main', + type: NodeConnectionType.Main, index: 0, }, { node: 'Stop and Error', - type: 'main', + type: NodeConnectionType.Main, index: 0, }, ], diff --git a/packages/nodes-base/package.json b/packages/nodes-base/package.json index 904a1753da1..ee93ae804de 100644 --- a/packages/nodes-base/package.json +++ b/packages/nodes-base/package.json @@ -16,7 +16,7 @@ "scripts": { "clean": "rimraf dist .turbo", "dev": "pnpm watch", - "typecheck": "tsc", + "typecheck": "tsc --noEmit", "build": "tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json && pnpm n8n-copy-icons && pnpm n8n-generate-translations && pnpm build:metadata", "build:metadata": "pnpm n8n-generate-known && pnpm n8n-generate-ui-types", "format": "prettier --write . --ignore-path ../../.prettierignore", diff --git a/packages/workflow/package.json b/packages/workflow/package.json index 67618d22da8..93df4dbc7e2 100644 --- a/packages/workflow/package.json +++ b/packages/workflow/package.json @@ -26,7 +26,7 @@ "scripts": { "clean": "rimraf dist .turbo", "dev": "pnpm watch", - "typecheck": "tsc", + "typecheck": "tsc --noEmit", "build": "tsc -p tsconfig.build.json", "format": "prettier --write . --ignore-path ../../.prettierignore", "lint": "eslint . --quiet", diff --git a/packages/workflow/tsconfig.build.json b/packages/workflow/tsconfig.build.json index 1e8a2ff7fa4..1b9ea8720bd 100644 --- a/packages/workflow/tsconfig.build.json +++ b/packages/workflow/tsconfig.build.json @@ -1,6 +1,7 @@ { "extends": ["./tsconfig.json", "../../tsconfig.build.json"], "compilerOptions": { + "composite": true, "rootDir": "src", "outDir": "dist", "tsBuildInfoFile": "dist/build.tsbuildinfo" diff --git a/packages/workflow/tsconfig.json b/packages/workflow/tsconfig.json index cf7874454e1..2f0507b5659 100644 --- a/packages/workflow/tsconfig.json +++ b/packages/workflow/tsconfig.json @@ -2,7 +2,6 @@ "extends": "../../tsconfig.json", "compilerOptions": { "rootDir": ".", - "composite": true, "baseUrl": "src", "paths": { "@/*": ["./*"] diff --git a/tsconfig.backend.json b/tsconfig.backend.json index 438fc8851bd..34876f426e8 100644 --- a/tsconfig.backend.json +++ b/tsconfig.backend.json @@ -1,6 +1,5 @@ { "compilerOptions": { - "types": ["node", "jest"], - "noEmit": true + "types": ["node", "jest"] } } diff --git a/tsconfig.build.json b/tsconfig.build.json index 8a1a0105e38..a0401dca2b1 100644 --- a/tsconfig.build.json +++ b/tsconfig.build.json @@ -1,7 +1,6 @@ { "compilerOptions": { "types": ["node"], - "noEmit": false, "noUnusedLocals": false, "noUnusedParameters": false, "declaration": true