diff --git a/client/core/src/lib/get-watchers.js b/client/core/src/lib/get-watchers.js new file mode 100644 index 0000000000..f84506eb1a --- /dev/null +++ b/client/core/src/lib/get-watchers.js @@ -0,0 +1,22 @@ +function getWatchers(root) { + root = angular.element(root || document.documentElement); + + function getElemWatchers(element) { + let isolateWatchers = getWatchersFromScope(element.data().$isolateScope); + let scopeWatchers = getWatchersFromScope(element.data().$scope); + let watchers = scopeWatchers.concat(isolateWatchers); + angular.forEach(element.children(), childElement => { + watchers = watchers.concat(getElemWatchers(angular.element(childElement))); + }); + return watchers; + } + + function getWatchersFromScope(scope) { + if (scope) + return scope.$$watchers || []; + return []; + } + + return getElemWatchers(root).length; +} +export default getWatchers;