From dfe1e3b631ac4c2b78a5c283e6ef6a8fb67eddff Mon Sep 17 00:00:00 2001 From: DC Date: Fri, 8 Jul 2016 10:45:15 -0700 Subject: [PATCH] Fix Cast lazy loading Move all the heavy initialization, which takes ~300ms, from require('./lib/cast') to Cast.init() --- renderer/lib/cast.js | 10 +++++++--- renderer/main.js | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/renderer/lib/cast.js b/renderer/lib/cast.js index d29b01da..2bb8dc2c 100644 --- a/renderer/lib/cast.js +++ b/renderer/lib/cast.js @@ -13,9 +13,8 @@ module.exports = { setRate } -var airplayer = require('airplayer')() -var chromecasts = require('chromecasts')() -var dlnacasts = require('dlnacasts')() +// Lazy load these for a ~300ms improvement in startup time +var airplayer, chromecasts, dlnacasts var config = require('../../config') @@ -33,6 +32,11 @@ function init (appState, callback) { state = appState update = callback + // Load modules, scan the network for devices + airplayer = require('airplayer')() + chromecasts = require('chromecasts')() + dlnacasts = require('dlnacasts')() + state.devices.chromecast = chromecastPlayer() state.devices.dlna = dlnaPlayer() state.devices.airplay = airplayPlayer() diff --git a/renderer/main.js b/renderer/main.js index 874d7669..feb2b11d 100644 --- a/renderer/main.js +++ b/renderer/main.js @@ -249,7 +249,7 @@ function dispatch (action, ...args) { } var handler = dispatchHandlers[action] - if (handler) handler.apply(null, args) + if (handler) handler(...args) else console.error('Missing dispatch handler: ' + action) // Update the virtual-dom, unless it's just a mouse move event