20 lines
686 B
JavaScript
20 lines
686 B
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.UniqueIdGenerator = void 0;
|
|
class UniqueIdGenerator {
|
|
constructor() {
|
|
this.uniqueIdSeq = 1;
|
|
this.usedUniqueIds = new Set();
|
|
}
|
|
generate(base, ...texts) {
|
|
const hasId = (id) => this.usedUniqueIds.has(id) || texts.some((t) => t.includes(id));
|
|
let candidate = `$_${base.replace(/\W/g, "_")}${this.uniqueIdSeq++}`;
|
|
while (hasId(candidate)) {
|
|
candidate = `$_${base.replace(/\W/g, "_")}${this.uniqueIdSeq++}`;
|
|
}
|
|
this.usedUniqueIds.add(candidate);
|
|
return candidate;
|
|
}
|
|
}
|
|
exports.UniqueIdGenerator = UniqueIdGenerator;
|