feat First implementation of plugins system
feat: Added PCSX2 integration feat: Revamped UI a bit made it look better on light mode
This commit is contained in:
parent
d85268fad7
commit
a78e75335f
95 changed files with 2639 additions and 1259 deletions
37
src/bun/api/plugins/plugins.ts
Normal file
37
src/bun/api/plugins/plugins.ts
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
import Elysia, { status } from "elysia";
|
||||
import { plugins } from "../app";
|
||||
import z from "zod";
|
||||
import { toggleElementInConfig } from "@/bun/utils";
|
||||
|
||||
export default new Elysia({ prefix: '/plugins' })
|
||||
.get('/', async () =>
|
||||
{
|
||||
return Object.values(plugins.plugins).map(p =>
|
||||
{
|
||||
const plugin: FrontendPlugin = {
|
||||
enabled: p.enabled,
|
||||
name: p.description.name,
|
||||
displayName: p.description.displayName,
|
||||
description: p.description.description,
|
||||
source: p.source,
|
||||
version: p.description.version,
|
||||
icon: p.description.icon
|
||||
};
|
||||
return plugin;
|
||||
});
|
||||
})
|
||||
.post('/:id', async ({ params: { id }, body: { enabled } }) =>
|
||||
{
|
||||
const plugin = plugins.plugins[id];
|
||||
if (plugin)
|
||||
{
|
||||
plugin.enabled = enabled;
|
||||
toggleElementInConfig('disabledPlugins', plugin.description.name, enabled);
|
||||
plugins.reloadAll();
|
||||
} else
|
||||
{
|
||||
return status("Not Found");
|
||||
}
|
||||
}, {
|
||||
body: z.object({ enabled: z.boolean() })
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue