@harmoniclabs/plu-ts-onchain
Version:
An embedded DSL for Cardano smart contracts creation coupled with a library for Cardano transactions, all in Typescript
21 lines (20 loc) • 1.06 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports._pnil = void 0;
var _1 = require("./index.js");
var IRConst_1 = require("../../../../../IR/IRNodes/IRConst.js");
var Term_1 = require("../../../../Term/index.js");
var type_system_1 = require("../../../../type_system/index.js");
var data_1 = require("../../../builtins/data/index.js");
var minimal_1 = require("../../../punsafeConvertType/minimal.js");
function _pnil(elemsT) {
(0, _1.assertValidListType)(elemsT);
if ((0, type_system_1.typeExtends)(elemsT, (0, type_system_1.pair)(type_system_1.data, type_system_1.data))) {
return (0, minimal_1._punsafeConvertType)(data_1.pnilPairData, (0, type_system_1.list)(elemsT));
}
if ((0, type_system_1.typeExtends)(elemsT, type_system_1.data)) {
return (0, minimal_1._punsafeConvertType)(data_1.pnilData, (0, type_system_1.list)(elemsT));
}
return new Term_1.Term((0, type_system_1.list)(elemsT), function (_dbn) { return IRConst_1.IRConst.listOf(elemsT)([]); }, true);
}
exports._pnil = _pnil;