UNPKG

@solvprotocol/upgrade-safe-transpiler

Version:

Solidity preprocessor used to generate OpenZeppelin Contracts Upgrade Safe.

36 lines 1.57 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.appendInitializableImport = void 0; const utils_1 = require("solidity-ast/utils"); const path_1 = __importDefault(require("path")); const relative_path_1 = require("../utils/relative-path"); const ast_utils_1 = require("../solc/ast-utils"); function appendInitializableImport(initializablePath) { return function* (sourceUnit) { const contracts = [...(0, utils_1.findAll)('ContractDefinition', sourceUnit)]; if (!contracts.some(c => c.contractKind === 'contract')) { return; } let last; for (const node of (0, utils_1.findAll)('PragmaDirective', sourceUnit)) { last = node; } for (const node of (0, utils_1.findAll)('ImportDirective', sourceUnit)) { last = node; } const relativeImportPath = (0, relative_path_1.relativePath)(path_1.default.dirname(sourceUnit.absolutePath), initializablePath); const after = last ? (0, ast_utils_1.getNodeBounds)(last) : { start: 0, length: 0 }; const start = after.start + after.length; yield { start, length: 0, kind: 'append-initializable-import', text: `\nimport "${relativeImportPath}";`, }; }; } exports.appendInitializableImport = appendInitializableImport; //# sourceMappingURL=append-initializable-import.js.map