UNPKG

1.31 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.default = void 0;
7var _helperPluginUtils = require("@babel/helper-plugin-utils");
8var _defineMap = require("./define-map.js");
9var _core = require("@babel/core");
10var _default = exports.default = (0, _helperPluginUtils.declare)(api => {
11 api.assertVersion(7);
12 return {
13 name: "transform-property-mutators",
14 visitor: {
15 ObjectExpression(path) {
16 const {
17 node
18 } = path;
19 let mutatorMap;
20 const newProperties = node.properties.filter(function (prop) {
21 if (_core.types.isObjectMethod(prop) && !prop.computed && (prop.kind === "get" || prop.kind === "set")) {
22 var _mutatorMap;
23 (0, _defineMap.pushAccessor)((_mutatorMap = mutatorMap) != null ? _mutatorMap : mutatorMap = {}, prop);
24 return false;
25 }
26 return true;
27 });
28 if (mutatorMap === undefined) {
29 return;
30 }
31 node.properties = newProperties;
32 path.replaceWith(_core.types.callExpression(_core.types.memberExpression(_core.types.identifier("Object"), _core.types.identifier("defineProperties")), [node, (0, _defineMap.toDefineObject)(mutatorMap)]));
33 }
34 }
35 };
36});
37
38//# sourceMappingURL=index.js.map