BREAKING CHANGE(snmp): refactor: update SNMP type definitions and interface names for consistency

This commit is contained in:
2025-03-25 10:21:21 +00:00
parent 70c16fa0a6
commit ecfd171f97
9 changed files with 41 additions and 35 deletions

View File

@ -1,7 +1,7 @@
import { exec } from 'child_process';
import { promisify } from 'util';
import * as dgram from 'dgram';
import type { OIDSet, SnmpConfig, UpsModel, UpsStatus } from './types.js';
import type { IOidSet, ISnmpConfig, TUpsModel, IUpsStatus } from './types.js';
import { UpsOidSets } from './oid-sets.js';
import { SnmpPacketCreator } from './packet-creator.js';
import { SnmpPacketParser } from './packet-parser.js';
@ -14,12 +14,12 @@ const execAsync = promisify(exec);
*/
export class NupstSnmp {
// Active OID set
private activeOIDs: OIDSet;
private activeOIDs: IOidSet;
// Reference to the parent Nupst instance
private nupst: any; // Type 'any' to avoid circular dependency
// Default SNMP configuration
private readonly DEFAULT_CONFIG: SnmpConfig = {
private readonly DEFAULT_CONFIG: ISnmpConfig = {
host: '127.0.0.1', // Default to localhost
port: 161, // Default SNMP port
community: 'public', // Default community string for v1/v2c
@ -64,7 +64,7 @@ export class NupstSnmp {
* Set active OID set based on UPS model
* @param config SNMP configuration
*/
private setActiveOIDs(config: SnmpConfig): void {
private setActiveOIDs(config: ISnmpConfig): void {
// If custom OIDs are provided, use them
if (config.upsModel === 'custom' && config.customOIDs) {
this.activeOIDs = config.customOIDs;
@ -206,7 +206,7 @@ export class NupstSnmp {
* @param config SNMP configuration
* @returns Promise resolving to the UPS status
*/
public async getUpsStatus(config = this.DEFAULT_CONFIG): Promise<UpsStatus> {
public async getUpsStatus(config = this.DEFAULT_CONFIG): Promise<IUpsStatus> {
try {
// Set active OID set based on UPS model in config
this.setActiveOIDs(config);
@ -408,12 +408,12 @@ export class NupstSnmp {
* @param config SNMP configuration
* @returns Promise resolving to the discovered engine ID
*/
public async discoverEngineId(config: SnmpConfig): Promise<Buffer> {
public async discoverEngineId(config: ISnmpConfig): Promise<Buffer> {
return new Promise((resolve, reject) => {
const socket = dgram.createSocket('udp4');
// Create a proper discovery message (SNMPv3 with noAuthNoPriv)
const discoveryConfig: SnmpConfig = {
const discoveryConfig: ISnmpConfig = {
...config,
securityLevel: 'noAuthNoPriv',
username: '', // Empty username for discovery