New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

lambda-router

Package Overview
Dependencies
Maintainers
1
Versions
24
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

lambda-router - npm Package Compare versions

Comparing version 2.7.0 to 2.8.0

4

CHANGELOG.md

@@ -7,2 +7,6 @@ # Change Log / Release Notes

## [2.8.0] - 2019-07-02
### Added
- `beforeRoute` middleware
## [2.7.0] - 2019-06-19

@@ -9,0 +13,0 @@ ### Added

8

package.json
{
"name": "lambda-router",
"version": "2.7.0",
"version": "2.8.0",
"description": "A router to simplify AWS Lambda Functions.",

@@ -55,3 +55,7 @@ "main": "src/index.js",

"prettier": "^1.18.2",
"tap-nirvana": "^1.1.0"
"tap-nirvana": "^1.1.0",
"sinon": "^7.3.2",
"snazzy": "^5.0.0",
"standard": "8.1.0",
"tap-spec": "^4.1.1"
},

@@ -58,0 +62,0 @@ "prettier": {

@@ -18,3 +18,3 @@ # Lambda Router

logger: console // uses logger-wrapper.
inluceErrorStack: process.env.stage !== 'prod'
includeErrorStack: process.env.stage !== 'prod'
})

@@ -48,3 +48,3 @@

function Router ({
logger, // logger-wrapper
logger, // logger-wrapper
extractPathParameters = true, // merge proxy path parameters into event.pathParameters

@@ -65,2 +65,3 @@ includeTraceId = true, // include TraceId header

unknown: (event, context, path, method) => {}
beforeRoute: async (event, context, path, method)
}

@@ -75,3 +76,3 @@ ```

Route's can be registered with any of the http verb methods.
Routes can be registered with any of the http verb methods.

@@ -93,2 +94,27 @@ `router.[get|post|put|delete](routePattern: string, handler: (event, context) => Object|Promise)`

## Middleware
You can use the `beforeRoute` method to define middleware that will run before attempting to match a registered route. This is useful for mutating the incoming event or context, or for running validations at the global level:
```js
function redactAuthToken (event, context, path, method) {
event.headers['Authorization'] = '--redacted'
}
function validateContentType (event, context, path, method) {
if (!event.headers['Content-Type'].includes('application/json')) {
const error = new Error('Content-Type must be JSON')
error.statusCode = 400
throw error
}
}
// these will both run before any route matching occurs
router.beforeRoute(redactAuthToken)
router.beforeRoute(validateContentType)
router.post('/v1/endpoint', service.create)
router.get('/v1/endpoint/{id}', service.get)
```
# Custom Response

@@ -162,2 +188,2 @@

```
```

@@ -39,6 +39,11 @@ 'use strict'

const routes = []
const add = (method, path, handler) => {
const addRoute = (method, path, handler) => {
routes.push({ method, path, handler })
}
const middleware = []
const addMiddleware = handler => {
if (typeof handler === 'function') middleware.push(handler)
}
let unknownRouteHandler = defaultUnknownRoute

@@ -113,2 +118,6 @@ let defaultHeaders = {

try {
for (let fn of middleware) {
await fn(event, context, requestPath, httpMethod)
}
let result = await (route

@@ -143,6 +152,7 @@ ? route.handler(event, context)

return {
get: add.bind(null, 'GET'),
post: add.bind(null, 'POST'),
put: add.bind(null, 'PUT'),
delete: add.bind(null, 'DELETE'),
beforeRoute: addMiddleware,
get: addRoute.bind(null, 'GET'),
post: addRoute.bind(null, 'POST'),
put: addRoute.bind(null, 'PUT'),
delete: addRoute.bind(null, 'DELETE'),
unknown: handler => {

@@ -149,0 +159,0 @@ unknownRouteHandler = handler

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc