Browse Source

Removes unused code, adds proper semicolon rule and reduces lint errors

renovate/lint-staged-8.x
Torkel Rogstad 7 years ago
parent
commit
ef54915c11
  1. 2
      .eslintrc
  2. 2
      app/components/ChannelForm/StepOne.js
  3. 1
      app/components/Nav/Nav.js
  4. 2
      app/components/Peers/Peers.js
  5. 12
      app/containers/Root.js
  6. 22
      app/index.js
  7. 2
      app/lnd/config/index.js
  8. 2
      app/lnd/lib/lightning.js
  9. 2
      app/lnd/methods/index.js
  10. 4
      app/lnd/utils/index.js
  11. 2
      app/reducers/address.js
  12. 6
      app/reducers/channels.js
  13. 4
      app/reducers/info.js
  14. 10
      app/reducers/lnd.js
  15. 2
      app/reducers/peers.js
  16. 1
      app/routes/app/components/App.js
  17. 4
      app/routes/channels/components/Channels.js
  18. 13
      app/routes/peers/components/Peers.js
  19. 2
      app/routes/peers/containers/PeersContainer.js
  20. 34
      app/store/configureStore.dev.js
  21. 4
      app/store/configureStore.js
  22. 2
      internals/mocks/fileMock.js
  23. 16
      internals/scripts/CheckBuiltsExist.js
  24. 8
      internals/scripts/CheckNodeEnv.js
  25. 3
      test/components/Nav.spec.js
  26. 6
      test/example.js
  27. 11
      test/reducers/__snapshots__/peers.spec.js.snap
  28. 12
      test/runTests.js
  29. 6
      webpack.config.base.js
  30. 4
      webpack.config.eslint.js
  31. 16
      webpack.config.main.prod.js
  32. 18
      webpack.config.renderer.dev.dll.js
  33. 20
      webpack.config.renderer.prod.js

2
.eslintrc

@ -11,7 +11,7 @@
},
"rules": {
"comma-dangle": ["error", "never"],
"semi": 0,
"semi": ["error", "never"],
"indent": 2,
"jsx-quotes": ["error", "prefer-single"],
"react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx"] }],

2
app/components/ChannelForm/StepOne.js

