| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 | "use strict";Object.defineProperty(exports, "__esModule", {  value: true});exports.default = void 0;var _helperPluginUtils = require("@babel/helper-plugin-utils");var _core = require("@babel/core");function getName(key) {  if (_core.types.isIdentifier(key)) {    return key.name;  }  return key.value.toString();}var _default = (0, _helperPluginUtils.declare)(api => {  api.assertVersion(7);  return {    name: "transform-duplicate-keys",    visitor: {      ObjectExpression(path) {        const {          node        } = path;        const plainProps = node.properties.filter(prop => !_core.types.isSpreadElement(prop) && !prop.computed);        const alreadySeenData = Object.create(null);        const alreadySeenGetters = Object.create(null);        const alreadySeenSetters = Object.create(null);        for (const prop of plainProps) {          const name = getName(prop.key);          let isDuplicate = false;          switch (prop.kind) {            case "get":              if (alreadySeenData[name] || alreadySeenGetters[name]) {                isDuplicate = true;              }              alreadySeenGetters[name] = true;              break;            case "set":              if (alreadySeenData[name] || alreadySeenSetters[name]) {                isDuplicate = true;              }              alreadySeenSetters[name] = true;              break;            default:              if (alreadySeenData[name] || alreadySeenGetters[name] || alreadySeenSetters[name]) {                isDuplicate = true;              }              alreadySeenData[name] = true;          }          if (isDuplicate) {            prop.computed = true;            prop.key = _core.types.stringLiteral(name);          }        }      }    }  };});exports.default = _default;
 |