27 lines
691 B
JavaScript
27 lines
691 B
JavaScript
import * as defineMap from "../../helpers/define-map";
|
|
import * as t from "../../../types";
|
|
|
|
export var ObjectExpression = {
|
|
exit(node, parent, scope, file) {
|
|
var mutatorMap = {};
|
|
var hasAny = false;
|
|
|
|
node.properties = node.properties.filter(function (prop) {
|
|
if (prop.kind === "get" || prop.kind === "set") {
|
|
hasAny = true;
|
|
defineMap.push(mutatorMap, prop, prop.kind, file);
|
|
return false;
|
|
} else {
|
|
return true;
|
|
}
|
|
});
|
|
|
|
if (!hasAny) return;
|
|
|
|
return t.callExpression(
|
|
t.memberExpression(t.identifier("Object"), t.identifier("defineProperties")),
|
|
[node, defineMap.toDefineObject(mutatorMap)]
|
|
);
|
|
}
|
|
};
|