UNPKG

@harmoniclabs/plu-ts-onchain

Version:

An embedded DSL for Cardano smart contracts creation coupled with a library for Cardano transactions, all in Typescript

18 lines (17 loc) 880 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.replaceClosedLettedWithHoisted = void 0; var IRHoisted_1 = require("../../IRNodes/IRHoisted.js"); var IRLetted_1 = require("../../IRNodes/IRLetted.js"); var isClosedIRTerm_1 = require("../../utils/isClosedIRTerm.js"); var _modifyChildFromTo_1 = require("../_internal/_modifyChildFromTo.js"); var iterTree_1 = require("../_internal/iterTree.js"); function replaceClosedLettedWithHoisted(root) { (0, iterTree_1.iterTree)(root, function (node) { if (node instanceof IRLetted_1.IRLetted && (0, isClosedIRTerm_1.isClosedIRTerm)(node.value)) { (0, _modifyChildFromTo_1._modifyChildFromTo)(node.parent, node, new IRHoisted_1.IRHoisted(node.value, node.meta)); return true; } }); } exports.replaceClosedLettedWithHoisted = replaceClosedLettedWithHoisted;