UNPKG

@lakutata/dbus

Version:
126 lines (125 loc) 4.46 kB
"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);