UNPKG

aws-sdk-js-codemod

Version:

Collection of codemod scripts that help update AWS SDK for JavaScript APIs

105 lines (104 loc) 3.95 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.removePromiseCalls = void 0; const removePromiseForCallExpression_1 = require("./removePromiseForCallExpression"); // Removes .promise() from client API calls. const removePromiseCalls = (j, source, { v2GlobalName, v2ClientName, v2ClientLocalName, clientIdentifiers }) => { // Remove .promise() for API calls from client creation from global name. if (v2GlobalName) { source .find(j.CallExpression, { callee: { type: "MemberExpression", object: { type: "CallExpression", callee: { type: "MemberExpression", object: { type: "NewExpression", callee: { type: "MemberExpression", object: { type: "Identifier", name: v2GlobalName }, property: { type: "Identifier", name: v2ClientName }, }, }, }, }, property: { type: "Identifier", name: "promise" }, }, }) .forEach((callExpression) => { (0, removePromiseForCallExpression_1.removePromiseForCallExpression)(j, callExpression); }); } // Remove .promise() for API calls client creation from local name. source .find(j.CallExpression, { callee: { type: "MemberExpression", object: { type: "CallExpression", callee: { type: "MemberExpression", object: { type: "NewExpression", callee: { type: "Identifier", name: v2ClientLocalName }, }, }, }, property: { type: "Identifier", name: "promise" }, }, }) .forEach((callExpression) => { (0, removePromiseForCallExpression_1.removePromiseForCallExpression)(j, callExpression); }); for (const clientId of clientIdentifiers) { // Remove .promise() from client API calls. source .find(j.CallExpression, { callee: { type: "MemberExpression", object: { type: "CallExpression", callee: { type: "MemberExpression", object: clientId, }, }, property: { type: "Identifier", name: "promise" }, }, }) .forEach((callExpression) => { (0, removePromiseForCallExpression_1.removePromiseForCallExpression)(j, callExpression); }); // Remove .promise() from client API request stored in a variable. source .find(j.VariableDeclarator, { id: { type: "Identifier" }, init: { type: "CallExpression", callee: { type: "MemberExpression", object: clientId, }, }, }) .forEach((variableDeclarator) => { source .find(j.CallExpression, { callee: { type: "MemberExpression", object: { type: "Identifier", name: variableDeclarator.value.id.name, }, property: { type: "Identifier", name: "promise" }, }, }) .forEach((callExpression) => { (0, removePromiseForCallExpression_1.removePromiseForCallExpression)(j, callExpression); }); }); } }; exports.removePromiseCalls = removePromiseCalls;