shiftcode / dynamo-easy

DynamoDB client for NodeJS and browser with a fluent api to build requests. We take care of the type mapping between JS and DynamoDB, customizable trough typescript decorators.
https://shiftcode.github.io/dynamo-easy/
MIT License
204 stars 27 forks source link

Support aws-sdk-js-v3 #286

Open michaelwittwer opened 4 years ago

michaelwittwer commented 4 years ago

The next generation of the aws-sdk for javascript is in current development. Spin off a branch to test dynamo-easy against the new sdk.

Check the https://github.com/aws/aws-sdk-js-v3#api-changes for things to change.

pascalbayer commented 2 years ago

Is there a plan when this feature request is going to be implemented?

michaelwittwer commented 2 years ago

@pascalbayer thanks for reaching out. We don't have a clear commitment when this is going to be implemented, generally speaking the staffing for this open source project is currently not clear. We are planning an internal session to clarify on that, let me come back to you. What is a timeline that would make sense for what you are planning todo? Would you be willing and have time to contribute in some way?

pascalbayer commented 2 years ago

@michaelwittwer my team and I is definitely willing to support on the migration and we have already discussed that we are planning to migrate all of our services to dynamo-easy due to the lack of support for the @aws/dynamodb-data-mapper. In a first step we would like to align on what the plans are for dynamo-easy and how we can best contribute to the replacement of the aws-sdk with v3.

benheymink commented 1 year ago

Note that AWS will now be bundling V3 of the AWS SDK with the node.js V18.x runtime (https://aws.amazon.com/blogs/compute/node-js-18-x-runtime-now-available-in-aws-lambda/) so would be great to see this happen!

benheymink commented 1 year ago

@michaelwittwer Is this still on the radar?

benheymink commented 1 year ago

@michaelwittwer Any updates on this or the future of the project?

benheymink commented 1 year ago

@pascalbayer We're also tempted to fork this project and attempt to add support for AWS V3, did you start any work on this? (I spotted this fork for example)

michaelwittwer commented 1 year ago

@benheymink @pascalbayer Thanks for your patience. I quickly wanted to align on a way forward, currently we can't contribute a lot of resources, but I definitely want to unblock this issue by supporting as good as possible. Here are the steps I will tackle as soon as possible (will ping you until end of week):

Let me know if you already started working on this.

benheymink commented 1 year ago

@michaelwittwer Thanks for the update. No, not started working on it yet, we were just about to start investigating how much effort would be required to move the library over. Will wait for your update towards the end of the week!

benheymink commented 1 year ago

@michaelwittwer Any updates on this? 🙏

michaelwittwer commented 1 year ago

@benheymink sitting on it. 🙇🏻 Trying to push something today.

michaelwittwer commented 1 year ago

@pascalbayer @benheymink Got a first version with aws-sdk v3, you can find it on the next branch. The released package including this, can be installed by typing npm i @shiftcoders/dynamo-easy@8.0.0-next.3. This is early stage. I tested it by using it in the demo repo and it worked for the use-cases we have there. You can find some topics that need more love here.

benheymink commented 1 year ago

@michaelwittwer Have upgraded to the next branch, and after some work our side (we're also moving stuff over to AWS-SDK V3) everything appears to be working OK - nice job!

benheymink commented 1 year ago

@michaelwittwer I may have spoken too soon, am seeing Attempted import error: 'KeyType' is not exported from '@aws-sdk/client-dynamodb' (imported as 'KeyType'). - when building our react application, wierdly! (which relies on one of our Dynamo wrapper utilities, which in turn utilises dynamo-easy)

I saw your comment in https://github.com/shiftcode/dynamo-easy/blob/next/src/aws-sdk-v2.types.ts: // FIXME somehow the import of KeyType from @aws-sdk/client-dynamodb does not work at runtime and imagine I am hitting the same....did you get any further on that particular issue?

michaelwittwer commented 1 year ago

@benheymink did you try with the latest release 8.0.0-next.3 which includes the changes made in the code you references (aws-sdk-v2.types.ts). This solved it for me.

benheymink commented 1 year ago

@michaelwittwer That was it, thanks. I was still on @shiftcoders/dynamo-easy@8.0.0-next.1 as per your comment above - might be worth updating?

pascalbayer commented 1 year ago

@michaelwittwer We've migrated most of our code to 8.0.0-next.3 without any issues so far. Is there a plan for an official release?

pascalbayer commented 11 months ago

@michaelwittwer Anything we can do to support a release in the near future?

michaelwittwer commented 10 months ago

@pascalbayer We are in the process of releasing our first project using the next version to production soon. What I would like to see before merging back is documented here. How did you implement the credential handling? Are you still using the sessionValidityEnsurer option from the config?

nduthoit commented 3 months ago

@michaelwittwer with AWS Lambda support for the Node.js 16 runtime being deprecated on June 12, 2024, are there plans for a dynamo-easy v8 release before then? Is there anything we could do to help?

We've been migrating our code to 8.0.0-next.3 as well without any major issue.

michaelwittwer commented 3 months ago

@nduthoit Thanks for reaching out. Yes I am definitely willing to release v8 before Juni. We also have pushed a small application running in production which uses the 8.0.0-next.3 version. You can check the v2-v3-migration file to check on outstanding tasks (probably not a complete list so feel free to contribute).

nduthoit commented 2 months ago

@michaelwittwer I created #422 that addresses one of the TODOs in the next branch.

brazilianbytes commented 3 weeks ago

Hi,

This is an exciting and too expected feature for me. Is there any date planned for the final version? May I help?