Description
Use case
Currently the three core utilities export the Middy middlewares as part of their barrel file (aka index.ts
). This means that whenever a customer imports the utility (i.e. import { Logger } from '@aws-lambda-powertools/logger';
) the corresponding Middy middleware gets imported and loaded regardless of whether it's going to be used or not.
Newer utilities like Idempotency already moved away from this pattern and instead export the middleware separately using the exports
field in the package.json
, i.e. import { makeHandlerIdempotent } from '@aws-lambda-powertools/idempotency/middleware';
.
With version 2 coming, it's now a good time to make this change also in the base utilities.
Solution/User Experience
Change the following:
import { logMetrics } from '@aws-lambda-powertools/metrics';
import { injectLambdaContext } from '@aws-lambda-powertools/logger';
import { captureLambdaHandler } from '@aws-lambda-powertools/tracer';
to
import { logMetrics } from '@aws-lambda-powertools/metrics/middleware';
import { injectLambdaContext } from '@aws-lambda-powertools/logger/middleware';
import { captureLambdaHandler } from '@aws-lambda-powertools/tracer/middleware';
Alternative solutions
No response
Acknowledgment
- This feature request meetsShould this be considered in other Powertools for AWS Lambda languages? i.e. , , and
Future readers
Please react with 👍 and your use case to help us understand customer demand.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Activity
[-]Feature request: TITLE[/-][+]Feature request: isolate exports for middleware in core utilities[/+]github-actions commentedon Oct 20, 2023
Comments on closed issues are hard for our team to see.
If you need more assistance, please either tag a team member or open a new issue that references this one.
If you wish to keep having a conversation with other community members under this issue feel free to do so.
dreamorosi commentedon Nov 2, 2023
This is available in preview starting from the
2.0.0-alpha.1
release. You can install this version using thenext
tag, i.e.npm i @aws-lambda-powertools/logger@next
.