smartdeno/ts/classes.scriptserver.ts
2024-03-17 21:24:25 +01:00

32 lines
969 B
TypeScript

import type { DenoExecution } from './classes.denoexecution.js';
import * as plugins from './plugins.js';
export class ScriptServer {
private server: plugins.typedserver.servertools.Server;
public smartshellInstance = new plugins.smarthshell.Smartshell({
executor: 'bash'
});
public executionMap = new plugins.lik.ObjectMap<DenoExecution>();
public async start() {
this.server = new plugins.typedserver.servertools.Server({
port: 3210,
cors: true,
});
this.server.addRoute(
'/getscript/:executionId',
new plugins.typedserver.servertools.Handler('GET', async (req, res) => {
const executionId = req.params.executionId;
const denoExecution = await this.executionMap.find(async denoExecutionArg => {
return denoExecutionArg.id === executionId;
})
res.write(denoExecution.script);
res.end();
})
);
await this.server.start();
}
public async stop() {}
}