@aeternity/aepp-calldata
Version:
Aeternity data serialization library
57 lines (56 loc) • 1.32 kB
JavaScript
"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 arrayToItem = item => {
const [key, value] = item;
return {
key,
value
};
};
class FateMap extends _FateData.default {
constructor(keyType, valueType, items = []) {
super('map');
this._keyType = keyType;
this._valueType = valueType;
this._type = (0, _FateTypes.FateTypeMap)(keyType, valueType);
this._value = new Map(items);
}
get items() {
return [...this._value.entries()].map(arrayToItem);
}
get keyType() {
return this._keyType;
}
get valueType() {
return this._valueType;
}
get type() {
return this._type;
}
get length() {
return this._value.size;
}
get iterator() {
return this._value[Symbol.iterator]();
}
get keys() {
return this._value.keys();
}
valueOf() {
const map = new Map();
for (const [key, value] of this.iterator) {
map.set(key.valueOf(), value.valueOf());
}
return map;
}
accept(visitor) {
return visitor.visitMap(this);
}
}
var _default = exports.default = FateMap;