"use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
value: true
|
});
|
exports.default = toKeyAlias;
|
|
var _generated = require("../validators/generated");
|
|
var _cloneNode = require("../clone/cloneNode");
|
|
var _removePropertiesDeep = require("../modifications/removePropertiesDeep");
|
|
function toKeyAlias(node, key = node.key) {
|
let alias;
|
|
if (node.kind === "method") {
|
return toKeyAlias.increment() + "";
|
} else if ((0, _generated.isIdentifier)(key)) {
|
alias = key.name;
|
} else if ((0, _generated.isStringLiteral)(key)) {
|
alias = JSON.stringify(key.value);
|
} else {
|
alias = JSON.stringify((0, _removePropertiesDeep.default)((0, _cloneNode.default)(key)));
|
}
|
|
if (node.computed) {
|
alias = `[${alias}]`;
|
}
|
|
if (node.static) {
|
alias = `static:${alias}`;
|
}
|
|
return alias;
|
}
|
|
toKeyAlias.uid = 0;
|
|
toKeyAlias.increment = function () {
|
if (toKeyAlias.uid >= Number.MAX_SAFE_INTEGER) {
|
return toKeyAlias.uid = 0;
|
} else {
|
return toKeyAlias.uid++;
|
}
|
};
|