fix(typescript): Use consistent typescript configs - N8N-4552 (#4049)

fix(typescript): Use consistent typescript configs

make all packages inherit tsconfig from the root tsconfig
skips building tests. reformat all tsconfigs with prettier.
This commit is contained in:
कारतोफ्फेलस्क्रिप्ट™ 2022-09-09 18:00:18 +02:00 committed by GitHub
parent 2c7ef1e550
commit 9267e8fb12
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
18 changed files with 98 additions and 268 deletions

View file

@ -7,7 +7,7 @@ RUN \
apk --no-cache add git && \
npm install -g run-script-os turbo
COPY turbo.json package.json package-lock.json ./
COPY turbo.json package.json package-lock.json tsconfig.json ./
COPY packages ./packages
RUN chown -R node:node .
@ -21,7 +21,7 @@ RUN \
# TODO: removing dev dependecies is deleting `bn.js`, which breaks the Snowflake node
npm prune --omit=dev && \
npm i --omit=dev bn.js && \
find . -type f -name "*.ts" -o -name "*.js.map" -o -name "*.vue" | xargs rm &&\
find . -type f -name "*.ts" -o -name "*.js.map" -o -name "*.vue" -o -name "tsconfig.json" | xargs rm &&\
rm -rf node_modules/.cache packages/*/node_modules/.cache packages/*/.turbo .config .npm /tmp/*

View file

@ -1,7 +1,7 @@
module.exports = {
verbose: true,
transform: {
'^.+\\.ts?$': 'ts-jest',
'^.+\\.ts$': 'ts-jest',
},
testURL: 'http://localhost/',
testRegex: '(/__tests__/.*|(\\.|/)(test))\\.ts$',

View file

@ -1,40 +1,14 @@
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"lib": [
"es2017",
"ES2020.Promise"
],
"types": [
"node",
"jest"
],
"module": "commonjs",
"noImplicitAny": true,
"removeComments": true,
"incremental": true,
"strictNullChecks": true,
"forceConsistentCasingInFileNames": true,
"noImplicitReturns": true,
"preserveConstEnums": true,
"declaration": true,
"outDir": "./dist/",
"target": "es2017",
"sourceMap": true,
"outDir": "dist",
"types": ["node", "jest"],
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"esModuleInterop": true
// TODO: remove all options below this line
"strict": false,
"noUnusedLocals": false,
"useUnknownInCatchVariables": false
},
"include": [
"**/*.d.ts",
"commands/**/*",
"index.ts",
"config/**/*",
"src/**/*",
"test/**/*"
],
"exclude": [
"dist/**/*",
"node_modules/**/*",
"**/*.spec.ts"
]
"include": ["**/*.d.ts", "commands/**/*", "config/**/*", "src/**/*"]
}

View file

@ -61,17 +61,16 @@
},
"jest": {
"transform": {
"^.+\\.tsx?$": "ts-jest"
"^.+\\.ts$": "ts-jest"
},
"testURL": "http://localhost/",
"testRegex": "(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$",
"testRegex": "(/__tests__/.*|(\\.|/)(test|spec))\\.(js|ts)$",
"testPathIgnorePatterns": [
"/dist/",
"/node_modules/"
],
"moduleFileExtensions": [
"ts",
"tsx",
"js",
"json",
"node"

View file

@ -1,35 +1,11 @@
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"lib": [
"es2019"
],
"types": [
"node",
"jest"
],
"module": "commonjs",
"incremental": true,
"removeComments": true,
"forceConsistentCasingInFileNames": true,
"noImplicitReturns": true,
"strict": true,
"noUnusedLocals": true,
"preserveConstEnums": true,
"declaration": true,
"outDir": "./dist/",
"target": "es2019",
"sourceMap": true,
"esModuleInterop": true,
"useUnknownInCatchVariables": false,
"rootDir": ".",
"outDir": "dist",
"types": ["node", "jest"],
// TODO: remove all options below this line
"useUnknownInCatchVariables": false
},
"include": [
"**/*.d.ts",
"src/**/*",
"test/**/*"
],
"exclude": [
"dist/**/*",
"node_modules/**/*",
"**/*.spec.ts"
]
"include": ["src/**/*.ts"]
}

View file

