mirror of
https://github.com/vercel-labs/scriptc.git
synced 2026-10-20 05:40:17 +08:00
2 lines
989 B
TypeScript
2 lines
989 B
TypeScript
import * as Effect from "effect/Effect";import * as Schema from "effect/Schema";import * as Layer from "effect/Layer";import * as HttpApi from "effect/http-api/HttpApi";import * as HttpApiGroup from "effect/http-api/HttpApiGroup";import * as HttpApiEndpoint from "effect/http-api/HttpApiEndpoint";import * as HttpApiBuilder from "effect/http-api/HttpApiBuilder";import * as HttpApiTest from "effect/http-api/HttpApiTest";import * as HttpServer from "effect/http/HttpServer";const Api=HttpApi.make("Api").add(HttpApiGroup.make("hello").add(HttpApiEndpoint.get("greet","/hello",{success:Schema.String})));const handlers=HttpApiBuilder.group(Api,"hello",h=>h.handle("greet",()=>Effect.succeed("world")));Effect.runPromise((Effect.gen(function*(){const c=yield* HttpApiTest.groups(Api,["hello"]);return yield* c.hello.greet()}).pipe(Effect.scoped,Effect.provide(Layer.mergeAll(handlers,HttpServer.layerServices)))).pipe(Effect.tap(value=>Effect.sync(()=>console.log(JSON.stringify(value))))))
|