aws-sdk-js-codemod
Version:
Collection of codemod scripts that help update AWS SDK for JavaScript APIs
42 lines (41 loc) • 1.48 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getRequireDeclarators = void 0;
const config_1 = require("../../config");
const isValidRequireCallExpression = (callExpression, path) => {
if (callExpression.arguments.length !== 1) {
return false;
}
const callExpressionArg = callExpression.arguments[0];
if (callExpressionArg.type !== "Literal" && callExpressionArg.type !== "StringLiteral") {
return false;
}
const sourceValue = callExpressionArg.value;
if (typeof sourceValue !== "string") {
return false;
}
if (path) {
return sourceValue === path;
}
return sourceValue.startsWith(config_1.PACKAGE_NAME);
};
const getRequireDeclarators = (j, source, path) => source.find(j.VariableDeclarator).filter((varDeclarator) => {
const declaratorInit = varDeclarator.value.init;
if (!declaratorInit) {
return false;
}
switch (declaratorInit.type) {
case "CallExpression":
return isValidRequireCallExpression(declaratorInit, path);
case "MemberExpression": {
const declaratorInitObject = declaratorInit.object;
if (declaratorInitObject.type !== "CallExpression") {
return false;
}
return isValidRequireCallExpression(declaratorInitObject, path);
}
default:
return false;
}
});
exports.getRequireDeclarators = getRequireDeclarators;