Open dobromyslov opened 4 years ago
Hey @dobromyslov, yeah that does look like an error with the TS interfaces.
I believe this workaround was just to fix the TS compiler, I don't think we really expected anybody to use our Request
interface.
Want to send a PR, just changing the interfaces?
Yes, I will prepare PR and send it in a couple of days.
I implemented custom handling of rawBody in TypeScript and found this issue.
Cloud functions implicitly extend express Request interface with rawBody (see https://github.com/GoogleCloudPlatform/functions-framework-nodejs/blob/master/src/invoker.ts#L44):
I get error
Property 'rawBody' does not exist on type 'Request<ParamsDictionary>'
when implement handler which uses Request.rawBody attribute like below:As a workaround I have to create and use my own type instead of native Express Request:
If you have a look at the
firebase-functions
repository then you will see they use explicit extension of Request interface and then use it in code (https://github.com/firebase/firebase-functions/blob/master/src/providers/https.ts#L33)I think
functions-framework-nodejs
should change implicit interface extension to explicit and provide stand-alone Request with rawBody attribute to avoid this workaround mess in depended applications code.