Merge pull request #1462 from webtorrent/standard-12

standard
This commit is contained in:
Feross Aboukhadijeh
2018-08-28 19:41:59 -07:00
committed by GitHub
34 changed files with 57 additions and 57 deletions

View File

@@ -7,7 +7,7 @@ const path = require('path')
let hasErrors = false let hasErrors = false
// Find all Javascript source files // Find all Javascript source files
const files = walkSync('src', {globs: ['**/*.js']}) const files = walkSync('src', { globs: ['**/*.js'] })
console.log('Running extra-lint on ' + files.length + ' files...') console.log('Running extra-lint on ' + files.length + ' files...')
// Read each file, line by line // Read each file, line by line

View File

@@ -4,7 +4,7 @@ module.exports = {
setBadge setBadge
} }
const {app, Menu} = require('electron') const { app, Menu } = require('electron')
const dialog = require('./dialog') const dialog = require('./dialog')
const log = require('./log') const log = require('./log')

View File

@@ -52,7 +52,7 @@ function spawnExternal (playerPath, args) {
playerPath += `/Contents/MacOS/${path.basename(playerPath, '.app')}` playerPath += `/Contents/MacOS/${path.basename(playerPath, '.app')}`
} }
proc = cp.spawn(playerPath, args, {stdio: 'ignore'}) proc = cp.spawn(playerPath, args, { stdio: 'ignore' })
// If it works, close the modal after a second // If it works, close the modal after a second
const closeModalTimeout = setTimeout(() => const closeModalTimeout = setTimeout(() =>

View File

@@ -2,7 +2,7 @@ const chokidar = require('chokidar')
const log = require('./log') const log = require('./log')
class FolderWatcher { class FolderWatcher {
constructor ({window, state}) { constructor ({ window, state }) {
this.window = window this.window = window
this.state = state this.state = state
this.torrentsFolderPath = null this.torrentsFolderPath = null

View File

@@ -74,7 +74,7 @@ function init () {
isReady = true isReady = true
const state = results.state const state = results.state
windows.main.init(state, {hidden: hidden}) windows.main.init(state, { hidden: hidden })
windows.webtorrent.init() windows.webtorrent.init()
menu.init() menu.init()
@@ -86,7 +86,7 @@ function init () {
// Report uncaught exceptions // Report uncaught exceptions
process.on('uncaughtException', (err) => { process.on('uncaughtException', (err) => {
console.error(err) console.error(err)
const error = {message: err.message, stack: err.stack} const error = { message: err.message, stack: err.stack }
windows.main.dispatch('uncaughtError', 'main', error) windows.main.dispatch('uncaughtError', 'main', error)
}) })
} }
@@ -131,7 +131,7 @@ function delayedInit (state) {
const dock = require('./dock') const dock = require('./dock')
const updater = require('./updater') const updater = require('./updater')
const FolderWatcher = require('./folder-watcher') const FolderWatcher = require('./folder-watcher')
const folderWatcher = new FolderWatcher({window: windows.main, state}) const folderWatcher = new FolderWatcher({ window: windows.main, state })
announcement.init() announcement.init()
dock.init() dock.init()

View File

@@ -1,6 +1,6 @@
const React = require('react') const React = require('react')
const {dispatcher} = require('../lib/dispatcher') const { dispatcher } = require('../lib/dispatcher')
module.exports = class CreateTorrentErrorPage extends React.Component { module.exports = class CreateTorrentErrorPage extends React.Component {
render () { render () {

View File

@@ -1,6 +1,6 @@
const React = require('react') const React = require('react')
const {dispatcher} = require('../lib/dispatcher') const { dispatcher } = require('../lib/dispatcher')
class Header extends React.Component { class Header extends React.Component {
render () { render () {

View File

@@ -5,7 +5,7 @@ const RaisedButton = require('material-ui/RaisedButton').default
module.exports = class ModalOKCancel extends React.Component { module.exports = class ModalOKCancel extends React.Component {
render () { render () {
const cancelStyle = { marginRight: 10, color: 'black' } const cancelStyle = { marginRight: 10, color: 'black' }
const {cancelText, onCancel, okText, onOK} = this.props const { cancelText, onCancel, okText, onOK } = this.props
return ( return (
<div className='float-right'> <div className='float-right'>
<FlatButton <FlatButton

View File

@@ -2,7 +2,7 @@ const React = require('react')
const TextField = require('material-ui/TextField').default const TextField = require('material-ui/TextField').default
const ModalOKCancel = require('./modal-ok-cancel') const ModalOKCancel = require('./modal-ok-cancel')
const {dispatch, dispatcher} = require('../lib/dispatcher') const { dispatch, dispatcher } = require('../lib/dispatcher')
module.exports = class OpenTorrentAddressModal extends React.Component { module.exports = class OpenTorrentAddressModal extends React.Component {
render () { render () {

View File

@@ -1,7 +1,7 @@
const React = require('react') const React = require('react')
const ModalOKCancel = require('./modal-ok-cancel') const ModalOKCancel = require('./modal-ok-cancel')
const {dispatch, dispatcher} = require('../lib/dispatcher') const { dispatch, dispatcher } = require('../lib/dispatcher')
module.exports = class RemoveTorrentModal extends React.Component { module.exports = class RemoveTorrentModal extends React.Component {
render () { render () {

View File

@@ -2,7 +2,7 @@ const React = require('react')
const electron = require('electron') const electron = require('electron')
const ModalOKCancel = require('./modal-ok-cancel') const ModalOKCancel = require('./modal-ok-cancel')
const {dispatcher} = require('../lib/dispatcher') const { dispatcher } = require('../lib/dispatcher')
module.exports = class UnsupportedMediaModal extends React.Component { module.exports = class UnsupportedMediaModal extends React.Component {
render () { render () {

View File

@@ -2,7 +2,7 @@ const React = require('react')
const electron = require('electron') const electron = require('electron')
const ModalOKCancel = require('./modal-ok-cancel') const ModalOKCancel = require('./modal-ok-cancel')
const {dispatch} = require('../lib/dispatcher') const { dispatch } = require('../lib/dispatcher')
module.exports = class UpdateAvailableModal extends React.Component { module.exports = class UpdateAvailableModal extends React.Component {
render () { render () {

View File

@@ -1,4 +1,4 @@
const {ipcRenderer} = require('electron') const { ipcRenderer } = require('electron')
module.exports = class FolderWatcherController { module.exports = class FolderWatcherController {
start () { start () {

View File

@@ -1,4 +1,4 @@
const {ipcRenderer} = require('electron') const { ipcRenderer } = require('electron')
const telemetry = require('../lib/telemetry') const telemetry = require('../lib/telemetry')
const Playlist = require('../lib/playlist') const Playlist = require('../lib/playlist')

View File

@@ -2,9 +2,9 @@ const electron = require('electron')
const path = require('path') const path = require('path')
const Cast = require('../lib/cast') const Cast = require('../lib/cast')
const {dispatch} = require('../lib/dispatcher') const { dispatch } = require('../lib/dispatcher')
const telemetry = require('../lib/telemetry') const telemetry = require('../lib/telemetry')
const {UnplayableFileError, UnplayableTorrentError} = require('../lib/errors') const { UnplayableFileError, UnplayableTorrentError } = require('../lib/errors')
const sound = require('../lib/sound') const sound = require('../lib/sound')
const TorrentPlayer = require('../lib/torrent-player') const TorrentPlayer = require('../lib/torrent-player')
const TorrentSummary = require('../lib/torrent-summary') const TorrentSummary = require('../lib/torrent-summary')

View File

@@ -1,4 +1,4 @@
const {dispatch} = require('../lib/dispatcher') const { dispatch } = require('../lib/dispatcher')
const ipcRenderer = require('electron').ipcRenderer const ipcRenderer = require('electron').ipcRenderer
// Controls the Preferences screen // Controls the Preferences screen

View File

@@ -5,7 +5,7 @@ const parallel = require('run-parallel')
const remote = electron.remote const remote = electron.remote
const {dispatch} = require('../lib/dispatcher') const { dispatch } = require('../lib/dispatcher')
module.exports = class SubtitlesController { module.exports = class SubtitlesController {
constructor (state) { constructor (state) {

View File

@@ -3,7 +3,7 @@ const ipcRenderer = require('electron').ipcRenderer
const TorrentSummary = require('../lib/torrent-summary') const TorrentSummary = require('../lib/torrent-summary')
const sound = require('../lib/sound') const sound = require('../lib/sound')
const {dispatch} = require('../lib/dispatcher') const { dispatch } = require('../lib/dispatcher')
module.exports = class TorrentController { module.exports = class TorrentController {
constructor (state) { constructor (state) {

View File

@@ -2,8 +2,8 @@ const fs = require('fs')
const path = require('path') const path = require('path')
const electron = require('electron') const electron = require('electron')
const {dispatch} = require('../lib/dispatcher') const { dispatch } = require('../lib/dispatcher')
const {TorrentKeyNotFoundError} = require('../lib/errors') const { TorrentKeyNotFoundError } = require('../lib/errors')
const sound = require('../lib/sound') const sound = require('../lib/sound')
const TorrentSummary = require('../lib/torrent-summary') const TorrentSummary = require('../lib/torrent-summary')

View File

@@ -1,4 +1,4 @@
const {dispatch} = require('../lib/dispatcher') const { dispatch } = require('../lib/dispatcher')
// Controls the UI checking for new versions of the app, prompting install // Controls the UI checking for new versions of the app, prompting install
module.exports = class UpdateController { module.exports = class UpdateController {

View File

@@ -16,7 +16,7 @@ module.exports = {
const http = require('http') const http = require('http')
const config = require('../../config') const config = require('../../config')
const {CastingError} = require('./errors') const { CastingError } = require('./errors')
// Lazy load these for a ~300ms improvement in startup time // Lazy load these for a ~300ms improvement in startup time
let airplayer, chromecasts, dlnacasts let airplayer, chromecasts, dlnacasts
@@ -83,7 +83,7 @@ function testPlayer (type) {
} }
function getDevices () { function getDevices () {
return [{name: type + '-1'}, {name: type + '-2'}] return [{ name: type + '-1' }, { name: type + '-2' }]
} }
function open () {} function open () {}
@@ -429,11 +429,11 @@ function toggleMenu (location) {
} }
// Show a menu // Show a menu
state.devices.castMenu = {location, devices} state.devices.castMenu = { location, devices }
} }
function selectDevice (index) { function selectDevice (index) {
const {location, devices} = state.devices.castMenu const { location, devices } = state.devices.castMenu
// Start casting // Start casting
const player = getPlayer(location) const player = getPlayer(location)

View File

@@ -3,7 +3,7 @@ module.exports = {
} }
const config = require('../../config') const config = require('../../config')
const {InvalidSoundNameError} = require('./errors') const { InvalidSoundNameError } = require('./errors')
const path = require('path') const path = require('path')
const VOLUME = 0.25 const VOLUME = 0.25

View File

@@ -1,6 +1,6 @@
const appConfig = require('application-config')('WebTorrent') const appConfig = require('application-config')('WebTorrent')
const path = require('path') const path = require('path')
const {EventEmitter} = require('events') const { EventEmitter } = require('events')
const config = require('../../config') const config = require('../../config')

View File

@@ -121,7 +121,7 @@ function getTorrentStats (state) {
} }
// Then, round all the counts and sums to the nearest power of 2 // Then, round all the counts and sums to the nearest power of 2
const ret = roundTorrentStats({count, sizeMB}) const ret = roundTorrentStats({ count, sizeMB })
ret.byStatus = { ret.byStatus = {
new: roundTorrentStats(byStatus.new), new: roundTorrentStats(byStatus.new),
downloading: roundTorrentStats(byStatus.downloading), downloading: roundTorrentStats(byStatus.downloading),
@@ -198,7 +198,7 @@ function logUncaughtError (procName, e) {
// Log the app version *at the time of the error* // Log the app version *at the time of the error*
const version = config.APP_VERSION const version = config.APP_VERSION
telemetry.uncaughtErrors.push({process: procName, message, stack, version}) telemetry.uncaughtErrors.push({ process: procName, message, stack, version })
} }
// Turns a DOM element into a string, eg "DIV.my-class.visible" // Turns a DOM element into a string, eg "DIV.my-class.visible"

View File

@@ -16,7 +16,7 @@ function torrentPoster (torrent, cb) {
const bestScore = ['audio', 'video', 'image'].map(mediaType => { const bestScore = ['audio', 'video', 'image'].map(mediaType => {
return { return {
type: mediaType, type: mediaType,
size: calculateDataLengthByExtension(torrent, mediaExtensions[mediaType])} size: calculateDataLengthByExtension(torrent, mediaExtensions[mediaType]) }
}).sort((a, b) => { // sort descending on size }).sort((a, b) => { // sort descending on size
return b.size - a.size return b.size - a.size
})[0] })[0]

View File

@@ -450,7 +450,7 @@ function setDimensions (dimensions) {
) )
ipcRenderer.send('setAspectRatio', aspectRatio) ipcRenderer.send('setAspectRatio', aspectRatio)
ipcRenderer.send('setBounds', {contentBounds: true, x: null, y: null, width, height}) ipcRenderer.send('setBounds', { contentBounds: true, x: null, y: null, width, height })
state.playing.aspectRatio = aspectRatio state.playing.aspectRatio = aspectRatio
} }

View File

@@ -3,7 +3,7 @@ const path = require('path')
const prettyBytes = require('prettier-bytes') const prettyBytes = require('prettier-bytes')
const React = require('react') const React = require('react')
const {dispatch, dispatcher} = require('../lib/dispatcher') const { dispatch, dispatcher } = require('../lib/dispatcher')
const FlatButton = require('material-ui/FlatButton').default const FlatButton = require('material-ui/FlatButton').default
const RaisedButton = require('material-ui/RaisedButton').default const RaisedButton = require('material-ui/RaisedButton').default
@@ -35,7 +35,7 @@ class CreateTorrentPage extends React.Component {
// Then, exclude .DS_Store and other dotfiles // Then, exclude .DS_Store and other dotfiles
const files = info.files const files = info.files
.filter((f) => !containsDots(f.path, pathPrefix)) .filter((f) => !containsDots(f.path, pathPrefix))
.map((f) => ({name: f.name, path: f.path, size: f.size})) .map((f) => ({ name: f.name, path: f.path, size: f.size }))
if (files.length === 0) return (<CreateTorrentErrorPage state={state} />) if (files.length === 0) return (<CreateTorrentErrorPage state={state} />)
// Then, use the name of the base folder (or sole file, for a single file torrent) // Then, use the name of the base folder (or sole file, for a single file torrent)
@@ -65,9 +65,9 @@ class CreateTorrentPage extends React.Component {
} }
// Create React event handlers only once // Create React event handlers only once
this.setIsPrivate = (_, isPrivate) => this.setState({isPrivate}) this.setIsPrivate = (_, isPrivate) => this.setState({ isPrivate })
this.setComment = (_, comment) => this.setState({comment}) this.setComment = (_, comment) => this.setState({ comment })
this.setTrackers = (_, trackers) => this.setState({trackers}) this.setTrackers = (_, trackers) => this.setState({ trackers })
this.handleSubmit = handleSubmit.bind(this) this.handleSubmit = handleSubmit.bind(this)
} }
@@ -141,7 +141,7 @@ class CreateTorrentPage extends React.Component {
<label>Private:</label> <label>Private:</label>
<Checkbox <Checkbox
className='torrent-is-private control' className='torrent-is-private control'
style={{display: ''}} style={{ display: '' }}
checked={this.state.isPrivate} checked={this.state.isPrivate}
onCheck={this.setIsPrivate} /> onCheck={this.setIsPrivate} />
</div> </div>

View File

@@ -5,7 +5,7 @@ const zeroFill = require('zero-fill')
const TorrentSummary = require('../lib/torrent-summary') const TorrentSummary = require('../lib/torrent-summary')
const Playlist = require('../lib/playlist') const Playlist = require('../lib/playlist')
const {dispatch, dispatcher} = require('../lib/dispatcher') const { dispatch, dispatcher } = require('../lib/dispatcher')
const config = require('../../config') const config = require('../../config')
// Shows a streaming video player. Standard features + Chromecast + Airplay // Shows a streaming video player. Standard features + Chromecast + Airplay
@@ -397,7 +397,7 @@ function renderCastScreen (state) {
function renderCastOptions (state) { function renderCastOptions (state) {
if (!state.devices.castMenu) return if (!state.devices.castMenu) return
const {location, devices} = state.devices.castMenu const { location, devices } = state.devices.castMenu
const player = state.devices[location] const player = state.devices[location]
const items = devices.map(function (device, ix) { const items = devices.map(function (device, ix) {
@@ -520,9 +520,9 @@ function renderPlayerControls (state) {
// Add the cast buttons. Icons for each cast type, connected/disconnected: // Add the cast buttons. Icons for each cast type, connected/disconnected:
const buttonIcons = { const buttonIcons = {
'chromecast': {true: 'cast_connected', false: 'cast'}, 'chromecast': { true: 'cast_connected', false: 'cast' },
'airplay': {true: 'airplay', false: 'airplay'}, 'airplay': { true: 'airplay', false: 'airplay' },
'dlna': {true: 'tv', false: 'tv'} 'dlna': { true: 'tv', false: 'tv' }
} }
castTypes.forEach(function (castType) { castTypes.forEach(function (castType) {
// Do we show this button (eg. the Chromecast button) at all? // Do we show this button (eg. the Chromecast button) at all?
@@ -677,7 +677,7 @@ function renderLoadingBar (state) {
for (let i = fileProg.startPiece; i <= fileProg.endPiece; i++) { for (let i = fileProg.startPiece; i <= fileProg.endPiece; i++) {
const partPresent = Bitfield.prototype.get.call(prog.bitfield, i) const partPresent = Bitfield.prototype.get.call(prog.bitfield, i)
if (partPresent && !lastPiecePresent) { if (partPresent && !lastPiecePresent) {
parts.push({start: i - fileProg.startPiece, count: 1}) parts.push({ start: i - fileProg.startPiece, count: 1 })
} else if (partPresent) { } else if (partPresent) {
parts[parts.length - 1].count++ parts[parts.length - 1].count++
} }

View File

@@ -7,7 +7,7 @@ const RaisedButton = require('material-ui/RaisedButton').default
const Heading = require('../components/heading') const Heading = require('../components/heading')
const PathSelector = require('../components/path-selector') const PathSelector = require('../components/path-selector')
const {dispatch} = require('../lib/dispatcher') const { dispatch } = require('../lib/dispatcher')
const config = require('../../config') const config = require('../../config')
class PreferencesPage extends React.Component { class PreferencesPage extends React.Component {

View File

@@ -6,7 +6,7 @@ const LinearProgress = require('material-ui/LinearProgress').default
const TorrentSummary = require('../lib/torrent-summary') const TorrentSummary = require('../lib/torrent-summary')
const TorrentPlayer = require('../lib/torrent-player') const TorrentPlayer = require('../lib/torrent-player')
const {dispatcher} = require('../lib/dispatcher') const { dispatcher } = require('../lib/dispatcher')
module.exports = class TorrentList extends React.Component { module.exports = class TorrentList extends React.Component {
render () { render () {
@@ -365,8 +365,8 @@ module.exports = class TorrentList extends React.Component {
renderRadialProgressBar (fraction, cssClass) { renderRadialProgressBar (fraction, cssClass) {
const rotation = 360 * fraction const rotation = 360 * fraction
const transformFill = {transform: 'rotate(' + (rotation / 2) + 'deg)'} const transformFill = { transform: 'rotate(' + (rotation / 2) + 'deg)' }
const transformFix = {transform: 'rotate(' + rotation + 'deg)'} const transformFix = { transform: 'rotate(' + rotation + 'deg)' }
return ( return (
<div key='radial-progress' className={'radial-progress ' + cssClass}> <div key='radial-progress' className={'radial-progress ' + cssClass}>

View File

@@ -16,7 +16,7 @@ const zeroFill = require('zero-fill')
const crashReporter = require('../crash-reporter') const crashReporter = require('../crash-reporter')
const config = require('../config') const config = require('../config')
const {TorrentKeyNotFoundError} = require('./lib/errors') const { TorrentKeyNotFoundError } = require('./lib/errors')
const torrentPoster = require('./lib/torrent-poster') const torrentPoster = require('./lib/torrent-poster')
// Report when the process crashes // Report when the process crashes
@@ -97,7 +97,7 @@ function init () {
ipc.send('ipcReadyWebTorrent') ipc.send('ipcReadyWebTorrent')
window.addEventListener('error', (e) => window.addEventListener('error', (e) =>
ipc.send('wt-uncaught-error', {message: e.error.message, stack: e.error.stack}), ipc.send('wt-uncaught-error', { message: e.error.message, stack: e.error.stack }),
true) true)
setInterval(updateTorrentProgress, 1000) setInterval(updateTorrentProgress, 1000)
@@ -251,7 +251,7 @@ function generateTorrentPoster (torrentKey) {
function updateTorrentProgress () { function updateTorrentProgress () {
const progress = getTorrentProgress() const progress = getTorrentProgress()
// TODO: diff torrent-by-torrent, not once for the whole update // TODO: diff torrent-by-torrent, not once for the whole update
if (prevProgress && deepEqual(progress, prevProgress, {strict: true})) { if (prevProgress && deepEqual(progress, prevProgress, { strict: true })) {
return /* don't send heavy object if it hasn't changed */ return /* don't send heavy object if it hasn't changed */
} }
ipc.send('wt-progress', progress) ipc.send('wt-progress', progress)
@@ -345,7 +345,7 @@ function getAudioMetadata (infoHash, index) {
const metadata = { title: file.name } const metadata = { title: file.name }
ipc.send('wt-audio-metadata', infoHash, index, metadata) ipc.send('wt-audio-metadata', infoHash, index, metadata)
const options = {native: false, skipCovers: true, fileSize: file.length} const options = { native: false, skipCovers: true, fileSize: file.length }
const onMetaData = file.done const onMetaData = file.done
// If completed; use direct file access // If completed; use direct file access
? mm.parseFile(path.join(torrent.path, file.path), options) ? mm.parseFile(path.join(torrent.path, file.path), options)

View File

@@ -32,7 +32,7 @@ function createApp (t) {
path: path.join(__dirname, '..', 'node_modules', '.bin', path: path.join(__dirname, '..', 'node_modules', '.bin',
'electron' + (process.platform === 'win32' ? '.cmd' : '')), 'electron' + (process.platform === 'win32' ? '.cmd' : '')),
args: ['-r', path.join(__dirname, 'mocks.js'), path.join(__dirname, '..')], args: ['-r', path.join(__dirname, 'mocks.js'), path.join(__dirname, '..')],
env: {NODE_ENV: 'test'}, env: { NODE_ENV: 'test' },
waitTimeout: 10e3 waitTimeout: 10e3
}) })
} }

View File

@@ -6,7 +6,7 @@ test('audio-streaming', function (t) {
t.timeoutAfter(60e3) t.timeoutAfter(60e3)
const app = setup.createApp() const app = setup.createApp()
setup.waitForLoad(app, t, {online: true}) setup.waitForLoad(app, t, { online: true })
.then(() => app.client.waitUntilTextExists('.torrent-list', 'Big Buck Bunny')) .then(() => app.client.waitUntilTextExists('.torrent-list', 'Big Buck Bunny'))
// Play Wired CD. Wait for it to start streaming. // Play Wired CD. Wait for it to start streaming.
.then(() => app.client.moveToObject('#torrent-wired')) .then(() => app.client.moveToObject('#torrent-wired'))

View File

@@ -6,7 +6,7 @@ test('video-streaming', function (t) {
t.timeoutAfter(30e3) t.timeoutAfter(30e3)
const app = setup.createApp() const app = setup.createApp()
setup.waitForLoad(app, t, {online: true}) setup.waitForLoad(app, t, { online: true })
.then(() => app.client.waitUntilTextExists('.torrent-list', 'Big Buck Bunny')) .then(() => app.client.waitUntilTextExists('.torrent-list', 'Big Buck Bunny'))
// Play Big Buck Bunny. Wait for it to start streaming. // Play Big Buck Bunny. Wait for it to start streaming.
.then(() => app.client.moveToObject('.torrent')) .then(() => app.client.moveToObject('.torrent'))