userdo
Version:
A Durable Object base class that provides user authentication, per-user data storage, and real-time updates for Cloudflare Workers applications.
55 lines (54 loc) • 1.72 kB
TypeScript
export interface AuthResponse {
user: {
id: string;
email: string;
};
token: string;
refreshToken: string;
}
type ChangeListener = (data: any) => void;
declare class UserDOClient {
private baseUrl;
private user;
private authListeners;
private ws;
private changeListeners;
constructor(baseUrl: string);
private get headers();
private checkAuthStatus;
private emitAuthChange;
private connectWebSocket;
private disconnectWebSocket;
private handleRealtimeMessage;
onAuthStateChanged(listener: (user: {
id: string;
email: string;
} | null) => void): void;
offAuthStateChanged(listener: (user: {
id: string;
email: string;
} | null) => void): void;
signup(email: string, password: string): Promise<AuthResponse>;
login(email: string, password: string): Promise<AuthResponse>;
logout(): Promise<void>;
get(key: string): Promise<any>;
set(key: string, value: any): Promise<{
ok: boolean;
}>;
onChange(key: string, listener: ChangeListener): () => void;
collection(name: string): {
create(data: any): Promise<unknown>;
findById(id: string): Promise<unknown>;
update(id: string, updates: any): Promise<unknown>;
delete(id: string): Promise<void>;
onChange(listener: ChangeListener): () => void;
query(): {
where(field: string, op: string, value: any): /*elided*/ any;
orderBy(field: string, dir?: "asc" | "desc"): /*elided*/ any;
limit(count: number): /*elided*/ any;
get(): Promise<unknown>;
};
};
}
export { UserDOClient };
export default UserDOClient;