Skip to content

Commit e04fbcb

Browse files
authored
feat(runtime-types): add cookie/header support for types (#297)
1 parent e9ef02e commit e04fbcb

File tree

2 files changed

+21
-7
lines changed

2 files changed

+21
-7
lines changed

Diff for: packages/serverless-runtime-types/example/functions/demo.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@
22

33
/**
44
* @param {import('@twilio-labs/serverless-runtime-types').Context} context
5-
* @param {{}} event
5+
* @param {import('@twilio-labs/serverless-runtime-types').ServerlessEventObject<{}, {}, { token: string }>} event
66
* @param {import('@twilio-labs/serverless-runtime-types').ServerlessCallback} callback
77
*/
8-
exports.handler = function(context, event, callback) {
8+
exports.handler = function (context, event, callback) {
99
let twiml = new Twilio.twiml.MessagingResponse();
10+
console.log(event.cookies.token);
1011
twiml.message('Hello World');
1112
callback(null, twiml);
1213
};

Diff for: packages/serverless-runtime-types/types.d.ts

+18-5
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,12 @@ export type AssetResourceMap = {
2222
};
2323

2424
export interface TwilioResponse {
25-
setStatusCode(code: number): void;
26-
setBody(body: string | object): void;
27-
appendHeader(key: string, value: string): void;
28-
setHeaders(headers: { [key: string]: string }): void;
25+
setStatusCode(code: number): TwilioResponse;
26+
setBody(body: string | object): TwilioResponse;
27+
appendHeader(key: string, value: string): TwilioResponse;
28+
setHeaders(headers: { [key: string]: string }): TwilioResponse;
29+
setCookie(key: string, value: string, attributes?: string[]): TwilioResponse;
30+
removeCookie(key: string): TwilioResponse;
2931
}
3032

3133
export type RuntimeSyncClientOptions = TwilioClientOptions & {
@@ -53,9 +55,20 @@ export type ServerlessCallback = (
5355
payload?: object | string | number | boolean
5456
) => void;
5557

58+
export type ServerlessEventObject<
59+
RequestBodyAndQuery = {},
60+
Headers = {},
61+
Cookies = {}
62+
> = {
63+
request: {
64+
cookies: Cookies;
65+
headers: Headers;
66+
};
67+
} & RequestBodyAndQuery;
68+
5669
export type ServerlessFunctionSignature<
5770
T extends EnvironmentVariables = {},
58-
U extends {} = {}
71+
U extends ServerlessEventObject = { request: { cookies: {}; headers: {} } }
5972
> = (
6073
context: Context<T>,
6174
event: U,

0 commit comments

Comments
 (0)