// Exists in application layer (application/ports/user.ts)
interface IUserRepository {
save: (event: UserCreated): Effect.Effect<never, Error, void>;
}
// Exists in infrastructure layer (infrastructure/persistence/userRepository.ts)
export class UserRepository extends Effect.Service<IUserRepository>()("UserRepository", {
effect: Effect.gen(function* () {
return {
// impl here
save() {}
} as IUserRepository;
},
// Include when I need them
// dependencies: [
// ],
}) {
// Update 1:
export class UserRepository extends Effect.Service<IUserRepository>()("UserRepository", {
effect: Effect.gen(function* () {
return {
// impl here
save() {}
} as IUserRepository; <~ I could add this? Just curious if there is a better practise
},
// Exists in application layer (application/ports/user.ts)
interface IUserRepository {
save: (event: UserCreated): Effect.Effect<never, Error, void>;
}
// Exists in infrastructure layer (infrastructure/persistence/userRepository.ts)
export class UserRepository extends Effect.Service<IUserRepository>()("UserRepository", {
effect: Effect.gen(function* () {
return {
// impl here
save() {}
} as IUserRepository;
},
// Include when I need them
// dependencies: [
// ],
}) {
// Update 1:
export class UserRepository extends Effect.Service<IUserRepository>()("UserRepository", {
effect: Effect.gen(function* () {
return {
// impl here
save() {}
} as IUserRepository; <~ I could add this? Just curious if there is a better practise
},