mirror of
https://github.com/verdaccio/verdaccio.git
synced 2024-12-30 22:34:10 -05:00
fix: eslint globally read all files, rename jsx to js. Reduce amount of repeated configuration
This commit is contained in:
parent
2e5a1e7fd9
commit
2df4f7b628
24 changed files with 281 additions and 297 deletions
|
@ -1,8 +1,4 @@
|
|||
node_modules
|
||||
lib/web/static
|
||||
lib/web/ui/
|
||||
lib/web/static
|
||||
coverage/
|
||||
|
||||
wiki/
|
||||
static/
|
||||
|
|
80
.eslintrc
Normal file
80
.eslintrc
Normal file
|
@ -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"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
|
@ -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"]}]
|
BIN
package-lock.json
generated
BIN
package-lock.json
generated
Binary file not shown.
98
package.json
98
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",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# vim: syntax=yaml
|
||||
|
||||
|
||||
rules:
|
||||
no-useless-escape: 0
|
||||
{
|
||||
"rules": {
|
||||
"no-useless-escape": 0
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# vim: syntax=yaml
|
||||
|
||||
|
||||
rules:
|
||||
no-useless-escape: 0
|
||||
{
|
||||
"rules": {
|
||||
"no-useless-escape": 0
|
||||
}
|
||||
}
|
||||
|
|
27
src/webui/.eslintrc
Normal file
27
src/webui/.eslintrc
Normal file
|
@ -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"
|
||||
]
|
||||
}
|
||||
}
|
|
@ -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
|
||||
|
|
@ -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;
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -34,4 +34,4 @@ new WebpackDevServer(compiler, {
|
|||
if (err) {
|
||||
return console.log(err);
|
||||
}
|
||||
})
|
||||
});
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
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: {
|
||||
path: `${env.APP_ROOT}/static/`,
|
||||
|
@ -58,7 +58,7 @@ export default {
|
|||
}
|
||||
},
|
||||
{
|
||||
loader: "sass-loader"
|
||||
loader: 'sass-loader'
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
@ -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()
|
||||
]
|
||||
}
|
||||
};
|
||||
|
|
|
@ -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()
|
||||
]
|
||||
}
|
||||
};
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
import React from 'react';
|
||||
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() {
|
|
@ -16,7 +16,7 @@ const SetupGuide = styled.figure`
|
|||
line-height: 18px;
|
||||
padding: 8px 0;
|
||||
color: #f9f2f4;
|
||||
`
|
||||
`;
|
||||
|
||||
export default class Header extends React.Component {
|
||||
state = {
|
||||
|
@ -34,13 +34,13 @@ export default class Header extends React.Component {
|
|||
toggleLoginModal() {
|
||||
this.setState({
|
||||
showLogin: !this.state.showLogin
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
handleInput(name, e) {
|
||||
this.setState({
|
||||
[name]: e
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
async handleSubmit() {
|
||||
|
@ -103,9 +103,9 @@ export default class Header extends React.Component {
|
|||
|
||||
<Button type="danger" onClick={this.handleLogout}>Logout</Button>
|
||||
</div>
|
||||
)
|
||||
);
|
||||
} else {
|
||||
return <Button type="danger" style={ {marginLeft: 'auto'} } onClick={ this.toggleLoginModal }>Login</Button>
|
||||
return <Button type="danger" style={ {marginLeft: 'auto'} } onClick={ this.toggleLoginModal }>Login</Button>;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ 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
|
|
@ -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,17 +9,17 @@ 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 = {
|
||||
|
@ -29,7 +29,7 @@ export default class PackageList extends React.Component {
|
|||
renderList() {
|
||||
return this.props.packages.map((pkg, i)=> (
|
||||
<PackageRow key={i}><Package package={pkg} /></PackageRow>
|
||||
))
|
||||
));
|
||||
}
|
||||
|
||||
render() {
|
||||
|
@ -41,6 +41,6 @@ export default class PackageList extends React.Component {
|
|||
<NoPackage>No Package Available</NoPackage>
|
||||
}
|
||||
</PackageContainer>
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
|
@ -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) => {
|
|||
<Component/>
|
||||
</AppContainer>,
|
||||
rootNode
|
||||
)
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
renderApp(App);
|
||||
|
||||
if (module.hot) {
|
||||
module.hot.accept('./App', () => {
|
||||
renderApp(App)
|
||||
})
|
||||
renderApp(App);
|
||||
});
|
||||
}
|
|
@ -32,11 +32,11 @@ export default class Detail extends React.Component {
|
|||
if (this.state.readMe) {
|
||||
return (
|
||||
<div className="markdown-body" dangerouslySetInnerHTML={{__html: this.state.readMe}}/>
|
||||
)
|
||||
);
|
||||
} else {
|
||||
return (
|
||||
<Loading text="Loading..." />
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -47,6 +47,6 @@ export default class Detail extends React.Component {
|
|||
<hr/>
|
||||
{this.renderReadMe()}
|
||||
</div>
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
|
@ -4,7 +4,7 @@ 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';
|
||||
|
||||
|
@ -38,7 +38,7 @@ 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -78,7 +78,7 @@ export default class Home extends React.Component {
|
|||
type: 'error',
|
||||
title: 'Warning',
|
||||
message: 'Unable to get search result, please try again later.'
|
||||
})
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -91,7 +91,7 @@ export default class Home extends React.Component {
|
|||
renderLoading() {
|
||||
return (
|
||||
<Loading text="Loading..." />
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
renderPackageList() {
|
||||
|
@ -100,7 +100,7 @@ export default class Home extends React.Component {
|
|||
<h1 className={ classes.listTitle }>Available Packages</h1>
|
||||
<PackageList packages={this.state.packages} />
|
||||
</div>
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
render() {
|
||||
|
@ -114,6 +114,6 @@ export default class Home extends React.Component {
|
|||
/>
|
||||
{ this.state.loading ? this.renderLoading() : this.renderPackageList() }
|
||||
</div>
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
|
@ -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 => {
|
||||
['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
|
||||
});
|
||||
}
|
||||
})
|
||||
};
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -9,4 +9,4 @@ try {
|
|||
storage = memoryStorage;
|
||||
}
|
||||
|
||||
export default storage
|
||||
export default storage;
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
BIN
yarn.lock
BIN
yarn.lock
Binary file not shown.
Loading…
Reference in a new issue