23 lines
551 B
TypeScript
23 lines
551 B
TypeScript
|
import { SysCallMapping } from "../../plugos/system.ts";
|
||
|
import { Client } from "../client.ts";
|
||
|
|
||
|
export function widgetSyscalls(
|
||
|
client: Client,
|
||
|
): SysCallMapping {
|
||
|
return {
|
||
|
"widget.render": (
|
||
|
_ctx,
|
||
|
lang: string,
|
||
|
body: string,
|
||
|
): Promise<{ html: string; script: string }> => {
|
||
|
const langCallback = client.system.codeWidgetHook.codeWidgetCallbacks.get(
|
||
|
lang,
|
||
|
);
|
||
|
if (!langCallback) {
|
||
|
throw new Error(`Code widget ${lang} not found`);
|
||
|
}
|
||
|
return langCallback(body);
|
||
|
},
|
||
|
};
|
||
|
}
|