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