Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 02:19
    willfarrell labeled #736
  • Oct 16 12:19
    Kelvijn opened #736
  • Oct 15 14:08
    omer-to opened #735
  • Oct 14 14:33
    onhate commented #473
  • Oct 13 20:43
    joeythomaschaske commented #473
  • Oct 13 20:43
    joeythomaschaske commented #473
  • Oct 13 14:52
    omer-to opened #734
  • Oct 12 19:34
    sidharth-shridhar commented #731
  • Oct 12 19:33
    sidharth-shridhar closed #731
  • Oct 12 19:33
    sidharth-shridhar commented #731
  • Oct 12 15:50

    willfarrell on 2.5.2

    (compare)

  • Oct 12 15:50

    willfarrell on main

    chore: update deps (compare)

  • Oct 12 15:44

    willfarrell on main

    Add missing parameter for reque… Merge pull request #733 from om… (compare)

  • Oct 12 15:44
    willfarrell closed #733
  • Oct 10 19:19
    omer-to opened #733
  • Oct 10 02:51
    willfarrell commented #732
  • Oct 09 22:35
    omer-to commented #732
  • Oct 09 02:15
    willfarrell commented #731
  • Oct 09 02:09
    willfarrell commented #731
  • Oct 09 02:04
    sidharth-shridhar commented #731
