UNPKG

pocketbase-tools

Version:

A TypeScript toolkit for PocketBase, featuring a standard service/action/types layered structure. It provides interfaces and implementations for common business logic such as users, products, company profiles, and file utilities, making it suitable for se

67 lines (66 loc) 2.15 kB
import { userCollect } from "./base"; import { withErrorHandling } from "./utils/errorHandler"; import { logger } from "./utils/logger"; function toUser(record) { // 自动映射所有 User 字段,防止遗漏,并为 undefined 字段提供默认值 return { collectionId: record.collectionId ?? undefined, collectionName: record.collectionName ?? undefined, id: record.id ?? undefined, email: record.email ?? "", name: record.name ?? undefined, emailVisibility: record.emailVisibility ?? undefined, avatar: record.avatar ?? undefined, verified: record.verified ?? undefined, created: record.created ?? undefined, updated: record.updated ?? undefined, }; } /** * 获取所有用户列表 * @param options 可选过滤 */ export async function getAllUsers(options = {}) { return withErrorHandling("获取所有用户列表", async () => { const users = await userCollect.getFullList({ filter: options.filter, sort: options.sort || "-created", expand: options.expand?.join(","), }); logger.success(`成功获取用户列表`, { total: users.length, filter: options.filter, }); return users.map(toUser); }); } /** * 添加用户 */ export async function addUser(user) { return withErrorHandling("添加用户", async () => { const result = await userCollect.create(user); logger.success("添加用户成功", result); return toUser(result); }); } /** * 更新用户 */ export async function updateUser(id, updatedFields) { return withErrorHandling("更新用户", async () => { const updated = await userCollect.update(id, updatedFields); logger.success("用户更新成功", updated); return toUser(updated); }); } /** * 删除用户 */ export async function deleteUser(id) { return withErrorHandling("删除用户", async () => { const deleted = await userCollect.delete(id); logger.success("用户删除成功", deleted); return !!deleted; }); }