jam-cloud/web/app/assets/javascripts/fakeJamClientProxy.js

35 lines
1.0 KiB
JavaScript

(function(context,$) {
"use strict";
context.JK = context.JK || {};
context.JK.FakeJamClientProxy = function(app, p2pMessageFactory) {
const handler = {
get: (target, prop, receiver) => {
return function (...args) {
return new Promise((resolve, reject) => {
try {
//console.log('[fakeJamClient]', prop)
if(target[prop]){
const result = target[prop].apply(target, args);
resolve(result);
}else{
console.error('[fakeJamClient] error: No such method in FakeJamClient', prop);
reject(`No such method in FakeJamClient: ${prop}`);
}
} catch (error) {
console.error('[fakeJamClient] error:', prop, error);
reject(error);
}
});
}
}
}
const fakeJamClient = new JK.FakeJamClient(app, p2pMessageFactory);
return new Proxy(fakeJamClient, handler);
}
})(window, jQuery);