Skip to content

hagateway/hagateway-core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

hagateway-core

TODOs

  • orpc stalled streaming without keepalive

  • orpc error handling - console output??

  • waitForFile bug!!!! intermediate dirs not watched!!!!!

import chokidar from "chokidar";


export async function waitForFile(
    filePath: string,
    options?: { signal?: AbortSignal },
): Promise<void> {
    return new Promise((resolve, reject) => {
        const watcher = chokidar.watch(
            filePath, {
                persistent: true,
                ignoreInitial: false,
            }
        )
        .on("add", () => { watcher.close(); resolve(); })
        .on("error", (error) => { watcher.close(); reject(error); });

        if (options?.signal != null) {
            const onAbort = () => {
                watcher.close();
                reject(options.signal?.reason);
            };
            if (options.signal.aborted)
                return onAbort();
            return options.signal.addEventListener(
                "abort", onAbort, { once: true }
            );
        }
    });
}

  • multiple listeners
npm install
npm run build --workspaces
npx @hagateway/server serve '{"context": {"runtimeDirectory": "/tmp/todo"}}' '{"include": "./.temp/example.mjs"}'
npm --workspace=packages/server start -- serve '{"context": {"runtimeDirectory": "/tmp/todo"}}' '{"include": "./.temp/example.mjs"}'

npm version prerelease --preid=alpha
        "build": "yarn workspaces foreach --topological run build",
        "prepare": "yarn run build",
        "release": "yarn workspaces foreach --topological --no-private npm publish --access public"
  • wait until unix socket available

  • TODO check if config permission too open

  • offer default config

  • crypto.randomBytes(32) for secret

  • doc esm req for all kits and modules

  • req.baseUrl X-Forwarded-Prefix

  • client: check if link secure

  • // TODO check if user is the proc user?

  • "bin": "dist/src/cli.js",

  • custom routes

  • success redirect

  • session backend!!!!!

  • TODO presets { "include": "@wagateway/preset-linux" }

  • TODO loginctl sessions

  • TODO migrate to hono

import { eventIterator } from '@orpc/server'
    // subscribe: oc.output(
    //     eventIterator(z.object({
    //     }))
    // ),
    /*


    const app = App({
        authManager: new AuthManager()
            .use(PAMPasswdAuthHandler()),
        sessionManager: new SessionManager(),
        appletManager: new SystemdAppletManager()
            .use(VSCodeSpawner()),
    });

    app.portal.useView();



    const appCli = AppCli();
    appCli.useKit("@wagateway/serverkit-linux");
    appCli.useKit("@wagateway/serverkit-vscode");
    // or appCli.useKit(require("@wagateway/serverkit-vscode"));
    appCli.run({
        kits: [
            "@wagateway/clientkit",
            "@wagateway/serverkit-linux", 
            "@wagateway/serverkit-vscode",
        ],
        net: "/run/wagateway/app.sock",
        // net: { host: "localhost", port: 8080 },
        auth: { 
            backends: [
                // "pam:passwd",
                // PAMPasswdHandler(),
                { 
                    $: "pam:passwd",  
                    config: { pamName: "login" }
                }
            ],
        },
        session: { backend: "memory" },
        applet: { 
            backend: "vscode", 
            // manager: "systemd",
            manager: {
                $: "systemd",
                config: {
                    pamName: "login",
                    baseUnitName: "vscode.wagateway",
                },
            },
        },
        view: "default",
    });

    


    // wagateway --auth.backend pam:passwd --session.backend memory --applet.backend vscode --applet.manager systemd



    */

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published