@ -4,7 +4,7 @@ const path = require('path');
* @type {import('@storybook/core-common').StorybookConfig}
*/
module.exports = {
stories: ['../src/**/*.stories.mdx', '../src/**/*.stories.@(js|jsx|ts|tsx)'],
stories: ['../src/**/*.stories.mdx', '../src/**/*.stories.@(js|ts)'],
addons: [
'@storybook/addon-links',
'@storybook/addon-essentials',

View file

@ -1,13 +0,0 @@
import Vue, { VNode } from 'vue';
declare global {
namespace JSX {
// tslint:disable no-empty-interface
interface Element extends VNode {}
// tslint:disable no-empty-interface
interface ElementClass extends Vue {}
interface IntrinsicElements {
[elem: string]: any;
}
}
}

View file

@ -1,38 +1,24 @@
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"rootDir": ".",
"outDir": "dist",
"target": "esnext",
"module": "esnext",
"strict": true,
"importHelpers": true,
"moduleResolution": "node",
"declaration": true,
"experimentalDecorators": true,
"skipLibCheck": true,
"incremental": true,
"esModuleInterop": true,
"allowJs": true,
"allowSyntheticDefaultImports": true,
"sourceMap": true,
"baseUrl": ".",
"outDir": "dist",
"types": [
"webpack-env",
"jest",
"vitest/globals"
],
"typeRoots": [
"@testing-library",
"@types"
],
"types": ["webpack-env", "jest", "vitest/globals"],
"typeRoots": ["@testing-library", "@types"],
"paths": {
"@/*": ["src/*"]
},
"lib": ["esnext", "dom", "dom.iterable", "scripthost"]
"lib": ["esnext", "dom", "dom.iterable", "scripthost"],
// TODO: remove all options below this line
"noUnusedLocals": false,
"noImplicitReturns": false
},
"include": [
"src/**/*.ts",
"src/**/*.tsx",
"src/**/*.vue"
],
"exclude": ["node_modules"]
"include": ["src/**/*.ts", "src/**/*.vue"]
}

View file

@ -1,16 +1,14 @@
module.exports = {
moduleFileExtensions: [
'js',
'jsx',
'json',
'vue',
'ts',
'tsx',
],
transform: {
'^.+\\.vue$': 'vue-jest',
'.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$': 'jest-transform-stub',
'^.+\\.tsx?$': 'ts-jest',
'^.+\\.ts$': 'ts-jest',
},
moduleNameMapper: {
'^@/(.*)$': '<rootDir>/src/$1',
@ -19,7 +17,7 @@ module.exports = {
'jest-serializer-vue',
],
testMatch: [
'**/tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)',
'**/tests/unit/**/*.spec.(js|ts)|**/__tests__/*.(js|ts)',
],
testURL: 'http://localhost/',
};

View file

@ -1,13 +0,0 @@
import Vue, { VNode } from 'vue';
declare global {
namespace JSX {
// tslint:disable no-empty-interface
interface Element extends VNode {}
// tslint:disable no-empty-interface
interface ElementClass extends Vue {}
interface IntrinsicElements {
[elem: string]: any
}
}
}

View file

@ -1,46 +1,23 @@
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"rootDir": ".",
"outDir": "dist",
"target": "esnext",
"module": "esnext",
"removeComments": true,
"forceConsistentCasingInFileNames": true,
"noImplicitReturns": true,
"strict": true,
"jsx": "preserve",
"skipLibCheck": true,
"incremental": true,
"allowJs": true,
"importHelpers": true,
"moduleResolution": "node",
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"useUnknownInCatchVariables": false,
"resolveJsonModule": true,
"sourceMap": true,
"baseUrl": ".",
"types": [
"webpack-env",
"jest"
],
"types": ["webpack-env", "jest"],
"paths": {
"@/*": [
"src/*"
]
"@/*": ["src/*"]
},
"lib": [
"esnext",
"dom",
"dom.iterable",
"scripthost"
]
"lib": ["esnext", "dom", "dom.iterable", "scripthost"],
// TODO: remove all options below this line
"noUnusedLocals": false,
"useUnknownInCatchVariables": false
},
"include": [
"src/**/*.ts",
"src/**/*.tsx",
"src/**/*.vue",
"tests/**/*.ts",
"tests/**/*.tsx",
],
"exclude": [
"node_modules"
]
"include": ["src/**/*.ts", "src/**/*.vue"]
}

View file

@ -1,22 +1,10 @@
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"lib": [
"es2017"
],
"types": [],
"module": "commonjs",
"incremental": true,
"importHelpers": true,
"preserveConstEnums": true,
"declaration": true,
"target": "es2017",
"sourceMap": true
},
"include": [
"*.credentials.ts",
"*.node.ts"
],
"exclude": [
"node_modules"
]
}

View file

