diff --git a/README.md b/README.md index 43431c4..075d0e3 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ A simple HTTP server inspired by Express and in tune with Functional Programming principles in JavaScript for Deno. -[![deno land](http://img.shields.io/badge/available%20on-deno.land/x-lightgrey.svg?logo=deno&labelColor=black)](https://github.com/sebastienfilion/functional-http-server@v0.1.1) +[![deno land](http://img.shields.io/badge/available%20on-deno.land/x-lightgrey.svg?logo=deno&labelColor=black)](https://github.com/sebastienfilion/functional-http-server@v0.3.0) [![deno version](https://img.shields.io/badge/deno-^1.4.6-lightgrey?logo=deno)](https://github.com/denoland/deno) [![GitHub release](https://img.shields.io/github/v/release/sebastienfilion/functional)](https://github.com/sebastienfilion/functional-http-server/releases) [![GitHub licence](https://img.shields.io/github/license/sebastienfilion/functional)](https://github.com/sebastienfilion/functional-http-server/blob/v0.1.1/LICENSE) @@ -17,9 +17,9 @@ The function takes two arguments; the first argument is the options, and the sec function that takes a `Request` and return a `Task` of a `Response`. ```js -import Task from "https://deno.land/x/functional@v1.1.0/library/Task.js"; -import Response from "https://deno.land/x/functional_io@v0.5.0/library/Response.js"; -import startHTTPServer from "https://deno.land/x/functional_http_server@v0.1.0/library/server.js"; +import Task from "https://deno.land/x/functional@v1.2.1/library/Task.js"; +import Response from "https://deno.land/x/functional_io@v1.0.0/library/Response.js"; +import startHTTPServer from "https://deno.land/x/functional_http_server@v0.3.0/library/server.js"; startHTTPServer({ port: 8080 }, request => Task.of(Response.OK({}, request.raw))); ``` @@ -44,10 +44,10 @@ The assertion function takes a `Request` and return a `Boolean`, the handling fu must return a `Task` of a `Response`. ```js -import Task from "https://deno.land/x/functional@v1.1.0/library/Task.js"; -import { encodeText } from "https://deno.land/x/functional@v1.1.0/library/utilities.js"; -import Response from "https://deno.land/x/functional_io@v0.5.0/library/Response.js"; -import { route } from "https://deno.land/x/functional_http_server@v0.1.0/library/route.js"; +import Task from "https://deno.land/x/functional@v1.2.1/library/Task.js"; +import { encodeText } from "https://deno.land/x/functional@v1.2.1/library/utilities.js"; +import Response from "https://deno.land/x/functional_io@v1.0.0/library/Response.js"; +import { route } from "https://deno.land/x/functional_http_server@v0.3.0/library/route.js"; startHTTPServer( { port: 8080 }, @@ -66,10 +66,10 @@ Because the pattern is common, this library also offers a collection of handler the assertion function. Each handler takes a `String` or a `RegExp` and a unary function. ```js -import Task from "https://deno.land/x/functional@v1.1.0/library/Task.js"; -import { encodeText } from "https://deno.land/x/functional@v1.1.0/library/utilities.js"; -import Response from "https://deno.land/x/functional_io@v0.5.0/library/Response.js"; -import { handlers, route } from "https://deno.land/x/functional_http_server@v0.1.0/library/route.js"; +import Task from "https://deno.land/x/functional@v1.2.1/library/Task.js"; +import { encodeText } from "https://deno.land/x/functional@v1.2.1/library/utilities.js"; +import Response from "https://deno.land/x/functional_io@v1.0.0/library/Response.js"; +import { handlers, route } from "https://deno.land/x/functional_http_server@v0.3.0/library/route.js"; startHTTPServer( { port: 8080 }, @@ -88,7 +88,7 @@ The binary function handler will be called with an object containing the origina and other parameters; the second argument is the body of request serialized based on the content type. ```js -import { explodeRequest } from "https://deno.land/x/functional_http_server@v0.1.0/library/utilities.js"; +import { explodeRequest } from "https://deno.land/x/functional_http_server@v0.3.0/library/utilities.js"; startHTTPServer( { port: 8080 }, diff --git a/library/route.js b/library/route.js index 56a2432..d870855 100644 --- a/library/route.js +++ b/library/route.js @@ -11,11 +11,11 @@ import { prop, test } from "https://x.nest.land/ramda@0.27.0/source/index.js"; -import Task from "https://deno.land/x/functional@v1.1.0/library/Task.js"; -import Request from "https://deno.land/x/functional_io@v0.5.0/library/Request.js"; -import Response from "https://deno.land/x/functional_io@v0.5.0/library/Response.js"; +import Task from "https://deno.land/x/functional@v1.2.1/library/Task.js"; +import Request from "https://deno.land/x/functional_io@v1.0.0/library/Request.js"; +import Response from "https://deno.land/x/functional_io@v1.0.0/library/Response.js"; -import { assertIsRegex } from "https://deno.land/x/functional@v1.1.0/library/utilities.js"; +import { assertIsRegex } from "https://deno.land/x/functional@v1.2.1/library/utilities.js"; /** * ## Routing @@ -27,8 +27,8 @@ import { assertIsRegex } from "https://deno.land/x/functional@v1.1.0/library/uti * must return a `Task` of a `Response`. * * ```js - * import Task from "https://deno.land/x/functional@v1.1.0/library/Task.js"; - * import Response from "https://deno.land/x/functional_io@v0.5.0/library/Response.js"; + * import Task from "https://deno.land/x/functional@v1.2.1/library/Task.js"; + * import Response from "https://deno.land/x/functional_io@v1.0.0/library/Response.js"; * import { route } from "./library/route.js"; * import { encodeText } from "./library/utilities.js"; * @@ -49,8 +49,8 @@ import { assertIsRegex } from "https://deno.land/x/functional@v1.1.0/library/uti * the assertion function. Each handler takes a `String` or a `RegExp` and a unary function. * * ```js - * import Task from "https://deno.land/x/functional@v1.1.0/library/Task.js"; - * import Response from "https://deno.land/x/functional_io@v0.5.0/library/Response.js"; + * import Task from "https://deno.land/x/functional@v1.2.1/library/Task.js"; + * import Response from "https://deno.land/x/functional_io@v1.0.0/library/Response.js"; * import { handlers, route } from "./library/route.js"; * import { encodeText } from "./library/utilities.js"; * diff --git a/library/route_test.js b/library/route_test.js index befdc95..ab70dbd 100644 --- a/library/route_test.js +++ b/library/route_test.js @@ -1,7 +1,7 @@ -import { assert, assertEquals } from "https://deno.land/std@0.70.0/testing/asserts.ts" -import Task from "https://deno.land/x/functional@v1.1.0/library/Task.js"; -import Request from "https://deno.land/x/functional_io@v0.5.0/library/Request.js"; -import Response from "https://deno.land/x/functional_io@v0.5.0/library/Response.js"; +import { assert, assertEquals } from "https://deno.land/std@0.79.0/testing/asserts.ts" +import Task from "https://deno.land/x/functional@v1.2.1/library/Task.js"; +import Request from "https://deno.land/x/functional_io@v1.0.0/library/Request.js"; +import Response from "https://deno.land/x/functional_io@v1.0.0/library/Response.js"; import { handlers, route } from "./route.js"; diff --git a/library/server.js b/library/server.js index 1349e11..90b7747 100644 --- a/library/server.js +++ b/library/server.js @@ -1,9 +1,9 @@ -import { gray, red } from "https://deno.land/std@0.76.0/fmt/colors.ts"; -import { serve, serveTLS } from "https://deno.land/std@0.74.0/http/server.ts"; +import { gray, red } from "https://deno.land/std@0.79.0/fmt/colors.ts"; +import { serve, serveTLS } from "https://deno.land/std@0.79.0/http/server.ts"; import { cond, curry, reduce } from "https://x.nest.land/ramda@0.27.0/source/index.js"; -import { encodeText } from "https://deno.land/x/functional@v1.1.0/library/utilities.js"; -import Request from "https://deno.land/x/functional_io@v0.5.0/library/Request.js"; -import Response from "https://deno.land/x/functional_io@v0.5.0/library/Response.js"; +import { encodeText } from "https://deno.land/x/functional@v1.2.1/library/utilities.js"; +import Request from "https://deno.land/x/functional_io@v1.0.0/library/Request.js"; +import Response from "https://deno.land/x/functional_io@v1.0.0/library/Response.js"; /** * ## Simple HTTP server @@ -13,8 +13,8 @@ import Response from "https://deno.land/x/functional_io@v0.5.0/library/Response. * function that takes a `Request` and return a `Task` of a `Response`. * * ```js - * import Task from "https://deno.land/x/functional@v1.1.0/library/Task.js"; - * import Response from "https://deno.land/x/functional_io@v0.5.0/library/Response.js"; + * import Task from "https://deno.land/x/functional@v1.2.1/library/Task.js"; + * import Response from "https://deno.land/x/functional_io@v1.0.0/library/Response.js"; * import startHTTPServer from "./library/server.js"; * * startHTTPServer({ port: 8080 }, request => Task.of(Response.OK({}, request.raw))); diff --git a/library/server_test.js b/library/server_test.js index 03370bc..0dfa12f 100644 --- a/library/server_test.js +++ b/library/server_test.js @@ -1,12 +1,12 @@ -import { assert, assertEquals } from "https://deno.land/std@0.70.0/testing/asserts.ts"; +import { assert, assertEquals } from "https://deno.land/std@0.79.0/testing/asserts.ts"; import { compose, converge, mergeRight } from "https://x.nest.land/ramda@0.27.0/source/index.js"; -import Either from "https://deno.land/x/functional@v1.1.0/library/Either.js"; -import Task from "https://deno.land/x/functional@v1.1.0/library/Task.js"; -import { decodeRaw, encodeText, safeExtract } from "https://deno.land/x/functional@v1.1.0/library/utilities.js"; -import { fetch } from "https://deno.land/x/functional_io@v0.5.0/library/browser_safe.js"; -import Request from "https://deno.land/x/functional_io@v0.5.0/library/Request.js"; -import Response from "https://deno.land/x/functional_io@v0.5.0/library/Response.js"; +import Either from "https://deno.land/x/functional@v1.2.1/library/Either.js"; +import Task from "https://deno.land/x/functional@v1.2.1/library/Task.js"; +import { decodeRaw, encodeText, safeExtract } from "https://deno.land/x/functional@v1.2.1/library/utilities.js"; +import { fetch } from "https://deno.land/x/functional_io@v1.0.0/library/browser_safe.js"; +import Request from "https://deno.land/x/functional_io@v1.0.0/library/Request.js"; +import Response from "https://deno.land/x/functional_io@v1.0.0/library/Response.js"; import { handlers, route } from "./route.js"; import { startHTTPServer } from "./server.js"; diff --git a/library/utilities.js b/library/utilities.js index e016125..a1dd23d 100644 --- a/library/utilities.js +++ b/library/utilities.js @@ -1,7 +1,6 @@ import { always, ap, - chain, compose, cond, converge, @@ -16,8 +15,7 @@ import { split, test } from "https://x.nest.land/ramda@0.27.0/source/index.js"; -import { assertIsRegex, decodeRaw, encodeText, log } from "https://deno.land/x/functional@v1.1.0/library/utilities.js"; -import Request from "https://deno.land/x/functional_io@v0.5.0/library/Request.js"; +import { assertIsRegex, decodeRaw } from "https://deno.land/x/functional@v1.2.1/library/utilities.js"; /** * ### Parsing Requests diff --git a/library/utilities_test.js b/library/utilities_test.js index 744197b..44d0a27 100644 --- a/library/utilities_test.js +++ b/library/utilities_test.js @@ -1,10 +1,10 @@ -import { assert, assertEquals } from "https://deno.land/std@0.70.0/testing/asserts.ts" +import { assert, assertEquals } from "https://deno.land/std@0.79.0/testing/asserts.ts" import { curry } from "https://x.nest.land/ramda@0.27.0/source/index.js"; -import Request from "https://deno.land/x/functional_io@v0.5.0/library/Request.js"; -import Response from "https://deno.land/x/functional_io@v0.5.0/library/Response.js"; -import Task from "https://deno.land/x/functional@v1.1.0/library/Task.js"; -import { decodeRaw, encodeText, safeExtract } from "https://deno.land/x/functional@v1.1.0/library/utilities.js"; +import Request from "https://deno.land/x/functional_io@v1.0.0/library/Request.js"; +import Response from "https://deno.land/x/functional_io@v1.0.0/library/Response.js"; +import Task from "https://deno.land/x/functional@v1.2.1/library/Task.js"; +import { decodeRaw, encodeText, safeExtract } from "https://deno.land/x/functional@v1.2.1/library/utilities.js"; import { explodeRequest,