Module
Powered by functional composition and the URL Pattern API, composium has become the most flexible routing framework in the world.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465import { Context, createRoute } from "./mod.ts";import { add10Middleware, connInfo, divide5DelayedMiddleware, tryMiddleware,} from "./test_util.ts";import { assertEquals } from "./test_deps.ts";
type State = { result: number };
const request = new Request("https:example.com/books");
class Ctx extends Context<State> {}
Deno.test("createRoute", async function () { assertEquals( (await createRoute("ALL")({ pathname: "/books" })(add10Middleware)( new Ctx(request, connInfo, { result: 10 }), )).state.result, 20, ); assertEquals( (await createRoute("GET")({ pathname: "/books" })( add10Middleware, divide5DelayedMiddleware, )( new Ctx(request, connInfo, { result: 10 }), )).state.result, 12, ); assertEquals( (await createRoute("POST", "GET")({ pathname: "/books" })(tryMiddleware)( new Ctx( request, connInfo, { result: 10 }, ), )).state.result, 28, ); assertEquals( (await createRoute("POST", "DELETE")({ pathname: "/books" })( tryMiddleware, )( new Ctx( request, connInfo, { result: 10 }, ), )).state.result, 10, ); assertEquals( (await createRoute("GET")({ pathname: "/ups" })(tryMiddleware)( new Ctx( request, connInfo, { result: 10 }, ), )).state.result, 10, );});