Skip to content

Commit

Permalink
docs(type): Add type definitions
Browse files Browse the repository at this point in the history
  • Loading branch information
nioc committed Dec 3, 2023
1 parent b48e78c commit fc4ef4d
Show file tree
Hide file tree
Showing 2 changed files with 330 additions and 18 deletions.
36 changes: 18 additions & 18 deletions lib/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ class SrmClient {
/**
* Retrieve WAN connection status
*
* @return {Promise<Object>} WAN connection (status, ip, interface name)
* @return {Promise<import("./types.d.ts").WanConnection>} WAN connection (status, ip, interface name)
*
*/
async getWanConnectionStatus () {
Expand All @@ -188,7 +188,7 @@ class SrmClient {
* Retrieve traffic by device
*
* @param {string} interval Traffic interval among `'live', 'day', 'week', 'month'` (default is `'live'`)
* @return {Promise<Object[]>} Network traffic by device
* @return {Promise<import("./types.d.ts").DeviceTraffic[]>} Network traffic by device
*/
async getTraffic (interval = 'live') {
if (!['live', 'day', 'week', 'month'].includes(interval)) {
Expand All @@ -207,7 +207,7 @@ class SrmClient {
/**
* Retrieve utilization by network
*
* @return {Promise<Object>} Array of network interfaces with received/transmitted and timestamp
* @return {Promise<import("./types.d.ts").NetworkUtilizationList>} Array of network interfaces with received/transmitted and timestamp
*/
async getNetworkUtilization () {
const data = {
Expand All @@ -224,7 +224,7 @@ class SrmClient {
*
* @param {string} info Info requested ('basic' or 'online' for example)
* @param {string} conntype Connection type filter ('all' or 'wireless', default is 'all')
* @return {Promise<Object[]>} Devices
* @return {Promise<import("./types.d.ts").Device[]>} Devices
*/
async getDevices (info = null, conntype = 'all') {
const data = {
Expand All @@ -242,7 +242,7 @@ class SrmClient {
/**
* Retrieve devices connected to Wi-Fi network and information like max rate, signal, etc...
*
* @return {Promise<Object[]>} Wifi devices
* @return {Promise<import("./types.d.ts").Device[]>} Wifi devices
*/
async getWifiDevices () {
return await this.getDevices('online', 'wireless')
Expand All @@ -251,7 +251,7 @@ class SrmClient {
/**
* Retrieve mesh nodes and information like current rate, status, number of connected devices, etc...
*
* @return {Promise<Object[]>} Mesh nodes
* @return {Promise<import("./types.d.ts").MeshNode[]>} Mesh nodes
*/
async getMeshNodes () {
const data = {
Expand All @@ -266,7 +266,7 @@ class SrmClient {
* Retrieve smart WAN gateways
*
* @param {string} gatewaytype Gateway type (default: `ipv4`)
* @return {Promise<Object[]>} Smart WAN gateways list
* @return {Promise<import("./types.d.ts").SmartWanGateway[]>} Smart WAN gateways list
*/
async getSmartWanGateway (gatewaytype = 'ipv4') {
const data = {
Expand All @@ -281,7 +281,7 @@ class SrmClient {
/**
* Retrieve smart WAN configuration
*
* @return {Promise<Object>} Smart WAN configuration
* @return {Promise<import("./types.d.ts").SmartWanConfiguration>} Smart WAN configuration
*/
async getSmartWan () {
const data = {
Expand All @@ -295,8 +295,8 @@ class SrmClient {
/**
* Set smart WAN configuration
*
* @param {Object} wanConfig Updated smart WAN configuration
* @return {Promise<Object>} Smart WAN configuration (example: `{ smartwan_mode: 'failover', dw_weight_ratio: 0, smartwan_ifname_1: 'wan', smartwan_ifname_2: 'lan1', smartwan_failback: true }`)
* @param {import("./types.d.ts").SmartWanConfiguration} wanConfig Updated smart WAN configuration
* @return {Promise<import("./types.d.ts").SmartWanConfiguration>} Smart WAN configuration (example: `{ smartwan_mode: 'failover', dw_weight_ratio: 0, smartwan_ifname_1: 'wan', smartwan_ifname_2: 'lan1', smartwan_failback: true }`)
*/
async setSmartWan (wanConfig) {
if (typeof wanConfig !== 'object') {
Expand Down Expand Up @@ -326,7 +326,7 @@ class SrmClient {
/**
* Switch smart WAN interfaces
*
* @return {Promise<Object>} Smart WAN configuration
* @return {Promise<import("./types.d.ts").SmartWanConfiguration>} Smart WAN configuration
*/
async switchSmartWan () {
const current = await this.getSmartWan()
Expand All @@ -339,7 +339,7 @@ class SrmClient {
/**
* Retrieve policy rules
*
* @return {Promise<Object[]>} Policy rules
* @return {Promise<import("./types.d.ts").PolicyRoutes[]>} Policy rules
*/
async getPolicyRoutes () {
const data = {
Expand All @@ -354,7 +354,7 @@ class SrmClient {
/**
* Set policy rules (require to provided all rules)
*
* @param {object} rules Updated policy rules
* @param {import("./types.d.ts").PolicyRoutes[]} rules Updated policy rules
*/
async setPolicyRoutes (rules) {
const data = {
Expand All @@ -370,7 +370,7 @@ class SrmClient {
/**
* Retrieve devices where wake on lan is configured
*
* @return {Promise<Object[]>} Devices
* @return {Promise<import("./types.d.ts").WakeOnLanDevice[]>} Devices
*/
async getWakeOnLanDevices () {
const data = {
Expand Down Expand Up @@ -420,7 +420,7 @@ class SrmClient {
/**
* Retrieve Quality Of Service rules by devices (guaranteed/maximum for upload/download and protocols)
*
* @return {Promise<Object[]>} Devices Qos rules
* @return {Promise<import("./types.d.ts").QosRule[]>} Devices Qos rules
*/
async getQos () {
const data = {
Expand All @@ -436,7 +436,7 @@ class SrmClient {
*
* @param {Boolean} requestOnlineStatus Does the group online status has to be computed (require to request devices)
* @param {Array} additional Additional information requested
* @return {Promise<Object[]>} Access control groups
* @return {Promise<import("./types.d.ts").AccessControlGroup[]>} Access control groups
*/
async getAccessControlGroups (requestOnlineStatus = false, additional = ['device', 'total_timespent']) {
const data = {
Expand All @@ -460,8 +460,8 @@ class SrmClient {
/**
* Compute online status for each access control groups
*
* @param {Object[]} groups Access control groups (from `getAccessControlGroups`) on which to add `online` status
* @param {Object[]} devices Knowned devices (from `getDevices`)
* @param {import("./types.d.ts").AccessControlGroup[]} groups Access control groups (from `getAccessControlGroups`) on which to add `online` status
* @param {import("./types.d.ts").Device[]} devices Knowned devices (from `getDevices`)
*/
computeAccessControlGroupStatus (groups, devices) {
// filter online devices
Expand Down
Loading

0 comments on commit fc4ef4d

Please sign in to comment.