feat(idempotency): add package exports #1483
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description of your changes
This PR sets the exports for the upcoming Idempotency module so that customers can import its modules easily while using the utility.
The exports the following structure:
This structure allows to:
makeFunctionIdempotent
,idempotencyConfig
, etc.) at the top level/persistence
DynamoDBPersistenceLayer
, which in the future will allow customers to tree-shake and avoid a dependency on@aws-sdk/lib-dynamodb
if they decide to use a different persistence layerIn upcoming PRs, we'll also add an export for types (i.e.
@aws-lambda-powertools/idempotency/types
) and one for the Middy middleware (@aws-lambda-powertools/idempotency/middleware
).Implementation Details
These exports were possible thanks to the addition of a few new fields in the
package.json
of the utility, which allow us to specify the exports and control the paths in a way similar to aliases:The benefits of this structure are several:
import
vsrequire
)@aws-lambda-powertools/idempotency/dynamodb
vs@aws-lambda-powertools/idempotency/lib/persistence/DynamoDBPersistenceLayer
)This structure/pattern was heavily influenced by the work done by @shdq (thanks!) here and will be rolled out to all other modules in due process.
Related issues, RFCs
Issue number: #1479
Checklist
Breaking change checklist
Is it a breaking change?: NO
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
Disclaimer: We value your time and bandwidth. As such, any pull requests created on non-triaged issues might not be successful.