UNPKG

motion

Version:

motion - moving development forward

50 lines (35 loc) 1.55 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _helpers = require('../lib/helpers'); var _state = require('../state'); var _state2 = _interopRequireDefault(_state); var _wrapState = require('../lib/wrapState'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports.default = { exit(node, parent, scope, file) { // track require() statements if (node.callee && node.callee.name && node.callee.name == 'require') { const arg = node.arguments && node.arguments.length && node.arguments[0].value; _helpers.options.onImports && _helpers.options.onImports(arg); } // mutative array methods if ((0, _helpers.isInView)(scope)) { if ((0, _helpers.isMutativeArrayFunc)(node)) { const callee = node.callee; // avoid doing stuff on Object.keys(x).sort() if (_helpers.t.isCallExpression(callee.object)) return; const name = callee.object ? (0, _helpers.findObjectName)(callee.object) : callee.property.name; if ((0, _helpers.isViewState)(name, scope)) return (0, _wrapState.wrapSetter)(name, node, scope, _helpers.t.identifier(name)); } if ((0, _helpers.isObjectAssign)(node)) { // if mutating an object in the view let name = node.arguments[0].name; if ((0, _helpers.isViewState)(name, scope)) return (0, _wrapState.wrapSetter)(name, node, scope); } } // return stateTrack(node) } }; //# sourceMappingURL=CallExpression.js.map