- DML 할 때 리턴 타입이 payload에 따라 달라져야 함
- Promise 반환 시 타입에 record 데이터도 껴있는 문제
각 테이블들은 같은 이름의 column을 소지하면 안 됨. 해당 제약조건을 지킨다면 모든 table을 하나의 entity처럼 다룰 수 있음.
const repo = Repository(db, user);
await repo.find({ id }).returnFirst();
const repo = Repository(db, user, { local });
await repo.with('local').find({ id }).returnFirst();
await repo.insert(data);
await repo.update(data).where({ id: 1 });
await repo.delete(where);
await db.transaction((tx) => {
const userRepo = Repository(tx, user);
const sessionRepo = Repository(tx, session);
await userRepo.insert(user);
await sessionRepo.insert(session);
})