From 2df4f7b62835bbb3b9395d8c6ac6239179a5b910 Mon Sep 17 00:00:00 2001 From: "Juan Picado @jotadeveloper" Date: Thu, 13 Jul 2017 23:28:45 +0200 Subject: [PATCH] fix: eslint globally read all files, rename jsx to js. Reduce amount of repeated configuration --- .eslintignore | 4 - .eslintrc | 80 ++++++++++++++ .eslintrc.yml | 99 ------------------ package-lock.json | Bin 213699 -> 395956 bytes package.json | 98 ++++++++--------- src/api/.eslintrc | 10 +- src/lib/.eslintrc | 10 +- src/webui/.eslintrc | 27 +++++ src/webui/.eslintrc.yml | 28 ----- src/webui/scripts/dev.server.js | 10 +- src/webui/scripts/webpack.config.js | 10 +- src/webui/scripts/webpack.dev.config.babel.js | 10 +- .../scripts/webpack.prod.config.babel.js | 22 ++-- src/webui/src/{App.jsx => app.js} | 14 +-- src/webui/src/components/Header/index.js | 28 ++--- .../Package/{index.jsx => index.js} | 4 +- .../PackageList/{index.jsx => index.js} | 16 +-- src/webui/src/{index.jsx => index.js} | 14 +-- .../modules/detail/{index.jsx => index.js} | 10 +- .../src/modules/home/{index.jsx => index.js} | 32 +++--- src/webui/utils/api.js | 12 +-- src/webui/utils/storage.js | 2 +- test/.eslintrc | 38 ++++--- yarn.lock | Bin 221424 -> 221221 bytes 24 files changed, 281 insertions(+), 297 deletions(-) create mode 100644 .eslintrc delete mode 100644 .eslintrc.yml create mode 100644 src/webui/.eslintrc delete mode 100644 src/webui/.eslintrc.yml rename src/webui/src/{App.jsx => app.js} (65%) rename src/webui/src/components/Package/{index.jsx => index.js} (92%) rename src/webui/src/components/PackageList/{index.jsx => index.js} (89%) rename src/webui/src/{index.jsx => index.js} (66%) rename src/webui/src/modules/detail/{index.jsx => index.js} (92%) rename src/webui/src/modules/home/{index.jsx => index.js} (82%) diff --git a/.eslintignore b/.eslintignore index 0d6dcf459..25301d233 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,8 +1,4 @@ node_modules -lib/web/static -lib/web/ui/ -lib/web/static coverage/ - wiki/ static/ diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 000000000..344b94607 --- /dev/null +++ b/.eslintrc @@ -0,0 +1,80 @@ +{ + "plugins": [ + "react", + "flowtype" + ], + "extends": [ + "eslint:recommended", + "google", + "plugin:react/recommended", + "plugin:flowtype/recommended" + ], + "parserOptions": { + "sourceType": "module", + "ecmaVersion": 7, + "ecmaFeatures": { + "impliedStrict": true, + "jsx": true + } + }, + "env": { + "browser": true, + "node": true, + "es6": true + }, + "rules": { + "no-tabs": 0, + "keyword-spacing": 0, + "padded-blocks": 0, + "no-useless-escape": 0, + "handle-callback-err": 2, + "no-debugger": 2, + "no-fallthrough": 2, + "curly": 2, + "eol-last": 1, + "no-irregular-whitespace": 1, + "no-mixed-spaces-and-tabs": [ + 1, + "smart-tabs" + ], + "no-trailing-spaces": 1, + "no-new-require": 2, + "no-undef": 2, + "no-unreachable": 2, + "no-unused-vars": [ + 2, + { + "vars": "all", + "args": "none" + } + ], + "max-len": [ + 1, + 160 + ], + "semi": [ + 2, + "always" + ], + "camelcase": 0, + "require-jsdoc": 2, + "valid-jsdoc": 2, + "prefer-spread": 1, + "prefer-rest-params": 1, + "no-var": 2, + "no-constant-condition": 2, + "no-empty": 2, + "guard-for-in": 2, + "no-invalid-this": 2, + "new-cap": 2, + "one-var": 2, + "no-console": [ + 2, + { + "allow": [ + "warn" + ] + } + ] + } +} diff --git a/.eslintrc.yml b/.eslintrc.yml deleted file mode 100644 index 71da3c774..000000000 --- a/.eslintrc.yml +++ /dev/null @@ -1,99 +0,0 @@ -# vim: syntax=yaml - -# -# List of very light restrictions designed to prevent obvious errors, -# not impose our own code style upon other contributors. -# -# This is supposed to be used with `eslint --reset` -# -# Created to work with eslint@0.18.0 -# - -plugins: ["react"] - -extends: ["eslint:recommended", "google", "plugin:react/recommended"] - -env: - node: true - browser: true - es6: true - -parserOptions: - sourceType: "module" - ecmaVersion: 7 - ecmaFeatures: - jsx: true - - -rules: - - no-tabs: 0 - keyword-spacing: 0 - padded-blocks: 0 - - # useful to have in node.js, - # if you're sure you don't need to handle error, rename it to "_err" - handle-callback-err: 2 - - # just to make sure we don't forget to remove them when releasing - no-debugger: 2 - - # add "falls through" for those - no-fallthrough: 2 - - # enforce use curly always - # curly: 1 - - # just warnings about whitespace weirdness here - eol-last: 1 - no-irregular-whitespace: 1 - no-mixed-spaces-and-tabs: [1, smart-tabs] - no-trailing-spaces: 1 - - # probably always an error, tell me if it's not - no-new-require: 2 - - # single most important rule here, without it linting won't even - # make any sense - no-undef: 2 - - # in practice, those are always errors - no-unreachable: 2 - - # useful for code clean-up - no-unused-vars: [2, {"vars": "all", "args": "none"}] - - max-len: [1, 160] - - # camelcase is standard, but this should be 1 and then 2 soon - camelcase: 0 - - # jsdoc is mandatory - require-jsdoc: 2 - valid-jsdoc: 2 - - # this feature is cool but not supported by Node 4, disable via comments - prefer-spread: 1 - prefer-rest-params: 1 - - # encorage use es6 - no-var: 2 - - # configuration that should be upgraded progresivelly - no-constant-condition: 2 - no-empty: 2 - - # loop over objects http://eslint.org/docs/rules/guard-for-in - guard-for-in: 2 - - # this must be used within classes - no-invalid-this: 2 - - # All object must be uppercase - new-cap: 2 - - # readbility is important, no multiple inline declarations - one-var: 2 - - # console not allowed unless for testing - no-console: [2, {"allow": ["log", "warn"]}] diff --git a/package-lock.json b/package-lock.json index bb7aa56ddb493c672e779949b3adda4a871fb8bb..304d7807972c8e7ae72cfc5f4ed4db5293dca987 100644 GIT binary patch delta 84824 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 VE5E|aATUYxAk>c@Jo4a?{{gUriS_^h delta 18869 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 YMx6VPZ?NLGeBk-Sgje9Pl!V0p2YACfivR!s diff --git a/package.json b/package.json index 48fc3146e..30b1fb3ed 100644 --- a/package.json +++ b/package.json @@ -48,59 +48,59 @@ "unix-crypt-td-js": "^1.0.0" }, "devDependencies": { - "axios": "^0.16.2", - "babel-cli": "^6.24.1", - "babel-core": "^6.25.0", - "babel-eslint": "^7.2.3", - "babel-loader": "^7.1.1", - "babel-plugin-flow-runtime": "^0.11.1", - "babel-plugin-transform-decorators-legacy": "^1.3.4", - "babel-plugin-transform-runtime": "^6.23.0", - "babel-preset-env": "^1.5.2", - "babel-preset-flow": "^6.23.0", - "babel-preset-react": "^6.24.1", - "babel-preset-stage-2": "^6.24.1", - "babel-preset-stage-3": "^6.24.1", - "babel-runtime": "^6.23.0", + "axios": "0.16.2", + "babel-cli": "6.24.1", + "babel-core": "6.25.0", + "babel-eslint": "7.2.3", + "babel-loader": "7.1.1", + "babel-plugin-flow-runtime": "0.11.1", + "babel-plugin-transform-decorators-legacy": "1.3.4", + "babel-plugin-transform-runtime": "6.23.0", + "babel-preset-env": "1.5.2", + "babel-preset-flow": "6.23.0", + "babel-preset-react": "6.24.1", + "babel-preset-stage-2": "6.24.1", + "babel-preset-stage-3": "6.24.1", + "babel-runtime": "6.23.0", "codacy-coverage": "2.0.2", "codecov": "2.2.0", - "coveralls": "^2.13.1", - "css-loader": "^0.28.4", - "element-react": "^1.0.16", - "element-theme-default": "^1.3.7", - "eslint": "^4.1.0", - "eslint-config-google": "^0.8.0", - "eslint-loader": "^1.8.0", - "eslint-plugin-babel": "^4.1.1", - "eslint-plugin-flowtype": "^2.34.1", - "eslint-plugin-import": "^2.6.1", - "eslint-plugin-react": "^7.1.0", - "extract-text-webpack-plugin": "^2.1.2", - "file-loader": "^0.11.2", - "flow-runtime": "^0.13.0", - "friendly-errors-webpack-plugin": "^1.6.1", - "html-webpack-plugin": "^2.29.0", + "coveralls": "2.13.1", + "css-loader": "0.28.4", + "element-react": "1.0.16", + "element-theme-default": "1.3.7", + "eslint": "4.2.0", + "eslint-config-google": "0.8.0", + "eslint-loader": "1.8.0", + "eslint-plugin-babel": "4.1.1", + "eslint-plugin-flowtype": "2.35.0", + "eslint-plugin-import": "2.6.1", + "eslint-plugin-react": "7.1.0", + "extract-text-webpack-plugin": "3.0.0", + "file-loader": "0.11.2", + "flow-runtime": "0.13.0", + "friendly-errors-webpack-plugin": "1.6.1", + "html-webpack-plugin": "2.29.0", "in-publish": "2.0.0", - "localstorage-memory": "^1.0.2", - "mocha": "^3.4.2", + "localstorage-memory": "1.0.2", + "mocha": "3.4.2", "mocha-lcov-reporter": "1.3.0", - "node-sass": "^4.5.3", - "normalize.css": "^7.0.0", - "nyc": "^11.0.3", - "ora": "^1.3.0", - "prop-types": "^15.5.10", - "react": "^15.6.1", - "react-dom": "^15.6.1", - "react-hot-loader": "^3.0.0-beta.7", - "react-router-dom": "^4.1.1", - "rimraf": "^2.6.1", - "sass-loader": "^6.0.6", - "source-map-loader": "^0.2.1", - "style-loader": "^0.18.2", - "styled-components": "^2.1.1", - "url-loader": "^0.5.8", - "webpack": "^3.0.0", - "webpack-dev-server": "^2.5.0" + "node-sass": "4.5.3", + "normalize.css": "7.0.0", + "nyc": "11.0.3", + "ora": "1.3.0", + "prop-types": "15.5.10", + "react": "15.6.1", + "react-dom": "15.6.1", + "react-hot-loader": "3.0.0-beta.7", + "react-router-dom": "4.1.1", + "rimraf": "2.6.1", + "sass-loader": "6.0.6", + "source-map-loader": "0.2.1", + "style-loader": "0.18.2", + "styled-components": "2.1.1", + "url-loader": "0.5.8", + "webpack": "3.2.0", + "webpack-dev-server": "2.5.0" }, "keywords": [ "private", diff --git a/src/api/.eslintrc b/src/api/.eslintrc index eb1396ee6..13384b11c 100644 --- a/src/api/.eslintrc +++ b/src/api/.eslintrc @@ -1,5 +1,5 @@ -# vim: syntax=yaml - - -rules: - no-useless-escape: 0 +{ + "rules": { + "no-useless-escape": 0 + } +} diff --git a/src/lib/.eslintrc b/src/lib/.eslintrc index eb1396ee6..13384b11c 100644 --- a/src/lib/.eslintrc +++ b/src/lib/.eslintrc @@ -1,5 +1,5 @@ -# vim: syntax=yaml - - -rules: - no-useless-escape: 0 +{ + "rules": { + "no-useless-escape": 0 + } +} diff --git a/src/webui/.eslintrc b/src/webui/.eslintrc new file mode 100644 index 000000000..40c11814b --- /dev/null +++ b/src/webui/.eslintrc @@ -0,0 +1,27 @@ +{ + "env": { + "browser": true, + "node": true, + "jest": true, + "es6": true + }, + "rules": { + "require-jsdoc": 0, + "no-console": [ + 1, + { + "allow": [ + "log" + ] + } + ], + "comma-dangle": 0, + "semi": 1, + "react/no-danger-with-children": 1, + "react/no-string-refs": 1, + "react/prefer-es6-class": [ + 2, + "always" + ] + } +} diff --git a/src/webui/.eslintrc.yml b/src/webui/.eslintrc.yml deleted file mode 100644 index 41cbe141d..000000000 --- a/src/webui/.eslintrc.yml +++ /dev/null @@ -1,28 +0,0 @@ -# vim: syntax=yaml - - -## rules for react components - -extends: - - google - - eslint:recommended - - plugin:react/recommended - - plugin:flowtype/recommended - -plugins: - - flowtype - -parser: babel-eslint - -env: - node: true - browser: true - jest: true - -rules: - # jsdoc is mandatory - require-jsdoc: 0 - # jsx rules - react/no-danger-with-children: 0 - react/no-string-refs: 0 - diff --git a/src/webui/scripts/dev.server.js b/src/webui/scripts/dev.server.js index 18b3b2ccf..7dd2bf7bb 100644 --- a/src/webui/scripts/dev.server.js +++ b/src/webui/scripts/dev.server.js @@ -2,15 +2,15 @@ import webpack from 'webpack'; import WebpackDevServer from 'webpack-dev-server'; import config from './webpack.dev.config.babel'; import ora from 'ora'; -import env from '../../config/env' +import env from '../../config/env'; const compiler = webpack(config); const spinner = ora('Compiler is running...').start(); compiler.plugin('done', () => { if (!global.rebuild) { spinner.stop(); - console.log('Dev Server Listening at http://localhost:4872/') - global.rebuild = true + console.log('Dev Server Listening at http://localhost:4872/'); + global.rebuild = true; } }); @@ -30,8 +30,8 @@ new WebpackDevServer(compiler, { chunks: true, chunkModules: false } -}).listen(4872, 'localhost', function (err) { +}).listen(4872, 'localhost', function(err) { if (err) { return console.log(err); } -}) +}); diff --git a/src/webui/scripts/webpack.config.js b/src/webui/scripts/webpack.config.js index 80b07a902..823213b7d 100644 --- a/src/webui/scripts/webpack.config.js +++ b/src/webui/scripts/webpack.config.js @@ -1,11 +1,11 @@ -import env from '../../config/env' +import env from '../../config/env'; -const isDev = process.env.NODE_ENV === 'development' +const isDev = process.env.NODE_ENV === 'development'; export default { - entry: `${env.SRC_ROOT}/webui/src/index.jsx`, + entry: `${env.SRC_ROOT}/webui/src/index.js`, - output: { + output: { path: `${env.APP_ROOT}/static/`, filename: '[name].[hash].js' }, @@ -58,7 +58,7 @@ export default { } }, { - loader: "sass-loader" + loader: 'sass-loader' } ] }, diff --git a/src/webui/scripts/webpack.dev.config.babel.js b/src/webui/scripts/webpack.dev.config.babel.js index 05ca22c0c..c9869f873 100644 --- a/src/webui/scripts/webpack.dev.config.babel.js +++ b/src/webui/scripts/webpack.dev.config.babel.js @@ -1,8 +1,8 @@ import webpack from 'webpack'; import HTMLWebpackPlugin from 'html-webpack-plugin'; import FriendlyErrorsPlugin from 'friendly-errors-webpack-plugin'; -import baseConfig from './webpack.config' -import env from '../../config/env' +import baseConfig from './webpack.config'; +import env from '../../config/env'; export default { ...baseConfig, @@ -11,7 +11,7 @@ export default { 'react-hot-loader/patch', 'webpack-dev-server/client?http://localhost:4872', 'webpack/hot/only-dev-server', - `${env.SRC_ROOT}/webui/src/index.jsx` + `${env.SRC_ROOT}/webui/src/index.jss` ] }, @@ -22,7 +22,7 @@ export default { plugins: [ new webpack.DefinePlugin({ - __DEBUG__: true, + '__DEBUG__': true, 'process.env.NODE_ENV': '"development"' }), new HTMLWebpackPlugin({ @@ -37,4 +37,4 @@ export default { new webpack.NoEmitOnErrorsPlugin(), new FriendlyErrorsPlugin() ] -} +}; diff --git a/src/webui/scripts/webpack.prod.config.babel.js b/src/webui/scripts/webpack.prod.config.babel.js index 22eba2a2d..625ce0f69 100644 --- a/src/webui/scripts/webpack.prod.config.babel.js +++ b/src/webui/scripts/webpack.prod.config.babel.js @@ -1,24 +1,24 @@ import webpack from 'webpack'; import HTMLWebpackPlugin from 'html-webpack-plugin'; import ExtractTextPlugin from 'extract-text-webpack-plugin'; -import baseConfig from './webpack.config' -import env from '../../config/env' -import _ from 'lodash' +import baseConfig from './webpack.config'; +import env from '../../config/env'; +import _ from 'lodash'; baseConfig.module.rules - .filter(loader => - Array.isArray(loader.use) && loader.use.find(v => /css/.test(v.loader.split('-')[0])) - ).forEach(loader => { + .filter((loader) => + Array.isArray(loader.use) && loader.use.find((v) => /css/.test(v.loader.split('-')[0])) + ).forEach((loader) => { loader.use = ExtractTextPlugin.extract({ fallback: 'style-loader', use: _.tail(loader.use) - }) -}) + }); +}); export default { ...baseConfig, entry: { - main: `${env.SRC_ROOT}/webui/src/index.jsx` + main: `${env.SRC_ROOT}/webui/src/index.js` }, output: { @@ -27,7 +27,7 @@ export default { plugins: [ new webpack.DefinePlugin({ - __DEBUG__: false, + '__DEBUG__': false, 'process.env.NODE_ENV': '"production"' }), new webpack.optimize.UglifyJsPlugin({ @@ -47,4 +47,4 @@ export default { }), new webpack.NoEmitOnErrorsPlugin() ] -} +}; diff --git a/src/webui/src/App.jsx b/src/webui/src/app.js similarity index 65% rename from src/webui/src/App.jsx rename to src/webui/src/app.js index 44efc19ce..3c076c5b5 100644 --- a/src/webui/src/App.jsx +++ b/src/webui/src/app.js @@ -1,18 +1,18 @@ import React from 'react'; -import { HashRouter as Router, Route, Switch } from 'react-router-dom'; +import {HashRouter as Router, Route, Switch} from 'react-router-dom'; -import 'normalize.css' +import 'normalize.css'; -import 'element-theme-default' -import { i18n } from 'element-react' -import locale from 'element-react/src/locale/lang/en' +import 'element-theme-default'; +import {i18n} from 'element-react'; +import locale from 'element-react/src/locale/lang/en'; i18n.use(locale); -import Header from './components/Header' +import Header from './components/Header'; import Home from './modules/home'; import Detail from './modules/detail'; -import './styles/global.scss' +import './styles/global.scss'; export default class App extends React.Component { render() { diff --git a/src/webui/src/components/Header/index.js b/src/webui/src/components/Header/index.js index 6c5ef8d6d..cd004ad53 100644 --- a/src/webui/src/components/Header/index.js +++ b/src/webui/src/components/Header/index.js @@ -1,10 +1,10 @@ import React from 'react'; -import { Button, Dialog, Input, MessageBox } from 'element-react'; +import {Button, Dialog, Input, MessageBox} from 'element-react'; import styled from 'styled-components'; import API from '../../../utils/api'; import storage from '../../../utils/storage'; import _ from 'lodash'; -import { Link } from 'react-router-dom'; +import {Link} from 'react-router-dom'; import classes from './header.scss'; @@ -16,7 +16,7 @@ const SetupGuide = styled.figure` line-height: 18px; padding: 8px 0; color: #f9f2f4; -` +`; export default class Header extends React.Component { state = { @@ -25,25 +25,25 @@ export default class Header extends React.Component { password: '' } - constructor (props) { + constructor(props) { super(props); this.toggleLoginModal = this.toggleLoginModal.bind(this); this.handleSubmit = this.handleSubmit.bind(this); } - toggleLoginModal () { + toggleLoginModal() { this.setState({ showLogin: !this.state.showLogin - }) + }); } - handleInput (name, e) { + handleInput(name, e) { this.setState({ [name]: e - }) + }); } - async handleSubmit () { + async handleSubmit() { if (this.state.username === '' || this.state.password === '') { return MessageBox.alert('Username or password can\'t be empty!'); } @@ -68,7 +68,7 @@ export default class Header extends React.Component { } } - get isTokenExpire () { + get isTokenExpire() { let token = storage.getItem('token'); if (!_.isString(token)) return true; let payload = token.split('.')[1]; @@ -90,12 +90,12 @@ export default class Header extends React.Component { return expired; } - handleLogout () { + handleLogout() { storage.clear(); location.reload(); } - renderUserActionButton () { + renderUserActionButton() { if (!this.isTokenExpire) { // TODO: Check jwt token expire return (
@@ -103,9 +103,9 @@ export default class Header extends React.Component {  
- ) + ); } else { - return + return ; } } diff --git a/src/webui/src/components/Package/index.jsx b/src/webui/src/components/Package/index.js similarity index 92% rename from src/webui/src/components/Package/index.jsx rename to src/webui/src/components/Package/index.js index b0e9b307a..c98cf0b28 100644 --- a/src/webui/src/components/Package/index.jsx +++ b/src/webui/src/components/Package/index.js @@ -3,13 +3,13 @@ import PropTypes from 'prop-types'; import {Tag} from 'element-react'; import {Link} from 'react-router-dom'; -import classes from './package.scss' +import classes from './package.scss'; export default class Package extends React.Component { static propTypes = { package: PropTypes.object } - render () { + render() { let {package: pkg} = this.props; return ( diff --git a/src/webui/src/components/PackageList/index.jsx b/src/webui/src/components/PackageList/index.js similarity index 89% rename from src/webui/src/components/PackageList/index.jsx rename to src/webui/src/components/PackageList/index.js index 5d0071ee6..cb4fb2707 100644 --- a/src/webui/src/components/PackageList/index.jsx +++ b/src/webui/src/components/PackageList/index.js @@ -1,6 +1,6 @@ import React from 'react'; import PropTypes from 'prop-types'; -import styled from 'styled-components' +import styled from 'styled-components'; import Package from '../Package'; @@ -9,30 +9,30 @@ const NoPackage = styled.li` line-height: 3; font-size: 20px; color: lightgrey; -` +`; const PackageRow = styled.li` border-bottom: 1px solid #e4e8f1; list-style: none; -` +`; const PackageContainer = styled.ul` margin: 0; padding: 0; -` +`; export default class PackageList extends React.Component { static propTypes = { packages: PropTypes.array } - renderList () { + renderList() { return this.props.packages.map((pkg, i)=> ( - )) + )); } - render () { + render() { return ( { @@ -41,6 +41,6 @@ export default class PackageList extends React.Component { No Package Available } - ) + ); } } diff --git a/src/webui/src/index.jsx b/src/webui/src/index.js similarity index 66% rename from src/webui/src/index.jsx rename to src/webui/src/index.js index 101e69245..6867376b1 100644 --- a/src/webui/src/index.jsx +++ b/src/webui/src/index.js @@ -2,11 +2,11 @@ import '../utils/__setPublicPath__'; import React from 'react'; import ReactDOM from 'react-dom'; -import { AppContainer } from 'react-hot-loader' +import {AppContainer} from 'react-hot-loader'; -import App from './App' +import App from './app'; -let rootNode = document.getElementById('root') +let rootNode = document.getElementById('root'); let renderApp = (Component) => { ReactDOM.render( @@ -14,13 +14,13 @@ let renderApp = (Component) => { , rootNode - ) -} + ); +}; renderApp(App); if (module.hot) { module.hot.accept('./App', () => { - renderApp(App) - }) + renderApp(App); + }); } diff --git a/src/webui/src/modules/detail/index.jsx b/src/webui/src/modules/detail/index.js similarity index 92% rename from src/webui/src/modules/detail/index.jsx rename to src/webui/src/modules/detail/index.js index 69d1ce104..61ef90799 100644 --- a/src/webui/src/modules/detail/index.jsx +++ b/src/webui/src/modules/detail/index.js @@ -1,6 +1,6 @@ import React from 'react'; import API from '../../../utils/api'; -import { Loading } from 'element-react'; +import {Loading} from 'element-react'; import PropTypes from 'prop-types'; import classes from './detail.scss'; @@ -28,15 +28,15 @@ export default class Detail extends React.Component { } } - renderReadMe () { + renderReadMe() { if (this.state.readMe) { return (
- ) + ); } else { return ( - ) + ); } } @@ -47,6 +47,6 @@ export default class Detail extends React.Component {
{this.renderReadMe()}
- ) + ); } } diff --git a/src/webui/src/modules/home/index.jsx b/src/webui/src/modules/home/index.js similarity index 82% rename from src/webui/src/modules/home/index.jsx rename to src/webui/src/modules/home/index.js index b0e819fee..cf4f742e9 100644 --- a/src/webui/src/modules/home/index.jsx +++ b/src/webui/src/modules/home/index.js @@ -1,17 +1,17 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { Loading, MessageBox } from 'element-react'; +import {Loading, MessageBox} from 'element-react'; import API from '../../../utils/api'; -import PackageList from '../../components/PackageList' +import PackageList from '../../components/PackageList'; import classes from './home.scss'; export default class Home extends React.Component { static propTypes = { - children: PropTypes.element + children: PropTypes.element } state = { @@ -19,16 +19,16 @@ export default class Home extends React.Component { query: '' } - constructor (props) { + constructor(props) { super(props); this.handleSearchInput = this.handleSearchInput.bind(this); } - componentDidMount () { + componentDidMount() { this.loadPackages(); } - componentDidUpdate (prevProps, prevState) { + componentDidUpdate(prevProps, prevState) { if (prevState.query !== this.state.query) { if (this.req && this.req.abort) this.req.abort(); this.setState({ @@ -38,12 +38,12 @@ export default class Home extends React.Component { if (prevState.query !== '' && this.state.query === '') { this.loadPackages(); } else { - this.searchPackage(this.state.query) + this.searchPackage(this.state.query); } } } - async loadPackages () { + async loadPackages() { try { this.req = await API.get('packages'); @@ -62,7 +62,7 @@ export default class Home extends React.Component { } } - async searchPackage (query) { + async searchPackage(query) { try { this.req = await API.get(`/search/${query}`); @@ -78,29 +78,29 @@ export default class Home extends React.Component { type: 'error', title: 'Warning', message: 'Unable to get search result, please try again later.' - }) + }); } } - handleSearchInput (e) { + handleSearchInput(e) { this.setState({ query: e.target.value }); } - renderLoading () { + renderLoading() { return ( - ) + ); } - renderPackageList () { + renderPackageList() { return (

Available Packages

- ) + ); } render() { @@ -114,6 +114,6 @@ export default class Home extends React.Component { /> { this.state.loading ? this.renderLoading() : this.renderPackageList() } - ) + ); } } diff --git a/src/webui/utils/api.js b/src/webui/utils/api.js index 3cbf84b3d..7995bc4d2 100644 --- a/src/webui/utils/api.js +++ b/src/webui/utils/api.js @@ -1,9 +1,9 @@ import storage from './storage'; -import axios from 'axios' +import axios from 'axios'; class API { - constructor () { - ['get', 'delete', 'post', 'put', 'patch'].map(method => { + constructor() { + ['get', 'delete', 'post', 'put', 'patch'].map((method) => { this[method] = (url, options = {}) => { if (!window.VERDACCIO_API_URL) { throw new Error('VERDACCIO_API_URL is not defined!'); @@ -16,7 +16,7 @@ class API { options.headers.authorization = token; } - if (!['http://', 'https://', '//'].some(prefix => url.startsWith(prefix))) { + if (!['http://', 'https://', '//'].some((prefix) => url.startsWith(prefix))) { url = window.VERDACCIO_API_URL + url; } @@ -25,8 +25,8 @@ class API { url, ...options }); - } - }) + }; + }); } } diff --git a/src/webui/utils/storage.js b/src/webui/utils/storage.js index bf461d760..cd63fdd42 100644 --- a/src/webui/utils/storage.js +++ b/src/webui/utils/storage.js @@ -9,4 +9,4 @@ try { storage = memoryStorage; } -export default storage +export default storage; diff --git a/test/.eslintrc b/test/.eslintrc index a2844b72d..f19dd2d68 100644 --- a/test/.eslintrc +++ b/test/.eslintrc @@ -1,15 +1,23 @@ -# vim: syntax=yaml - -extends: ["eslint:recommended"] - -env: - node: true - mocha: true - es6: true - -rules: - valid-jsdoc: 0 - no-redeclare: 1 - no-console: 1 - no-useless-escape: 0 - +{ + "extends": [ + "eslint:recommended" + ], + "env": { + "node": true, + "mocha": true, + "es6": true + }, + "rules": { + "valid-jsdoc": 0, + "no-redeclare": 1, + "no-console": [ + 2, + { + "allow": [ + "log" + ] + } + ], + "no-useless-escape": 0 + } +} diff --git a/yarn.lock b/yarn.lock index 1be3a7747ff123e07663e85931edb66909c903fb..afc80bb3257cea22bb8b5368e9481b560cd522f8 100644 GIT binary patch delta 1492 zcmY*YTWl3o6wNtv`>+psZ^7GAFw~2bfcH+%V;*N(+TKcoU}BI|sgeksb7lrG&{|$m z_y8ml69vH$Pc=cC7!!>OG-EOZAJh+{B&a0@)Tki*DUyhy_yOvU1A$R_P&-Qq67Pa#A@L?8{6=CNt4(Q&6;Qw4la2L6!QEfq58}hY-eWN+c03 zqn1x>KL{P_+c@NQfLY)Ok4wreKUY(u#yl`XE%U%N1Dh=B9qpP#+us4EBR#E*$B2VN z#H8ew@JYalLxtzzivg!Zl)O2MK^7r_)Y zu>e%46AOUM5|e6g+_sG_sSD>oezNt2E>NwucY(XK-jh6h>{^}`A|5c|5?4Bu_*!S* z5*B9`3)}!nWbv}z>RcC?tInUfHTd5yP^ngQgO+y3#FJ9k42i%YLNMf61pAf~P|B!A zb}SxB>4ml@!jcqCYSu9@O?}l3_No_)pha!z0V|S;9&i?@9oIpzv}L8b+zaYTF)5>S zA}D4S##msF1&9QmbVI6d=nz}$fUvY3p?X_jbDd6DYi=@PxoF2fEy=_8fyY5Iu@Ky7 zR0me;6{ZY;4yng#5t4YRm*pYX1PJNohOh zR8QK-YMGIGG;PdGz8L_ks|;;i1-jwXN4NiBn8RmsOa@L($G?}NMR zq74^|Nz*bY?^oMLU`w)d1m@EjY@1q!eCx)5%gqIUXoEU+1TIlm--aiXPu_t`;Z4gN zg%wHvdvKdked|T?`4RZToC;EUpS*eo?uJR~dw4vRocIaeb7uw80${at6n3ihf5Do> z{1Xn&REHXjU)As+$g0s!W4=1yU{oYurVV|P|A>(VObyT1Ts7Zfv8}D@Q`c6`V36$}EUS!mQXn3Ni@{5gW?YF$8 rK_m}QfVmg?t|LMbqJRqrb0!J*OIeT<6V+R5G)F5_Rmr}^hG_mDcKFc= delta 1656 zcmZ8heQXp(6wmCIE5&|TOM5MdURzp1x!arB-PzrtAM}HdXh14NYe+nunVp52N}&fR zMEOG!G$CNiri_tb#E(RbM4D39<0Qhabogy~lw%q?26K?9lG*3{-2B|hny(uy+BK=Q)Jpepz2 z+T#_<+V|-GWJvjzaN~jE96s=)7G9Z%hxa$Pgjd%ThyRSkLVmC=?HJJ5wRK;k=?lbN z&!nygDWuqUAodXMa|JI5xP=gLNZ=E0dNwvKN_}XB^_jRF_OzJX&aC@RbS>#w7Fl9Lb%MDZrLWwIVvnUQ+VhiG9#w^SOpHt{TOoXdyU^$dV zf`DpJltG3U8sE0d_D)bNCs%^HG?}fTD-aVT5WaeAnVxU?JfI>#)VK3)MGy$jqDbz1 zSBuL;D+uKm6?(^vqv=-gmNZUlU3s}e{Tako-qweF$`nrSNEU9&H`+l{ zTHPq*A}E3cx!AEWQ~k4CMg`^AVuU#uI*#uWMr>PN=m2qlbUY zE??*XiL`s07|0ivWqFVh5ipDcECR0dJHSaDDI$({ssL}U z0$Wr!Zmj~BKrEBT2<6E(&?W1-L1|iDD_{;NXMVr~VF{?tzC}IeL7x+k+rm-(rviJX zUkDH;Kr9@et_Tyxg6McR*bHi(-kW+VJGecyhYs}ni3U|Kq&OY@(gR{uvAkxO^47Cj zt6b3sR-%Gl2&;-D0$T*sLl|?*@sMX(0pphK(|o~ftj2>$)u8-PJo{p79|t?+0-1Iows4y6QI#9 zPbLNisV|07yLa^uWREVXjkf&(sg3|l|)mkwDm<=2FbB&pekCwS{p2tT~|O?^mnhu*F{6GXy)C~NAGBrK)pSGO53RA zskR|v?`c^*`uTnBVpH_xMQxu}&i1CVG@DJ$;0X^kc0V$-d#*8^O5bTpLBpPQ4R6k1-fvy#f RJRc7qFPa~nTc@+ye*tXm3B~{b