From 71888e55f8d359c084fbdb4a0a8453bba4c6f8ae Mon Sep 17 00:00:00 2001 From: "Kamat, Trivikram" <16024985+trivikr@users.noreply.github.com> Date: Thu, 11 Apr 2024 09:43:18 -0700 Subject: [PATCH 1/3] chore: remove utility addNotSupportedComments --- .../v2-to-v3/apis/addNotSupportedComments.ts | 27 ----------- ...desWithDocClientNamedImportFromDeepPath.ts | 46 ------------------- src/transforms/v2-to-v3/apis/index.ts | 1 - src/transforms/v2-to-v3/transformer.ts | 3 -- 4 files changed, 77 deletions(-) delete mode 100644 src/transforms/v2-to-v3/apis/addNotSupportedComments.ts delete mode 100644 src/transforms/v2-to-v3/apis/getNodesWithDocClientNamedImportFromDeepPath.ts 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); From d9499f65509142e50234b79dfb837a74dc3dc971 Mon Sep 17 00:00:00 2001 From: "Kamat, Trivikram" <16024985+trivikr@users.noreply.github.com> Date: Thu, 11 Apr 2024 10:21:14 -0700 Subject: [PATCH 2/3] test: remove ddb-doc-client/service-*-deep-named --- .../ddb-doc-client/service-import-deep-named.input.js | 4 ---- .../ddb-doc-client/service-import-deep-named.output.js | 6 ------ .../ddb-doc-client/service-require-deep-named.input.js | 4 ---- .../ddb-doc-client/service-require-deep-named.output.js | 6 ------ 4 files changed, 20 deletions(-) delete mode 100644 src/transforms/v2-to-v3/__fixtures__/ddb-doc-client/service-import-deep-named.input.js delete mode 100644 src/transforms/v2-to-v3/__fixtures__/ddb-doc-client/service-import-deep-named.output.js delete mode 100644 src/transforms/v2-to-v3/__fixtures__/ddb-doc-client/service-require-deep-named.input.js delete mode 100644 src/transforms/v2-to-v3/__fixtures__/ddb-doc-client/service-require-deep-named.output.js 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 From d6f12a6ebf0c897d3b64b6db0e0c3988df4e1a94 Mon Sep 17 00:00:00 2001 From: "Kamat, Trivikram" <16024985+trivikr@users.noreply.github.com> Date: Thu, 11 Apr 2024 10:28:20 -0700 Subject: [PATCH 3/3] chore: yarn changeset --- .changeset/blue-foxes-return.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/blue-foxes-return.md 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