From dc97fa1c569816f2c7c247d2b255ba2e4c645d58 Mon Sep 17 00:00:00 2001 From: Nasreddine Bac Ali Date: Fri, 25 Oct 2019 22:26:23 +0200 Subject: [PATCH] node-os-utils 1.0: Add types (#39408) * node-os-utils 1.0: Add types * apply library file layout * fix lint errors --- types/node-os-utils/index.d.ts | 6 ++++ types/node-os-utils/lib/cpu.d.ts | 22 +++++++++++++++ types/node-os-utils/lib/drive.d.ts | 22 +++++++++++++++ types/node-os-utils/lib/index.d.ts | 33 ++++++++++++++++++++++ types/node-os-utils/lib/mem.d.ts | 23 +++++++++++++++ types/node-os-utils/lib/netstat.d.ts | 17 +++++++++++ types/node-os-utils/lib/openfiles.d.ts | 3 ++ types/node-os-utils/lib/os.d.ts | 27 ++++++++++++++++++ types/node-os-utils/lib/oscmd.d.ts | 12 ++++++++ types/node-os-utils/lib/proc.d.ts | 5 ++++ types/node-os-utils/lib/users.d.ts | 3 ++ types/node-os-utils/node-os-utils-tests.ts | 4 +++ types/node-os-utils/tsconfig.json | 24 ++++++++++++++++ types/node-os-utils/tslint.json | 1 + 14 files changed, 202 insertions(+) create mode 100644 types/node-os-utils/index.d.ts create mode 100644 types/node-os-utils/lib/cpu.d.ts create mode 100644 types/node-os-utils/lib/drive.d.ts create mode 100644 types/node-os-utils/lib/index.d.ts create mode 100644 types/node-os-utils/lib/mem.d.ts create mode 100644 types/node-os-utils/lib/netstat.d.ts create mode 100644 types/node-os-utils/lib/openfiles.d.ts create mode 100644 types/node-os-utils/lib/os.d.ts create mode 100644 types/node-os-utils/lib/oscmd.d.ts create mode 100644 types/node-os-utils/lib/proc.d.ts create mode 100644 types/node-os-utils/lib/users.d.ts create mode 100644 types/node-os-utils/node-os-utils-tests.ts create mode 100644 types/node-os-utils/tsconfig.json create mode 100644 types/node-os-utils/tslint.json diff --git a/types/node-os-utils/index.d.ts b/types/node-os-utils/index.d.ts new file mode 100644 index 0000000000..1ace9d8ce6 --- /dev/null +++ b/types/node-os-utils/index.d.ts @@ -0,0 +1,6 @@ +// Type definitions for node-os-utils 1.0 +// Project: https://github.com/SunilWang/node-os-utils +// Definitions by: Nasreddine Bac Ali +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +export * from './lib'; diff --git a/types/node-os-utils/lib/cpu.d.ts b/types/node-os-utils/lib/cpu.d.ts new file mode 100644 index 0000000000..764d1f5488 --- /dev/null +++ b/types/node-os-utils/lib/cpu.d.ts @@ -0,0 +1,22 @@ +export default class Cpu { + average(): CpuAverageInfo; + + usage(interval?: number): Promise; + + free(interval?: number): Promise; + + count(): number; + + model(): string; + + loadavg(): number[]; + + loadavgTime(time: string | number): number; +} + +export interface CpuAverageInfo { + totalIdle: number; + totalTick: number; + avgIdle: number; + avgTotal: number; +} diff --git a/types/node-os-utils/lib/drive.d.ts b/types/node-os-utils/lib/drive.d.ts new file mode 100644 index 0000000000..03b6f6a5cd --- /dev/null +++ b/types/node-os-utils/lib/drive.d.ts @@ -0,0 +1,22 @@ +export default class Drive { + info(diskName: string): Promise; + + free(diskName: string): Promise; + + used(diskName: string): Promise; +} + +export interface DriveFreeInfo { + totalGb: number; + freeGb: number; + freePercentage: number; +} + +export interface DriveUsedInfo { + totalGb: number; + usedGb: number; + usedPercentage: number; +} + +export interface DriveInfo extends DriveFreeInfo, DriveUsedInfo { +} diff --git a/types/node-os-utils/lib/index.d.ts b/types/node-os-utils/lib/index.d.ts new file mode 100644 index 0000000000..9058e0c425 --- /dev/null +++ b/types/node-os-utils/lib/index.d.ts @@ -0,0 +1,33 @@ +import Cpu from './cpu'; +import Drive from './drive'; +import Mem from './mem'; +import NetStat from './netstat'; +import OpenFiles from './openfiles'; +import Os from './os'; +import OsCmd from './oscmd'; +import Proc from './proc'; +import Users from './users'; + +export const cpu: Cpu; +export const drive: Drive; +export const mem: Mem; +export const netstat: NetStat; +export const openfiles: OpenFiles; +export const os: Os; +export const oscmd: OsCmd; +export const proc: Proc; +export const users: Users; + +export let options: { NOT_SUPPORTED_VALUE: string, INTERVAL: number }; + +export function exec(command: string): () => Promise; + +export * from './cpu'; +export * from './drive'; +export * from './mem'; +export * from './netstat'; +export * from './openfiles'; +export * from './os'; +export * from './oscmd'; +export * from './proc'; +export * from './users'; diff --git a/types/node-os-utils/lib/mem.d.ts b/types/node-os-utils/lib/mem.d.ts new file mode 100644 index 0000000000..feb7c563e3 --- /dev/null +++ b/types/node-os-utils/lib/mem.d.ts @@ -0,0 +1,23 @@ +export default class Mem { + info(): Promise; + + free(): Promise; + + used(): Promise; + + totalMem(): number; +} + +export interface MemFreeInfo { + totalMemMb: number; + freeMemMb: number; +} + +export interface MemUsedInfo { + totalMemMb: number; + usedMemMb: number; +} + +export interface MemInfo extends MemFreeInfo, MemUsedInfo { + freeMemPercentage: number; +} diff --git a/types/node-os-utils/lib/netstat.d.ts b/types/node-os-utils/lib/netstat.d.ts new file mode 100644 index 0000000000..4deaa83a29 --- /dev/null +++ b/types/node-os-utils/lib/netstat.d.ts @@ -0,0 +1,17 @@ +export default class NetStat { + stats(): Promise; + + inOut(interval?: number): Promise; +} + +export interface NetStatInfo { + interface: string; + inputBytes: string; + outputBytes: string; +} + +export interface NetStatMetrics { + total: { inputMb: number; outputMb: number; }; + + [key: string]: { inputMb: number; outputMb: number; }; +} diff --git a/types/node-os-utils/lib/openfiles.d.ts b/types/node-os-utils/lib/openfiles.d.ts new file mode 100644 index 0000000000..081472559d --- /dev/null +++ b/types/node-os-utils/lib/openfiles.d.ts @@ -0,0 +1,3 @@ +export default class OpenFiles { + openFd(): Promise; +} diff --git a/types/node-os-utils/lib/os.d.ts b/types/node-os-utils/lib/os.d.ts new file mode 100644 index 0000000000..69c5dea19b --- /dev/null +++ b/types/node-os-utils/lib/os.d.ts @@ -0,0 +1,27 @@ +export default class Os { + oos(): () => Promise; + + platform(): Platform; + + uptime(): number; + + ip(): string; + + hostname(): string; + + type(): string; + + arch(): string; +} + +type Platform = 'aix' + | 'android' + | 'darwin' + | 'freebsd' + | 'linux' + | 'openbsd' + | 'sunos' + | 'win32' + | 'cygwin'; + +export {}; diff --git a/types/node-os-utils/lib/oscmd.d.ts b/types/node-os-utils/lib/oscmd.d.ts new file mode 100644 index 0000000000..94c960a3b5 --- /dev/null +++ b/types/node-os-utils/lib/oscmd.d.ts @@ -0,0 +1,12 @@ +export default class OsCmd { + topCpu(): () => Promise; + + topMem: () => Promise; + vmstats: () => Promise; + processesUsers: () => Promise; + diskUsage: () => Promise; + who: () => Promise; + whoami: () => Promise; + openPorts: () => Promise; + ifconfig: () => Promise; +} diff --git a/types/node-os-utils/lib/proc.d.ts b/types/node-os-utils/lib/proc.d.ts new file mode 100644 index 0000000000..4936c163bb --- /dev/null +++ b/types/node-os-utils/lib/proc.d.ts @@ -0,0 +1,5 @@ +export default class Proc { + totalProcesses(): Promise; + + zombieProcesses(): Promise; +} diff --git a/types/node-os-utils/lib/users.d.ts b/types/node-os-utils/lib/users.d.ts new file mode 100644 index 0000000000..3771612e1d --- /dev/null +++ b/types/node-os-utils/lib/users.d.ts @@ -0,0 +1,3 @@ +export default class Users { + openedCount(): Promise; +} diff --git a/types/node-os-utils/node-os-utils-tests.ts b/types/node-os-utils/node-os-utils-tests.ts new file mode 100644 index 0000000000..071846a425 --- /dev/null +++ b/types/node-os-utils/node-os-utils-tests.ts @@ -0,0 +1,4 @@ +import * as NodeOsUtils from 'node-os-utils'; + +NodeOsUtils.mem.info() + .then(console.log); diff --git a/types/node-os-utils/tsconfig.json b/types/node-os-utils/tsconfig.json new file mode 100644 index 0000000000..d93315b38c --- /dev/null +++ b/types/node-os-utils/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6", + "dom" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictFunctionTypes": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "node-os-utils-tests.ts" + ] +} diff --git a/types/node-os-utils/tslint.json b/types/node-os-utils/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/node-os-utils/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }