public/javascripts/app/lib/utils/safe-apply.js (12 lines of code) (raw):

//SAFE APPLY //CHECKS THE CURRECT CYCLE AND RUNS THE FUNCTION ACCORDINGLY export default ($scope, fn) => { if (!$scope || !fn) { return; } const phase = $scope.$root.$$phase; if (phase === '$apply' || phase === '$digest' ) { fn(); } else { $scope.$apply(fn); } }