diff --git a/.github/workflows/ci-pull-requests.yml b/.github/workflows/ci-pull-requests.yml index d467189d76..f6e9d8a7d5 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 f87f698170..ecb2e74ba1 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 96f568f060..6182d6314c 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 30910a3bf1..82375d5e15 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 a693815582..8b5a78cf75 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 77ff04eab7..04a4944207 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 b0c1947730..f8ffd762ca 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 30910a3bf1..82375d5e15 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 ca1ca3154c..9c32bd67a1 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 0dc7d50ac8..0f640ac34e 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 a3b8ff9a40..66ebb20b17 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 734160344c..f210bbc5b3 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 be47774169..e39b333c84 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 30910a3bf1..82375d5e15 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 a693815582..8b5a78cf75 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 48c4c46993..18424d013c 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 2e130e39fc..5f27545419 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 1e8a2ff7fa..1b9ea8720b 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 cf60622e2b..401bb177c4 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 a695c0ca55..7c4ab37a6b 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 afd462cb8f..fd2232a2be 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 a51dc545fe..1abfe7b995 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 dc0c630de6..4cc003fa7f 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 904a1753da..ee93ae804d 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 67618d22da..93df4dbc7e 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 1e8a2ff7fa..1b9ea8720b 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 cf7874454e..2f0507b565 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 438fc8851b..34876f426e 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 8a1a0105e3..a0401dca2b 100644 --- a/tsconfig.build.json +++ b/tsconfig.build.json @@ -1,7 +1,6 @@ { "compilerOptions": { "types": ["node"], - "noEmit": false, "noUnusedLocals": false, "noUnusedParameters": false, "declaration": true