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": { "rules": {
"comma-dangle": ["error", "never"], "comma-dangle": ["error", "never"],
"semi": 0, "semi": ["error", "never"],
"indent": 2, "indent": 2,
"jsx-quotes": ["error", "prefer-single"], "jsx-quotes": ["error", "prefer-single"],
"react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx"] }], "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 { class StepOne extends Component {
constructor(props) { constructor(props) {
super(props); super(props)
this.state = { this.state = {
peers: props.peers, peers: props.peers,
searchQuery: '' searchQuery: ''

1
app/components/Nav/Nav.js

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

2
app/components/Peers/Peers.js

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

12
app/containers/Root.js

@ -17,11 +17,6 @@ const mapStateToProps = state => ({
syncPercentage: lndSelectors.syncPercentage(state) syncPercentage: lndSelectors.syncPercentage(state)
}) })
type RootType = {
store: {},
history: {}
};
class Root extends React.Component { class Root extends React.Component {
render() { render() {
const { const {
@ -34,7 +29,7 @@ class Root extends React.Component {
console.log('lnd: ', lnd) console.log('lnd: ', lnd)
console.log('lnd: ', lnd) console.log('lnd: ', lnd)
if (lnd.syncing) { if (lnd.syncing) {
return ( return (
<LndSyncing <LndSyncing
@ -55,7 +50,8 @@ class Root extends React.Component {
</Provider> </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 React from 'react'
import { render } from 'react-dom'; import { render } from 'react-dom'
import { AppContainer } from 'react-hot-loader'; import { AppContainer } from 'react-hot-loader'
import Root from './containers/Root'; import Root from './containers/Root'
import { configureStore, history } from './store/configureStore'; import { configureStore, history } from './store/configureStore'
import './app.global.scss'; import './app.global.scss'
const store = configureStore(); const store = configureStore()
render( render(
<AppContainer> <AppContainer>
<Root store={store} history={history} /> <Root store={store} history={history} />
</AppContainer>, </AppContainer>,
document.getElementById('root') document.getElementById('root')
); )
if (module.hot) { if (module.hot) {
module.hot.accept('./containers/Root', () => { 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( render(
<AppContainer> <AppContainer>
<NextRoot store={store} history={history} /> <NextRoot store={store} history={history} />
</AppContainer>, </AppContainer>,
document.getElementById('root') document.getElementById('root')
); )
}); })
} }

2
app/lnd/config/index.js

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

2
app/lnd/lib/lightning.js

@ -6,7 +6,7 @@ import config from '../config'
module.exports = (rpcpath, host) => { module.exports = (rpcpath, host) => {
const lndCert = fs.readFileSync(config.cert) const lndCert = fs.readFileSync(config.cert)
const credentials = grpc.credentials.createSsl(lndCert) const credentials = grpc.credentials.createSsl(lndCert)
const rpc = grpc.load(path.join(__dirname, 'rpc.proto')) const rpc = grpc.load(path.join(__dirname, 'rpc.proto'))
return new rpc.lnrpc.Lightning(host, credentials) 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('receiveInfo', infoData)
event.sender.send('receiveCryptocurrency', infoData.chains[0]) event.sender.send('receiveCryptocurrency', infoData.chains[0])
}) })
.catch(error => { .catch((error) => {
console.log('error: ', error) console.log('error: ', error)
event.sender.send('infoFailed') event.sender.send('infoFailed')
}) })

4
app/lnd/utils/index.js

@ -19,8 +19,8 @@ export function decodeInvoice(payreq) {
+ bufferHexRotated.substr(0, bufferHexRotated.length - 1) + bufferHexRotated.substr(0, bufferHexRotated.length - 1)
const buffer = Buffer.from(bufferHex, 'hex') const buffer = Buffer.from(bufferHex, 'hex')
const pubkeyBuffer = buffer.slice(0, 33); const pubkeyBuffer = buffer.slice(0, 33)
const pubkey = pubkeyBuffer.toString('hex'); const pubkey = pubkeyBuffer.toString('hex')
const paymentHashBuffer = buffer.slice(33, 65) const paymentHashBuffer = buffer.slice(33, 65)
const paymentHashHex = paymentHashBuffer.toString('hex') 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 // Receive IPC event for info
export const receiveAddress = (event, address) => dispatch => { export const receiveAddress = (event, address) => (dispatch) => {
dispatch({ type: RECEIVE_ADDRESS, address }) dispatch({ type: RECEIVE_ADDRESS, address })
} }

6
app/reducers/channels.js

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

4
app/reducers/info.js

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

10
app/reducers/lnd.js

@ -41,12 +41,12 @@ export const lndSynced = () => (dispatch) => {
showNotification(notifTitle, notifBody) 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 // Receive IPC event for LND streaming a line
export const lndStdout = (event, line) => dispatch => { export const lndStdout = (event, line) => (dispatch) => {
let height let height
let trimmed 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() 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] height = trimmed.match(/[-]{0,1}[\d.]*[\d]+/g)[0]
} }
dispatch({ type: RECEIVE_LINE, lndBlockHeight: height }) dispatch({ type: RECEIVE_LINE, lndBlockHeight: height })
} }
@ -95,7 +95,7 @@ const ACTION_HANDLERS = {
[GET_BLOCK_HEIGHT]: state => ({ ...state, fetchingBlockHeight: true }), [GET_BLOCK_HEIGHT]: state => ({ ...state, fetchingBlockHeight: true }),
[RECEIVE_BLOCK_HEIGHT]: (state, { blockHeight }) => ({ ...state, blockHeight, fetchingBlockHeight: false }), [RECEIVE_BLOCK_HEIGHT]: (state, { blockHeight }) => ({ ...state, blockHeight, fetchingBlockHeight: false }),
[GRPC_DISCONNECTED]: state => ({ ...state, grpcStarted: false }), [GRPC_DISCONNECTED]: state => ({ ...state, grpcStarted: false }),
[GRPC_CONNECTED]: state => ({ ...state, grpcStarted: true }) [GRPC_CONNECTED]: state => ({ ...state, grpcStarted: true })
} }

2
app/reducers/peers.js

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

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

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

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

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

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

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

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

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

34
app/store/configureStore.dev.js

@ -6,31 +6,31 @@ import { createLogger } from 'redux-logger'
import rootReducer from '../reducers' import rootReducer from '../reducers'
import ipc from '../reducers/ipc' import ipc from '../reducers/ipc'
const history = createHashHistory(); const history = createHashHistory()
const configureStore = (initialState?: counterStateType) => { const configureStore = (initialState?: counterStateType) => {
// Redux Configuration // Redux Configuration
const middleware = []; const middleware = []
const enhancers = []; const enhancers = []
// Thunk Middleware // Thunk Middleware
middleware.push(thunk); middleware.push(thunk)
// Logging Middleware // Logging Middleware
const logger = createLogger({ const logger = createLogger({
level: 'info', level: 'info',
collapsed: true collapsed: true
}); })
middleware.push(logger); middleware.push(logger)
// Router Middleware // Router Middleware
const router = routerMiddleware(history); const router = routerMiddleware(history)
middleware.push(router); middleware.push(router)
// Redux DevTools Configuration // Redux DevTools Configuration
const actionCreators = { const actionCreators = {
...routerActions ...routerActions
}; }
// If Redux DevTools Extension is installed use it, otherwise use Redux compose // If Redux DevTools Extension is installed use it, otherwise use Redux compose
/* eslint-disable no-underscore-dangle */ /* eslint-disable no-underscore-dangle */
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ 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 // Options: http://zalmoxisus.github.io/redux-devtools-extension/API/Arguments.html
actionCreators actionCreators
}) })
: compose; : compose
/* eslint-enable no-underscore-dangle */ /* eslint-enable no-underscore-dangle */
// Apply Middleware & Compose Enhancers // Apply Middleware & Compose Enhancers
enhancers.push(applyMiddleware(...middleware, ipc)); enhancers.push(applyMiddleware(...middleware, ipc))
const enhancer = composeEnhancers(...enhancers); const enhancer = composeEnhancers(...enhancers)
// Create Store // Create Store
const store = createStore(rootReducer, initialState, enhancer); const store = createStore(rootReducer, initialState, enhancer)
if (module.hot) { if (module.hot) {
module.hot.accept('../reducers', () => module.hot.accept('../reducers', () =>
store.replaceReducer(require('../reducers')) // eslint-disable-line global-require 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 // @flow
if (process.env.NODE_ENV === 'production') { 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 { } 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 // @flow
// Check if the renderer and main bundles are built // Check if the renderer and main bundles are built
import path from 'path'; import path from 'path'
import chalk from 'chalk'; import chalk from 'chalk'
import fs from 'fs'; import fs from 'fs'
function CheckBuildsExist() { function CheckBuildsExist() {
const mainPath = path.join(__dirname, '..', '..', 'app', 'main.prod.js'); const mainPath = path.join(__dirname, '..', '..', 'app', 'main.prod.js')
const rendererPath = path.join(__dirname, '..', '..', 'app', 'dist', 'renderer.prod.js'); const rendererPath = path.join(__dirname, '..', '..', 'app', 'dist', 'renderer.prod.js')
if (!fs.existsSync(mainPath)) { if (!fs.existsSync(mainPath)) {
throw new Error(chalk.whiteBright.bgRed.bold( throw new Error(chalk.whiteBright.bgRed.bold(
'The main process is not built yet. Build it by running "npm run build-main"' 'The main process is not built yet. Build it by running "npm run build-main"'
)); ))
} }
if (!fs.existsSync(rendererPath)) { if (!fs.existsSync(rendererPath)) {
throw new Error(chalk.whiteBright.bgRed.bold( throw new Error(chalk.whiteBright.bgRed.bold(
'The renderer process is not built yet. Build it by running "npm run build-renderer"' '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 // @flow
import chalk from 'chalk'; import chalk from 'chalk'
export default function CheckNodeEnv(expectedEnv: string) { export default function CheckNodeEnv(expectedEnv: string) {
if (!expectedEnv) { if (!expectedEnv) {
throw new Error('"expectedEnv" not set'); throw new Error('"expectedEnv" not set')
} }
if (process.env.NODE_ENV !== expectedEnv) { if (process.env.NODE_ENV !== expectedEnv) {
/* eslint-disable */ /* eslint-disable */
console.log(chalk.whiteBright.bgRed.bold( console.log(chalk.whiteBright.bgRed.bold(
`"process.env.NODE_ENV" must be "${expectedEnv}" to use this webpack config` `"process.env.NODE_ENV" must be "${expectedEnv}" to use this webpack config`
)); ))
/* eslint-enable */ /* 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', () => { it('should render nav links', () => {
expect(el.find(NavLink).at(0).props().to).toBe('/') 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(2).props().to).toBe('/channels')
expect(el.find(NavLink).at(3).props().to).toBe('/settings')
}) })
it('should render buttons', () => { it('should render buttons', () => {
expect(el.find('.button').at(0).text()).toContain('Pay') expect(el.find('.button').at(0).text()).toContain('Pay')

6
test/example.js

@ -1,5 +1,5 @@
describe('description', () => { describe('description', () => {
it('should have 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 [], "peers": Array [],
"peersLoading": false, "peersLoading": false,
"searchQuery": "",
} }
`; `;
@ -27,6 +28,7 @@ Object {
}, },
"peers": Array [], "peers": Array [],
"peersLoading": false, "peersLoading": false,
"searchQuery": "",
} }
`; `;
@ -44,6 +46,7 @@ Object {
"foo", "foo",
], ],
"peersLoading": false, "peersLoading": false,
"searchQuery": "",
} }
`; `;
@ -59,6 +62,7 @@ Object {
}, },
"peers": Array [], "peers": Array [],
"peersLoading": false, "peersLoading": false,
"searchQuery": "",
} }
`; `;
@ -74,6 +78,7 @@ Object {
}, },
"peers": Array [], "peers": Array [],
"peersLoading": false, "peersLoading": false,
"searchQuery": "",
} }
`; `;
@ -89,6 +94,7 @@ Object {
}, },
"peers": Array [], "peers": Array [],
"peersLoading": false, "peersLoading": false,
"searchQuery": "",
} }
`; `;
@ -104,6 +110,7 @@ Object {
}, },
"peers": Array [], "peers": Array [],
"peersLoading": true, "peersLoading": true,
"searchQuery": "",
} }
`; `;
@ -119,6 +126,7 @@ Object {
}, },
"peers": "foo", "peers": "foo",
"peersLoading": false, "peersLoading": false,
"searchQuery": "",
} }
`; `;
@ -134,6 +142,7 @@ Object {
}, },
"peers": Array [], "peers": Array [],
"peersLoading": false, "peersLoading": false,
"searchQuery": "",
} }
`; `;
@ -152,6 +161,7 @@ Object {
}, },
"peers": Array [], "peers": Array [],
"peersLoading": false, "peersLoading": false,
"searchQuery": "",
} }
`; `;
@ -167,5 +177,6 @@ Object {
}, },
"peers": Array [], "peers": Array [],
"peersLoading": false, "peersLoading": false,
"searchQuery": "",
} }
`; `;

12
test/runTests.js

@ -1,11 +1,11 @@
const spawn = require('cross-spawn'); const spawn = require('cross-spawn')
const path = require('path'); const path = require('path')
const s = `\\${path.sep}`; const s = `\\${path.sep}`
const pattern = process.argv[2] === 'e2e' const pattern = process.argv[2] === 'e2e'
? `test${s}e2e${s}.+\\.spec\\.js` ? `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 * Base webpack config used across other specific configs
*/ */
import path from 'path'; import path from 'path'
import webpack from 'webpack'; import webpack from 'webpack'
import { dependencies as externals } from './app/package.json'; import { dependencies as externals } from './app/package.json'
export default { export default {
externals: Object.keys(externals || {}), 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 * Webpack config for production electron main process
*/ */
import webpack from 'webpack'; import webpack from 'webpack'
import merge from 'webpack-merge'; import merge from 'webpack-merge'
import BabiliPlugin from 'babili-webpack-plugin'; import BabiliPlugin from 'babili-webpack-plugin'
import { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer'; import { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer'
import baseConfig from './webpack.config.base'; import baseConfig from './webpack.config.base'
import CheckNodeEnv from './internals/scripts/CheckNodeEnv'; import CheckNodeEnv from './internals/scripts/CheckNodeEnv'
CheckNodeEnv('production'); CheckNodeEnv('production')
export default merge.smart(baseConfig, { export default merge.smart(baseConfig, {
devtool: 'source-map', devtool: 'source-map',
@ -59,4 +59,4 @@ export default merge.smart(baseConfig, {
__dirname: false, __dirname: false,
__filename: false __filename: false
} }
}); })

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

@ -2,16 +2,16 @@
* Builds the DLL for development electron renderer process * Builds the DLL for development electron renderer process
*/ */
import webpack from 'webpack'; import webpack from 'webpack'
import path from 'path'; import path from 'path'
import merge from 'webpack-merge'; import merge from 'webpack-merge'
import baseConfig from './webpack.config.base'; import baseConfig from './webpack.config.base'
import { dependencies } from './package.json'; import { dependencies } from './package.json'
import CheckNodeEnv from './internals/scripts/CheckNodeEnv'; 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, { export default merge.smart(baseConfig, {
context: process.cwd(), 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 * Build config for electron renderer process
*/ */
import path from 'path'; import path from 'path'
import webpack from 'webpack'; import webpack from 'webpack'
import ExtractTextPlugin from 'extract-text-webpack-plugin'; import ExtractTextPlugin from 'extract-text-webpack-plugin'
import { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer'; import { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer'
import merge from 'webpack-merge'; import merge from 'webpack-merge'
import BabiliPlugin from 'babili-webpack-plugin'; import BabiliPlugin from 'babili-webpack-plugin'
import baseConfig from './webpack.config.base'; import baseConfig from './webpack.config.base'
import CheckNodeEnv from './internals/scripts/CheckNodeEnv'; import CheckNodeEnv from './internals/scripts/CheckNodeEnv'
CheckNodeEnv('production'); CheckNodeEnv('production')
export default merge.smart(baseConfig, { export default merge.smart(baseConfig, {
devtool: 'source-map', devtool: 'source-map',
@ -165,4 +165,4 @@ export default merge.smart(baseConfig, {
openAnalyzer: process.env.OPEN_ANALYZER === 'true' openAnalyzer: process.env.OPEN_ANALYZER === 'true'
}) })
] ]
}); })

Loading…
Cancel
Save