import { Effect, Stream } from "effect";
import { FileRpcs } from "@commons/domain";
import { FileRepository } from "./file.repository";
export class FileRouter extends Effect.Service<FileRouter>()("app/FileRouter", {
dependencies: [FileRepository.Default],
scoped: Effect.gen(function* () {
const repo = yield* FileRepository;
return yield* FileRpcs.toHandlersContext(
FileRpcs.of({
FileList: () => Stream.fromIterableEffect(repo.list()),
})
);
}),
}) {}
import { Effect, Stream } from "effect";
import { FileRpcs } from "@commons/domain";
import { FileRepository } from "./file.repository";
export class FileRouter extends Effect.Service<FileRouter>()("app/FileRouter", {
dependencies: [FileRepository.Default],
scoped: Effect.gen(function* () {
const repo = yield* FileRepository;
return yield* FileRpcs.toHandlersContext(
FileRpcs.of({
FileList: () => Stream.fromIterableEffect(repo.list()),
})
);
}),
}) {}