UNPKG

@gnus.ai/upgrade-safe-transpiler-diamond

Version:

Solidity preprocessor used to generate OpenZeppelin Contracts Upgrade Safe using Diamond Pattern (EIP-2535).

49 lines 2.06 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getContractsImportPath = exports.renameRelativePath = exports.renamePath = exports.renameContract = exports.isRenamed = void 0; const path_1 = __importDefault(require("path")); const suffix = 'Upgradeable'; const initName = 'Initializable'; function isRenamed(name) { return path_1.default.basename(name, '.sol').endsWith(suffix); } exports.isRenamed = isRenamed; function renameContract(name, _suffix = suffix) { if ((name === initName) || name.endsWith(_suffix)) { return name; } else { return name + _suffix; } } exports.renameContract = renameContract; function renamePath(filePath, _suffix = suffix) { const { dir, name, ext } = path_1.default.parse(filePath); return path_1.default.format({ dir, ext, name: renameContract(name, _suffix) }); } exports.renamePath = renamePath; function renameRelativePath(filePath, _suffix = suffix, basePath) { let { dir, name, ext } = path_1.default.parse(filePath); if (dir[0] !== '.') { dir = path_1.default.relative(basePath, dir); if (dir === '') { dir = '.'; } } return path_1.default.format({ dir, ext, name: renameContract(name, _suffix) }); } exports.renameRelativePath = renameRelativePath; function getContractsImportPath(contractPaths, basePath, suffix = 'Upgradeable') { let importsText = ''; contractPaths.forEach((contractNames, filePath) => { const renamedContractNames = [...contractNames].map(c => renameContract(c, suffix)); const cNames = ((renamedContractNames.length > 0) ? `{ ${renamedContractNames.join(', ')} } from ` : ''); importsText += `\nimport ${cNames}"${renameRelativePath(filePath, suffix, basePath)}";`; }); return importsText; } exports.getContractsImportPath = getContractsImportPath; //# sourceMappingURL=rename.js.map