import Service from '@ember/service'; export default Service.extend({ shouldProxy: function(content, method) { return false; }, init: function() { this._super(...arguments); const content = this.content; for (let prop in content) { if (typeof content[prop] === 'function') { if (this.shouldProxy(content, prop)) { this[prop] = function() { const cb = this.execute(content, prop); if (typeof cb.then !== 'undefined') { return cb.then(method => { return method.apply(this, arguments); }); } else { return cb.apply(this, arguments); } }; } else if (typeof this[prop] !== 'function') { this[prop] = function() { return content[prop](...arguments); }; } } } }, });