@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
JavaScript
;
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;