Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(util-dynamodb): add option to convert class instance to map #1969

Merged
merged 15 commits into from
Jan 28, 2021

Conversation

trivikr
Copy link
Member

@trivikr trivikr commented Jan 28, 2021

Issue

Refs: #1647
Closes: #1535
Closes: #1865
Closes: #1534
Closes: #1861
Closes: #1102
Closes: #1534

Description

adds option to convert class instance to map in @aws-sdk/util-dynamodb

convertToAttr(data, { convertClassInstanceToMap: true })

Testing

Unit tests for marshall and convertToAttr functions


By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@codecov-io
Copy link

codecov-io commented Jan 28, 2021

Codecov Report

Merging #1969 (31b5683) into master (f2a47e8) will increase coverage by 0.52%.
The diff coverage is n/a.

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #1969      +/-   ##
==========================================
+ Coverage   79.30%   79.83%   +0.52%     
==========================================
  Files         368      368              
  Lines       15132    15553     +421     
  Branches     3222     3369     +147     
==========================================
+ Hits        12001    12417     +416     
- Misses       3131     3136       +5     
Impacted Files Coverage Δ
packages/util-waiter/src/utils/validate.ts 81.81% <0.00%> (-18.19%) ⬇️
lib/storage/src/data-chunk/readable-helper.ts 86.84% <0.00%> (-5.47%) ⬇️
packages/s3-request-presigner/src/getSignedUrl.ts 92.85% <0.00%> (-2.98%) ⬇️
packages/util-dynamodb/src/convertToAttr.ts 98.70% <0.00%> (-1.30%) ⬇️
packages/util-waiter/src/poller.ts 100.00% <0.00%> (ø)
packages/util-waiter/src/waiter.ts 100.00% <0.00%> (ø)
protocol_tests/aws-ec2/endpoints.ts 81.48% <0.00%> (ø)
protocol_tests/aws-json/endpoints.ts 81.48% <0.00%> (ø)
protocol_tests/aws-query/endpoints.ts 81.48% <0.00%> (ø)
packages/util-dynamodb/src/marshall.ts 100.00% <0.00%> (ø)
... and 156 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 63ad215...31b5683. Read the comment docs.

@trivikr trivikr changed the title feat(util-dynamodb): add option to marshall typeof object feat(util-dynamodb): add option to convert typeof object Jan 28, 2021
@AllanZhengYP AllanZhengYP self-requested a review January 28, 2021 18:06
Reason: we already convert null, binary, array, sets, pure JavaScript objects
which also belong to Object.Prototype inheritance chain. This configuration
converts other objects, aka different constructor.
@trivikr trivikr force-pushed the util-dynamodb-marshallObjects branch from efb97fa to 87d236c Compare January 28, 2021 19:38
@trivikr trivikr changed the title feat(util-dynamodb): add option to convert typeof object feat(util-dynamodb): add option to convert class instance to map Jan 28, 2021
Copy link
Contributor

@AllanZhengYP AllanZhengYP left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚢🚢 wow this closes a lot of issues!

Reason: converting undefined, null and binary attributes is already
moved outside the function to support convertClassInstanceToMap configuration
Number(1) creates JavaScript primitive value, while new Number(1)
creates the Number class instance
@aws-sdk-js-automation
Copy link

AWS CodeBuild CI Report

  • CodeBuild project: sdk-staging-test
  • Commit ID: 5d42786
  • Result: SUCCEEDED
  • Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

@github-actions
Copy link

This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs and link to relevant comments in this thread.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Feb 12, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.