nitropage
Version:
A free and open source, extensible visual page builder based on SolidStart.
44 lines (39 loc) • 918 B
text/typescript
import { createClient } from "./core";
import {
handler,
Auth,
getUser as getUser_,
signup as signup_,
} from "./server";
import { action, createAsync, query } from "@solidjs/router";
import { getHasUsers } from "../../data/user";
export const getUser = query(async () => {
"use server";
return await getUser_();
}, "np-user");
export const useUser = (opts = { deferStream: true }) =>
createAsync(() => getUser(), opts);
export const {
signin,
signout,
getSession,
refresh,
reload: reloadSession,
usePatchFetch,
} = createClient<typeof Auth>("np", {
revalidate: [getUser.keyFor(), getHasUsers.keyFor()],
handler: (opts) => {
"use server";
return handler(opts);
},
});
export const signup = action(
(async (args) => {
"use server";
const result = await signup_(args);
if (result === false) {
return result;
}
}) as typeof signup_,
"np-signup",
);