34 lines
886 B
TypeScript
34 lines
886 B
TypeScript
import { SpaceSystem } from "../server/space_system.ts";
|
|
|
|
import assetBundle from "../dist/asset_bundle.json" assert { type: "json" };
|
|
import { path } from "../plugos/deps.ts";
|
|
import { AssetBundle, AssetJson } from "../plugos/asset_bundle/bundle.ts";
|
|
|
|
export async function invokeFunction(
|
|
options: any,
|
|
pagesPath: string,
|
|
functionName: string,
|
|
...args: string[]
|
|
) {
|
|
console.log("Going to invoke funciton", functionName, "with args", args);
|
|
const spaceSystem = new SpaceSystem(
|
|
new AssetBundle(assetBundle as AssetJson),
|
|
pagesPath,
|
|
path.join(pagesPath, options.db),
|
|
);
|
|
|
|
await spaceSystem.start();
|
|
|
|
const [plugName, funcName] = functionName.split(".");
|
|
|
|
const plug = spaceSystem.system.loadedPlugs.get(plugName);
|
|
|
|
if (!plug) {
|
|
console.error("Plug not found", plugName);
|
|
Deno.exit(1);
|
|
}
|
|
|
|
await plug.invoke(funcName, args);
|
|
Deno.exit(0);
|
|
}
|