Socket
Socket
Sign inDemoInstall

middy

Package Overview
Dependencies
13
Maintainers
8
Versions
147
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.28.5 to 0.29.0

6

package.json
{
"name": "middy",
"version": "0.28.5",
"version": "0.29.0",
"description": "🛵 The stylish Node.js middleware engine for AWS Lambda",

@@ -60,5 +60,5 @@ "main": "./index.js",

"jest": "^24.8.0",
"jsdoc": "^3.6.2",
"jsdoc": "^3.6.3",
"jsdoc-to-markdown": "^5.0.0",
"marked": "^0.6.2",
"marked": "^0.7.0",
"regenerator-runtime": "^0.13.1",

@@ -65,0 +65,0 @@ "typescript": "^3.3.3",

@@ -41,17 +41,27 @@ <div align="center">

- [A little appetizer](#a-little-appetizer)
- [Install](#install)
- [Requirements](#requirements)
- [Why?](#why)
- [Usage](#usage)
- [How it works](#how-it-works)
- [Promises and error handling](#promises-and-error-handling)
- [Writing a middleware](#writing-a-middleware)
- [Available middlewares](#available-middlewares)
- [API](#api)
- [Typescript](#typescript)
- [FAQ](#faq)
- [3rd party middlewares](#3rd-party-middlewares)
- [Contributing](#contributing)
- [License](#license)
- [TOC](#toc)
- [A little appetizer](#a-little-appetizer)
- [Install](#install)
- [Requirements](#requirements)
- [Why?](#why-)
- [Usage](#usage)
- [How it works](#how-it-works)
* [Execution order](#execution-order)
* [Interrupt middleware execution early](#interrupt-middleware-execution-early)
* [Handling errors](#handling-errors)
* [Promise support](#promise-support)
* [Promises and error handling](#promises-and-error-handling)
* [Using async/await](#using-async-await)
- [Writing a middleware](#writing-a-middleware)
* [Configurable middlewares](#configurable-middlewares)
* [Inline middlewares](#inline-middlewares)
* [More details on creating middlewares](#more-details-on-creating-middlewares)
- [Available middlewares](#available-middlewares)
- [Api](#api)
- [Typescript](#typescript)
- [FAQ](#faq)
* [Q: Lambda timing out](#q--lambda-timing-out)
- [3rd party middlewares](#3rd-party-middlewares)
- [Contributing](#contributing)
- [License](#license)

@@ -58,0 +68,0 @@

@@ -58,2 +58,71 @@ const middy = require('../../middy')

})
test('It should cache things using custom cache settings and discard result of a resolve promised with setValue', (endTest) => {
const calculateCacheId = (event) => Promise.resolve(event.id)
const myStorage = {}
const getValue = (key) => new Promise((resolve, reject) => {
setTimeout(() => resolve(myStorage[key]), 50)
})
const setValue = (key, value) => new Promise((resolve, reject) => {
setTimeout(() => {
myStorage[key] = value
return resolve('Value to discard')
}, 50)
})
const originalHandler = jest.fn((event, context, cb) => {
cb(null, event.a + event.b)
})
const handler = middy(originalHandler)
.use(cache({
calculateCacheId,
getValue,
setValue
}))
const event = { id: 'some_unique_id', a: 2, b: 3 }
const context = {}
handler(event, context, (_, response) => {
handler(event, context, (_, response2) => {
expect(response).toEqual(response2)
expect(originalHandler.mock.calls.length).toBe(1)
endTest()
})
})
})
test('It should throw en error if setValue return a rejected promise', (endTest) => {
const errMessage = 'Something bad happened'
const calculateCacheId = (event) => Promise.resolve(event.id)
const myStorage = {}
const getValue = (key) => new Promise((resolve, reject) => {
setTimeout(() => resolve(myStorage[key]), 50)
})
const setValue = (key, value) => new Promise((resolve, reject) => {
setTimeout(() => {
myStorage[key] = value
return reject(new Error(errMessage))
}, 50)
})
const originalHandler = jest.fn((event, context, cb) => {
cb(null, event.a + event.b)
})
const handler = middy(originalHandler)
.use(cache({
calculateCacheId,
getValue,
setValue
}))
const event = { id: 'some_unique_id', a: 2, b: 3 }
const context = {}
handler(event, context, (err, _) => {
expect(err.message).toEqual(errMessage)
expect(originalHandler.mock.calls.length).toBe(1)
endTest()
})
})
})

@@ -35,5 +35,6 @@ const { createHash } = require('crypto')

options.setValue(currentCacheKey, handler.response)
.then(next)
.then(() => next())
.catch(err => next(err))
}
})
}
SocketSocket SOC 2 Logo

Product

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

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc