/* */ "format cjs"; "use strict"; exports.__esModule = true; exports.push = push; exports.hasComputed = hasComputed; exports.toComputedObjectFromClass = toComputedObjectFromClass; exports.toClassObject = toClassObject; exports.toDefineObject = toDefineObject; // istanbul ignore next function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj["default"] = obj; return newObj; } } // istanbul ignore next function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var _lodashCollectionEach = require("lodash/collection/each"); var _lodashCollectionEach2 = _interopRequireDefault(_lodashCollectionEach); var _lodashObjectHas = require("lodash/object/has"); var _lodashObjectHas2 = _interopRequireDefault(_lodashObjectHas); var _types = require("../../types"); var t = _interopRequireWildcard(_types); /** * [Please add a description.] */ function push(mutatorMap, node, kind, file) { var alias = t.toKeyAlias(node); // var map = {}; if (_lodashObjectHas2["default"](mutatorMap, alias)) map = mutatorMap[alias]; mutatorMap[alias] = map; // map._inherits = map._inherits || []; map._inherits.push(node); map._key = node.key; if (node.computed) { map._computed = true; } if (node.decorators) { var decorators = map.decorators = map.decorators || t.arrayExpression([]); decorators.elements = decorators.elements.concat(node.decorators.map(function (dec) { return dec.expression; }).reverse()); } if (map.value || map.initializer) { throw file.errorWithNode(node, "Key conflict with sibling node"); } if (node.value) { if (node.kind === "init") kind = "value"; if (node.kind === "get") kind = "get"; if (node.kind === "set") kind = "set"; t.inheritsComments(node.value, node); map[kind] = node.value; } return map; } /** * [Please add a description.] */ function hasComputed(mutatorMap) { for (var key in mutatorMap) { if (mutatorMap[key]._computed) { return true; } } return false; } /** * [Please add a description.] */ function toComputedObjectFromClass(obj) { var objExpr = t.arrayExpression([]); for (var i = 0; i < obj.properties.length; i++) { var prop = obj.properties[i]; var val = prop.value; val.properties.unshift(t.property("init", t.identifier("key"), t.toComputedKey(prop))); objExpr.elements.push(val); } return objExpr; } /** * [Please add a description.] */ function toClassObject(mutatorMap) { var objExpr = t.objectExpression([]); _lodashCollectionEach2["default"](mutatorMap, function (map) { var mapNode = t.objectExpression([]); var propNode = t.property("init", map._key, mapNode, map._computed); _lodashCollectionEach2["default"](map, function (node, key) { if (key[0] === "_") return; var inheritNode = node; if (t.isMethodDefinition(node) || t.isClassProperty(node)) node = node.value; var prop = t.property("init", t.identifier(key), node); t.inheritsComments(prop, inheritNode); t.removeComments(inheritNode); mapNode.properties.push(prop); }); objExpr.properties.push(propNode); }); return objExpr; } /** * [Please add a description.] */ function toDefineObject(mutatorMap) { _lodashCollectionEach2["default"](mutatorMap, function (map) { if (map.value) map.writable = t.literal(true); map.configurable = t.literal(true); map.enumerable = t.literal(true); }); return toClassObject(mutatorMap); }