@ -1,32 +1,11 @@
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"lib": [
"es2019"
],
"types": [
"node"
],
"module": "commonjs",
"incremental": true,
"esModuleInterop": true,
"removeComments": true,
"strict": true,
"preserveConstEnums": true,
"declaration": true,
"outDir": "./dist/",
"target": "es2019",
"useUnknownInCatchVariables": false,
"sourceMap": true
"outDir": "dist",
"types": ["node"],
// TODO: remove all options below this line
"noUnusedLocals": false,
"useUnknownInCatchVariables": false
},
"include": [
"**/*.d.ts",
"commands/**/*",
"index.ts",
"src/**/*"
],
"exclude": [
"dist",
"node_modules/**/*",
"**/*.spec.ts"
]
"include": ["commands/**/*.ts", "src/**/*.ts"]
}

View file

@ -795,17 +795,16 @@
},
"jest": {
"transform": {
"^.+\\.tsx?$": "ts-jest"
"^.+\\.ts$": "ts-jest"
},
"testURL": "http://localhost/",
"testRegex": "(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$",
"testRegex": "(/__tests__/.*|(\\.|/)(test|spec))\\.(js|ts)$",
"testPathIgnorePatterns": [
"/dist/",
"/node_modules/"
],
"moduleFileExtensions": [
"ts",
"tsx",
"js",
"json"
]

View file

@ -1,35 +1,19 @@
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"lib": [
"dom",
"es2019"
],
"types": [
"node",
"jest"
],
"module": "commonjs",
"incremental": true,
"removeComments": true,
"strict": true,
"preserveConstEnums": true,
"resolveJsonModule": true,
"declaration": true,
"outDir": "./dist/",
"target": "es2019",
"sourceMap": true,
"esModuleInterop": true,
"useUnknownInCatchVariables": false,
"outDir": "dist",
"lib": ["dom", "es2020"],
"types": ["node", "jest"],
// TODO: remove all options below this line
"noImplicitReturns": false,
"noUnusedLocals": false,
"useUnknownInCatchVariables": false
},
"include": [
"credentials/**/*",
"src/**/*",
"nodes/**/*",
"credentials/**/*.ts",
"src/**/*.ts",
"nodes/**/*.ts",
"nodes/**/*.json",
"credentials/translations/**/*.json",
"test/**/*"
],
"exclude": [
"**/*.spec.ts"
"credentials/translations/**/*.json"
]
}

View file

@ -62,17 +62,16 @@
},
"jest": {
"transform": {
"^.+\\.tsx?$": "ts-jest"
"^.+\\.ts$": "ts-jest"
},
"testURL": "http://localhost/",
"testRegex": "(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$",
"testRegex": "(/__tests__/.*|(\\.|/)(test|spec))\\.(js|ts)$",
"testPathIgnorePatterns": [
"/dist/",
"/node_modules/"
],
"moduleFileExtensions": [
"ts",
"tsx",
"js",
"json"
]

View file

@ -1,37 +1,11 @@
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"lib": [
"dom",
"es2019"
],
"types": [
"node",
"jest"
],
"module": "commonjs",
"incremental": true,
"removeComments": true,
"forceConsistentCasingInFileNames": true,
"esModuleInterop": true,
"noImplicitReturns": true,
"strict": true,
"noUnusedLocals": true,
"preserveConstEnums": true,
"declaration": true,
"outDir": "./dist/",
"target": "es2019",
"moduleResolution": "node",
"sourceMap": true,
"useUnknownInCatchVariables": false,
"rootDir": ".",
"outDir": "dist",
"types": ["node", "jest"],
// TODO: remove all options below this line
"useUnknownInCatchVariables": false
},
"include": [
"**/*.d.ts",
"src/**/*",
"test/**/*"
],
"exclude": [
"dist/**/*",
"node_modules/**/*",
"**/*.spec.ts"
]
"include": ["src/**/*.ts"]
}

23
tsconfig.json Normal file
View file

@ -0,0 +1,23 @@
{
"compilerOptions": {
"strict": true,
"module": "commonjs",
"moduleResolution": "node",
"target": "es2019",
"lib": ["es2019", "es2020"],
"removeComments": true,
"useUnknownInCatchVariables": true,
"forceConsistentCasingInFileNames": true,
"noImplicitAny": true,
"noImplicitReturns": true,
"noUnusedLocals": true,
"strictNullChecks": true,
"preserveConstEnums": true,
"esModuleInterop": true,
"resolveJsonModule": true,
"incremental": true,
"declaration": true,
"sourceMap": true
},
"exclude": ["**/dist/**/*", "**/node_modules/**/*"]
}