summaryrefslogtreecommitdiff
path: root/node_modules/sucrase/dist/NameManager.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/sucrase/dist/NameManager.js')
-rw-r--r--node_modules/sucrase/dist/NameManager.js27
1 files changed, 27 insertions, 0 deletions
diff --git a/node_modules/sucrase/dist/NameManager.js b/node_modules/sucrase/dist/NameManager.js
new file mode 100644
index 0000000..0ebbe28
--- /dev/null
+++ b/node_modules/sucrase/dist/NameManager.js
@@ -0,0 +1,27 @@
+"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+var _getIdentifierNames = require('./util/getIdentifierNames'); var _getIdentifierNames2 = _interopRequireDefault(_getIdentifierNames);
+
+ class NameManager {
+ __init() {this.usedNames = new Set()}
+
+ constructor(code, tokens) {;NameManager.prototype.__init.call(this);
+ this.usedNames = new Set(_getIdentifierNames2.default.call(void 0, code, tokens));
+ }
+
+ claimFreeName(name) {
+ const newName = this.findFreeName(name);
+ this.usedNames.add(newName);
+ return newName;
+ }
+
+ findFreeName(name) {
+ if (!this.usedNames.has(name)) {
+ return name;
+ }
+ let suffixNum = 2;
+ while (this.usedNames.has(name + String(suffixNum))) {
+ suffixNum++;
+ }
+ return name + String(suffixNum);
+ }
+} exports.default = NameManager;