UNPKG

@harmoniclabs/plu-ts-onchain

Version:

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

32 lines (31 loc) 1.61 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PListMaybe = void 0; var palias_1 = require("../../../PTypes/PAlias/palias.js"); var type_system_1 = require("../../../type_system/index.js"); var punsafeConvertType_1 = require("../../punsafeConvertType/index.js"); var pfn_1 = require("../../pfn.js"); var phoist_1 = require("../../phoist.js"); var perror_1 = require("../../perror.js"); var pforce_1 = require("../../pforce/index.js"); var pdelay_1 = require("../../pdelay.js"); var list_1 = require("../../builtins/list/index.js"); var bool_1 = require("../../builtins/bool/index.js"); function PListMaybe(tyArg) { return (0, palias_1.palias)((0, type_system_1.list)(tyArg), function (self_t) { return { isNothing: (0, punsafeConvertType_1.punsafeConvertType)(list_1.pisEmpty, (0, type_system_1.lam)(self_t, type_system_1.bool)), unwrapOrFail: (0, phoist_1.phoist)((0, pfn_1.pfn)([self_t], tyArg)(function (self) { return (0, bool_1.pif)(tyArg).$(list_1.pisEmpty.$(self)) .then((0, perror_1.perror)(tyArg)) .else(self.head); })), unwarpOrElse: (0, phoist_1.phoist)((0, pfn_1.pfn)([self_t, (0, type_system_1.delayed)(tyArg)], tyArg)(function (self, weDontLikeThat) { return (0, pforce_1.pforce)((0, bool_1.pstrictIf)((0, type_system_1.delayed)(tyArg)).$(list_1.pisEmpty.$(self)) .$(weDontLikeThat) .$((0, pdelay_1.pdelay)(self.head))); })) }; }); } exports.PListMaybe = PListMaybe;