Find AWS SDK v2 uses that need manual migration
ProprietaryMarks what keeps a file from moving to the AWS SDK for JavaScript v3 mechanically, and records each in the AwsSdkManualMigrationSteps data table with what to do instead: global AWS.config, AWS.Request and its events (on, send, createReadStream, eachPage), AWS.EventListeners, credential and token classes, AWS.Config, AWSError used as a value, an AWS error's fields with no v3 counterpart (region, time, ...) or read other than as err.field, or read where a function of the file that calls a client failed, a response's $response, an S3 getObject Body read as a Buffer, waiters, S3 upload, getSignedUrl and createPresignedPost in forms without a v3 counterpart, client options with no v3 name, .promise() on a value not known to be a client, and the SDK loaded or mocked other than by a top-level import or require (jest.mock('aws-sdk'), import()). A .promise() whose receiver comes from another package (mysql2's createPool(...).promise()) is not a v2 call. In a project that declares aws-sdk, it also marks .promise() in files that don't import the SDK, since the client may come from a file the migration moves to v3, and marks a file that exports a client such a call may reach, which the migration leaves on v2. Each lock group such a file keeps on v2, which the migration leaves wholly unchanged, is listed in the AwsSdkSkippedLockGroups data table with the files that keep it there, and so is a group whose oldest declared Node.js no v3 release supports. Each group that migrates is listed in AwsSdkLockGroupNodeVersions with its Node.js and the v3 range it gets, flagged where it declares no Node.js.
org. openrewrite. node. migrate. aws-sdk-v3. find-aws-sdk-v2-manual-migrationsOptional
The version range the migration declares for each added @aws-sdk/* package. A lock group whose oldest declared Node.js can't run the newest release it admits is left on v2.
mod run . --recipe= org. openrewrite. node. migrate. aws-sdk-v3. find-aws-sdk-v2-manual-migrationsInstall it once, then run it on every repository under the current directory. New to the Moderne CLI? Set it up.