UNPKG

@harmoniclabs/plu-ts-onchain

Version:

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

27 lines (26 loc) 1.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PMaybe = void 0; var pfn_1 = require("../../pfn.js"); var pstruct_1 = require("../../../PTypes/PStruct/pstruct.js"); var fromData_minimal_1 = require("../data/conversion/fromData_minimal.js"); var pmatch_1 = require("../../pmatch/pmatch.js"); function PMaybe(tyArg) { return (0, pstruct_1.pstruct)({ Just: { val: tyArg }, Nothing: {} }, function (self_t) { return { unwrap: (0, pfn_1.pfn)([self_t], tyArg)(function (self) { return (0, fromData_minimal_1._fromData)(tyArg)(self.raw.fields.head); }), default: (0, pfn_1.pfn)([self_t, tyArg], tyArg)(function (self, defaultValue) { return (0, pmatch_1.pmatch)(self) .onJust(function (_a) { var val = _a.val; return val; }) .onNothing(function (_) { return defaultValue; }); }) }; }); } exports.PMaybe = PMaybe;