File size: 686 Bytes
bc20498
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
"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;