@ohd-tools/rcon
Version:
An RCON Interface for Operation: Harsh Doorstop
36 lines (35 loc) • 1.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.setupVariableProxy = setupVariableProxy;
const noop = () => { };
function setupVariableProxy(controller) {
const path = [];
const handler = {
get(target, name) {
if (name == 'read') {
return async () => {
return (await controller.send(path.join('.')))
.value;
};
}
if (name == 'readDetailed') {
return async () => {
return (await controller.send(path.join('.')));
};
}
if (name == 'write') {
return async (newValue) => {
return controller.send(`${path.join('.')} ${newValue}`);
};
}
path.push(name);
return new Proxy(noop, handler);
},
set(target, name, newValue) {
path.push(name);
controller.send(`${path.join('.')} ${newValue}`);
return true;
},
};
return new Proxy(noop, handler);
}