@mobily/ts-belt
Version:
🔧 Fast, modern, and practical utility library for FP in TypeScript.
462 lines (456 loc) • 10.1 kB
JavaScript
// node_modules/rescript/lib/es6/caml_option.js
function some(x) {
if (x === void 0) {
return {
BS_PRIVATE_NESTED_SOME_NONE: 0
};
} else if (x !== null && x.BS_PRIVATE_NESTED_SOME_NONE !== void 0) {
return {
BS_PRIVATE_NESTED_SOME_NONE: x.BS_PRIVATE_NESTED_SOME_NONE + 1 | 0
};
} else {
return x;
}
}
// node_modules/rescript/lib/es6/js_dict.js
function get(dict, k) {
if (k in dict) {
return some(dict[k]);
}
}
var unsafeDeleteKey = function(dict, key) {
delete dict[key];
};
function values(dict) {
var keys2 = Object.keys(dict);
var l = keys2.length;
var values$1 = new Array(l);
for (var i = 0; i < l; ++i) {
values$1[i] = dict[keys2[i]];
}
return values$1;
}
function fromArray(entries) {
var dict = {};
var l = entries.length;
for (var i = 0; i < l; ++i) {
var match = entries[i];
dict[match[0]] = match[1];
}
return dict;
}
// node_modules/rescript/lib/es6/caml_obj.js
var for_in = function(o, foo) {
for (var x in o) {
foo(x);
}
};
function caml_equal(a, b) {
if (a === b) {
return true;
}
var a_type = typeof a;
if (a_type === "string" || a_type === "number" || a_type === "boolean" || a_type === "undefined" || a === null) {
return false;
}
var b_type = typeof b;
if (a_type === "function" || b_type === "function") {
throw {
RE_EXN_ID: "Invalid_argument",
_1: "equal: functional value",
Error: new Error()
};
}
if (b_type === "number" || b_type === "undefined" || b === null) {
return false;
}
var tag_a = a.TAG | 0;
var tag_b = b.TAG | 0;
if (tag_a === 248) {
return a[1] === b[1];
}
if (tag_a === 251) {
throw {
RE_EXN_ID: "Invalid_argument",
_1: "equal: abstract value",
Error: new Error()
};
}
if (tag_a !== tag_b) {
return false;
}
var len_a = a.length | 0;
var len_b = b.length | 0;
if (len_a === len_b) {
if (Array.isArray(a)) {
var _i = 0;
while (true) {
var i = _i;
if (i === len_a) {
return true;
}
if (!caml_equal(a[i], b[i])) {
return false;
}
_i = i + 1 | 0;
continue;
}
;
} else if (a instanceof Date && b instanceof Date) {
return !(a > b || a < b);
} else {
var result = {
contents: true
};
var do_key_a = function(key) {
if (!Object.prototype.hasOwnProperty.call(b, key)) {
result.contents = false;
return;
}
};
var do_key_b = function(key) {
if (!Object.prototype.hasOwnProperty.call(a, key) || !caml_equal(b[key], a[key])) {
result.contents = false;
return;
}
};
for_in(a, do_key_a);
if (result.contents) {
for_in(b, do_key_b);
}
return result.contents;
}
} else {
return false;
}
}
// node_modules/rescript/lib/es6/belt_Array.js
function concat(a1, a2) {
var l1 = a1.length;
var l2 = a2.length;
var a1a2 = new Array(l1 + l2 | 0);
for (var i = 0; i < l1; ++i) {
a1a2[i] = a1[i];
}
for (var i$1 = 0; i$1 < l2; ++i$1) {
a1a2[l1 + i$1 | 0] = a2[i$1];
}
return a1a2;
}
function forEachU(a, f) {
for (var i = 0, i_finish = a.length; i < i_finish; ++i) {
f(a[i]);
}
}
function mapU(a, f) {
var l = a.length;
var r = new Array(l);
for (var i = 0; i < l; ++i) {
r[i] = f(a[i]);
}
return r;
}
function reduceU(a, x, f) {
var r = x;
for (var i = 0, i_finish = a.length; i < i_finish; ++i) {
r = f(r, a[i]);
}
return r;
}
// src/Array/Array.bs.js
function _append(xs, element) {
return concat(xs, [element]);
}
function append() {
if (arguments.length === 1) {
const args = arguments;
return function fn(data) {
return _append(data, args[0]);
};
}
return _append(arguments[0], arguments[1]);
}
// src/Dict/Dict.bs.js
function placeholder(param) {
}
function makeEmpty(prim) {
return {};
}
function _getUnsafe(dict, key) {
return dict[key];
}
function getUnsafe() {
if (arguments.length === 1) {
const args = arguments;
return function fn(data) {
return _getUnsafe(data, args[0]);
};
}
return _getUnsafe(arguments[0], arguments[1]);
}
var _get = get;
function get3() {
if (arguments.length === 1) {
const args = arguments;
return function fn(data) {
return _get(data, args[0]);
};
}
return _get(arguments[0], arguments[1]);
}
function _prop(dict, key) {
return dict[key];
}
function prop() {
if (arguments.length === 1) {
const args = arguments;
return function fn(data) {
return _prop(data, args[0]);
};
}
return _prop(arguments[0], arguments[1]);
}
function toPairs(dict) {
return Object.entries(dict);
}
var values2 = values;
function keys(dict) {
return Object.keys(dict);
}
var fromPairs = fromArray;
function _merge(fst, snd) {
return Object.assign({}, fst, snd);
}
function merge() {
if (arguments.length === 1) {
const args = arguments;
return function fn(data) {
return _merge(data, args[0]);
};
}
return _merge(arguments[0], arguments[1]);
}
function _set(dict, key, value) {
var obj = merge({}, dict);
obj[key] = value;
return obj;
}
function set() {
if (arguments.length === 2) {
const args = arguments;
return function fn(data) {
return _set(data, args[0], args[1]);
};
}
return _set(arguments[0], arguments[1], arguments[2]);
}
function _update(dict, key, fn) {
var optionalValue = get(dict, key);
return set(dict, key, fn(optionalValue));
}
function update() {
if (arguments.length === 2) {
const args = arguments;
return function fn(data) {
return _update(data, args[0], args[1]);
};
}
return _update(arguments[0], arguments[1], arguments[2]);
}
function _updateUnsafe(dict, key, fn) {
var value = dict[key];
return set(dict, key, fn(value));
}
function updateUnsafe() {
if (arguments.length === 2) {
const args = arguments;
return function fn(data) {
return _updateUnsafe(data, args[0], args[1]);
};
}
return _updateUnsafe(arguments[0], arguments[1], arguments[2]);
}
function _deleteKey(dict, key) {
var obj = merge({}, dict);
unsafeDeleteKey(obj, key);
return obj;
}
function deleteKey() {
if (arguments.length === 1) {
const args = arguments;
return function fn(data) {
return _deleteKey(data, args[0]);
};
}
return _deleteKey(arguments[0], arguments[1]);
}
function _deleteKeys(dict, keys2) {
var obj = merge({}, dict);
forEachU(keys2, function(key) {
return unsafeDeleteKey(obj, key);
});
return obj;
}
function deleteKeys() {
if (arguments.length === 1) {
const args = arguments;
return function fn(data) {
return _deleteKeys(data, args[0]);
};
}
return _deleteKeys(arguments[0], arguments[1]);
}
function _map(dict, mapFn) {
return fromArray(mapU(Object.keys(dict), function(key) {
var value = mapFn(dict[key]);
return [
key,
value
];
}));
}
function map() {
if (arguments.length === 1) {
const args = arguments;
return function fn(data) {
return _map(data, args[0]);
};
}
return _map(arguments[0], arguments[1]);
}
function _mapWithKey(dict, mapFn) {
return fromArray(mapU(Object.keys(dict), function(key) {
var value = mapFn(key, dict[key]);
return [
key,
value
];
}));
}
function mapWithKey() {
if (arguments.length === 1) {
const args = arguments;
return function fn(data) {
return _mapWithKey(data, args[0]);
};
}
return _mapWithKey(arguments[0], arguments[1]);
}
function _filter(dict, predicateFn) {
return fromArray(reduceU(Object.keys(dict), [], function(acc, key) {
var value = dict[key];
if (predicateFn(value)) {
return append(acc, [
key,
value
]);
} else {
return acc;
}
}));
}
function filter() {
if (arguments.length === 1) {
const args = arguments;
return function fn(data) {
return _filter(data, args[0]);
};
}
return _filter(arguments[0], arguments[1]);
}
function _filterWithKey(dict, predicateFn) {
return fromArray(reduceU(Object.keys(dict), [], function(acc, key) {
var value = dict[key];
if (predicateFn(key, value)) {
return append(acc, [
key,
value
]);
} else {
return acc;
}
}));
}
function filterWithKey() {
if (arguments.length === 1) {
const args = arguments;
return function fn(data) {
return _filterWithKey(data, args[0]);
};
}
return _filterWithKey(arguments[0], arguments[1]);
}
function _reject(dict, predicateFn) {
return filter(dict, function(value) {
return !predicateFn(value);
});
}
function reject() {
if (arguments.length === 1) {
const args = arguments;
return function fn(data) {
return _reject(data, args[0]);
};
}
return _reject(arguments[0], arguments[1]);
}
function _rejectWithKey(dict, predicateFn) {
return filterWithKey(dict, function(key, value) {
return !predicateFn(key, value);
});
}
function rejectWithKey() {
if (arguments.length === 1) {
const args = arguments;
return function fn(data) {
return _rejectWithKey(data, args[0]);
};
}
return _rejectWithKey(arguments[0], arguments[1]);
}
function _selectKeys(dict, keys2) {
return filterWithKey(dict, function(key, param) {
return keys2.includes(key);
});
}
function selectKeys() {
if (arguments.length === 1) {
const args = arguments;
return function fn(data) {
return _selectKeys(data, args[0]);
};
}
return _selectKeys(arguments[0], arguments[1]);
}
function isEmpty(dict) {
return caml_equal(dict, {});
}
function isNotEmpty(dict) {
return !caml_equal(dict, {});
}
export {
deleteKey,
deleteKeys,
filter,
filterWithKey,
fromPairs,
get3 as get,
getUnsafe,
isEmpty,
isNotEmpty,
keys,
makeEmpty,
map,
mapWithKey,
merge,
placeholder,
prop,
reject,
rejectWithKey,
selectKeys,
set,
toPairs,
update,
updateUnsafe,
values2 as values
};