wonder.js
Version:
91 lines (83 loc) • 3.65 kB
JavaScript
'use strict';
var Log$WonderLog = require("wonder-log/lib/js/src/Log.js");
var Contract$WonderLog = require("wonder-log/lib/js/src/Contract.js");
var ArrayService$Wonderjs = require("./ArrayService.js");
var ArrayService$WonderCommonlib = require("wonder-commonlib/lib/js/src/ArrayService.js");
var DisposeComponentService$Wonderjs = require("../primitive/component/DisposeComponentService.js");
var MutableSparseMapService$Wonderjs = require("./MutableSparseMapService.js");
var MutableSparseMapService$WonderCommonlib = require("wonder-commonlib/lib/js/src/MutableSparseMapService.js");
function addValue(key, value, arrayMap) {
var match = MutableSparseMapService$Wonderjs.fastGet(key, arrayMap);
if (match[0]) {
ArrayService$Wonderjs.push(value, match[1]);
return arrayMap;
} else {
return MutableSparseMapService$WonderCommonlib.set(key, /* array */[value], arrayMap);
}
}
function addValueWithoutDuplicate(key, value, arrayMap) {
var match = MutableSparseMapService$Wonderjs.fastGet(key, arrayMap);
var valueArr = match[1];
if (match[0]) {
var match$1 = valueArr.includes(value);
if (match$1) {
return arrayMap;
} else {
ArrayService$Wonderjs.push(value, valueArr);
return arrayMap;
}
} else {
return MutableSparseMapService$WonderCommonlib.set(key, /* array */[value], arrayMap);
}
}
function removeValue(key, value, arrayMap) {
var match = MutableSparseMapService$Wonderjs.fastGet(key, arrayMap);
if (match[0]) {
DisposeComponentService$Wonderjs.removeFromArray(value, match[1]);
return arrayMap;
} else {
return arrayMap;
}
}
function batchRemoveValueArr(key, valueArr, arrayMap) {
var match = MutableSparseMapService$Wonderjs.fastGet(key, arrayMap);
if (match[0]) {
return MutableSparseMapService$WonderCommonlib.set(key, ArrayService$Wonderjs.batchRemove(valueArr, match[1]), arrayMap);
} else {
return arrayMap;
}
}
function checkDuplicate(expectedMessage, key, value, arrayMap) {
return Contract$WonderLog.test(Log$WonderLog.buildAssertMessage(expectedMessage, "not"), (function (param) {
var match = MutableSparseMapService$WonderCommonlib.get(key, arrayMap);
if (match !== undefined) {
var match$1 = ArrayService$WonderCommonlib.reduceOneParam((function (param, value) {
var map = param[0];
var match = MutableSparseMapService$WonderCommonlib.get(value, map);
if (match !== undefined) {
return /* tuple */[
map,
true
];
} else {
return /* tuple */[
MutableSparseMapService$WonderCommonlib.set(value, true, map),
param[1]
];
}
}), /* tuple */[
MutableSparseMapService$WonderCommonlib.createEmpty(/* () */0),
false
], match);
return Contract$WonderLog.assertFalse(match$1[1]);
} else {
return Contract$WonderLog.assertPass(/* () */0);
}
}));
}
exports.addValue = addValue;
exports.addValueWithoutDuplicate = addValueWithoutDuplicate;
exports.removeValue = removeValue;
exports.batchRemoveValueArr = batchRemoveValueArr;
exports.checkDuplicate = checkDuplicate;
/* Log-WonderLog Not a pure module */