diff --git a/package-lock.json b/package-lock.json index 6f5be49..08b6afe 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,6 +23,7 @@ "@ngx-translate/http-loader": "^8.0.0", "codemirror": "^5.65.16", "rxjs": "~7.8.1", + "sse.js": "^2.2.0", "tslib": "^2.6.2", "zone.js": "~0.14.2" }, @@ -11298,6 +11299,11 @@ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, + "node_modules/sse.js": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/sse.js/-/sse.js-2.2.0.tgz", + "integrity": "sha512-v1ciaikunC99FKS23rS973HYU0DnnvugtX13UggNvrgRUSungaGeLmKlm57t0dI2E1TcCqzc2Pj2njBDXFIpKQ==" + }, "node_modules/ssri": { "version": "10.0.5", "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", diff --git a/package.json b/package.json index f8150a9..116746e 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "@ngx-translate/http-loader": "^8.0.0", "codemirror": "^5.65.16", "rxjs": "~7.8.1", + "sse.js": "^2.2.0", "tslib": "^2.6.2", "zone.js": "~0.14.2" }, diff --git a/src/app/components/editor/editor.component.ts b/src/app/components/editor/editor.component.ts index 7587211..65fbb44 100644 --- a/src/app/components/editor/editor.component.ts +++ b/src/app/components/editor/editor.component.ts @@ -62,18 +62,6 @@ export class EditorComponent implements OnInit{ onRunButtonClicked() { // Le code à exécuter est le contenu de l'éditeur const codeToExecute = this.editorContent; - - this.codeExecutionService.executeCode(codeToExecute, this.mode).subscribe( - (response) => { - console.log('Réponse du serveur:', response); - console.log('Code qui va être exécuté:', codeToExecute); - - // Redirigez vers une autre page (par exemple, 'output') - this.router.navigate(['/output']); - }, - (error) => { - console.error('Erreur lors de l\'exécution du code:', error); - } - ); + this.codeExecutionService.executeCode(codeToExecute, this.mode); } } diff --git a/src/app/services/codeExecution.service.ts b/src/app/services/codeExecution.service.ts index f4cd893..c2ecafd 100644 --- a/src/app/services/codeExecution.service.ts +++ b/src/app/services/codeExecution.service.ts @@ -1,6 +1,6 @@ import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; -import { Observable } from 'rxjs'; +import { SSE } from 'sse.js'; @Injectable({ providedIn: 'root', @@ -10,7 +10,17 @@ export class CodeExecutionService { constructor(private http: HttpClient) {} - executeCode(code: string, language: string): Observable { - return this.http.post(this.apiUrl, { code, language }); + executeCode(code: string, language: string) { + const sse = new SSE(this.apiUrl, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + Accept: 'text/event-stream', + }, + payload: JSON.stringify({ code, language }), + }); + sse.addEventListener('message', (event: MessageEvent) => { + console.log(event.data); + }); } }