Collection of plugins for use in your L³ application.
Name | Description |
---|---|
AccessControlHeaders | Middleware to send Access-Control-* headers. |
AppConfigPlugin | Middleware to store the app configuration. |
BasicAuthHandler | Middleware to prompt Basic Authentication. |
CloudFrontCacheHeader | Middleware to send CloudFront Cache-Control header. |
CookieParserPlugin | Middleware to parse/store incoming HTTP cookies. |
ContentNegotiationJson | Middleware to enforce JSON content negotiation. |
ContentTypeJsonHeader | Middleware to send JSON Content-Type header. |
GoogleRecaptchaHandler | Middleware to validate Google ReCAPTCHA invisible responses. |
PreflightOptionsHandler | Middleware to handle preflight requests. |
SessionPluginExample | Middleware example of validating a session that uses cookies. |
SwaggerUIViewer | Middleware to generate Swagger UI viewer. |
Usage: lambda-lambda-lambda install [options] <PackageName>
Arguments:
PackageName Package name (Example: BasicAuthHandler)
Options:
-h, --help display help for command
Copy the package to your application /middleware
and include accordingly.
// .. appName/src/app.js
'use strict';
const Router = require('@lambda-lambda-lambda/router');
// Load middleware.
const plugin1 = require(`${APP_ROOT}/middleware/PluginName1`);
const plugin2 = require(`${APP_ROOT}/middleware/PluginName2`);
const plugin3 = require(`${APP_ROOT}/middleware/PluginName3`);
/**
* @see AWS::Serverless::Function
*/
exports.handler = (event, context, callback) => {
const {request, response} = event.Records[0].cf;
const router = new Router(request, response);
// Executed in order (all routes) /api/*
router.use(plugin1);
router.use(plugin2);
router.use(plugin3);
// .. Router Methods
};
// .. appName/src/routes/foo.js
'use strict';
// Load middleware.
const plugin1 = require(`${APP_ROOT}/middleware/PluginName1`);
const plugin2 = require(`${APP_ROOT}/middleware/PluginName2`);
const plugin3 = require(`${APP_ROOT}/middleware/PluginName3`);
/**
* @export {Object}
*/
module.exports = {
// Executed in order (route only) /api/foo
middleware: [plugin1, plugin2, plugin3],
// .. Router Methods
};
From the plugin directory:
$ cd plugins/<pluginName>
Run ESLint on project sources:
$ npm run lint
Run Mocha integration tests:
$ npm run test
If you fix a bug, or have a code you want to contribute, please send a pull-request with your changes. (Note: Before committing your code please ensure that you are following the Node.js style guide)
This package is maintained under the Semantic Versioning guidelines.
This package is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose.
lambda-lambda-lambda/middleware is provided under the terms of the MIT license