UNPKG

@solvprotocol/upgrade-safe-transpiler

Version:

Solidity preprocessor used to generate OpenZeppelin Contracts Upgrade Safe.

42 lines 1.73 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.fixImportDirectives = void 0; const utils_1 = require("solidity-ast/utils"); const ast_utils_1 = require("../solc/ast-utils"); const rename_1 = require("../rename"); function* fixImportDirectives(ast, { resolver }) { for (const imp of (0, utils_1.findAll)('ImportDirective', ast)) { const referencedSourceUnit = resolver.resolveNode('SourceUnit', imp.sourceUnit); const aliases = imp.symbolAliases.map(a => { var _a; const id = (_a = referencedSourceUnit.exportedSymbols[a.foreign.name]) === null || _a === void 0 ? void 0 : _a[0]; if (id === undefined) { throw new Error(`Can't find symbol imported in ${ast.absolutePath}`); } let alias = ''; const contract = resolver.resolveContract(id); if (contract === undefined) { alias += a.foreign.name; } else { alias += (0, rename_1.renameContract)(a.foreign.name); } if (a.local != null && a.local !== a.foreign.name) { alias += ` as ${a.local}`; } return alias; }); const statement = ['import']; if (aliases.length > 0) { statement.push(`{ ${aliases.join(', ')} } from`); } statement.push(`"${(0, rename_1.renamePath)(imp.file)}";`); yield { kind: 'fix-import-directives', text: statement.join(' '), ...(0, ast_utils_1.getNodeBounds)(imp), }; } } exports.fixImportDirectives = fixImportDirectives; //# sourceMappingURL=fix-import-directives.js.map