Linus Probert
@LiquidityC
@willfarrell Will do, thanks man!
Erick Peniche
@erickpeniche
Hi! I'm having some issues while working with middy and httpErrorHandler middleware. I am using AWS Lambdas through an API Gateway, I have wrapped my handler in a middy() function and also applied the middlewares with .use(). When I need to throw an error inside my Lambda handler, I use the createError method from the http-errors library. But for some reason, the lambda response is always a 502 with {"message": "Internal server error"}. Am I missing something?
will Farrell
@willfarrell
The httpErrorHandler should be the last middleware in the chain. Can't really help more without seeing the full example. Maybe post an issue in the repo.
David Vasandani
@davidvasandani
Is it possible to run middy-reroute locally for testing?
Martin Donath
@squidfunk
Hey there! Big fan of middy.js - it takes so much pain away. I was wondering if there's a standard approach to routing, i.e. one Lambda function that serves several of API endpoints with different handlers depending on the .routeKey (or .httpMethod + .resource)? Searching for router or routing on the issue tracker returns nothing.
Martin Muller
@mmuller88
Hi fellaws. First of all thank you so much for the amazing middy libraries <3. Just started some days ago using them. Is that the official community room :)?
Emanuele Ricci
@StErMi
hi everyone, I'm new to middy and I would like to create an official middleware for MikroORM (a typescript ORM I'm using). I'm using typescript on my project but I cannot find no typescript example on how to correctly use a middleware with typings and lambda or an example of custom middleware developed with typescript. Is there someone that has already did that and can share some example/process?
Martin Muller
@mmuller88
@StErMi I think in the issues page was some examples given :). But yeah I made good experience with just taking the JavaScript stuff TypeScript and solving occuring problems :)
Emanuele Ricci
@StErMi
uhm so real existing examples? :(
Martin Muller
@mmuller88

Yeah I think that ones mentioned here are good middyjs/middy#373

Bur rather complicated ^^

Emanuele Ricci
@StErMi
mmm I'm tying a little bit do do those but to be host they are not complete and some of them I think their using an old version of middy. I would like to see a full example that rely on both Event and Context
Emanuele Ricci
@StErMi
how should I correctly throw http exception from middy middleware in a format designed by me?
Emanuele Ricci
@StErMi
if I'm using typescript and I'm also using jsonBodyParser is there something that extends APIGatewayEvent and add the body as a JSON object?
will Farrell
@willfarrell
Happy New Year everyone! It's been a growing year for Middy with lots of adoptions (see below). Thank you for all of your help over the past year in making middy better than ever. We have some great news to start the year off with; I've started working on middy v2. We're addressing some of your most requested features and performance bottlenecks but will need to make some breaking changes. My goal is to have something together over the coming month so the community can comment. I'm hopeful AWS will support Node.js v14 around Apr/May and plan to have an alpha release ready for then.

Full trend details at middyjs/middy#590
Martin Muller
@mmuller88
Happy new Year. Amazing news I am very excited :)
will Farrell
@willfarrell
If you want to follow what's happing with v2, subscribe to this issue: middyjs/middy#585.
1 reply
Yang Yang
@zacyang
Hi all, I just switched my middy handle from the old (e,c, cb)=> {}. to async function, but , the original lambda function stoped return content (AWS lambda), is there some additional middleware I have to add to use async handler?
will Farrell
@willfarrell
@zacyang Thanks for reaching out. Changing from callback to promise does also require you to return the response instead of using the callback function. There is an example in the README. This is a common pain point for many. We've rebuilt middy to remove the callback option in v2 to make this easier for all. We hope to have an alpha out in the next week (you can check it out sooner on the release/v2 branch). Plans to have it released after AWS supports Node.js v14.
will Farrell
@willfarrell
1 reply
Luciano Mammino
@lmammino
middy 2.0 is there!
Davide Behr
@behr-davide
Quick question.. can code outside of a handler function use parameters loaded by the SSM middleware? I logged the process.env object outside of my handler and it did not contain the SSM param I fetched.
will Farrell
@willfarrell
In v1 you need to consider when things are triggered in the event cycle. So, yes it can. Saving to context should make it easier. In v2 there is an all-new internal object that can be used to share data between middleware securely and asynchronously to make these usecases easier.
Davide Behr
@behr-davide
Good to know -- thanks for your response and thank you to everyone who contributes to middy! :pray:
will Farrell
@willfarrell
Luciano Mammino
@lmammino
Voxel Group has just announced a port of middy to the .net runtime: https://twitter.com/vgaltes/status/1366371605337825284
will Farrell
@willfarrell
Middy passed 100k downloads per week. Crazyness. https://www.npmtrends.com/@middy/core-vs-middy
Oh yeah, v2 beta is now releaseed :)
Luciano Mammino
@lmammino
WOOW great news!
Luciano Mammino
@lmammino
will Farrell
@willfarrell
I was wondering how they allowed "streaming" file changes since lambda doesn't support streamed responses. Not a fan of the pattern their using, I think we could make this much better. I was hoping they would pass in a read stream and we could return a transform stream. I'll for sure use this feature once terraform supports it. I see a lot of value in having a middleware for this to make it way easier.
Luciano Mammino
@lmammino
I had the exact same thought and I was a bit disappointed too :D However, from what i have seen in the api to create a custom lambda executor, I think doing a streaming implementation for Node.js could be feasible. I had a look sometime ago but if I remember correclty in that abstraction you have access to raw http requests, therefore you should be able to access streaming requests and provide streaming responses...
will Farrell
@willfarrell
Seriously, this is possible now? I've been waiting for streaming responses since apig was introduced. We have to add this to middy :P
Luciano Mammino
@lmammino
I might have to experiment a little with creating a non-standard executor
and see if my instincts are actually correct :D
will Farrell
@willfarrell
having stream requests/responses in middy would be a game-changer.
will Farrell
@willfarrell
@/all Looking for some feedback. I'm looking into adding in support for parsing nested aws events, ex: s3 -> sns -> sqs. In this example would you prefer using; a) single middlware for the source event (s3 in this case) that parses the wrapper events (sns/sqs) as well; b) have a parser for each event, and each would need to be applied in the correct order of use; c) single middleware for any event with wrapper event parsing.
They all have their pros/cons. Let me know what you think, which would you prefer to use?
Luciano Mammino
@lmammino
https://nodeweekly.com/issues/384 A middy interview here! <3
will Farrell
@willfarrell
middy is listed on the new ajv website homepage. https://ajv.js.org/
khirodAsurion
@khirodAsurion
Guys , i have a very simple payload via api-0gateway to lambda {"email":"abc@gmail.com"}. and my Schema looks like this .const inputRequestSchema = { type: 'object', required: [ 'email', ], properties: { email: { type: 'string', }, }, additionalProperties: true, }; when i fire up the request , i get error message: 'must have required property email'les/@middy/core/index.js?:80:5) {ex.js?:51:21) Event object failed validation. any help here ? i am using following dependency "@middy/core": "^2.2.0", "@middy/http-error-handler": "^2.2.0", "@middy/http-header-normalizer": "^2.2.0", "@middy/http-json-body-parser": "^2.2.0", "@middy/validator": "^2.2.0". . use of middleware code \ export const handler = middy(handlerLambda) .use(httpHeaderNormalizer()) .use(httpJsonBodyParser()) .use(validator({ inputSchema: inputRequestSchema })) .use(httpErrorHandler());
will Farrell
@willfarrell
@khirodAsurion your input schema doesn't match what API Gateway sends in. Should look something like: { "queryStringParameters":{...}, "body":{...} }. https://docs.aws.amazon.com/lambda/latest/dg/services-apigateway.html
khirodAsurion
@khirodAsurion
@willfarrell thanks for the quick response. but I am only interested to validating body . in that case should I always have to provide other details also in schema ? or is there any other way ? See that I am adding additionalProperties: true, just to make sure other added by APIGateway do not create issue .but still it says message: 'must have required property email'les/@middy/core/index.js?:80:5) {ex.js?:51:21) Event object failed validation
will Farrell
@willfarrell
Your schema only need to include what you want to validate, but must expected the warper object around your request.
khirodAsurion
@khirodAsurion
Thanks @willfarrell . That worked. ! Although I am not sure if i use .use(httpErrorHandler()); I still do not see the real error around the Schema diff thrown as an error . It only says very generic message
will Farrell
@willfarrell
If you want to return errors, you need to handler ajv errors yourself. There isn't a standard everyone follows so we can't do it for you. httpErrorHandler is a catch all if an error hasn't already been handled. It returns a generic message (which can be overridden), because you don't want stack traces returned to the consumer, leading to leaking too much information (security best practice).
khirodAsurion
@khirodAsurion
thanks