Skip to content

Feature request: isolate exports for middleware in core utilities #1759

Closed
@dreamorosi

Description

@dreamorosi

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 meets
    Should 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.

Activity

added
feature-requestThis item refers to a feature request for an existing or new utility
confirmedThe scope is clear, ready for implementation
on Oct 20, 2023
added this to the Version 2.0 milestone on Oct 20, 2023
self-assigned this
on Oct 20, 2023
changed the title [-]Feature request: TITLE[/-] [+]Feature request: isolate exports for middleware in core utilities[/+] on Oct 20, 2023
added
pending-releaseThis item has been merged and will be released soon
and removed
confirmedThe scope is clear, ready for implementation
on Oct 20, 2023
github-actions

github-actions commented on Oct 20, 2023

@github-actions
Contributor

⚠️ COMMENT VISIBILITY WARNING ⚠️

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.

added
completedThis item is complete and has been merged/shipped
and removed
pending-releaseThis item has been merged and will be released soon
on Nov 1, 2023
added
pending-releaseThis item has been merged and will be released soon
completedThis item is complete and has been merged/shipped
and removed
completedThis item is complete and has been merged/shipped
pending-releaseThis item has been merged and will be released soon
on Nov 2, 2023
dreamorosi

dreamorosi commented on Nov 2, 2023

@dreamorosi
ContributorAuthor

This is available in preview starting from the 2.0.0-alpha.1 release. You can install this version using the next tag, i.e. npm i @aws-lambda-powertools/logger@next.

moved this from Coming soon to Shipped in Powertools for AWS Lambda (TypeScript)on Nov 2, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

completedThis item is complete and has been merged/shippedfeature-requestThis item refers to a feature request for an existing or new utility

Type

No type

Projects

Status

Shipped

Relationships

None yet

    Development

    Participants

    @dreamorosi

    Issue actions

      Feature request: isolate exports for middleware in core utilities · Issue #1759 · aws-powertools/powertools-lambda-typescript