Skip to content

Commit 1a1698d

Browse files
committed
Refactored how the uploader is injected
1 parent 150e4d5 commit 1a1698d

File tree

3 files changed

+18
-16
lines changed

3 files changed

+18
-16
lines changed

src/chrome-os-daemon.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,7 @@ export default function ChromeOsDaemon(boardsUrl, options) {
3232

3333
let useWebSerial;
3434
let chromeExtensionId;
35-
let Uploader;
36-
let uploaderOptions;
35+
let uploader;
3736

3837
// check chromeExtensionId OR web serial API
3938
if (typeof options === 'string') {
@@ -42,14 +41,15 @@ export default function ChromeOsDaemon(boardsUrl, options) {
4241
else {
4342
chromeExtensionId = options.chromeExtensionId;
4443
useWebSerial = options.useWebSerial;
45-
Uploader = options.Uploader;
46-
uploaderOptions = options.uploaderOptions || {};
44+
uploader = options.uploader;
4745
}
4846

49-
if ('serial' in navigator && useWebSerial === 'true' && !!Uploader) {
50-
this.flavour = new WebSerialDaemon(boardsUrl, Uploader, uploaderOptions);
47+
if ('serial' in navigator && useWebSerial && Boolean(uploader)) {
48+
console.debug('Instantiating WebSerialDaemon');
49+
this.flavour = new WebSerialDaemon(boardsUrl, uploader);
5150
}
5251
else {
52+
console.debug('Instantiating ChromeAppDaemon');
5353
this.flavour = new ChromeAppDaemon(boardsUrl, chromeExtensionId);
5454
}
5555

src/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,11 @@ import FirmwareUpdater from './firmware-updater';
2626
let Daemon;
2727

2828
if (window.navigator.userAgent.indexOf(' CrOS ') !== -1) {
29+
console.debug('Instantiating ChromeOsDaemon');
2930
Daemon = ChromeOsDaemon;
3031
}
3132
else {
33+
console.debug('Instantiating SocketDaemon');
3234
Daemon = SocketDaemon;
3335
}
3436

src/web-serial-daemon.js

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@ import Daemon from './daemon';
1313
* It must provide a method `upload`.
1414
*/
1515
export default class WebSerialDaemon extends Daemon {
16-
constructor(boardsUrl, Uploader, uploaderOptions) {
16+
constructor(boardsUrl, uploader) {
1717
super(boardsUrl);
1818
this.port = null;
1919
this.agentFound.next(true); // subscribe(() => true);
2020
this.channelOpenStatus.next(true); // subscribe(() => true);
21-
this.uploader = new Uploader(uploaderOptions);
21+
this.uploader = uploader;
2222
}
2323

2424
// // Specific for serial web API on chromebooks
@@ -80,13 +80,13 @@ export default class WebSerialDaemon extends Daemon {
8080
* @param {object} uploadPayload
8181
* TODO: document param's shape
8282
*/
83-
async _upload(uploadPayload) {
84-
try {
85-
await this.uploader.upload(uploadPayload);
86-
this.uploading.next({ status: this.UPLOAD_DONE, msg: 'Sketch uploaded' });
87-
}
88-
catch (error) {
89-
this.notifyUploadError(error.message);
90-
}
83+
_upload(uploadPayload) {
84+
this.uploader.upload(uploadPayload)
85+
.then(() => {
86+
this.uploading.next({ status: this.UPLOAD_DONE, msg: 'Sketch uploaded' });
87+
})
88+
.catch(error => {
89+
this.notifyUploadError(error.message);
90+
});
9191
}
9292
}

0 commit comments

Comments
 (0)