"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++; } };