UNPKG

motion

Version:

motion - moving development forward

46 lines (32 loc) 1.51 kB
exports.__esModule = true; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var _libHelpers = require('../lib/helpers'); var _state = require('../state'); var _state2 = _interopRequireDefault(_state); var _libWrapState = require('../lib/wrapState'); exports['default'] = { exit: function exit(node, parent, scope, file) { // track require() statements if (node.callee && node.callee.name && node.callee.name == 'require') { var arg = node.arguments && node.arguments.length && node.arguments[0].value; _libHelpers.options.onImports && _libHelpers.options.onImports(arg); } // mutative array methods if (_libHelpers.isInView(scope)) { if (_libHelpers.isMutativeArrayFunc(node)) { var callee = node.callee; // avoid doing stuff on Object.keys(x).sort() if (_libHelpers.t.isCallExpression(callee.object)) return; var _name = callee.object ? _libHelpers.findObjectName(callee.object) : callee.property.name; if (_libHelpers.isViewState(_name, scope)) return _libWrapState.wrapSetter(_name, node, scope, _libHelpers.t.identifier(_name)); } if (_libHelpers.isObjectAssign(node)) { // if mutating an object in the view var _name2 = node.arguments[0].name; if (_libHelpers.isViewState(_name2, scope)) return _libWrapState.wrapSetter(_name2, node, scope); } } // return stateTrack(node) } }; module.exports = exports['default'];