This commit is contained in:
garrettmills
2020-02-07 19:50:10 -06:00
commit 0a97c59169
42 changed files with 3961 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
/*
* HomeLogger Middleware
* -------------------------------------------------------------
* This is a sample middleware. It simply prints a console message when
* the route that it is tied to is accessed. By default, it is called if
* the '/' route is accessed. It can be injected in routes globally using
* the global mw() function.
*/
const Middleware = require('libflitter/middleware/Middleware')
class HomeLogger extends Middleware {
static get services() {
return [...super.services, 'output']
}
/*
* Run the middleware test.
* This method is required by all Flitter middleware.
* It should either call the next function in the stack,
* or it should handle the response accordingly.
*/
test(req, res, next, args) {
this.output.debug('Home was accessed!')
/*
* Call the next function in the stack.
*/
next()
}
}
module.exports = HomeLogger

View File

@@ -0,0 +1,40 @@
/*
* Config Middleware
* -------------------------------------------------------------
* Checks the specified configuration key (and optionally the value).
* If the configuration matches the required value, the request can
* proceed. Otherwise, a 404 will be returned.
*
* To use, add the call to your route's middleware:
* _flitter.mw('util:Config', {
* key: 'server.environment',
* value: 'development'
* })
*
* In this case, the request would be allowed to proceed in the case:
* _flitter.config('server.environment') === 'development'
*
* The 'value' attribute is optional. If none is provided, the request
* can proceed if the config value is truthy.
*/
const Middleware = require('libflitter/middleware/Middleware')
class Config extends Middleware {
static get services() {
return [...super.services, 'configs']
}
/*
* Run the middleware test.
*/
test(req, res, next, args = {}){
if ( !args.key ) return res.error(500)
const config = this.configs.get(args.key)
if ( !args.value && !config ) return res.error(404)
else if ( args.value && args.value !== config ) return res.error(404)
else return next()
}
}
module.exports = Config