feat: New runner UI

This commit is contained in:
2026-08-08 21:28:23 +02:00
parent 0040a5c33b
commit f7a193d1c5
3 changed files with 214 additions and 50 deletions
+16 -3
View File
@@ -1,10 +1,19 @@
import {ruleBookApi, ruleScriptApi} from "@/mammon";
import {RuleBookResponse, UpdateRuleBookRequest} from "@/generated/mammon";
import {RuleBookResponse, RuleScopeRequest, RuleScriptRequest, RuleScriptResponse, UpdateRuleBookRequest} from "@/generated/mammon";
import {isAxiosError} from "axios";
import {defineStore} from "pinia";
import {ref} from "vue";
export type RuleBook = RuleBookResponse;
export type RuleScript = RuleScriptResponse;
export type RuleScope = RuleScriptResponse['scope'];
export const emptyScope = (): RuleScopeRequest => ({
ledgers: {},
characters: {},
corporations: {},
walletDivisions: {},
});
export const useRuleBookStore = defineStore('rule-book', () => {
const ruleBook = ref<RuleBook | null>(null);
@@ -19,7 +28,7 @@ export const useRuleBookStore = defineStore('rule-book', () => {
throw error;
});
const update = (request: UpdateRuleBookRequest) => ruleBookApi.updateRuleBook(request)
const update = (scripts: RuleScriptRequest[]) => ruleBookApi.updateRuleBook({scripts} satisfies UpdateRuleBookRequest)
.then(response => ruleBook.value = response.data);
refresh();
@@ -28,4 +37,8 @@ export const useRuleBookStore = defineStore('rule-book', () => {
})
export const fetchScriptDefinitions = (): Promise<string> =>
ruleScriptApi.getScriptDefinitions({responseType: 'text'}).then(response => response.data);
ruleScriptApi.listScriptDefinitions()
.then(response => Promise.all(
response.data.map(name => ruleScriptApi.getScriptDefinition(name, {responseType: 'text'}).then(r => r.data))
))
.then(definitions => definitions.join('\n'));