Skip to content

Agar

Typed App backends and host capabilities.

  • @fungi.computer/agar
  • v0.5.0
  • MIT

Fastest path

  1. Install

    Add it to your project with npm, pnpm, Yarn or Bun. Needs Node.js >=24.0.0.

    TERMINAL
    npm install @fungi.computer/agar react react-dom @tanstack/react-query
  2. Define an App method

    Define and call a typed backend method without a host.

    home.ts
    import * as z from "zod";
    import {
    defineAppBackend,
    defineAppMethod,
    } from "@fungi.computer/agar/backend-definition";
    import { buildAppApi } from "@fungi.computer/agar/backend-declaration";
    const notes = new Map<string, string>();
    const appBackend = defineAppBackend({
    methods: {
    saveNote: defineAppMethod({
    description: "Save a note under a title",
    effect: "write",
    requires: [],
    input: z.object({ title: z.string().min(1), text: z.string() }),
    output: z.object({ saved: z.boolean() }),
    handler: ({ title, text }) => {
    notes.set(title, text);
    return { saved: true };
    },
    }),
    },
    });
    const api = buildAppApi(appBackend);
    console.log(Object.keys(api.methods)); // ["saveNote"]
    const result = await appBackend.call(
    "saveNote",
    { title: "hello", text: "from Agar" },
    undefined,
    { computerId: null, actor: { kind: "member", memberId: "member_example" } },
    );
    console.log(result); // { saved: true }