printer-notifications/node_modules/svelte-eslint-parser/lib/context/unique.js

20 lines
686 B
JavaScript
Raw Normal View History

2023-11-13 21:10:04 +00:00
"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;