UNPKG

@convex-dev/better-auth

Version:
82 lines 2.82 kB
import { convexAdapter, BetterAuth, } from "../client/index.js"; import { api, internal } from "./_generated/api.js"; import { mutation, query } from "./_generated/server.js"; // @ts-expect-error - this is a test const authFunctions = internal.adapterTest; const publicAuthFunctions = api.adapterTest; export const betterAuthComponent = new BetterAuth(api, { authFunctions, publicAuthFunctions, verbose: false, }); export const createAdapter = (ctx) => convexAdapter(ctx, betterAuthComponent, { debugLogs: { isRunningAdapterTests: true, }, }); export const { createUser, deleteUser, updateUser, createSession, isAuthenticated, } = betterAuthComponent.createAuthFunctions({ onCreateUser: async () => { // noop // not required for the adapter test }, }); export const deserialize = (data) => { const dateStringRegex = /\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/; return Object.fromEntries(Object.entries(data).map(([key, value]) => [ key, dateStringRegex.test(value) ? new Date(value) : value, ])); }; export const serialize = (data) => { if (!data) { return data; } return Object.fromEntries(Object.entries(data).map(([key, value]) => [ key, value instanceof Date ? value.toISOString() : value, ])); }; export const create = mutation(async (ctx, args) => { const adapter = createAdapter(ctx); const result = await adapter({}).create({ ...args, data: deserialize(args.data), }); return serialize(result); }); export const findOne = query(async (ctx, args) => { const adapter = createAdapter(ctx); const result = await adapter({}).findOne(args); return serialize(result); }); export const findMany = query(async (ctx, args) => { const adapter = createAdapter(ctx); const result = await adapter({}).findMany(args); return result.map(serialize); }); export const count = query(async (ctx, args) => { const adapter = createAdapter(ctx); return adapter({}).count(args); }); export const update = mutation(async (ctx, args) => { const adapter = createAdapter(ctx); const result = await adapter({}).update({ ...args, update: deserialize(args.update), }); return serialize(result); }); export const updateMany = mutation(async (ctx, args) => { const adapter = createAdapter(ctx); return adapter({}).updateMany(args); }); const deleteMutation = mutation(async (ctx, args) => { const adapter = createAdapter(ctx); await adapter({}).delete(args); }); export { deleteMutation as delete }; export const deleteMany = mutation(async (ctx, args) => { const adapter = createAdapter(ctx); return adapter({}).deleteMany(args); }); //# sourceMappingURL=adapterTest.js.map