diff --git a/.changeset/blue-foxes-return.md b/.changeset/blue-foxes-return.md new file mode 100644 index 000000000..2eac1ba1e --- /dev/null +++ b/.changeset/blue-foxes-return.md @@ -0,0 +1,5 @@ +--- +"aws-sdk-js-codemod": patch +--- + +Disable DocumentClient deep import unsupported comments diff --git a/src/transforms/v2-to-v3/__fixtures__/ddb-doc-client/service-import-deep-named.input.js b/src/transforms/v2-to-v3/__fixtures__/ddb-doc-client/service-import-deep-named.input.js deleted file mode 100644 index 017033050..000000000 --- a/src/transforms/v2-to-v3/__fixtures__/ddb-doc-client/service-import-deep-named.input.js +++ /dev/null @@ -1,4 +0,0 @@ -import { DocumentClient } from "aws-sdk/clients/dynamodb"; - -const documentClient = new DocumentClient({ region: "us-west-2" }); -const response = await documentClient.scan({ TableName: "TABLE_NAME" }).promise(); \ No newline at end of file diff --git a/src/transforms/v2-to-v3/__fixtures__/ddb-doc-client/service-import-deep-named.output.js b/src/transforms/v2-to-v3/__fixtures__/ddb-doc-client/service-import-deep-named.output.js deleted file mode 100644 index e74dbc32a..000000000 --- a/src/transforms/v2-to-v3/__fixtures__/ddb-doc-client/service-import-deep-named.output.js +++ /dev/null @@ -1,6 +0,0 @@ -// Transformation of DocumentClient named import from deep path is unsupported in aws-sdk-js-codemod. -// Please convert to a default import, and re-run aws-sdk-js-codemod. -import { DocumentClient } from "aws-sdk/clients/dynamodb"; - -const documentClient = new DocumentClient({ region: "us-west-2" }); -const response = await documentClient.scan({ TableName: "TABLE_NAME" }).promise(); \ No newline at end of file diff --git a/src/transforms/v2-to-v3/__fixtures__/ddb-doc-client/service-require-deep-named.input.js b/src/transforms/v2-to-v3/__fixtures__/ddb-doc-client/service-require-deep-named.input.js deleted file mode 100644 index 85f647cb6..000000000 --- a/src/transforms/v2-to-v3/__fixtures__/ddb-doc-client/service-require-deep-named.input.js +++ /dev/null @@ -1,4 +0,0 @@ -const { DocumentClient } = require("aws-sdk/clients/dynamodb"); - -const documentClient = new DocumentClient({ region: "us-west-2" }); -const response = await documentClient.scan({ TableName: "TABLE_NAME" }).promise(); \ No newline at end of file diff --git a/src/transforms/v2-to-v3/__fixtures__/ddb-doc-client/service-require-deep-named.output.js b/src/transforms/v2-to-v3/__fixtures__/ddb-doc-client/service-require-deep-named.output.js deleted file mode 100644 index 4a0d6510a..000000000 --- a/src/transforms/v2-to-v3/__fixtures__/ddb-doc-client/service-require-deep-named.output.js +++ /dev/null @@ -1,6 +0,0 @@ -// Transformation of DocumentClient named import from deep path is unsupported in aws-sdk-js-codemod. -// Please convert to a default import, and re-run aws-sdk-js-codemod. -const { DocumentClient } = require("aws-sdk/clients/dynamodb"); - -const documentClient = new DocumentClient({ region: "us-west-2" }); -const response = await documentClient.scan({ TableName: "TABLE_NAME" }).promise(); \ No newline at end of file diff --git a/src/transforms/v2-to-v3/apis/addNotSupportedComments.ts b/src/transforms/v2-to-v3/apis/addNotSupportedComments.ts deleted file mode 100644 index 56bd812dd..000000000 --- a/src/transforms/v2-to-v3/apis/addNotSupportedComments.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { Collection, JSCodeshift } from "jscodeshift"; -import { getClientNamesFromDeepImport } from "../client-names"; -import { DYNAMODB } from "../config"; -import { ImportType } from "../modules"; -import { getNodesWithDocClientNamedImportFromDeepPath } from "./getNodesWithDocClientNamedImportFromDeepPath"; - -export const addNotSupportedComments = ( - j: JSCodeshift, - source: Collection, - importType: ImportType -) => { - const clientNamesFromDeepImport = getClientNamesFromDeepImport(source.toSource()); - - if (clientNamesFromDeepImport.includes(DYNAMODB)) { - const documentClientDeepNamedImportUnsupportedComments = [ - j.commentLine( - " Transformation of DocumentClient named import from deep path is unsupported in aws-sdk-js-codemod." - ), - j.commentLine(" Please convert to a default import, and re-run aws-sdk-js-codemod."), - ]; - - getNodesWithDocClientNamedImportFromDeepPath(j, source, importType).forEach((node) => { - const comments = node.value.comments || []; - node.value.comments = [...comments, ...documentClientDeepNamedImportUnsupportedComments]; - }); - } -}; diff --git a/src/transforms/v2-to-v3/apis/getNodesWithDocClientNamedImportFromDeepPath.ts b/src/transforms/v2-to-v3/apis/getNodesWithDocClientNamedImportFromDeepPath.ts deleted file mode 100644 index 29ed94eaf..000000000 --- a/src/transforms/v2-to-v3/apis/getNodesWithDocClientNamedImportFromDeepPath.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { - Collection, - JSCodeshift, - ObjectProperty, - Property, - VariableDeclaration, -} from "jscodeshift"; -import { DOCUMENT_CLIENT, DYNAMODB, OBJECT_PROPERTY_TYPE_LIST } from "../config"; -import { ImportType } from "../modules"; -import { getImportDeclarations } from "../modules/importModule"; -import { getRequireDeclarators } from "../modules/requireModule"; -import { getClientDeepImportPath } from "../utils"; - -export const getNodesWithDocClientNamedImportFromDeepPath = ( - j: JSCodeshift, - source: Collection, - importType: ImportType -) => { - const deepImportPath = getClientDeepImportPath(DYNAMODB); - - if (importType === ImportType.REQUIRE) { - return getRequireDeclarators(j, source, deepImportPath) - .filter( - (variableDeclarator) => - variableDeclarator.value.id.type === "ObjectPattern" && - (variableDeclarator.value.id.properties || []).some((property) => { - if (!OBJECT_PROPERTY_TYPE_LIST.includes(property.type)) { - return false; - } - const propertyKey = (property as Property | ObjectProperty).key; - return propertyKey.type === "Identifier" && propertyKey.name === DOCUMENT_CLIENT; - }) - ) - .map( - (variableDeclarator) => variableDeclarator.parentPath.parentPath - ) as Collection; - } - - return getImportDeclarations(j, source, deepImportPath).filter((importDeclaration) => - (importDeclaration.value.specifiers || []).some( - (importSpecifier) => - importSpecifier.type === "ImportSpecifier" && - importSpecifier.imported.name === DOCUMENT_CLIENT - ) - ); -}; diff --git a/src/transforms/v2-to-v3/apis/index.ts b/src/transforms/v2-to-v3/apis/index.ts index 416cbdc80..8dc7e504a 100644 --- a/src/transforms/v2-to-v3/apis/index.ts +++ b/src/transforms/v2-to-v3/apis/index.ts @@ -1,6 +1,5 @@ export * from "./addEmptyObjectForUndefined"; export * from "./addNotSupportedClientComments"; -export * from "./addNotSupportedComments"; export * from "./getClientIdentifiersRecord"; export * from "./getClientWaiterStates"; export * from "./getCommandName"; diff --git a/src/transforms/v2-to-v3/transformer.ts b/src/transforms/v2-to-v3/transformer.ts index 83f5717ba..055536847 100644 --- a/src/transforms/v2-to-v3/transformer.ts +++ b/src/transforms/v2-to-v3/transformer.ts @@ -1,7 +1,6 @@ import { API, FileInfo } from "jscodeshift"; import { - addNotSupportedComments, addNotSupportedClientComments, removePromiseCalls, replaceWaiterApi, @@ -49,8 +48,6 @@ const transformer = async (file: FileInfo, api: API) => { return file.source; } - addNotSupportedComments(j, source, importType); - const v2GlobalName = getGlobalNameFromModule(j, source); const v2ClientNamesRecord = getClientNamesRecord(j, source, importType);