diff --git a/frontend/package.json b/frontend/package.json index 384be3383a..0ce233eecd 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -41,10 +41,11 @@ "apis:run": "java -jar swagger-codegen-cli.jar generate -i ../backend/api/swagger/run.swagger.json -l typescript-fetch -o ./src/apis/run -c ./swagger-config.json", "apis:filter": "java -jar swagger-codegen-cli.jar generate -i ../backend/api/swagger/filter.swagger.json -l typescript-fetch -o ./src/apis/filter -c ./swagger-config.json", "apis:visualization": "java -jar swagger-codegen-cli.jar generate -i ../backend/api/swagger/visualization.swagger.json -l typescript-fetch -o ./src/apis/visualization -c ./swagger-config.json", - "build": "react-scripts-ts build", + "build": "npm run lint && react-scripts-ts build", "docker": "COMMIT_HASH=`git rev-parse HEAD`; docker build -q -t ml-pipelines-frontend:${COMMIT_HASH} --build-arg COMMIT_HASH=${COMMIT_HASH} --build-arg DATE=\"`date -u`\" -f Dockerfile ..", "eject": "react-scripts-ts eject", "java": "java -version", + "lint": "tslint -c ./tslint.prod.json -p .", "mock:api": "ts-node-dev -O '{\"module\": \"commonjs\"}' mock-backend/mock-api-server.ts 3001", "mock:server": "node server/dist/server.js build", "postinstall": "cd ./server && npm i && cd ../mock-backend && npm i && cd ../src/generated/src/apis/metadata && npm i", diff --git a/frontend/tsconfig.json b/frontend/tsconfig.json index 3e642711fb..da9b39438a 100644 --- a/frontend/tsconfig.json +++ b/frontend/tsconfig.json @@ -21,7 +21,6 @@ "strictBindCallApply": true, "strictNullChecks": true, "suppressImplicitAnyIndexErrors": true, - "noUnusedLocals": true, "skipLibCheck": true }, "exclude": [ diff --git a/frontend/tsconfig.prod.json b/frontend/tsconfig.prod.json index 4144216dd1..ad64328a35 100644 --- a/frontend/tsconfig.prod.json +++ b/frontend/tsconfig.prod.json @@ -1,3 +1,6 @@ { - "extends": "./tsconfig.json" -} \ No newline at end of file + "extends": "./tsconfig.json", + "compilerOptions": { + "noUnusedLocals": true + } +} diff --git a/frontend/tslint.json b/frontend/tslint.json index 8a8442525a..bae07bb7bc 100644 --- a/frontend/tslint.json +++ b/frontend/tslint.json @@ -1,5 +1,6 @@ { "extends": ["tslint:recommended", "tslint-react", "tslint-config-prettier"], + "defaultSeverity": "warn", "linterOptions": { "exclude": [ "config/**/*.js", @@ -7,8 +8,10 @@ "src/apis/**/*.ts", "coverage/lcov-report/*.js", "backstop_data/**/*.js", - "../frontend/src/api/*.ts" - ] + "generated/**", + "src/api/*.ts" + ], + "format": "verbose" }, "rules": { "interface-name": [true, "never-prefix"], @@ -18,6 +21,7 @@ "ordered-imports": false, "semicolon": [true, "always", "ignore-bound-class-methods"], "typedef": [true, "call-signature"], + "no-unused-variable": true, "variable-name": [ true, "check-format", diff --git a/frontend/tslint.prod.json b/frontend/tslint.prod.json new file mode 100644 index 0000000000..78852e2eab --- /dev/null +++ b/frontend/tslint.prod.json @@ -0,0 +1,4 @@ +{ + "extends": "./tslint.json", + "defaultSeverity": "error" +}