@newos/upgradeability-transpiler
Version:
Transpiles Solidity contracts to updgradable versions compatible with NewOs.
29 lines • 1.35 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const ast_utils_1 = require("../solc/ast-utils");
function fixImportDirectives(artifact, artifacts, contracts) {
const imports = ast_utils_1.getImportDirectives(artifact.ast);
return imports
.map(imp => {
const [start, len] = ast_utils_1.getSourceIndices(imp);
const isTranspiled = artifacts.some(art => art.ast.id === imp.sourceUnit && contracts.includes(art));
const isLocal = imp.file.startsWith('.');
const prefix = !isLocal ? './' : '';
const fixedPath = `import "${prefix}${imp.file.replace('.sol', 'Upgradeable.sol')}";`;
const absoluteOriginalImport = `import "${imp.absolutePath}";`;
const finalImportDirective = !isTranspiled ? absoluteOriginalImport : fixedPath;
const finalTransformation = isTranspiled
? `${absoluteOriginalImport}\n${finalImportDirective}`
: absoluteOriginalImport;
return !isLocal && !isTranspiled
? null
: {
start: start,
end: start + len,
text: finalTransformation,
};
})
.filter((transformation) => transformation !== null);
}
exports.fixImportDirectives = fixImportDirectives;
//# sourceMappingURL=fix-import-directives.js.map