[Bug?]: Codemod incorrectly generates duplicate WriteRequest imports for DynamoDB (v2 → v3 transform)
- Dominant language
- TypeScript
- Stars
- 89
- Forks
- 13
- Avg merge
- 9h 59m
- Merged PRs (30d)
- 1
Description
### Self-service
- [ ] I'd be willing to implement a fix
### Describe the bug
When migrating from aws-sdk v2 to v3 using the codemod (npx aws-sdk-js-codemod -t v2-to-v3 src), the tool fails to distinguish between AWS.DynamoDB.WriteRequest and AWS.DynamoDB.DocumentClient.WriteRequest.
As a result, it produces duplicate v3 imports for WriteRequest from both:
```js
import WriteRequest = AWS_lib_dynamodb.WriteRequest;
import WriteRequest = AWS_client_dynamodb.WriteRequest
```
which causes a Duplicate identifier 'WriteRequest' error.
**1. Start with v2 code using both:**
```js
AWS.DynamoDB.WriteRequest
AWS.DynamoDB.DocumentClient.WriteRequest
```
**2. Run:**
```console
npx aws-sdk-js-codemod -t v2-to-v3 src
```
**3. Output contains conflicting imports:**
```js
import WriteRequest = AWS_lib_dynamodb.WriteRequest;
import WriteRequest = AWS_client_dynamodb.WriteRequest;
```
### Observed behavior
Duplicate identifier 'WriteRequest'.
### Expected behavior
**Codemod should differentiate between:**
```
DocumentClient.WriteRequest → @aws-sdk/lib-dynamodb equivalents
DynamoDB.WriteRequest → @aws-sdk/client-dynamodb models
```
**OR**
Automatically rename one of them
### Environment
```shell
aws-sdk-js-codemod: 3.0.2
- jscodeshift: 17.3.0
- recast: 0.23.11
```
### Additional context
_No response_
Contributor guide
Research direction
Start by running `npx aws-sdk-js-codemod -t v2-to-v3 src` on v2 input containing both `AWS.DynamoDB.WriteRequest` and `AWS.DynamoDB.DocumentClient.WriteRequest`. Trace the v2-to-v3 transform and its generated imports, then verify that the two types resolve to their intended packages without a duplicate identifier, or are renamed consistently.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, javascript, node.js, typescript
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100