Chunk instead of Array

This commit is contained in:
Julien Valverdé
2024-07-09 00:12:22 +02:00
parent e88a6f7b1c
commit fb9ce1bb67
2 changed files with 21 additions and 14 deletions

View File

@@ -1,11 +1,15 @@
import { Schema as S } from "@effect/schema"
import { JsonifiableTodo } from "@todo-tests/common/data"
import { Effect } from "effect"
import { Chunk, Effect } from "effect"
import { TodoRepository } from "../../TodoRepository"
import { TRPCBuilder } from "../../trpc/TRPCBuilder"
import { RPCProcedureBuilder } from "../procedures/RPCProcedureBuilder"
const encodeTodos = S.encode(S.Array(JsonifiableTodo))
const encodeOptionalTodo = S.encode(S.OptionFromNullOr(JsonifiableTodo))
export const todosRouter = Effect.gen(function*() {
const t = yield* TRPCBuilder
const procedure = yield* RPCProcedureBuilder
@@ -15,8 +19,8 @@ export const todosRouter = Effect.gen(function*() {
.query(({ ctx }) => ctx.run(Effect.gen(function*() {
const todos = yield* TodoRepository
return yield* S.encode(S.Array(JsonifiableTodo))(
yield* todos.todos.get
return yield* encodeTodos(
Chunk.toReadonlyArray(yield* todos.todos.get)
)
}))),
@@ -25,7 +29,7 @@ export const todosRouter = Effect.gen(function*() {
.query(({ ctx, input }) => ctx.run(Effect.gen(function*() {
const todos = yield* TodoRepository
return yield* S.encode(S.OptionFromNullOr(JsonifiableTodo))(
return yield* encodeOptionalTodo(
yield* todos.getByID(input)
)
}))),