|
@@ -21,8 +21,10 @@ const WorkerWaiter = function(app, manager) {
|
|
* Sets up the ChefWorker and associated listeners.
|
|
* Sets up the ChefWorker and associated listeners.
|
|
*/
|
|
*/
|
|
WorkerWaiter.prototype.registerChefWorker = function() {
|
|
WorkerWaiter.prototype.registerChefWorker = function() {
|
|
|
|
+ log.debug("Registering new ChefWorker");
|
|
this.chefWorker = new ChefWorker();
|
|
this.chefWorker = new ChefWorker();
|
|
this.chefWorker.addEventListener("message", this.handleChefMessage.bind(this));
|
|
this.chefWorker.addEventListener("message", this.handleChefMessage.bind(this));
|
|
|
|
+ this.setLogLevel();
|
|
|
|
|
|
let docURL = document.location.href.split(/[#?]/)[0];
|
|
let docURL = document.location.href.split(/[#?]/)[0];
|
|
const index = docURL.lastIndexOf("/");
|
|
const index = docURL.lastIndexOf("/");
|
|
@@ -40,8 +42,10 @@ WorkerWaiter.prototype.registerChefWorker = function() {
|
|
*/
|
|
*/
|
|
WorkerWaiter.prototype.handleChefMessage = function(e) {
|
|
WorkerWaiter.prototype.handleChefMessage = function(e) {
|
|
const r = e.data;
|
|
const r = e.data;
|
|
|
|
+ log.debug("Receiving '" + r.action + "' from ChefWorker");
|
|
|
|
+
|
|
switch (r.action) {
|
|
switch (r.action) {
|
|
- case "bakeSuccess":
|
|
|
|
|
|
+ case "bakeComplete":
|
|
this.bakingComplete(r.data);
|
|
this.bakingComplete(r.data);
|
|
break;
|
|
break;
|
|
case "bakeError":
|
|
case "bakeError":
|
|
@@ -52,12 +56,14 @@ WorkerWaiter.prototype.handleChefMessage = function(e) {
|
|
break;
|
|
break;
|
|
case "workerLoaded":
|
|
case "workerLoaded":
|
|
this.app.workerLoaded = true;
|
|
this.app.workerLoaded = true;
|
|
|
|
+ log.debug("ChefWorker loaded");
|
|
this.app.loaded();
|
|
this.app.loaded();
|
|
break;
|
|
break;
|
|
case "statusMessage":
|
|
case "statusMessage":
|
|
this.manager.output.setStatusMsg(r.data);
|
|
this.manager.output.setStatusMsg(r.data);
|
|
break;
|
|
break;
|
|
case "optionUpdate":
|
|
case "optionUpdate":
|
|
|
|
+ log.debug(`Setting ${r.data.option} to ${r.data.value}`);
|
|
this.app.options[r.data.option] = r.data.value;
|
|
this.app.options[r.data.option] = r.data.value;
|
|
break;
|
|
break;
|
|
case "setRegisters":
|
|
case "setRegisters":
|
|
@@ -67,7 +73,7 @@ WorkerWaiter.prototype.handleChefMessage = function(e) {
|
|
this.manager.highlighter.displayHighlights(r.data.pos, r.data.direction);
|
|
this.manager.highlighter.displayHighlights(r.data.pos, r.data.direction);
|
|
break;
|
|
break;
|
|
default:
|
|
default:
|
|
- console.error("Unrecognised message from ChefWorker", e);
|
|
|
|
|
|
+ log.error("Unrecognised message from ChefWorker", e);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
};
|
|
};
|
|
@@ -113,6 +119,7 @@ WorkerWaiter.prototype.bakingComplete = function(response) {
|
|
this.app.progress = response.progress;
|
|
this.app.progress = response.progress;
|
|
this.manager.recipe.updateBreakpointIndicator(response.progress);
|
|
this.manager.recipe.updateBreakpointIndicator(response.progress);
|
|
this.manager.output.set(response.result, response.type, response.duration);
|
|
this.manager.output.set(response.result, response.type, response.duration);
|
|
|
|
+ log.debug("--- Bake complete ---");
|
|
};
|
|
};
|
|
|
|
|
|
|
|
|
|
@@ -145,7 +152,7 @@ WorkerWaiter.prototype.bake = function(input, recipeConfig, options, progress, s
|
|
* Asks the ChefWorker to run a silent bake, forcing the browser to load and cache all the relevant
|
|
* Asks the ChefWorker to run a silent bake, forcing the browser to load and cache all the relevant
|
|
* JavaScript code needed to do a real bake.
|
|
* JavaScript code needed to do a real bake.
|
|
*
|
|
*
|
|
- * @param {Objectp[]} [recipeConfig]
|
|
|
|
|
|
+ * @param {Object[]} [recipeConfig]
|
|
*/
|
|
*/
|
|
WorkerWaiter.prototype.silentBake = function(recipeConfig) {
|
|
WorkerWaiter.prototype.silentBake = function(recipeConfig) {
|
|
this.chefWorker.postMessage({
|
|
this.chefWorker.postMessage({
|
|
@@ -178,4 +185,19 @@ WorkerWaiter.prototype.highlight = function(recipeConfig, direction, pos) {
|
|
};
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
+/**
|
|
|
|
+ * Sets the console log level in the worker.
|
|
|
|
+ *
|
|
|
|
+ * @param {string} level
|
|
|
|
+ */
|
|
|
|
+WorkerWaiter.prototype.setLogLevel = function(level) {
|
|
|
|
+ if (!this.chefWorker) return;
|
|
|
|
+
|
|
|
|
+ this.chefWorker.postMessage({
|
|
|
|
+ action: "setLogLevel",
|
|
|
|
+ data: log.getLevel()
|
|
|
|
+ });
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+
|
|
export default WorkerWaiter;
|
|
export default WorkerWaiter;
|