aws-sdk-v2-to-v3
JSSG codemod (transform.ts) for a partial AWS SDK for JavaScript v2 → v3 upgrade: modular client imports, service construction rewriting, .promise() removal, and TODOs for command pattern migration, global config, and middleware.
Scope (automated)
import AWS from "aws-sdk"/const AWS = require("aws-sdk")→ modular@aws-sdk/client-*importsnew AWS.S3(...)→new S3Client(...)from@aws-sdk/client-s3new AWS.DynamoDB(...)→new DynamoDBClient(...)from@aws-sdk/client-dynamodbnew AWS.SQS(...)→new SQSClient(...)from@aws-sdk/client-sqsnew AWS.SNS(...)→new SNSClient(...)from@aws-sdk/client-snsnew AWS.Lambda(...)→new LambdaClient(...)from@aws-sdk/client-lambda.promise()calls removed (v3 operations return promises natively)- Method calls like
s3.putObject(params)flagged with TODO to convert toclient.send(new PutObjectCommand(params)) AWS.config.update(...)flagged with TODO for per-client configurationAWS.config.maxRetries/AWS.config.httpOptions/ etc. flagged with TODO for middleware stack
Not covered (manual / follow-up)
- Full command pattern rewriting (e.g.
s3.putObject(params)→client.send(new PutObjectCommand(params))) - Paginators, waiters, S3 presigned URLs, DynamoDB document client
- Stream handling changes, event-based APIs
AWS.Request/AWS.Responsetypes- Services beyond S3, DynamoDB, SQS, SNS, Lambda
Run locally
bash
Publish to Codemod registry
From this directory (with tests passing):
bash
Package name in codemod.yaml is aws-sdk-v2-to-v3; version is semver in codemod.yaml and package.json (currently 0.0.1).
License
MIT