From cc2712fc6ba7d2788d4d4c91ac6b2d3fc662c0fa Mon Sep 17 00:00:00 2001 From: Justin Wind Date: Fri, 16 Sep 2022 10:27:59 -0700 Subject: [PATCH] clean up some lint issues --- .eslintrc.json | 4 ++++ .markdownlint.json | 3 ++- README.md | 23 +++++++++++++---------- lib/common.js | 6 +++--- 4 files changed, 22 insertions(+), 14 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 1dc01d2..228599b 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -83,6 +83,10 @@ "error", "single" ], + "semi": [ + "error", + "always" + ], "strict": "error", "vars-on-top": "error" } diff --git a/.markdownlint.json b/.markdownlint.json index 18e3c71..2ce28cb 100644 --- a/.markdownlint.json +++ b/.markdownlint.json @@ -1,4 +1,5 @@ { "MD013": false, - "MD024": false + "MD024": false, + "MD032": false } diff --git a/README.md b/README.md index 37d9afb..c67a282 100644 --- a/README.md +++ b/README.md @@ -3,29 +3,32 @@ I just wanted a basic little API server for toy projects, without having to park a container-ship of modules under it. This is in no way intended to replace any mature, full-featured framework. It is spartan in some aspects, brings some unexpected baggage in others, makes some questionable design decisions, has the occasional opinion, and is likely somewhat idiosyncratic from an outside perspective. + +This was also created as a means to gain a better understanding of the existing web framework ecosystem by fussing with all the involved fiddly bits, a priori, from the bottom up. + The primary design goals are: - self-contained: as few external dependencies as feasible - not-infinitely-extensible: only does the things it needs to do as dictated by the projects it is used in +- learning from mistakes made along the way ## Getting Started -Construct it with a console-level-compatible logger capable of doing something meaningful with calls like level(scopeString, messageString, dataObject). +Construct it with a console-level-compatible logger object capable of doing something meaningful with calls like `logger[level](scopeString, messageString, dataObject)`. Within the server request handler: -* dispatch(req, res) makes things go. +- `dispatch(req, res)` makes things go. Within the application implementation: -* on(method, urlPath, handler) declares a thing to do when a request matches. -* preHandler(req, res, ctx) can be overridden to do something to every request before it is handled. +- `on(method, urlPath, handler)` declares a thing to do when a request matches. +- `preHandler(req, res, ctx)` can be overridden to do something to every request before it is handled. Handled content types can be extended by overriding: -* parseBody(contentType, ctx) for incoming types. -* renderError(contentType, err) for outgoing types. +- `parseBody(contentType, ctx)` for incoming types. +- `renderError(contentType, err)` for outgoing types. Within your handlers: -* setResponseType(responseTypes, req, res, ctx) can be called to negotiate content types. -* async ingestBody(req, res, ctx) will parse request body data. -* throw an Error.ResponseError with an Enum.ErrorResponse for a simple status code with optional details, when something goes awry. +- `setResponseType(responseTypes, req, res, ctx)` can be called to negotiate content types. +- `async ingestBody(req, res, ctx)` will parse request body data. +- throw an `Error.ResponseError` with an `Enum.ErrorResponse` for a simple status code with optional details, when something goes awry. Parameters and metadata are set in each request context. - diff --git a/lib/common.js b/lib/common.js index 40a9f55..e2e2a8c 100644 --- a/lib/common.js +++ b/lib/common.js @@ -27,7 +27,7 @@ const fileScope = (filename) => { fScope = path.basename(path.dirname(filename)); } return (scope) => `${fScope}:${scope}`; -} +}; /** * Simple ETag from data. @@ -202,7 +202,7 @@ const scrubHeaderObject = (data) => { authorization: obscureAuthorizationHeader(data.headers['authorization']), }); } -} +}; /** @@ -218,7 +218,7 @@ const obscureAuthorizationHeader = (authHeader) => { const space = authHeader.indexOf(' '); // This blurs entire string if no space found, because -1. return authHeader.slice(0, space + 1) + '*'.repeat(authHeader.length - (space + 1)); -} +}; /** -- 2.43.2