forked from mirrors/Scribe.js
70 lines
1.6 KiB
JavaScript
70 lines
1.6 KiB
JavaScript
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
|
|
var _map = require("babel-runtime/core-js/map");
|
|
|
|
var _map2 = _interopRequireDefault(_map);
|
|
|
|
var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck");
|
|
|
|
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
|
|
|
|
var _createClass2 = require("babel-runtime/helpers/createClass");
|
|
|
|
var _createClass3 = _interopRequireDefault(_createClass2);
|
|
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
|
|
var multiValueMap = function () {
|
|
function multiValueMap() {
|
|
(0, _classCallCheck3.default)(this, multiValueMap);
|
|
|
|
this._map = new _map2.default();
|
|
}
|
|
|
|
(0, _createClass3.default)(multiValueMap, [{
|
|
key: "get",
|
|
value: function get(key) {
|
|
if (!this._map.has(key)) {
|
|
this._map.set(key, []);
|
|
}
|
|
|
|
return this._map.get(key);
|
|
}
|
|
}, {
|
|
key: "has",
|
|
value: function has(key) {
|
|
return Array.isArray(this._map.get(key));
|
|
}
|
|
}, {
|
|
key: "set",
|
|
value: function set(key) {
|
|
var data = this.get(key);
|
|
|
|
for (var _len = arguments.length, values = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
values[_key - 1] = arguments[_key];
|
|
}
|
|
|
|
this._map.set(key, data.concat.apply(data, values));
|
|
|
|
return this;
|
|
}
|
|
}, {
|
|
key: "remove",
|
|
value: function remove(key) {
|
|
this._map.set(key, []);
|
|
}
|
|
}, {
|
|
key: "move",
|
|
value: function move(old, key) {
|
|
this._map.set(key, this._map.get(old));
|
|
this._map.remove(old);
|
|
}
|
|
}]);
|
|
return multiValueMap;
|
|
}();
|
|
|
|
exports.default = multiValueMap;
|