@tldraw/utils
Version:
A tiny little drawing app (private utilities).
95 lines (94 loc) • 2.94 kB
JavaScript
;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var object_exports = {};
__export(object_exports, {
areObjectsShallowEqual: () => areObjectsShallowEqual,
filterEntries: () => filterEntries,
getOwnProperty: () => getOwnProperty,
groupBy: () => groupBy,
hasOwnProperty: () => hasOwnProperty,
mapObjectMapValues: () => mapObjectMapValues,
objectMapEntries: () => objectMapEntries,
objectMapFromEntries: () => objectMapFromEntries,
objectMapKeys: () => objectMapKeys,
objectMapValues: () => objectMapValues
});
module.exports = __toCommonJS(object_exports);
function hasOwnProperty(obj, key) {
return Object.prototype.hasOwnProperty.call(obj, key);
}
function getOwnProperty(obj, key) {
if (!hasOwnProperty(obj, key)) {
return void 0;
}
return obj[key];
}
function objectMapKeys(object) {
return Object.keys(object);
}
function objectMapValues(object) {
return Object.values(object);
}
function objectMapEntries(object) {
return Object.entries(object);
}
function objectMapFromEntries(entries) {
return Object.fromEntries(entries);
}
function filterEntries(object, predicate) {
const result = {};
let didChange = false;
for (const [key, value] of objectMapEntries(object)) {
if (predicate(key, value)) {
result[key] = value;
} else {
didChange = true;
}
}
return didChange ? result : object;
}
function mapObjectMapValues(object, mapper) {
const result = {};
for (const [key, value] of objectMapEntries(object)) {
const newValue = mapper(key, value);
result[key] = newValue;
}
return result;
}
function areObjectsShallowEqual(obj1, obj2) {
if (obj1 === obj2) return true;
const keys1 = new Set(Object.keys(obj1));
const keys2 = new Set(Object.keys(obj2));
if (keys1.size !== keys2.size) return false;
for (const key of keys1) {
if (!keys2.has(key)) return false;
if (!Object.is(obj1[key], obj2[key])) return false;
}
return true;
}
function groupBy(array, keySelector) {
const result = {};
for (const value of array) {
const key = keySelector(value);
if (!result[key]) result[key] = [];
result[key].push(value);
}
return result;
}
//# sourceMappingURL=object.js.map