diff --git a/web/app/assets/javascripts/everywhere/everywhere.js b/web/app/assets/javascripts/everywhere/everywhere.js index 0505d9ae5..4abd6261e 100644 --- a/web/app/assets/javascripts/everywhere/everywhere.js +++ b/web/app/assets/javascripts/everywhere/everywhere.js @@ -2,6 +2,7 @@ // !!!! Keep white space after last require !!!! // //= require fakeJamClient +//= require jamClientProxy //= require fakeJamClientMessages //= require fakeJamClientRecordings //= require backend_alerts diff --git a/web/app/assets/javascripts/jamClientProxy.js b/web/app/assets/javascripts/jamClientProxy.js new file mode 100644 index 000000000..c3ea6cd5f --- /dev/null +++ b/web/app/assets/javascripts/jamClientProxy.js @@ -0,0 +1,28 @@ +(function (context, $) { + + "use strict"; + + context.JK = context.JK || {}; + context.JK.jamClientProxy = function (obj) { + const logger = context.JK.logger; + //logger.info("*** JamClient Proxy instance initialized. ***"); + + return new Proxy(obj, { + get(target, prop) { + if (typeof target[prop] === 'function') { + return new Proxy(target[prop], { + apply: (target, thisArg, argumentsList) => { + + logger.info('*** calling JK.jamClient.', prop, argumentsList); + + return Reflect.apply(target, thisArg, argumentsList); + } + }); + } else { + return Reflect.get(target, prop); + } + } + }); + + } +})(window, jQuery); \ No newline at end of file diff --git a/web/app/assets/javascripts/jk2021/jk2021.js b/web/app/assets/javascripts/jk2021/jk2021.js index 215372817..780911925 100644 --- a/web/app/assets/javascripts/jk2021/jk2021.js +++ b/web/app/assets/javascripts/jk2021/jk2021.js @@ -85,6 +85,7 @@ //= require ../web/affiliate_program //= require ../web/affiliate_links //= require fakeJamClient +//= require jamClientProxy //= require fakeJamClientMessages //= require fakeJamClientRecordings //= require JamServer diff --git a/web/app/assets/javascripts/modern/scripts.js b/web/app/assets/javascripts/modern/scripts.js index 392a0d30d..c7c1067ec 100644 --- a/web/app/assets/javascripts/modern/scripts.js +++ b/web/app/assets/javascripts/modern/scripts.js @@ -18,6 +18,7 @@ //= require modern/JamServer_copy //= require fakeJamClient +//= require jamClientProxy //= require fakeJamClientMessages //= require fakeJamClientRecordings diff --git a/web/app/assets/javascripts/utils.js b/web/app/assets/javascripts/utils.js index 373495ee4..6cfb1843f 100644 --- a/web/app/assets/javascripts/utils.js +++ b/web/app/assets/javascripts/utils.js @@ -1163,6 +1163,9 @@ window.jamClient = interceptedJamClient; } + //wrap jamClient in a proxy wrapper + window.jamClient = new JK.jamClientProxy(window.jamClient); + } // pass in 'arguments' in a fail callback of a $.ajax diff --git a/web/app/assets/javascripts/web/web.js b/web/app/assets/javascripts/web/web.js index 241f5fd8f..14e0bf9d8 100644 --- a/web/app/assets/javascripts/web/web.js +++ b/web/app/assets/javascripts/web/web.js @@ -81,6 +81,7 @@ //= require web/affiliate_program //= require web/affiliate_links //= require fakeJamClient +//= require jamClientProxy //= require fakeJamClientMessages //= require fakeJamClientRecordings //= require JamServer