UNPKG

@aeternity/aepp-calldata

Version:
35 lines (33 loc) 1.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _FateTuple = _interopRequireDefault(require("../types/FateTuple.cjs")); var _FateTypeError = _interopRequireDefault(require("../Errors/FateTypeError.cjs")); var _BaseDataFactory = _interopRequireDefault(require("./BaseDataFactory.cjs")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } class TupleDataFactory extends _BaseDataFactory.default { supports({ name, _valueTypes }) { return 'tuple' === name; } create(type, value) { if (!Array.isArray(value)) { throw new _FateTypeError.default(type.name, `Fate tuple must be an Array, got ${value} instead`); } const resolvedValue = type.valueTypes.map((t, i) => { return this.valueFactory.create(t, value[i]); }); // Unbox singleton tuples and records // https://github.com/aeternity/aesophia/pull/205 // https://github.com/aeternity/aesophia/commit/a403a9d227ac56266cf5bb8fbc916f17e6141d15 if (resolvedValue.length === 1) { return resolvedValue[0]; } return new _FateTuple.default(type.valueTypes, resolvedValue); } } var _default = exports.default = TupleDataFactory;