@ -5,7 +5,7 @@ import styles from './StepOne.scss'
class StepOne extends Component {
constructor(props) {
super(props);
super(props)
this.state = {
peers: props.peers,
searchQuery: ''

1
app/components/Nav/Nav.js

@ -6,7 +6,6 @@ import Isvg from 'react-inlinesvg'
import walletIcon from 'icons/wallet.svg'
import peersIcon from 'icons/peers.svg'
import channelsIcon from 'icons/channels.svg'
import settingsIcon from 'icons/settings.svg'
import styles from './Nav.scss'

2
app/components/Peers/Peers.js

@ -36,7 +36,7 @@ const Peers = ({
return (
<div className={styles.peers}>
<PeerModal isOpen={peerModalOpen} resetPeer={setPeer} peer={modalPeer} disconnect={disconnect} />
<PeerForm form={peerForm} setForm={setPeerForm} connect={connect} />
<div className={styles.header}>
<h3>Peers</h3>

12
app/containers/Root.js

@ -17,11 +17,6 @@ const mapStateToProps = state => ({
syncPercentage: lndSelectors.syncPercentage(state)
})
type RootType = {
store: {},
history: {}
};
class Root extends React.Component {
render() {
const {
@ -34,7 +29,7 @@ class Root extends React.Component {
console.log('lnd: ', lnd)
console.log('lnd: ', lnd)
if (lnd.syncing) {
return (
<LndSyncing
@ -55,7 +50,8 @@ class Root extends React.Component {
</Provider>
)
}
}
}
export default connect(mapStateToProps, mapDispatchToProps)(Root)
export default connect(mapStateToProps, mapDispatchToProps)(Root)

22
app/index.js

@ -1,27 +1,27 @@
import React from 'react';
import { render } from 'react-dom';
import { AppContainer } from 'react-hot-loader';
import Root from './containers/Root';
import { configureStore, history } from './store/configureStore';
import './app.global.scss';
import React from 'react'
import { render } from 'react-dom'
import { AppContainer } from 'react-hot-loader'
import Root from './containers/Root'
import { configureStore, history } from './store/configureStore'
import './app.global.scss'
const store = configureStore();
const store = configureStore()
render(
<AppContainer>
<Root store={store} history={history} />
</AppContainer>,
document.getElementById('root')
);
)
if (module.hot) {
module.hot.accept('./containers/Root', () => {
const NextRoot = require('./containers/Root'); // eslint-disable-line global-require
const NextRoot = require('./containers/Root') // eslint-disable-line global-require
render(
<AppContainer>
<NextRoot store={store} history={history} />
</AppContainer>,
document.getElementById('root')
);
});
)
})
}

2
app/lnd/config/index.js

@ -8,7 +8,7 @@ import { join } from 'path'
let loc
switch (platform()) {
case 'darwin':
loc = 'Library/Application\ Support/Lnd/tls.cert'
loc = 'Library/Application Support/Lnd/tls.cert'
break
case 'linux':
loc = '.lnd/tls.cert'

2
app/lnd/lib/lightning.js

@ -6,7 +6,7 @@ import config from '../config'
module.exports = (rpcpath, host) => {
const lndCert = fs.readFileSync(config.cert)
const credentials = grpc.credentials.createSsl(lndCert)
const rpc = grpc.load(path.join(__dirname, 'rpc.proto'))
return new rpc.lnrpc.Lightning(host, credentials)

2
app/lnd/methods/index.js

@ -32,7 +32,7 @@ export default function (lnd, event, msg, data) {
event.sender.send('receiveInfo', infoData)
event.sender.send('receiveCryptocurrency', infoData.chains[0])
})
.catch(error => {
.catch((error) => {
console.log('error: ', error)
event.sender.send('infoFailed')
})

4
app/lnd/utils/index.js

@ -19,8 +19,8 @@ export function decodeInvoice(payreq) {
+ bufferHexRotated.substr(0, bufferHexRotated.length - 1)
const buffer = Buffer.from(bufferHex, 'hex')
const pubkeyBuffer = buffer.slice(0, 33);
const pubkey = pubkeyBuffer.toString('hex');
const pubkeyBuffer = buffer.slice(0, 33)
const pubkey = pubkeyBuffer.toString('hex')
const paymentHashBuffer = buffer.slice(33, 65)
const paymentHashHex = paymentHashBuffer.toString('hex')

2
app/reducers/address.js

@ -28,7 +28,7 @@ export const newAddress = type => async (dispatch) => {
}
// Receive IPC event for info
export const receiveAddress = (event, address) => dispatch => {
export const receiveAddress = (event, address) => (dispatch) => {
dispatch({ type: RECEIVE_ADDRESS, address })
}

6
app/reducers/channels.js

@ -1,10 +1,10 @@
import { createSelector } from 'reselect'
import { ipcRenderer } from 'electron'
import { btc } from 'utils'
import { showNotification } from 'notifications'
import { fetchDescribeNetwork } from './network'
import { closeChannelForm } from './channelform'
import { setError } from './error'
import { showNotification } from 'notifications'
// ------------------------------------
// Constants
// ------------------------------------
@ -194,12 +194,12 @@ export const channelGraphData = (event, data) => (dispatch, getState) => {
dispatch(fetchDescribeNetwork())
// loop through the channel updates
for(let i = 0; i < channel_updates.length; i++) {
for (let i = 0; i < channel_updates.length; i += 1) {
let channel_update = channel_updates[i]
let { advertising_node, connecting_node } = channel_update
// if our node is involved in this update we wanna show a notification
if(info.data.identity_pubkey === advertising_node || info.data.identity_pubkey === connecting_node) {
if (info.data.identity_pubkey === advertising_node || info.data.identity_pubkey === connecting_node) {
// this channel has to do with the user, lets fetch a new channel list for them
// TODO: full fetch is probably not necessary
dispatch(fetchChannels())

4
app/reducers/info.js

@ -25,7 +25,7 @@ export const fetchInfo = () => async (dispatch) => {
}
// Receive IPC event for info
export const receiveInfo = (event, data) => dispatch => {
export const receiveInfo = (event, data) => (dispatch) => {
console.log('receiving info and fetching other stuff')
dispatch(fetchBalance())
dispatch(newAddress('p2pkh'))
@ -33,7 +33,7 @@ export const receiveInfo = (event, data) => dispatch => {
}
// IPC info fetch failed
export const infoFailed = (event, data) => dispatch => {
export const infoFailed = (event, data) => (dispatch) => {
console.log('INFO FAILED data: ', data)
}

10
app/reducers/lnd.js

@ -41,12 +41,12 @@ export const lndSynced = () => (dispatch) => {
showNotification(notifTitle, notifBody)
}
export const grpcDisconnected = () => (dispatch) => dispatch({ type: GRPC_DISCONNECTED })
export const grpcDisconnected = () => dispatch => dispatch({ type: GRPC_DISCONNECTED })
export const grpcConnected = () => (dispatch) => dispatch({ type: GRPC_CONNECTED })
export const grpcConnected = () => dispatch => dispatch({ type: GRPC_CONNECTED })
// Receive IPC event for LND streaming a line
export const lndStdout = (event, line) => dispatch => {
export const lndStdout = (event, line) => (dispatch) => {
let height
let trimmed
@ -59,7 +59,7 @@ export const lndStdout = (event, line) => dispatch => {
trimmed = line.slice(line.indexOf('Catching up block hashes to height') + 'Catching up block hashes to height'.length).trim()
height = trimmed.match(/[-]{0,1}[\d.]*[\d]+/g)[0]
}
dispatch({ type: RECEIVE_LINE, lndBlockHeight: height })
}
@ -95,7 +95,7 @@ const ACTION_HANDLERS = {
[GET_BLOCK_HEIGHT]: state => ({ ...state, fetchingBlockHeight: true }),
[RECEIVE_BLOCK_HEIGHT]: (state, { blockHeight }) => ({ ...state, blockHeight, fetchingBlockHeight: false }),
[GRPC_DISCONNECTED]: state => ({ ...state, grpcStarted: false }),
[GRPC_CONNECTED]: state => ({ ...state, grpcStarted: true })
}

2
app/reducers/peers.js

@ -124,7 +124,7 @@ const ACTION_HANDLERS = {
[GET_PEERS]: state => ({ ...state, peersLoading: true }),
[RECEIVE_PEERS]: (state, { peers }) => ({ ...state, peersLoading: false, peers }),
[UPDATE_SEARCH_QUERY]: (state, { searchQuery }) => ({ ...state, searchQuery })
}

1
app/routes/app/components/App.js

@ -1,6 +1,5 @@
import React, { Component } from 'react'
import PropTypes from 'prop-types'
import LndSyncing from 'components/LndSyncing'
import GlobalError from 'components/GlobalError'
import LoadingBolt from 'components/LoadingBolt'
import Form from 'components/Form'

4
app/routes/channels/components/Channels.js

@ -70,7 +70,7 @@ class Channels extends Component {
const networkClicked = () => {
if (!activeChannels.length) { return }
setViewType(1)
}
@ -192,7 +192,7 @@ Channels.propTypes = {
currentChannels: PropTypes.array.isRequired,
openChannels: PropTypes.array.isRequired,
nonActiveFilters: PropTypes.array.isRequired,
updateChannelSearchQuery: PropTypes.func.isRequired,
setViewType: PropTypes.func.isRequired,
setCurrentChannel: PropTypes.func.isRequired,

13
app/routes/peers/components/Peers.js

@ -1,9 +1,8 @@
import React, { Component } from 'react'
import PropTypes from 'prop-types'
import Isvg from 'react-inlinesvg'
import userIcon from 'icons/user.svg'
import { FaUser, FaRepeat } from 'react-icons/lib/fa'
import FaRepeat from 'react-icons/lib/fa'
import { MdSearch } from 'react-icons/lib/md'
import PeerForm from 'components/Peers/PeerForm'
@ -18,7 +17,7 @@ class Peers extends Component {
}
render() {
const {
const {
fetchPeers,
peerFormProps,
setPeerForm,
@ -29,10 +28,10 @@ class Peers extends Component {
peerModalOpen,
filteredPeers,
peers: { peer, searchQuery },
info: { data: { identity_pubkey } }
info: { data: { identity_pubkey } }
} = this.props
const refreshClicked = event => {
const refreshClicked = (event) => {
// store event in icon so we dont get an error when react clears it
const icon = event.currentTarget
@ -106,8 +105,6 @@ class Peers extends Component {
}
}
Peers.propTypes = {
}
Peers.propTypes = {}
export default Peers

2
app/routes/peers/containers/PeersContainer.js

@ -1,7 +1,7 @@
import { withRouter } from 'react-router'
import { connect } from 'react-redux'
import {
import {
fetchPeers,
setPeer,
setPeerForm,

34
app/store/configureStore.dev.js

@ -6,31 +6,31 @@ import { createLogger } from 'redux-logger'
import rootReducer from '../reducers'
import ipc from '../reducers/ipc'
const history = createHashHistory();
const history = createHashHistory()
const configureStore = (initialState?: counterStateType) => {
// Redux Configuration
const middleware = [];
const enhancers = [];
const middleware = []
const enhancers = []
// Thunk Middleware
middleware.push(thunk);
middleware.push(thunk)
// Logging Middleware
const logger = createLogger({
level: 'info',
collapsed: true
});
middleware.push(logger);
})
middleware.push(logger)
// Router Middleware
const router = routerMiddleware(history);
middleware.push(router);
const router = routerMiddleware(history)
middleware.push(router)
// Redux DevTools Configuration
const actionCreators = {
...routerActions
};
}
// If Redux DevTools Extension is installed use it, otherwise use Redux compose
/* eslint-disable no-underscore-dangle */
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__
@ -38,23 +38,23 @@ const configureStore = (initialState?: counterStateType) => {
// Options: http://zalmoxisus.github.io/redux-devtools-extension/API/Arguments.html
actionCreators
})
: compose;
: compose
/* eslint-enable no-underscore-dangle */
// Apply Middleware & Compose Enhancers
enhancers.push(applyMiddleware(...middleware, ipc));
const enhancer = composeEnhancers(...enhancers);
enhancers.push(applyMiddleware(...middleware, ipc))
const enhancer = composeEnhancers(...enhancers)
// Create Store
const store = createStore(rootReducer, initialState, enhancer);
const store = createStore(rootReducer, initialState, enhancer)
if (module.hot) {
module.hot.accept('../reducers', () =>
store.replaceReducer(require('../reducers')) // eslint-disable-line global-require
);
)
}
return store;
};
return store
}
export default { configureStore, history };
export default { configureStore, history }

4
app/store/configureStore.js

@ -1,6 +1,6 @@
// @flow
if (process.env.NODE_ENV === 'production') {
module.exports = require('./configureStore.prod'); // eslint-disable-line global-require
module.exports = require('./configureStore.prod') // eslint-disable-line global-require
} else {
module.exports = require('./configureStore.dev'); // eslint-disable-line global-require
module.exports = require('./configureStore.dev') // eslint-disable-line global-require
}

2
internals/mocks/fileMock.js

@ -1 +1 @@
export default 'test-file-stub';
export default 'test-file-stub'

16
internals/scripts/CheckBuiltsExist.js

@ -1,24 +1,24 @@
// @flow
// Check if the renderer and main bundles are built
import path from 'path';
import chalk from 'chalk';
import fs from 'fs';
import path from 'path'
import chalk from 'chalk'
import fs from 'fs'
function CheckBuildsExist() {
const mainPath = path.join(__dirname, '..', '..', 'app', 'main.prod.js');
const rendererPath = path.join(__dirname, '..', '..', 'app', 'dist', 'renderer.prod.js');
const mainPath = path.join(__dirname, '..', '..', 'app', 'main.prod.js')
const rendererPath = path.join(__dirname, '..', '..', 'app', 'dist', 'renderer.prod.js')
if (!fs.existsSync(mainPath)) {
throw new Error(chalk.whiteBright.bgRed.bold(
'The main process is not built yet. Build it by running "npm run build-main"'
));
))
}
if (!fs.existsSync(rendererPath)) {
throw new Error(chalk.whiteBright.bgRed.bold(
'The renderer process is not built yet. Build it by running "npm run build-renderer"'
));
))
}
}
CheckBuildsExist();
CheckBuildsExist()

8
internals/scripts/CheckNodeEnv.js

@ -1,17 +1,17 @@
// @flow
import chalk from 'chalk';
import chalk from 'chalk'
export default function CheckNodeEnv(expectedEnv: string) {
if (!expectedEnv) {
throw new Error('"expectedEnv" not set');
throw new Error('"expectedEnv" not set')
}
if (process.env.NODE_ENV !== expectedEnv) {
/* eslint-disable */
console.log(chalk.whiteBright.bgRed.bold(
`"process.env.NODE_ENV" must be "${expectedEnv}" to use this webpack config`
));
))
/* eslint-enable */
process.exit(2);
process.exit(2)
}
}

3
test/components/Nav.spec.js

@ -21,9 +21,8 @@ describe('default elements', () => {
it('should render nav links', () => {
expect(el.find(NavLink).at(0).props().to).toBe('/')
expect(el.find(NavLink).at(1).props().to).toBe('/wallet')
expect(el.find(NavLink).at(1).props().to).toBe('/peers')
expect(el.find(NavLink).at(2).props().to).toBe('/channels')
expect(el.find(NavLink).at(3).props().to).toBe('/settings')
})
it('should render buttons', () => {
expect(el.find('.button').at(0).text()).toContain('Pay')

6
test/example.js

@ -1,5 +1,5 @@
describe('description', () => {
it('should have description', () => {
expect(1 + 2).toBe(3);
});
});
expect(1 + 2).toBe(3)
})
})

11
test/reducers/__snapshots__/peers.spec.js.snap

@ -12,6 +12,7 @@ Object {
},
"peers": Array [],
"peersLoading": false,
"searchQuery": "",
}
`;
@ -27,6 +28,7 @@ Object {
},
"peers": Array [],
"peersLoading": false,
"searchQuery": "",
}
`;
@ -44,6 +46,7 @@ Object {
"foo",
],
"peersLoading": false,
"searchQuery": "",
}
`;
@ -59,6 +62,7 @@ Object {
},
"peers": Array [],
"peersLoading": false,
"searchQuery": "",
}
`;
@ -74,6 +78,7 @@ Object {
},
"peers": Array [],
"peersLoading": false,
"searchQuery": "",
}
`;
@ -89,6 +94,7 @@ Object {
},
"peers": Array [],
"peersLoading": false,
"searchQuery": "",
}
`;
@ -104,6 +110,7 @@ Object {
},
"peers": Array [],
"peersLoading": true,
"searchQuery": "",
}
`;
@ -119,6 +126,7 @@ Object {
},
"peers": "foo",
"peersLoading": false,
"searchQuery": "",
}
`;
@ -134,6 +142,7 @@ Object {
},
"peers": Array [],
"peersLoading": false,
"searchQuery": "",
}
`;
@ -152,6 +161,7 @@ Object {
},
"peers": Array [],
"peersLoading": false,
"searchQuery": "",
}
`;
@ -167,5 +177,6 @@ Object {
},
"peers": Array [],
"peersLoading": false,
"searchQuery": "",
}
`;

12
test/runTests.js

@ -1,11 +1,11 @@
const spawn = require('cross-spawn');
const path = require('path');
const spawn = require('cross-spawn')
const path = require('path')
const s = `\\${path.sep}`;
const s = `\\${path.sep}`
const pattern = process.argv[2] === 'e2e'
? `test${s}e2e${s}.+\\.spec\\.js`
: `test${s}(?!e2e${s})[^${s}]+${s}.+\\.spec\\.js$`;
: `test${s}(?!e2e${s})[^${s}]+${s}.+\\.spec\\.js$`
const result = spawn.sync(path.normalize('./node_modules/.bin/jest'), [pattern], { stdio: 'inherit' });
const result = spawn.sync(path.normalize('./node_modules/.bin/jest'), [pattern], { stdio: 'inherit' })
process.exit(result.status);
process.exit(result.status)

6
webpack.config.base.js

@ -2,9 +2,9 @@
* Base webpack config used across other specific configs
*/
import path from 'path';
import webpack from 'webpack';
import { dependencies as externals } from './app/package.json';
import path from 'path'
import webpack from 'webpack'
import { dependencies as externals } from './app/package.json'
export default {
externals: Object.keys(externals || {}),

4
webpack.config.eslint.js

@ -1,3 +1,3 @@
require('babel-register');
require('babel-register')
module.exports = require('./webpack.config.renderer.dev');
module.exports = require('./webpack.config.renderer.dev')

16
webpack.config.main.prod.js

@ -2,14 +2,14 @@
* Webpack config for production electron main process
*/
import webpack from 'webpack';
import merge from 'webpack-merge';
import BabiliPlugin from 'babili-webpack-plugin';
import { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer';
import baseConfig from './webpack.config.base';
import CheckNodeEnv from './internals/scripts/CheckNodeEnv';
import webpack from 'webpack'
import merge from 'webpack-merge'
import BabiliPlugin from 'babili-webpack-plugin'
import { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer'
import baseConfig from './webpack.config.base'
import CheckNodeEnv from './internals/scripts/CheckNodeEnv'
CheckNodeEnv('production');
CheckNodeEnv('production')
export default merge.smart(baseConfig, {
devtool: 'source-map',
@ -59,4 +59,4 @@ export default merge.smart(baseConfig, {
__dirname: false,
__filename: false
}
});
})

18
webpack.config.renderer.dev.dll.js

@ -2,16 +2,16 @@
* Builds the DLL for development electron renderer process
*/
import webpack from 'webpack';
import path from 'path';
import merge from 'webpack-merge';
import baseConfig from './webpack.config.base';
import { dependencies } from './package.json';
import CheckNodeEnv from './internals/scripts/CheckNodeEnv';
import webpack from 'webpack'
import path from 'path'
import merge from 'webpack-merge'
import baseConfig from './webpack.config.base'
import { dependencies } from './package.json'
import CheckNodeEnv from './internals/scripts/CheckNodeEnv'
CheckNodeEnv('development');
CheckNodeEnv('development')
const dist = path.resolve(process.cwd(), 'dll');
const dist = path.resolve(process.cwd(), 'dll')
export default merge.smart(baseConfig, {
context: process.cwd(),
@ -205,4 +205,4 @@ export default merge.smart(baseConfig, {
}
})
]
});
})

20
webpack.config.renderer.prod.js

@ -2,16 +2,16 @@
* Build config for electron renderer process
*/
import path from 'path';
import webpack from 'webpack';
import ExtractTextPlugin from 'extract-text-webpack-plugin';
import { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer';
import merge from 'webpack-merge';
import BabiliPlugin from 'babili-webpack-plugin';
import baseConfig from './webpack.config.base';
import CheckNodeEnv from './internals/scripts/CheckNodeEnv';
import path from 'path'
import webpack from 'webpack'
import ExtractTextPlugin from 'extract-text-webpack-plugin'
import { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer'
import merge from 'webpack-merge'
import BabiliPlugin from 'babili-webpack-plugin'
import baseConfig from './webpack.config.base'
import CheckNodeEnv from './internals/scripts/CheckNodeEnv'
CheckNodeEnv('production');
CheckNodeEnv('production')
export default merge.smart(baseConfig, {
devtool: 'source-map',
@ -165,4 +165,4 @@ export default merge.smart(baseConfig, {
openAnalyzer: process.env.OPEN_ANALYZER === 'true'
})
]
});
})

Loading…
Cancel
Save