@lakutata/dbus
Version:
Lakutata DBus SDK
126 lines (125 loc) • 4.46 kB
JavaScript
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.DBusClientProvider = exports.buildDBusClientOptions = void 0;
const dbus_sdk_1 = require("dbus-sdk");
const lakutata_1 = require("lakutata");
const di_1 = require("lakutata/decorator/di");
const buildDBusClientOptions = (options) => ({
class: DBusClientProvider,
busAddress: options.busAddress,
timeout: options.timeout,
advancedResponse: options.advancedResponse,
convertBigIntToNumber: options.convertBigIntToNumber
});
exports.buildDBusClientOptions = buildDBusClientOptions;
class DBusClientProvider extends lakutata_1.Provider {
get uniqueName() {
return this.dbus.uniqueName;
}
/**
* Initializer
* @protected
*/
async init() {
this.dbus = await dbus_sdk_1.DBus.connect({
busAddress: this.busAddress,
timeout: this.timeout,
advancedResponse: this.advancedResponse,
convertBigIntToNumber: this.convertBigIntToNumber
});
}
/**
* Destroyer
* @protected
*/
async destroy() {
await this.dbus.disconnect();
}
invoke(opts, noReply = false) {
if (noReply)
return this.dbus.invoke(opts, true);
return this.dbus.invoke(opts, false);
}
on(eventName, listener) {
this.dbus.on(eventName, listener);
return this;
}
once(eventName, listener) {
this.dbus.once(eventName, listener);
return this;
}
off(eventName, listener) {
this.dbus.off(eventName, listener);
return this;
}
removeListener(eventName, listener) {
this.dbus.removeListener(eventName, listener);
return this;
}
addMatch(rule) {
return this.dbus.addMatch(rule);
}
removeMatch(rule) {
return this.dbus.removeMatch(rule);
}
async getNameOwner(name) {
return this.dbus.getNameOwner(name);
}
async listActivatableNames() {
return this.dbus.listActivatableNames();
}
async listNames() {
return this.dbus.listNames();
}
async nameHasOwner(name) {
return this.dbus.nameHasOwner(name);
}
async listBusNames() {
return this.dbus.listBusNames();
}
async listServices() {
return this.dbus.listServices();
}
async services() {
return this.dbus.getServices();
}
async service(service) {
return this.dbus.getService(service);
}
async object(service, objectPath) {
return this.dbus.getObject(service, objectPath);
}
async interface(service, objectPath, iface) {
return this.dbus.getInterface(service, objectPath, iface);
}
async interfaceSignal(service, objectPath, iface) {
const dbusIface = await this.dbus.getInterface(service, objectPath, iface);
return dbusIface.signal;
}
}
exports.DBusClientProvider = DBusClientProvider;
__decorate([
(0, di_1.Configurable)(lakutata_1.DTO.String().required()),
__metadata("design:type", String)
], DBusClientProvider.prototype, "busAddress", void 0);
__decorate([
(0, di_1.Configurable)(lakutata_1.DTO.Number().positive().integer().optional()),
__metadata("design:type", Number)
], DBusClientProvider.prototype, "timeout", void 0);
__decorate([
(0, di_1.Configurable)(lakutata_1.DTO.Boolean().optional().default(false)),
__metadata("design:type", Boolean)
], DBusClientProvider.prototype, "advancedResponse", void 0);
__decorate([
(0, di_1.Configurable)(lakutata_1.DTO.Boolean().optional().default(true)),
__metadata("design:type", Boolean)
], DBusClientProvider.prototype, "convertBigIntToNumber", void 0);