From a7a8b42c5990e74fb75dac004a18c8d06afd81e1 Mon Sep 17 00:00:00 2001 From: Jonas Franz Date: Wed, 13 Jun 2018 14:04:48 +0200 Subject: [PATCH] Add prettier Fix lint errors Improve lint config Signed-off-by: Jonas Franz --- frontend/.gitignore | 2 + frontend/package.json | 6 ++- frontend/src/components/GitHubButton.tsx | 52 +++++++++++--------- frontend/src/index.tsx | 22 ++++----- frontend/tslint.json | 5 +- frontend/yarn.lock | 60 ++++++++++++++++++++++++ 6 files changed, 110 insertions(+), 37 deletions(-) diff --git a/frontend/.gitignore b/frontend/.gitignore index 0ec3efa..ed92f1b 100644 --- a/frontend/.gitignore +++ b/frontend/.gitignore @@ -21,6 +21,8 @@ lib-cov # Coverage directory used by tools like istanbul coverage +dist/ + # nyc test coverage .nyc_output diff --git a/frontend/package.json b/frontend/package.json index f6dfef6..e654a7f 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -25,6 +25,9 @@ "babel-preset-react": "^6.24.1", "html-loader": "^0.5.5", "html-webpack-plugin": "^3.2.0", + "husky": "^0.14.3", + "prettier": "1.13.5", + "pretty-quick": "^1.6.0", "source-map-loader": "^0.2.3", "tslint": "^5.10.0", "tslint-config-prettier": "^1.13.0", @@ -37,6 +40,7 @@ "scripts": { "start:dev": "webpack-dev-server --hot", "build": "webpack --mode production", - "lint": "tslint -c tslint.json 'src/**/*.{ts,tsx}'" + "lint": "tslint -c tslint.json 'src/**/*.{ts,tsx}'", + "precommit": "pretty-quick --staged" } } diff --git a/frontend/src/components/GitHubButton.tsx b/frontend/src/components/GitHubButton.tsx index a06a0b3..aa298e3 100644 --- a/frontend/src/components/GitHubButton.tsx +++ b/frontend/src/components/GitHubButton.tsx @@ -3,31 +3,37 @@ import { Button, Icon } from "semantic-ui-react"; import { client } from "../configuration"; export interface IGitHubButtonState { - loading: boolean + loading: boolean; } export class GitHubButton extends React.Component<{}, IGitHubButtonState> { + constructor(props: {}) { + super(props); + this.state = { + loading: false + }; + } - constructor(props: {}) { - super(props); - this.state = { - loading: false, - }; - } + render() { + return ( + + ); + } - render() { - return - } - - submitToGitHub() { - this.setState({loading: true}) - client.getGitHubRedirect() - .then(res => { - this.setState({loading: false}) - window.location.href = res.url - }) - } -} \ No newline at end of file + submitToGitHub() { + this.setState({ loading: true }); + client.getGitHubRedirect().then(res => { + this.setState({ loading: false }); + window.location.href = res.url; + }); + } +} diff --git a/frontend/src/index.tsx b/frontend/src/index.tsx index 8f30aa4..ec59db5 100644 --- a/frontend/src/index.tsx +++ b/frontend/src/index.tsx @@ -1,19 +1,19 @@ import * as React from "react"; import * as ReactDOM from "react-dom"; -import { hot } from 'react-hot-loader'; +import { hot } from "react-hot-loader"; -import { WelcomePage } from "./components/WelcomePage"; -import { HashRouter as Router, Route, Link} from "react-router-dom"; +import { HashRouter as Router, Route } from "react-router-dom"; import { GitHubButton } from "./components/GitHubButton"; +import { WelcomePage } from "./components/WelcomePage"; ReactDOM.render( - -
- - -
-
, - document.getElementById("example") + +
+ + +
+
, + document.getElementById("example") ); -export default hot(module)(WelcomePage) \ No newline at end of file +export default hot(module)(WelcomePage); diff --git a/frontend/tslint.json b/frontend/tslint.json index 49810f2..fe89e81 100644 --- a/frontend/tslint.json +++ b/frontend/tslint.json @@ -4,6 +4,7 @@ // override tslint-react rules here "jsx-wrap-multiline": false, "member-access": [true, "no-public"], - "jsx-boolean-value": "never" + "jsx-boolean-value": [true, "never"], + "no-reference": false } -} \ No newline at end of file +} diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 9c0d121..35282fc 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -1192,6 +1192,10 @@ chrome-trace-event@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-0.1.3.tgz#d395af2d31c87b90a716c831fe326f69768ec084" +ci-info@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.1.3.tgz#710193264bb05c77b8c90d02f5aaf22216a667b2" + cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" @@ -1842,6 +1846,18 @@ execa@^0.7.0: signal-exit "^3.0.0" strip-eof "^1.0.0" +execa@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da" + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + expand-brackets@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" @@ -2368,6 +2384,14 @@ https-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" +husky@^0.14.3: + version "0.14.3" + resolved "https://registry.yarnpkg.com/husky/-/husky-0.14.3.tgz#c69ed74e2d2779769a17ba8399b54ce0b63c12c3" + dependencies: + is-ci "^1.0.10" + normalize-path "^1.0.0" + strip-indent "^2.0.0" + iconv-lite@0.4.19: version "0.4.19" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" @@ -2392,6 +2416,10 @@ ignore-walk@^3.0.1: dependencies: minimatch "^3.0.4" +ignore@^3.3.7: + version "3.3.8" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.8.tgz#3f8e9c35d38708a3a7e0e9abb6c73e7ee7707b2b" + import-local@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/import-local/-/import-local-1.0.0.tgz#5e4ffdc03f4fe6c009c6729beb29631c2f8227bc" @@ -2514,6 +2542,12 @@ is-callable@^1.1.1, is-callable@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" +is-ci@^1.0.10: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.1.0.tgz#247e4162e7860cebbdaf30b774d6b0ac7dcfe7a5" + dependencies: + ci-info "^1.0.0" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -3047,6 +3081,10 @@ move-concurrently@^1.0.1: rimraf "^2.5.4" run-queue "^1.0.3" +mri@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/mri/-/mri-1.1.1.tgz#85aa26d3daeeeedf80dc5984af95cc5ca5cad9f1" + ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" @@ -3187,6 +3225,10 @@ normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" +normalize-path@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-1.0.0.tgz#32d0e472f91ff345701c15a8311018d3b0a90379" + normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" @@ -3509,6 +3551,10 @@ posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" +prettier@1.13.5: + version "1.13.5" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.13.5.tgz#7ae2076998c8edce79d63834e9b7b09fead6bfd0" + pretty-error@^2.0.2: version "2.1.1" resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3" @@ -3516,6 +3562,16 @@ pretty-error@^2.0.2: renderkid "^2.0.1" utila "~0.4" +pretty-quick@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-1.6.0.tgz#afc3591eb5c4cf37614a305d489a8a40e57c9258" + dependencies: + chalk "^2.3.0" + execa "^0.8.0" + find-up "^2.1.0" + ignore "^3.3.7" + mri "^1.1.0" + private@^0.1.6, private@^0.1.8, private@~0.1.5: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" @@ -4334,6 +4390,10 @@ strip-indent@^1.0.1: dependencies: get-stdin "^4.0.1" +strip-indent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" + strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"