Open miyamonz opened 1 year ago
Later I found this https://github.com/tywalch/electrodb/blob/master/buildbrowser.sh you already did something about this issue.
I don't know how you deploy this as the npm library, but did something go wrong when building or deploying time?
Anyway, In the node_modules/electrodb
of my project, the line exists here.
I'll explore ways to bring this in conditionally. That said, you mentioned you have issues with both installed? Can you explain your issue there a bit more?
I have only started exploring ElectroDB and encountered the same issue.
Resolved it by only installing the v3 SDK and passed a new instance of DynamoDBClient as a replacement for DocumentClient without issue.
"dependencies": { "@aws-sdk/client-dynamodb": "^3.245.0", "electrodb": "^2.3.5" }
const { DynamoDBClient } = require('@aws-sdk/client-dynamodb'); const client = new DynamoDBClient({ region: "us-east-1" });
... }, { client, table });
While preparing to reproduce the environment, I found what causes this.
When using npm, there is no problem, but when yarn, it happens.
If you install electrodb
by npm, @aws-sdk/client-dynamodb
is included by its dependency.
$ npm ls @aws-sdk/client-dynamodb
electrodb-practice@1.0.0 /Users/miyamonz/ghq/github.com/miyamonz/electrodb-practice
└─┬ electrodb@2.3.5
└─┬ @aws-sdk/lib-dynamodb@3.238.0
└── @aws-sdk/client-dynamodb@3.238.0
When yarn, yarn add electrodb
, then yarn list @aws-sdk/client-dynamodb
, nothing exists.
That's why Error: Cannot find module '@aws-sdk/client-dynamodb'
happens.
You can easily reproduce this by this:
new Entity
I don't know well about these differences related to dependencies. I'll check this later and add a comment if I find it.
I think it's better to make this library use the AWS SDK that library users have installed themselves. If you think so, I would like you to consider using peerDependency.
If you want to ignore that method for now and run yarn as well, you might want to add @aws-sdk/client-dynamodb in the dependencies. It's an explicit dependency in this library.
Hey @tywalch looks like this is still a problem. The problem is just about the same with pnpm.
@miyamonz, @srodriki, and/or @miyamonz, I just pushed up 2.14.2
, can you confirm whether or not this fixes the errors you are experiencing?
@tywalch boom! Works like a charm both with npm and pnpm.
I believe this one can be closed!
Describe the bug
use electrodb in a project uses dynamodb v2 sdk, it shows the error.
ElectroDB Version 2.3.3
Entity/Service Definitions
It seems it's not related to this issue, but just in case.
Expected behavior
it should work with v2 client without installing v3 client.
BTW, installing v3 though I don't use it in my project that uses v2, then the error disappeared, of course, but importing v2 and v3 causes a type error, so It would be helpful if you could address this issue.
Additional context
https://github.com/tywalch/electrodb/blob/95187d34a228fac5c3935fd0e60ac745ecee4ecd/src/client.js#L1
I think this line is the problem. it imports v3 client. it should be imported dynamically.