UNPKG

@harmoniclabs/plu-ts-onchain

Version:

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

26 lines (25 loc) 1.19 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.cloneTermType = void 0; var cloneStructDef_1 = require("../PTypes/PStruct/cloneStructDef.js"); var types_1 = require("./types.js"); function cloneTermType(t) { if (t[0] === types_1.PrimType.Struct) return (0, types_1.struct)((0, cloneStructDef_1.cloneStructDef)(t[1]), t[2]); if (t[0] === types_1.PrimType.Sop) return (0, types_1.sop)((0, cloneStructDef_1.cloneStructDef)(t[1]), t[2]); if (t[0] === types_1.PrimType.Lambda) return (0, types_1.lam)(cloneTermType(t[1]), cloneTermType(t[2])); if (t[0] === types_1.PrimType.Pair) return (0, types_1.pair)(cloneTermType(t[1]), cloneTermType(t[2])); if (t[0] === types_1.PrimType.List) return (0, types_1.list)(cloneTermType(t[1])); if (t[0] === types_1.PrimType.Delayed) return (0, types_1.delayed)(cloneTermType(t[1])); if (t[0] === types_1.PrimType.AsData) return (0, types_1.asData)(cloneTermType(t[1])); if (t[0] === types_1.PrimType.Alias) return (0, types_1.alias)(cloneTermType(t[1]), t[2]); return [t[0]]; } exports.cloneTermType = cloneTermType;