From 8b9ce90a6d4dbd44833e5a37e9414af40cd15281 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Sat, 1 Jun 2024 11:03:01 +0530 Subject: [PATCH] feat: interpret generated workflow --- .../classes/RemoteBrowser.ts | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/server/src/browser-management/classes/RemoteBrowser.ts b/server/src/browser-management/classes/RemoteBrowser.ts index e62651fb..6272395a 100644 --- a/server/src/browser-management/classes/RemoteBrowser.ts +++ b/server/src/browser-management/classes/RemoteBrowser.ts @@ -204,6 +204,42 @@ export class RemoteBrowser { this.interpreter?.updateSocket(socket); }; + /** + * Starts the interpretation of the currently generated workflow. + * @returns {Promise} + */ + public interpretCurrentRecording = async () : Promise => { + logger.log('debug', 'Starting interpretation in the editor'); + if (this.generator) { + const workflow = this.generator.AddGeneratedFlags(this.generator.getWorkflowFile()); + await this.initializeNewPage(); + if (this.currentPage) { + const params = this.generator.getParams(); + if (params) { + this.interpreterSettings.params = params.reduce((acc, param) => { + if (this.interpreterSettings.params && Object.keys(this.interpreterSettings.params).includes(param)) { + return { ...acc, [param]: this.interpreterSettings.params[param] }; + } else { + return { ...acc, [param]: '', } + } + }, {}) + } + logger.log('debug', `Starting interpretation with settings: ${JSON.stringify(this.interpreterSettings, null, 2)}`); + await this.interpreter.interpretRecordingInEditor( + workflow, this.currentPage, + (newPage: Page) => this.currentPage = newPage, + this.interpreterSettings + ); + // clear the active index from generator + this.generator.clearLastIndex(); + } else { + logger.log('error', 'Could not get a new page, returned undefined'); + } + } else { + logger.log('error', 'Generator is not initialized'); + } + }; + /** * Initiates screencast of the remote browser through socket, * registers listener for rerender event and emits the loaded event.