Skip to content

Commit 6ab64c9

Browse files
authored
Merge branch 'main' into event-handler/throw-middleware-no-await-next
2 parents 8203937 + 85ae53c commit 6ab64c9

39 files changed

+952
-440
lines changed

docs/features/event-handler/rest.md

Lines changed: 270 additions & 174 deletions
Large diffs are not rendered by default.

docs/requirements.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ mkdocs-material==9.6.20
33
mkdocs-git-revision-date-plugin==0.3.2
44
mkdocs-exclude==1.0.2
55
mkdocs-typedoc==1.0.4
6-
mkdocs-llmstxt==0.3.1
6+
mkdocs-llmstxt==0.3.2

docs/requirements.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -274,9 +274,9 @@ mkdocs-get-deps==0.2.0 \
274274
mkdocs-git-revision-date-plugin==0.3.2 \
275275
--hash=sha256:2e67956cb01823dd2418e2833f3623dee8604cdf223bddd005fe36226a56f6ef
276276
# via -r requirements.in
277-
mkdocs-llmstxt==0.3.1 \
278-
--hash=sha256:123119d9b984c1d1224ed5af250bfbc49879ad83decdaff59d8b0ebb459ddc54 \
279-
--hash=sha256:31f5b6aaae6123c09a2b1c32912c3eb21ccb356b5db7abb867f105e8cc392653
277+
mkdocs-llmstxt==0.3.2 \
278+
--hash=sha256:dd63acb8257fca3244058fd820acd4700c1626dbe48ad3a1a2cc9c599f8e4b7f \
279+
--hash=sha256:fb363205d6f1452411dc5069f62012cb6b29e1788f6db9cc17793bdca7eabea8
280280
# via -r requirements.in
281281
mkdocs-material==9.6.20 \
282282
--hash=sha256:b8d8c8b0444c7c06dd984b55ba456ce731f0035c5a1533cc86793618eb1e6c82 \

examples/app/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
},
3030
"devDependencies": {
3131
"@types/aws-lambda": "^8.10.152",
32-
"@types/node": "24.5.1",
32+
"@types/node": "24.5.2",
3333
"aws-cdk-lib": "^2.214.0",
3434
"constructs": "^10.4.2",
3535
"source-map-support": "^0.5.21",
@@ -48,10 +48,10 @@
4848
"@aws-sdk/lib-dynamodb": "^3.888.0",
4949
"@middy/core": "^4.7.0",
5050
"@types/aws-lambda": "^8.10.152",
51-
"@types/node": "24.5.1",
51+
"@types/node": "24.5.2",
5252
"aws-cdk": "^2.1029.1",
5353
"constructs": "^10.4.2",
54-
"esbuild": "^0.25.9",
54+
"esbuild": "^0.25.10",
5555
"typescript": "^5.9.2"
5656
}
5757
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import { readFile } from 'node:fs/promises';
2+
import { Router } from '@aws-lambda-powertools/event-handler/experimental-rest';
3+
import { compress } from '@aws-lambda-powertools/event-handler/experimental-rest/middleware';
4+
import type { Context } from 'aws-lambda';
5+
6+
const app = new Router();
7+
8+
app.get('/logo', [compress()], async () => {
9+
const logoFile = await readFile(`${process.env.LAMBDA_TASK_ROOT}/logo.png`);
10+
return {
11+
body: logoFile.toString('base64'),
12+
isBase64Encoded: true,
13+
headers: {
14+
'Content-Type': 'image/png',
15+
},
16+
statusCode: 200,
17+
};
18+
});
19+
20+
export const handler = async (event: unknown, context: Context) =>
21+
app.resolve(event, context);
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
declare function getTodoById<T>(todoId: unknown): Promise<{ id: string } & T>;
2+
3+
import { Router } from '@aws-lambda-powertools/event-handler/experimental-rest';
4+
import { compress } from '@aws-lambda-powertools/event-handler/experimental-rest/middleware';
5+
import type { Context } from 'aws-lambda';
6+
7+
const app = new Router();
8+
9+
app.use(compress());
10+
11+
app.get('/todos/:todoId', async ({ todoId }) => {
12+
const todo = await getTodoById(todoId);
13+
return { todo };
14+
});
15+
16+
export const handler = async (event: unknown, context: Context) =>
17+
app.resolve(event, context);
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
declare function getTodoById<T>(todoId: unknown): Promise<{ id: string } & T>;
2+
3+
import { Router } from '@aws-lambda-powertools/event-handler/experimental-rest';
4+
import { cors } from '@aws-lambda-powertools/event-handler/experimental-rest/middleware';
5+
import type { Context } from 'aws-lambda';
6+
7+
const app = new Router();
8+
9+
app.use(
10+
cors({
11+
origin: 'https://example.com',
12+
maxAge: 300,
13+
})
14+
);
15+
16+
app.get('/todos/:todoId', async ({ todoId }) => {
17+
const todo = await getTodoById(todoId);
18+
return { todo };
19+
});
20+
21+
app.get('/health', [cors({ origin: '*' })], async () => {
22+
return { status: 'ok' };
23+
});
24+
25+
export const handler = async (event: unknown, context: Context) =>
26+
app.resolve(event, context);
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
declare function getTodoById<T>(todoId: unknown): Promise<{ id: string } & T>;
2+
3+
import { Router } from '@aws-lambda-powertools/event-handler/experimental-rest';
4+
import { cors } from '@aws-lambda-powertools/event-handler/experimental-rest/middleware';
5+
import type { Context } from 'aws-lambda';
6+
7+
const app = new Router();
8+
9+
app.use(
10+
cors({
11+
origin: 'https://example.com',
12+
maxAge: 300,
13+
})
14+
);
15+
16+
app.get('/todos/:todoId', async ({ todoId }) => {
17+
const todo = await getTodoById(todoId);
18+
return { todo };
19+
});
20+
21+
export const handler = async (event: unknown, context: Context) =>
22+
app.resolve(event, context);

examples/snippets/event-handler/rest/advanced_fine_grained_responses.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ app.get('/todos', async () => {
2323
});
2424
});
2525

26-
app.post('/todos', async (params, reqCtx) => {
26+
app.post('/todos', async (_, reqCtx) => {
2727
const body = await reqCtx.request.json();
2828
const todo = await createTodo(body.title);
2929

@@ -36,6 +36,5 @@ app.post('/todos', async (params, reqCtx) => {
3636
});
3737
});
3838

39-
export const handler = async (event: unknown, context: Context) => {
40-
return app.resolve(event, context);
41-
};
39+
export const handler = async (event: unknown, context: Context) =>
40+
app.resolve(event, context);

examples/snippets/event-handler/rest/advanced_mw_compose_middleware.ts

Lines changed: 0 additions & 57 deletions
This file was deleted.

0 commit comments

Comments
 (0)