A social knowledge tool for researchers built on ATProto
1import { Result, ok, err } from 'src/shared/core/Result'; 2import { User } from '../../domain/User'; 3import { IUserRepository } from '../../domain/repositories/IUserRepository'; 4import { DID } from '../../domain/value-objects/DID'; 5 6export class InMemoryUserRepository implements IUserRepository { 7 private users: Map<string, User> = new Map(); 8 9 async findByDID(did: DID): Promise<Result<User | null>> { 10 try { 11 const user = this.users.get(did.value); 12 return ok(user || null); 13 } catch (error: any) { 14 return err(error); 15 } 16 } 17 18 async save(user: User): Promise<Result<void>> { 19 try { 20 this.users.set(user.did.value, user); 21 return ok(undefined); 22 } catch (error: any) { 23 return err(error); 24 } 25 } 26 27 // Helper method for testing 28 clear(): void { 29 this.users.clear(); 30 } 31}