48 lines
1.1 KiB
JavaScript
48 lines
1.1 KiB
JavaScript
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.default = toKeyAlias;
|
|
|
|
var _generated = require("../validators/generated");
|
|
|
|
var _cloneNode = _interopRequireDefault(require("../clone/cloneNode"));
|
|
|
|
var _removePropertiesDeep = _interopRequireDefault(require("../modifications/removePropertiesDeep"));
|
|
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
|
|
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++;
|
|
}
|
|
}; |