mirror of
https://github.com/morten-olsen/mini-loader.git
synced 2026-02-08 01:36:26 +01:00
feat: add http gateway (#3)
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import { z } from 'zod';
|
||||
import { createRunSchema, findRunsSchema } from '../repos/repos.js';
|
||||
import { publicProcedure, router } from './router.utils.js';
|
||||
|
||||
@@ -17,17 +18,50 @@ const find = publicProcedure.input(findRunsSchema).query(async ({ input, ctx })
|
||||
return results;
|
||||
});
|
||||
|
||||
const remove = publicProcedure.input(findRunsSchema).mutation(async ({ input, ctx }) => {
|
||||
const prepareRemove = publicProcedure.input(findRunsSchema).query(async ({ input, ctx }) => {
|
||||
const { runtime } = ctx;
|
||||
const { repos } = runtime;
|
||||
const { runs } = repos;
|
||||
await runs.remove(input);
|
||||
return await runs.prepareRemove(input);
|
||||
});
|
||||
|
||||
const remove = publicProcedure
|
||||
|
||||
.input(
|
||||
z.object({
|
||||
hash: z.string(),
|
||||
ids: z.array(z.string()),
|
||||
}),
|
||||
)
|
||||
.mutation(async ({ input, ctx }) => {
|
||||
const { runtime } = ctx;
|
||||
const { repos } = runtime;
|
||||
const { runs } = repos;
|
||||
for (const id of input.ids) {
|
||||
const instance = runtime.runner.getInstance(id);
|
||||
if (instance) {
|
||||
await instance.run?.teardown();
|
||||
}
|
||||
}
|
||||
await runs.remove(input.hash, input.ids);
|
||||
});
|
||||
|
||||
const terminate = publicProcedure.input(z.string()).mutation(async ({ input, ctx }) => {
|
||||
const { runtime } = ctx;
|
||||
const { runner } = runtime;
|
||||
const instance = runner.getInstance(input);
|
||||
if (!instance || !instance.run) {
|
||||
return;
|
||||
}
|
||||
await instance.run.teardown();
|
||||
});
|
||||
|
||||
const runsRouter = router({
|
||||
create,
|
||||
find,
|
||||
remove,
|
||||
prepareRemove,
|
||||
terminate,
|
||||
});
|
||||
|
||||
export { runsRouter };
|
||||
|
||||
Reference in New Issue
Block a user