mirror of
https://github.com/Termix-SSH/Termix.git
synced 2026-11-04 17:45:24 +00:00
feat: add host sections, tab embeds and the operations client to the plugin ui
This commit is contained in:
1 parent
cc725c7889
commit
631f6ac9f7
12 files changed
+184
-3
No files matched your search
@@ -79,6 +79,34 @@ export function createPluginApi(pluginId: string): AxiosInstance {
|
||||
}) as AxiosInstance;
|
||||
}
|
||||
|
||||
/**
|
||||
* An axios client rooted at core's /operations routes: the action catalog,
|
||||
* runs, approvals, events, signals and cross host resources.
|
||||
*/
|
||||
export function createOperationsApi(): AxiosInstance {
|
||||
return new Proxy(authApi, {
|
||||
get(target, property, receiver) {
|
||||
const value = Reflect.get(target, property, receiver);
|
||||
if (typeof value !== "function") return value;
|
||||
if (
|
||||
property === "get" ||
|
||||
property === "delete" ||
|
||||
property === "post" ||
|
||||
property === "put" ||
|
||||
property === "patch"
|
||||
) {
|
||||
return (url: string, ...rest: unknown[]) =>
|
||||
(value as (...args: unknown[]) => unknown).call(
|
||||
target,
|
||||
`/operations${url.startsWith("/") ? url : `/${url}`}`,
|
||||
...rest,
|
||||
);
|
||||
}
|
||||
return value.bind(target);
|
||||
},
|
||||
}) as AxiosInstance;
|
||||
}
|
||||
|
||||
/**
|
||||
* A raw fetch on this plugin's /plugin-api mount point, for a response the
|
||||
* caller reads as a stream (server-sent events). axios buffers the whole
|
||||
|
||||
Reference in new issue
Block a user