@openhps/core
Version:
Open Hybrid Positioning System - Core component
26 lines • 662 B
JavaScript
import { Service } from '../Service';
export class ServiceProxy extends Service {
get(target, p) {
if (p === 'target') {
return target;
} else if (p === 'constructor') {
return target.constructor;
} else if (typeof target[p] === 'function') {
return this.createHandler(target, p);
}
return target[p];
}
set(target, p, value) {
target[p] = value;
return true;
}
createHandler(target, p) {
const key = p;
return (...args) => {
if (key !== 'emit' && key !== 'emitAsync' && key !== 'on' && key !== 'once') {
target.emit(key, ...args);
}
return target[p](...args);
};
}
}