UNPKG

@aeternity/aepp-calldata

Version:
50 lines (49 loc) 1.36 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _FateData = _interopRequireDefault(require("./FateData.cjs")); var _FateTypes = require("../FateTypes.cjs"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } const zipObject = (keys, values) => { const reducer = (acc, k, i) => { acc[k] = values[i]; return acc; }; return keys.reduce(reducer, {}); }; class FateTuple extends _FateData.default { constructor(valueTypes = [], items = []) { super('tuple'); this._valueTypes = valueTypes.hasOwnProperty('valueTypes') ? valueTypes.valueTypes : valueTypes; this._type = Array.isArray(valueTypes) ? (0, _FateTypes.FateTypeTuple)(valueTypes) : valueTypes; this._items = Array.from(items); } get valueTypes() { return this._valueTypes; } get type() { return this._type; } get size() { return this._items.length; } get items() { return this._items; } valueOf() { return this.prepareItems(e => e.valueOf()); } prepareItems(callback) { const items = this._items.map(callback); if (this._type.name === 'record') { return zipObject(this._type.keys, items); } return items; } accept(visitor) { return visitor.visitTuple(this); } } var _default = exports.default = FateTuple;