Skip to content
Snippets Groups Projects
Commit 8ccdc4e7 authored by Ulrik Ofstad's avatar Ulrik Ofstad
Browse files

made some minor improvements

parent f59603fc
No related branches found
No related tags found
No related merge requests found
import * as React from 'react';
import { createRoot } from 'react-dom/client';
import { Component } from 'react-simplified';
import { HashRouter, Route } from 'react-router-dom';
import { NavBar, Card, Alert, Row, Column, Form, Button } from './widgets';
import taskService from './task-service';
import * as React from "react";
import { createRoot } from "react-dom/client";
import { Component } from "react-simplified";
import { HashRouter, Route } from "react-router-dom";
import { NavBar, Card, Alert, Row, Column, Form, Button } from "./widgets";
import taskService from "./task-service";
class App extends Component {
input: string = '';
stdout: string = '';
stderr: string = '';
language = 'js';
input: string = "";
stdout: string = "";
stderr: string = "";
language = "js";
render() {
return (
......@@ -62,10 +62,10 @@ class App extends Component {
}
}
let root = document.getElementById('root');
let root = document.getElementById("root");
if (root)
createRoot(root).render(
<>
<App></App>
</>,
</>
);
import axios from 'axios';
import axios from "axios";
axios.defaults.baseURL = 'http://localhost:3000/api/v2';
axios.defaults.baseURL = "http://localhost:3000/api/v2";
export type Task = {
id: number;
......@@ -8,15 +8,21 @@ export type Task = {
done: boolean;
};
type Response_data = {
stdoutData: '';
stderrData: '';
stdoutData: "";
stderrData: "";
};
class TaskService {
create(input: string, language: string) {
return axios
.post<Response_data>('/tasks', { input: input, language: language })
.then((response) => response.data);
async create(input: string, language: string) {
try {
const response = await axios.post<Response_data>("/tasks", {
input: input,
language: language,
});
return response.data;
} catch (error) {
throw error;
}
}
}
......
import express from 'express';
import express from "express";
import { spawn } from "node:child_process";
const router = express.Router();
const { spawn } = require('node:child_process');
router.post('/tasks', (request, response) => {
router.post("/tasks", (request, response) => {
const data = request.body.input;
const language = request.body.language;
let setup;
if (language === 'python') {
setup = ['run', '--rm', 'python:3.8', 'python', '-c', `${data}`];
} else if (language === 'js') {
setup = ['run', '--rm', 'node-image', 'node', '-e', `${data}`];
if (language === "python") {
setup = ["run", "--rm", "python:3.8", "python", "-c", `${data}`];
} else if (language === "js") {
setup = ["run", "--rm", "node:latest", "node", "-e", `${data}`];
}
const ls = spawn('docker', setup);
const ls = spawn("docker", setup);
let response_data = {
stdoutData: '',
stderrData: '',
stdoutData: "",
stderrData: "",
};
ls.stdout.on('data', (data: string) => {
ls.stdout.on("data", (data: string) => {
response_data.stdoutData += data;
});
ls.stderr.on('data', (data: string) => {
ls.stderr.on("data", (data: string) => {
response_data.stderrData += data;
});
ls.on('close', (exit_status: number) => {
ls.on("close", (exit_status: number) => {
response.send(response_data);
});
});
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment