tiny-essentials
Version:
Collection of small, essential scripts designed to be used across various projects. These simple utilities are crafted for speed, ease of use, and versatility.
1 lines • 1.38 kB
JavaScript
(()=>{"use strict";const e={d:(r,t)=>{if(Array.isArray(t))for(var a=0;a<t.length;){var o=t[a++],s=t[a++];e.o(r,o)?0===s&&a++:0===s?Object.defineProperty(r,o,{enumerable:!0,value:t[a++]}):Object.defineProperty(r,o,{enumerable:!0,get:s})}else for(var o in t)e.o(t,o)&&!e.o(r,o)&&Object.defineProperty(r,o,{enumerable:!0,get:t[o]})},o:(e,r)=>Object.prototype.hasOwnProperty.call(e,r)};let r={};e.d(r,{TinyArrayComparator:()=>a});class t{static generateHash(e){const r="object"==typeof e?JSON.stringify(e):String(e);let t=0;for(let e=0,a=r.length;e<a;e++)t=(t<<5)-t+r.charCodeAt(e),t|=0;return t.toString(36)}#e=[];get oldArray(){return this.#e}set oldArray(e){if(!Array.isArray(e))throw new TypeError("The provided oldArray must be a valid Array.");this.#e=e}constructor(e){void 0!==e&&(this.oldArray=e)}_generateHash(e){return t.generateHash(e)}compare(e){if(!Array.isArray(e))throw new TypeError("The provided newArray must be a valid Array.");const r={oldItemsMap:new Map,affectedItems:[]};for(const e of this.#e){const t=this._generateHash(e);r.oldItemsMap.set(t,e)}for(const t of e){const e=this._generateHash(t);r.oldItemsMap.has(e)?r.oldItemsMap.delete(e):r.affectedItems.push({item:t,status:"added"})}for(const e of r.oldItemsMap.values())r.affectedItems.push({item:e,status:"deleted"});return r.affectedItems}}const a=t;window.TinyArrayComparator=r.TinyArrayComparator})();