diff --git a/client/cloudcmd.js b/client/cloudcmd.js index 6ca4dbbf..83b45b4d 100644 --- a/client/cloudcmd.js +++ b/client/cloudcmd.js @@ -5,6 +5,9 @@ require('../css/nojs.css'); require('../css/columns/name-size-date.css'); require('../css/columns/name-size.css'); +const {promisify} = require('es6-promisify'); +const wraptile = require('wraptile/legacy'); + const { registerSW, } = require('./sw/register'); @@ -22,14 +25,14 @@ module.exports = window.CloudCmd = (config) => { window.DOM = DOM; window.CloudCmd = require('./client'); - registerSW(config.prefix); - - const prefix = getPrefix(config.prefix); + register(config); require('./listeners'); require('./key'); require('./sort'); + const prefix = getPrefix(config.prefix); + window.CloudCmd.init(prefix, config); }; @@ -40,6 +43,24 @@ function getPrefix(prefix) { if (!prefix.indexOf('/')) return prefix; - return '/' + prefix; + return `/${prefix}`; } +const onUpdateFound = wraptile(async (config) => { + const {prefix} = config; + + const js = promisify(window.DOM.load.js); + const css = promisify(window.DOM.load.css); + + await js(`${prefix}dist/cloudcmd.common.js`); + await js(`${prefix}dist/cloudcmd.js`); + + window.CloudCmd(config); +}); + +async function register(config) { + const {prefix} = config; + const sw = await registerSW(prefix); + + sw.addEventListener('updatefound', onUpdateFound(config)); +}