28 lines · 854 B · TypeScript
RawDownload
import { HttpApiBuilder } from "effect/unstable/httpapi";import { Effect } from "effect"; import { capture } from "@executor-js/api"; import { ExecutorApi } from "../api";import { ExecutorService } from "../services"; export const ProvidersHandlers = HttpApiBuilder.group(ExecutorApi, "providers", (handlers) =>  handlers    .handle("list", () =>      capture(        Effect.gen(function* () {          const executor = yield* ExecutorService;          return yield* executor.providers.list();        }),      ),    )    .handle("items", ({ params: path }) =>      capture(        Effect.gen(function* () {          const executor = yield* ExecutorService;          const entries = yield* executor.providers.items(path.key);          return entries.map((entry) => ({ id: entry.id, name: entry.name }));        }),      ),    ),);