diff --git a/README.md b/README.md index a9c7246..da40336 100644 --- a/README.md +++ b/README.md @@ -39,10 +39,11 @@ After creating our first route we mount it onto our relay instance. ```ts import { Relay } from "@valkyr/relay"; +import { adapter } from "@valkyr/relay/http"; import route from "./path/to/route.ts"; -export const relay = new Relay([ +export const relay = new Relay({ url: "http://localhost:3000/api", adapter }, [ route ]); ``` @@ -54,19 +55,21 @@ We have now finished defining our initial relay setup which we can now utilize i To be able to successfully execute our user create route we need to attach a handler in our `api`. Lets start off by defining our handler. ```ts -import { UnprocessableContentError } from "@valkyr/relay"; +import { Api, UnprocessableContentError } from "@valkyr/relay"; import { relay } from "~project/relay/mod.ts"; -relay - .route("POST", "/users") - .handle(async ({ name, email }) => { - const user = await db.users.insert({ name, email }); - if (user === undefined) { - return new UnprocessableContentError(); - } - return user.id; - }); +export const api = new Api([ + relay + .route("POST", "/users") + .handle(async ({ name, email }) => { + const user = await db.users.insert({ name, email }); + if (user === undefined) { + return new UnprocessableContentError(); + } + return user.id; + }) +]); ``` We now have a `POST` handler for the `/users` path. diff --git a/adapters/http.ts b/adapters/http.ts index d31812b..efa4ca9 100644 --- a/adapters/http.ts +++ b/adapters/http.ts @@ -1,7 +1,7 @@ import { RequestInput } from "../libraries/relay.ts"; import { RelayAdapter } from "../mod.ts"; -export const http: RelayAdapter = { +export const adapter: RelayAdapter = { async fetch({ method, url, search, body }: RequestInput) { const res = await fetch(`${url}${search}`, { method, headers: { "content-type": "application/json" }, body }); const data = await res.text(); diff --git a/deno.json b/deno.json index 9a19b9a..5466346 100644 --- a/deno.json +++ b/deno.json @@ -2,7 +2,8 @@ "name": "@valkyr/relay", "version": "0.1.0", "exports": { - ".": "./mod.ts" + ".": "./mod.ts", + "./http": "./adapters/http.ts" }, "publish": { "exclude": [ diff --git a/tests/mocks/relay.ts b/tests/mocks/relay.ts index bc5c7e8..581e83e 100644 --- a/tests/mocks/relay.ts +++ b/tests/mocks/relay.ts @@ -1,11 +1,11 @@ import z from "zod"; -import { http } from "../../adapters/http.ts"; +import { adapter } from "../../adapters/http.ts"; import { Relay } from "../../libraries/relay.ts"; import { route } from "../../libraries/route.ts"; import { UserSchema } from "./user.ts"; -export const relay = new Relay({ url: "http://localhost:36573", adapter: http }, [ +export const relay = new Relay({ url: "http://localhost:36573", adapter }, [ route .post("/users") .body(UserSchema.omit({ id: true, createdAt: true }))