/// import { ServerContext, useServerRouter } from "./server-route"; import { newSessionStore, SessionData, SessionStore, SingleSession, } from "./session/session-store"; export type ServerSession> = SessionStore & { current?: SingleSession; }; type SessionServerHandler = { cleanup: () => Promise; handle: (arg: ServerContext) => Promise; }; export const createSessionServer = >(arg: { encrypt?: boolean; router?: ReturnType; }): SessionServerHandler => { const server_session = newSessionStore(); const server_handler: SessionServerHandler = { async cleanup() {}, async handle(server_arg) { const { req, handle } = server_arg; if (arg.router) { return await arg.router.handle({ ...server_arg, session: { ...server_session, current: undefined, }, }); } return handle(req); }, }; return server_handler; };