first commit
This commit is contained in:
60
app_vue/node_modules/@babel/plugin-transform-duplicate-keys/lib/index.js
generated
vendored
Normal file
60
app_vue/node_modules/@babel/plugin-transform-duplicate-keys/lib/index.js
generated
vendored
Normal file
@ -0,0 +1,60 @@
|
||||
"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 = exports.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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
});
|
||||
|
||||
//# sourceMappingURL=index.js.map
|
Reference in New Issue
Block a user