UNPKG

@aqua-ds/web-components

Version:
25 lines (23 loc) 880 B
class UniqueIdGenerator { constructor(prefix = 'id') { this.localCounter = 0; // Contador específico de la instancia this.prefix = prefix; // Permite personalizar el formato del ID } /** * Genera un ID único basado en un contador interno y global * @returns {string} Un ID único */ generateId() { // Incrementa el contador global y el local UniqueIdGenerator.globalCounter++; this.localCounter++; // Retorna el ID único con el prefijo return `${this.prefix}-${Date.now()}-${UniqueIdGenerator.globalCounter}-${this.localCounter}`; } assignIdToObject(obj, idKey) { const id = this.generateId(); return { ...obj, [idKey]: id }; } } UniqueIdGenerator.globalCounter = 0; // Contador global para asegurar unicidad entre instancias export { UniqueIdGenerator as U };