@routineless/nx-aws-cdk
Version:
Nx plugin for AWS CDK
70 lines • 3.57 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.modificationFactory = exports.isEsmModifications = void 0;
const ast_types_1 = require("ast-types");
const modifications_util_1 = require("./modifications-util");
const isEsmModifications = (modifications) => {
return modifications.format === 'esm';
};
exports.isEsmModifications = isEsmModifications;
const localImportsExtensionModification = (file, path) => {
const result = { modified: false, traverseChildren: false };
if (path.node.source) {
const resolvedValue = (0, modifications_util_1.resolveRelativePath)(file, path.value.source.value);
if (path.node.source.value !== resolvedValue) {
path.node.source.value = resolvedValue;
result.modified = true;
}
}
return result;
};
const localRequireExtensionModification = (file, path) => {
const result = { modified: false, traverseChildren: false };
if ((0, modifications_util_1.isRequireExpression)(path.node) && ast_types_1.namedTypes.StringLiteral.check(path.node.arguments[0])) {
const resolvedValue = (0, modifications_util_1.resolveRelativePath)(file, path.node.arguments[0].value);
if (path.node.arguments[0].value !== resolvedValue) {
path.node.arguments[0].value = resolvedValue;
result.modified = true;
}
}
return result;
};
const createImportSpecifiersModification = (modification) => {
const { reexportedImports, reexportingModule } = modification;
return (_, path) => {
const result = { modified: false, traverseChildren: false };
const importedModule = path.node.source.value;
if (!importedModule || !reexportedImports.has(importedModule))
return result;
// const imports = reexportedImports.get(reexportingModule)
path.node.source.value = reexportingModule;
const initialSpecifiers = path.node.specifiers;
if (initialSpecifiers) {
path.node.specifiers = initialSpecifiers.map((specifier) => {
let result = specifier;
if (ast_types_1.namedTypes.ImportSpecifier.check(specifier)) {
const importedName = specifier.imported.name;
const resolvedName = (0, modifications_util_1.resolveReexportingName)(importedModule, { named: importedName });
result = ast_types_1.builders.importSpecifier(ast_types_1.builders.identifier(resolvedName), specifier.local);
}
if (ast_types_1.namedTypes.ImportDefaultSpecifier.check(specifier)) {
const resolvedName = (0, modifications_util_1.resolveReexportingName)(importedModule, { default: true });
result = ast_types_1.builders.importSpecifier(ast_types_1.builders.identifier(resolvedName), specifier.local);
}
if (ast_types_1.namedTypes.ImportNamespaceSpecifier.check(specifier)) {
const resolvedName = (0, modifications_util_1.resolveReexportingName)(importedModule, { namespace: true });
result = ast_types_1.builders.importSpecifier(ast_types_1.builders.identifier(resolvedName), specifier.local);
}
return result;
});
}
result.modified = true;
return result;
};
};
exports.modificationFactory = {
localImportsExtensionModification,
localRequireExtensionModification,
createImportSpecifiersModification,
};
//# sourceMappingURL=modifications.js.map