@puniyu/system-info 1.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +150 -0
- package/dist/index.js +587 -0
- package/package.json +48 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
// powered by system_info_core
|
|
2
|
+
export interface CpuInfo {
|
|
3
|
+
/** CPU型号 */
|
|
4
|
+
cpuModel: string
|
|
5
|
+
/** CPU核心数 */
|
|
6
|
+
cpuCores: number
|
|
7
|
+
/** CPU频率(单位: GHz) */
|
|
8
|
+
cpuFrequency?: number
|
|
9
|
+
/** CPU使用率 */
|
|
10
|
+
cpuUsage?: number
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export interface DiskDetail {
|
|
14
|
+
/** 磁盘名称 */
|
|
15
|
+
name: string
|
|
16
|
+
/** 总磁盘空间(单位: GB) */
|
|
17
|
+
totalSpace: number
|
|
18
|
+
/** 已用磁盘空间(单位: GB) */
|
|
19
|
+
usedSpace: number
|
|
20
|
+
/** 可用磁盘空间(单位: GB) */
|
|
21
|
+
freeSpace: number
|
|
22
|
+
/** 磁盘使用率 */
|
|
23
|
+
usage: number
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export interface DiskInfo {
|
|
27
|
+
/** 总磁盘空间(单位: GB) */
|
|
28
|
+
totalDiskSpace: number
|
|
29
|
+
/** 总已用磁盘空间(单位: GB) */
|
|
30
|
+
totalUsedSpace: number
|
|
31
|
+
/** 总可用磁盘空间(单位: GB) */
|
|
32
|
+
totalFreeSpace: number
|
|
33
|
+
/** 总体磁盘使用率 */
|
|
34
|
+
totalUsage: number
|
|
35
|
+
/** 各个磁盘详细信息 */
|
|
36
|
+
disks: Array<DiskDetail>
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/** 获取CPU信息 */
|
|
40
|
+
export declare function getCpuInfo(): CpuInfo
|
|
41
|
+
|
|
42
|
+
/** 获取当前网络信息 */
|
|
43
|
+
export declare function getCurrentNetwork(): NetworkInfo
|
|
44
|
+
|
|
45
|
+
/** 获取当前进程信息 */
|
|
46
|
+
export declare function getCurrentProcessInfo(): ProcessInfo
|
|
47
|
+
|
|
48
|
+
/** 获取磁盘信息 */
|
|
49
|
+
export declare function getDiskInfo(): DiskInfo
|
|
50
|
+
|
|
51
|
+
/** 获取GPU信息 */
|
|
52
|
+
export declare function getGpuInfo(): GpuInfo | null
|
|
53
|
+
|
|
54
|
+
/** 获取主机信息 */
|
|
55
|
+
export declare function getHostInfo(): HostInfo
|
|
56
|
+
|
|
57
|
+
/** 获取内存信息 */
|
|
58
|
+
export declare function getMemoryInfo(): MemoryInfo
|
|
59
|
+
|
|
60
|
+
/** 获取网络信息 */
|
|
61
|
+
export declare function getNetworkInfo(): Array<NetworkInfo>
|
|
62
|
+
|
|
63
|
+
/** 获取进程信息 */
|
|
64
|
+
export declare function getProcessInfo(pid: number): ProcessInfo
|
|
65
|
+
|
|
66
|
+
export interface GpuInfo {
|
|
67
|
+
/** GPU型号 */
|
|
68
|
+
model: string
|
|
69
|
+
/** GPU已用内存(单位: MB) */
|
|
70
|
+
memoryUsed: number
|
|
71
|
+
/** GPU总内存(单位: MB) */
|
|
72
|
+
memoryTotal: number
|
|
73
|
+
/** GPU可用内存(单位: MB) */
|
|
74
|
+
memoryFree: number
|
|
75
|
+
/** GPU使用率 */
|
|
76
|
+
usage: number
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export interface HostInfo {
|
|
80
|
+
/** 主机名 */
|
|
81
|
+
hostName: string
|
|
82
|
+
/** 操作系统名 */
|
|
83
|
+
osName: string
|
|
84
|
+
/** 操作系统版本 */
|
|
85
|
+
osVersion: string
|
|
86
|
+
/** 操作系统类型 */
|
|
87
|
+
osType: string
|
|
88
|
+
/** 系统架构 */
|
|
89
|
+
arch: string
|
|
90
|
+
/** 系统启动时间 */
|
|
91
|
+
bootTime: Date
|
|
92
|
+
/** 系统运行时间, 单位:秒 */
|
|
93
|
+
uptime: number
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
export interface IpInfo {
|
|
97
|
+
/** ip地址 */
|
|
98
|
+
ipAddress: string
|
|
99
|
+
/** 子网掩码 */
|
|
100
|
+
netmask: number
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export interface MemoryInfo {
|
|
104
|
+
/** 总内存(单位: MB) */
|
|
105
|
+
total: number
|
|
106
|
+
/** 内存使用率 */
|
|
107
|
+
usage?: number
|
|
108
|
+
/** 已用内存(单位: MB) */
|
|
109
|
+
usedMemory: number
|
|
110
|
+
/** 可用内存(单位: MB) */
|
|
111
|
+
freeMemory: number
|
|
112
|
+
/** 交换内存(单位: MB) */
|
|
113
|
+
swapMemoryTotal?: number
|
|
114
|
+
/** 交换内存已用(单位: MB) */
|
|
115
|
+
swapMemoryUsed?: number
|
|
116
|
+
/** 交换内存可用(单位: MB) */
|
|
117
|
+
swapMemoryFree?: number
|
|
118
|
+
/** 交换内存使用率 */
|
|
119
|
+
swapMemoryUsage?: number
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
export interface NetworkInfo {
|
|
123
|
+
/** 网卡名称 */
|
|
124
|
+
name: string
|
|
125
|
+
/** 网卡ip信息 */
|
|
126
|
+
ipInfo: Array<IpInfo>
|
|
127
|
+
/** 网卡接收字节数(单位: KB/S) */
|
|
128
|
+
upload: number
|
|
129
|
+
/** 网卡发送字节数(单位: KB/S) */
|
|
130
|
+
download: number
|
|
131
|
+
/** 网卡mac地址 */
|
|
132
|
+
macAddr: string
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
export interface ProcessInfo {
|
|
136
|
+
/** 进程ID */
|
|
137
|
+
pid: number
|
|
138
|
+
/** 进程名称 */
|
|
139
|
+
name: string
|
|
140
|
+
/** 进程启动时间 */
|
|
141
|
+
startTime: number
|
|
142
|
+
/** 进程运行时间,单位:秒 */
|
|
143
|
+
runTime: number
|
|
144
|
+
/** 进程CPU使用率 */
|
|
145
|
+
cpuUsage?: number
|
|
146
|
+
/** 进程内存使用率 */
|
|
147
|
+
memoryUsage?: number
|
|
148
|
+
/** 进程已用内存(单位: MB) */
|
|
149
|
+
usedMemory: number
|
|
150
|
+
}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,587 @@
|
|
|
1
|
+
// prettier-ignore
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
// @ts-nocheck
|
|
4
|
+
/* auto-generated by NAPI-RS */
|
|
5
|
+
|
|
6
|
+
import { createRequire } from 'node:module'
|
|
7
|
+
const require = createRequire(import.meta.url)
|
|
8
|
+
const __dirname = new URL('.', import.meta.url).pathname
|
|
9
|
+
|
|
10
|
+
const { readFileSync } = require('node:fs')
|
|
11
|
+
let nativeBinding = null
|
|
12
|
+
const loadErrors = []
|
|
13
|
+
|
|
14
|
+
const isMusl = () => {
|
|
15
|
+
let musl = false
|
|
16
|
+
if (process.platform === 'linux') {
|
|
17
|
+
musl = isMuslFromFilesystem()
|
|
18
|
+
if (musl === null) {
|
|
19
|
+
musl = isMuslFromReport()
|
|
20
|
+
}
|
|
21
|
+
if (musl === null) {
|
|
22
|
+
musl = isMuslFromChildProcess()
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return musl
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const isFileMusl = (f) => f.includes('libc.musl-') || f.includes('ld-musl-')
|
|
29
|
+
|
|
30
|
+
const isMuslFromFilesystem = () => {
|
|
31
|
+
try {
|
|
32
|
+
return readFileSync('/usr/bin/ldd', 'utf-8').includes('musl')
|
|
33
|
+
} catch {
|
|
34
|
+
return null
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const isMuslFromReport = () => {
|
|
39
|
+
let report = null
|
|
40
|
+
if (typeof process.report?.getReport === 'function') {
|
|
41
|
+
process.report.excludeNetwork = true
|
|
42
|
+
report = process.report.getReport()
|
|
43
|
+
}
|
|
44
|
+
if (!report) {
|
|
45
|
+
return null
|
|
46
|
+
}
|
|
47
|
+
if (report.header && report.header.glibcVersionRuntime) {
|
|
48
|
+
return false
|
|
49
|
+
}
|
|
50
|
+
if (Array.isArray(report.sharedObjects)) {
|
|
51
|
+
if (report.sharedObjects.some(isFileMusl)) {
|
|
52
|
+
return true
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return false
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
const isMuslFromChildProcess = () => {
|
|
59
|
+
try {
|
|
60
|
+
return require('child_process').execSync('ldd --version', { encoding: 'utf8' }).includes('musl')
|
|
61
|
+
} catch (e) {
|
|
62
|
+
// If we reach this case, we don't know if the system is musl or not, so is better to just fallback to false
|
|
63
|
+
return false
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
function requireNative() {
|
|
68
|
+
if (process.env.NAPI_RS_NATIVE_LIBRARY_PATH) {
|
|
69
|
+
try {
|
|
70
|
+
return require(process.env.NAPI_RS_NATIVE_LIBRARY_PATH);
|
|
71
|
+
} catch (err) {
|
|
72
|
+
loadErrors.push(err)
|
|
73
|
+
}
|
|
74
|
+
} else if (process.platform === 'android') {
|
|
75
|
+
if (process.arch === 'arm64') {
|
|
76
|
+
try {
|
|
77
|
+
return require('./system-info.android-arm64.node')
|
|
78
|
+
} catch (e) {
|
|
79
|
+
loadErrors.push(e)
|
|
80
|
+
}
|
|
81
|
+
try {
|
|
82
|
+
const binding = require('@puniyu/system-info-android-arm64')
|
|
83
|
+
const bindingPackageVersion = require('@puniyu/system-info-android-arm64/package.json').version
|
|
84
|
+
if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
85
|
+
throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
86
|
+
}
|
|
87
|
+
return binding
|
|
88
|
+
} catch (e) {
|
|
89
|
+
loadErrors.push(e)
|
|
90
|
+
}
|
|
91
|
+
} else if (process.arch === 'arm') {
|
|
92
|
+
try {
|
|
93
|
+
return require('./system-info.android-arm-eabi.node')
|
|
94
|
+
} catch (e) {
|
|
95
|
+
loadErrors.push(e)
|
|
96
|
+
}
|
|
97
|
+
try {
|
|
98
|
+
const binding = require('@puniyu/system-info-android-arm-eabi')
|
|
99
|
+
const bindingPackageVersion = require('@puniyu/system-info-android-arm-eabi/package.json').version
|
|
100
|
+
if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
101
|
+
throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
102
|
+
}
|
|
103
|
+
return binding
|
|
104
|
+
} catch (e) {
|
|
105
|
+
loadErrors.push(e)
|
|
106
|
+
}
|
|
107
|
+
} else {
|
|
108
|
+
loadErrors.push(new Error(`Unsupported architecture on Android ${process.arch}`))
|
|
109
|
+
}
|
|
110
|
+
} else if (process.platform === 'win32') {
|
|
111
|
+
if (process.arch === 'x64') {
|
|
112
|
+
if (process.config?.variables?.shlib_suffix === 'dll.a' || process.config?.variables?.node_target_type === 'shared_library') {
|
|
113
|
+
try {
|
|
114
|
+
return require('./system-info.win32-x64-gnu.node')
|
|
115
|
+
} catch (e) {
|
|
116
|
+
loadErrors.push(e)
|
|
117
|
+
}
|
|
118
|
+
try {
|
|
119
|
+
const binding = require('@puniyu/system-info-win32-x64-gnu')
|
|
120
|
+
const bindingPackageVersion = require('@puniyu/system-info-win32-x64-gnu/package.json').version
|
|
121
|
+
if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
122
|
+
throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
123
|
+
}
|
|
124
|
+
return binding
|
|
125
|
+
} catch (e) {
|
|
126
|
+
loadErrors.push(e)
|
|
127
|
+
}
|
|
128
|
+
} else {
|
|
129
|
+
try {
|
|
130
|
+
return require('./system-info.win32-x64-msvc.node')
|
|
131
|
+
} catch (e) {
|
|
132
|
+
loadErrors.push(e)
|
|
133
|
+
}
|
|
134
|
+
try {
|
|
135
|
+
const binding = require('@puniyu/system-info-win32-x64-msvc')
|
|
136
|
+
const bindingPackageVersion = require('@puniyu/system-info-win32-x64-msvc/package.json').version
|
|
137
|
+
if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
138
|
+
throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
139
|
+
}
|
|
140
|
+
return binding
|
|
141
|
+
} catch (e) {
|
|
142
|
+
loadErrors.push(e)
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
} else if (process.arch === 'ia32') {
|
|
146
|
+
try {
|
|
147
|
+
return require('./system-info.win32-ia32-msvc.node')
|
|
148
|
+
} catch (e) {
|
|
149
|
+
loadErrors.push(e)
|
|
150
|
+
}
|
|
151
|
+
try {
|
|
152
|
+
const binding = require('@puniyu/system-info-win32-ia32-msvc')
|
|
153
|
+
const bindingPackageVersion = require('@puniyu/system-info-win32-ia32-msvc/package.json').version
|
|
154
|
+
if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
155
|
+
throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
156
|
+
}
|
|
157
|
+
return binding
|
|
158
|
+
} catch (e) {
|
|
159
|
+
loadErrors.push(e)
|
|
160
|
+
}
|
|
161
|
+
} else if (process.arch === 'arm64') {
|
|
162
|
+
try {
|
|
163
|
+
return require('./system-info.win32-arm64-msvc.node')
|
|
164
|
+
} catch (e) {
|
|
165
|
+
loadErrors.push(e)
|
|
166
|
+
}
|
|
167
|
+
try {
|
|
168
|
+
const binding = require('@puniyu/system-info-win32-arm64-msvc')
|
|
169
|
+
const bindingPackageVersion = require('@puniyu/system-info-win32-arm64-msvc/package.json').version
|
|
170
|
+
if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
171
|
+
throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
172
|
+
}
|
|
173
|
+
return binding
|
|
174
|
+
} catch (e) {
|
|
175
|
+
loadErrors.push(e)
|
|
176
|
+
}
|
|
177
|
+
} else {
|
|
178
|
+
loadErrors.push(new Error(`Unsupported architecture on Windows: ${process.arch}`))
|
|
179
|
+
}
|
|
180
|
+
} else if (process.platform === 'darwin') {
|
|
181
|
+
try {
|
|
182
|
+
return require('./system-info.darwin-universal.node')
|
|
183
|
+
} catch (e) {
|
|
184
|
+
loadErrors.push(e)
|
|
185
|
+
}
|
|
186
|
+
try {
|
|
187
|
+
const binding = require('@puniyu/system-info-darwin-universal')
|
|
188
|
+
const bindingPackageVersion = require('@puniyu/system-info-darwin-universal/package.json').version
|
|
189
|
+
if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
190
|
+
throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
191
|
+
}
|
|
192
|
+
return binding
|
|
193
|
+
} catch (e) {
|
|
194
|
+
loadErrors.push(e)
|
|
195
|
+
}
|
|
196
|
+
if (process.arch === 'x64') {
|
|
197
|
+
try {
|
|
198
|
+
return require('./system-info.darwin-x64.node')
|
|
199
|
+
} catch (e) {
|
|
200
|
+
loadErrors.push(e)
|
|
201
|
+
}
|
|
202
|
+
try {
|
|
203
|
+
const binding = require('@puniyu/system-info-darwin-x64')
|
|
204
|
+
const bindingPackageVersion = require('@puniyu/system-info-darwin-x64/package.json').version
|
|
205
|
+
if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
206
|
+
throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
207
|
+
}
|
|
208
|
+
return binding
|
|
209
|
+
} catch (e) {
|
|
210
|
+
loadErrors.push(e)
|
|
211
|
+
}
|
|
212
|
+
} else if (process.arch === 'arm64') {
|
|
213
|
+
try {
|
|
214
|
+
return require('./system-info.darwin-arm64.node')
|
|
215
|
+
} catch (e) {
|
|
216
|
+
loadErrors.push(e)
|
|
217
|
+
}
|
|
218
|
+
try {
|
|
219
|
+
const binding = require('@puniyu/system-info-darwin-arm64')
|
|
220
|
+
const bindingPackageVersion = require('@puniyu/system-info-darwin-arm64/package.json').version
|
|
221
|
+
if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
222
|
+
throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
223
|
+
}
|
|
224
|
+
return binding
|
|
225
|
+
} catch (e) {
|
|
226
|
+
loadErrors.push(e)
|
|
227
|
+
}
|
|
228
|
+
} else {
|
|
229
|
+
loadErrors.push(new Error(`Unsupported architecture on macOS: ${process.arch}`))
|
|
230
|
+
}
|
|
231
|
+
} else if (process.platform === 'freebsd') {
|
|
232
|
+
if (process.arch === 'x64') {
|
|
233
|
+
try {
|
|
234
|
+
return require('./system-info.freebsd-x64.node')
|
|
235
|
+
} catch (e) {
|
|
236
|
+
loadErrors.push(e)
|
|
237
|
+
}
|
|
238
|
+
try {
|
|
239
|
+
const binding = require('@puniyu/system-info-freebsd-x64')
|
|
240
|
+
const bindingPackageVersion = require('@puniyu/system-info-freebsd-x64/package.json').version
|
|
241
|
+
if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
242
|
+
throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
243
|
+
}
|
|
244
|
+
return binding
|
|
245
|
+
} catch (e) {
|
|
246
|
+
loadErrors.push(e)
|
|
247
|
+
}
|
|
248
|
+
} else if (process.arch === 'arm64') {
|
|
249
|
+
try {
|
|
250
|
+
return require('./system-info.freebsd-arm64.node')
|
|
251
|
+
} catch (e) {
|
|
252
|
+
loadErrors.push(e)
|
|
253
|
+
}
|
|
254
|
+
try {
|
|
255
|
+
const binding = require('@puniyu/system-info-freebsd-arm64')
|
|
256
|
+
const bindingPackageVersion = require('@puniyu/system-info-freebsd-arm64/package.json').version
|
|
257
|
+
if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
258
|
+
throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
259
|
+
}
|
|
260
|
+
return binding
|
|
261
|
+
} catch (e) {
|
|
262
|
+
loadErrors.push(e)
|
|
263
|
+
}
|
|
264
|
+
} else {
|
|
265
|
+
loadErrors.push(new Error(`Unsupported architecture on FreeBSD: ${process.arch}`))
|
|
266
|
+
}
|
|
267
|
+
} else if (process.platform === 'linux') {
|
|
268
|
+
if (process.arch === 'x64') {
|
|
269
|
+
if (isMusl()) {
|
|
270
|
+
try {
|
|
271
|
+
return require('./system-info.linux-x64-musl.node')
|
|
272
|
+
} catch (e) {
|
|
273
|
+
loadErrors.push(e)
|
|
274
|
+
}
|
|
275
|
+
try {
|
|
276
|
+
const binding = require('@puniyu/system-info-linux-x64-musl')
|
|
277
|
+
const bindingPackageVersion = require('@puniyu/system-info-linux-x64-musl/package.json').version
|
|
278
|
+
if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
279
|
+
throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
280
|
+
}
|
|
281
|
+
return binding
|
|
282
|
+
} catch (e) {
|
|
283
|
+
loadErrors.push(e)
|
|
284
|
+
}
|
|
285
|
+
} else {
|
|
286
|
+
try {
|
|
287
|
+
return require('./system-info.linux-x64-gnu.node')
|
|
288
|
+
} catch (e) {
|
|
289
|
+
loadErrors.push(e)
|
|
290
|
+
}
|
|
291
|
+
try {
|
|
292
|
+
const binding = require('@puniyu/system-info-linux-x64-gnu')
|
|
293
|
+
const bindingPackageVersion = require('@puniyu/system-info-linux-x64-gnu/package.json').version
|
|
294
|
+
if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
295
|
+
throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
296
|
+
}
|
|
297
|
+
return binding
|
|
298
|
+
} catch (e) {
|
|
299
|
+
loadErrors.push(e)
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
} else if (process.arch === 'arm64') {
|
|
303
|
+
if (isMusl()) {
|
|
304
|
+
try {
|
|
305
|
+
return require('./system-info.linux-arm64-musl.node')
|
|
306
|
+
} catch (e) {
|
|
307
|
+
loadErrors.push(e)
|
|
308
|
+
}
|
|
309
|
+
try {
|
|
310
|
+
const binding = require('@puniyu/system-info-linux-arm64-musl')
|
|
311
|
+
const bindingPackageVersion = require('@puniyu/system-info-linux-arm64-musl/package.json').version
|
|
312
|
+
if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
313
|
+
throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
314
|
+
}
|
|
315
|
+
return binding
|
|
316
|
+
} catch (e) {
|
|
317
|
+
loadErrors.push(e)
|
|
318
|
+
}
|
|
319
|
+
} else {
|
|
320
|
+
try {
|
|
321
|
+
return require('./system-info.linux-arm64-gnu.node')
|
|
322
|
+
} catch (e) {
|
|
323
|
+
loadErrors.push(e)
|
|
324
|
+
}
|
|
325
|
+
try {
|
|
326
|
+
const binding = require('@puniyu/system-info-linux-arm64-gnu')
|
|
327
|
+
const bindingPackageVersion = require('@puniyu/system-info-linux-arm64-gnu/package.json').version
|
|
328
|
+
if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
329
|
+
throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
330
|
+
}
|
|
331
|
+
return binding
|
|
332
|
+
} catch (e) {
|
|
333
|
+
loadErrors.push(e)
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
} else if (process.arch === 'arm') {
|
|
337
|
+
if (isMusl()) {
|
|
338
|
+
try {
|
|
339
|
+
return require('./system-info.linux-arm-musleabihf.node')
|
|
340
|
+
} catch (e) {
|
|
341
|
+
loadErrors.push(e)
|
|
342
|
+
}
|
|
343
|
+
try {
|
|
344
|
+
const binding = require('@puniyu/system-info-linux-arm-musleabihf')
|
|
345
|
+
const bindingPackageVersion = require('@puniyu/system-info-linux-arm-musleabihf/package.json').version
|
|
346
|
+
if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
347
|
+
throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
348
|
+
}
|
|
349
|
+
return binding
|
|
350
|
+
} catch (e) {
|
|
351
|
+
loadErrors.push(e)
|
|
352
|
+
}
|
|
353
|
+
} else {
|
|
354
|
+
try {
|
|
355
|
+
return require('./system-info.linux-arm-gnueabihf.node')
|
|
356
|
+
} catch (e) {
|
|
357
|
+
loadErrors.push(e)
|
|
358
|
+
}
|
|
359
|
+
try {
|
|
360
|
+
const binding = require('@puniyu/system-info-linux-arm-gnueabihf')
|
|
361
|
+
const bindingPackageVersion = require('@puniyu/system-info-linux-arm-gnueabihf/package.json').version
|
|
362
|
+
if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
363
|
+
throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
364
|
+
}
|
|
365
|
+
return binding
|
|
366
|
+
} catch (e) {
|
|
367
|
+
loadErrors.push(e)
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
} else if (process.arch === 'loong64') {
|
|
371
|
+
if (isMusl()) {
|
|
372
|
+
try {
|
|
373
|
+
return require('./system-info.linux-loong64-musl.node')
|
|
374
|
+
} catch (e) {
|
|
375
|
+
loadErrors.push(e)
|
|
376
|
+
}
|
|
377
|
+
try {
|
|
378
|
+
const binding = require('@puniyu/system-info-linux-loong64-musl')
|
|
379
|
+
const bindingPackageVersion = require('@puniyu/system-info-linux-loong64-musl/package.json').version
|
|
380
|
+
if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
381
|
+
throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
382
|
+
}
|
|
383
|
+
return binding
|
|
384
|
+
} catch (e) {
|
|
385
|
+
loadErrors.push(e)
|
|
386
|
+
}
|
|
387
|
+
} else {
|
|
388
|
+
try {
|
|
389
|
+
return require('./system-info.linux-loong64-gnu.node')
|
|
390
|
+
} catch (e) {
|
|
391
|
+
loadErrors.push(e)
|
|
392
|
+
}
|
|
393
|
+
try {
|
|
394
|
+
const binding = require('@puniyu/system-info-linux-loong64-gnu')
|
|
395
|
+
const bindingPackageVersion = require('@puniyu/system-info-linux-loong64-gnu/package.json').version
|
|
396
|
+
if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
397
|
+
throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
398
|
+
}
|
|
399
|
+
return binding
|
|
400
|
+
} catch (e) {
|
|
401
|
+
loadErrors.push(e)
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
} else if (process.arch === 'riscv64') {
|
|
405
|
+
if (isMusl()) {
|
|
406
|
+
try {
|
|
407
|
+
return require('./system-info.linux-riscv64-musl.node')
|
|
408
|
+
} catch (e) {
|
|
409
|
+
loadErrors.push(e)
|
|
410
|
+
}
|
|
411
|
+
try {
|
|
412
|
+
const binding = require('@puniyu/system-info-linux-riscv64-musl')
|
|
413
|
+
const bindingPackageVersion = require('@puniyu/system-info-linux-riscv64-musl/package.json').version
|
|
414
|
+
if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
415
|
+
throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
416
|
+
}
|
|
417
|
+
return binding
|
|
418
|
+
} catch (e) {
|
|
419
|
+
loadErrors.push(e)
|
|
420
|
+
}
|
|
421
|
+
} else {
|
|
422
|
+
try {
|
|
423
|
+
return require('./system-info.linux-riscv64-gnu.node')
|
|
424
|
+
} catch (e) {
|
|
425
|
+
loadErrors.push(e)
|
|
426
|
+
}
|
|
427
|
+
try {
|
|
428
|
+
const binding = require('@puniyu/system-info-linux-riscv64-gnu')
|
|
429
|
+
const bindingPackageVersion = require('@puniyu/system-info-linux-riscv64-gnu/package.json').version
|
|
430
|
+
if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
431
|
+
throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
432
|
+
}
|
|
433
|
+
return binding
|
|
434
|
+
} catch (e) {
|
|
435
|
+
loadErrors.push(e)
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
} else if (process.arch === 'ppc64') {
|
|
439
|
+
try {
|
|
440
|
+
return require('./system-info.linux-ppc64-gnu.node')
|
|
441
|
+
} catch (e) {
|
|
442
|
+
loadErrors.push(e)
|
|
443
|
+
}
|
|
444
|
+
try {
|
|
445
|
+
const binding = require('@puniyu/system-info-linux-ppc64-gnu')
|
|
446
|
+
const bindingPackageVersion = require('@puniyu/system-info-linux-ppc64-gnu/package.json').version
|
|
447
|
+
if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
448
|
+
throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
449
|
+
}
|
|
450
|
+
return binding
|
|
451
|
+
} catch (e) {
|
|
452
|
+
loadErrors.push(e)
|
|
453
|
+
}
|
|
454
|
+
} else if (process.arch === 's390x') {
|
|
455
|
+
try {
|
|
456
|
+
return require('./system-info.linux-s390x-gnu.node')
|
|
457
|
+
} catch (e) {
|
|
458
|
+
loadErrors.push(e)
|
|
459
|
+
}
|
|
460
|
+
try {
|
|
461
|
+
const binding = require('@puniyu/system-info-linux-s390x-gnu')
|
|
462
|
+
const bindingPackageVersion = require('@puniyu/system-info-linux-s390x-gnu/package.json').version
|
|
463
|
+
if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
464
|
+
throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
465
|
+
}
|
|
466
|
+
return binding
|
|
467
|
+
} catch (e) {
|
|
468
|
+
loadErrors.push(e)
|
|
469
|
+
}
|
|
470
|
+
} else {
|
|
471
|
+
loadErrors.push(new Error(`Unsupported architecture on Linux: ${process.arch}`))
|
|
472
|
+
}
|
|
473
|
+
} else if (process.platform === 'openharmony') {
|
|
474
|
+
if (process.arch === 'arm64') {
|
|
475
|
+
try {
|
|
476
|
+
return require('./system-info.openharmony-arm64.node')
|
|
477
|
+
} catch (e) {
|
|
478
|
+
loadErrors.push(e)
|
|
479
|
+
}
|
|
480
|
+
try {
|
|
481
|
+
const binding = require('@puniyu/system-info-openharmony-arm64')
|
|
482
|
+
const bindingPackageVersion = require('@puniyu/system-info-openharmony-arm64/package.json').version
|
|
483
|
+
if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
484
|
+
throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
485
|
+
}
|
|
486
|
+
return binding
|
|
487
|
+
} catch (e) {
|
|
488
|
+
loadErrors.push(e)
|
|
489
|
+
}
|
|
490
|
+
} else if (process.arch === 'x64') {
|
|
491
|
+
try {
|
|
492
|
+
return require('./system-info.openharmony-x64.node')
|
|
493
|
+
} catch (e) {
|
|
494
|
+
loadErrors.push(e)
|
|
495
|
+
}
|
|
496
|
+
try {
|
|
497
|
+
const binding = require('@puniyu/system-info-openharmony-x64')
|
|
498
|
+
const bindingPackageVersion = require('@puniyu/system-info-openharmony-x64/package.json').version
|
|
499
|
+
if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
500
|
+
throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
501
|
+
}
|
|
502
|
+
return binding
|
|
503
|
+
} catch (e) {
|
|
504
|
+
loadErrors.push(e)
|
|
505
|
+
}
|
|
506
|
+
} else if (process.arch === 'arm') {
|
|
507
|
+
try {
|
|
508
|
+
return require('./system-info.openharmony-arm.node')
|
|
509
|
+
} catch (e) {
|
|
510
|
+
loadErrors.push(e)
|
|
511
|
+
}
|
|
512
|
+
try {
|
|
513
|
+
const binding = require('@puniyu/system-info-openharmony-arm')
|
|
514
|
+
const bindingPackageVersion = require('@puniyu/system-info-openharmony-arm/package.json').version
|
|
515
|
+
if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
516
|
+
throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
517
|
+
}
|
|
518
|
+
return binding
|
|
519
|
+
} catch (e) {
|
|
520
|
+
loadErrors.push(e)
|
|
521
|
+
}
|
|
522
|
+
} else {
|
|
523
|
+
loadErrors.push(new Error(`Unsupported architecture on OpenHarmony: ${process.arch}`))
|
|
524
|
+
}
|
|
525
|
+
} else {
|
|
526
|
+
loadErrors.push(new Error(`Unsupported OS: ${process.platform}, architecture: ${process.arch}`))
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
|
|
530
|
+
nativeBinding = requireNative()
|
|
531
|
+
|
|
532
|
+
if (!nativeBinding || process.env.NAPI_RS_FORCE_WASI) {
|
|
533
|
+
let wasiBinding = null
|
|
534
|
+
let wasiBindingError = null
|
|
535
|
+
try {
|
|
536
|
+
wasiBinding = require('./system-info.wasi.cjs')
|
|
537
|
+
nativeBinding = wasiBinding
|
|
538
|
+
} catch (err) {
|
|
539
|
+
if (process.env.NAPI_RS_FORCE_WASI) {
|
|
540
|
+
wasiBindingError = err
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
if (!nativeBinding) {
|
|
544
|
+
try {
|
|
545
|
+
wasiBinding = require('@puniyu/system-info-wasm32-wasi')
|
|
546
|
+
nativeBinding = wasiBinding
|
|
547
|
+
} catch (err) {
|
|
548
|
+
if (process.env.NAPI_RS_FORCE_WASI) {
|
|
549
|
+
wasiBindingError.cause = err
|
|
550
|
+
loadErrors.push(err)
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
}
|
|
554
|
+
if (process.env.NAPI_RS_FORCE_WASI === 'error' && !wasiBinding) {
|
|
555
|
+
const error = new Error('WASI binding not found and NAPI_RS_FORCE_WASI is set to error')
|
|
556
|
+
error.cause = wasiBindingError
|
|
557
|
+
throw error
|
|
558
|
+
}
|
|
559
|
+
}
|
|
560
|
+
|
|
561
|
+
if (!nativeBinding) {
|
|
562
|
+
if (loadErrors.length > 0) {
|
|
563
|
+
throw new Error(
|
|
564
|
+
`Cannot find native binding. ` +
|
|
565
|
+
`npm has a bug related to optional dependencies (https://github.com/npm/cli/issues/4828). ` +
|
|
566
|
+
'Please try `npm i` again after removing both package-lock.json and node_modules directory.',
|
|
567
|
+
{
|
|
568
|
+
cause: loadErrors.reduce((err, cur) => {
|
|
569
|
+
cur.cause = err
|
|
570
|
+
return cur
|
|
571
|
+
}),
|
|
572
|
+
},
|
|
573
|
+
)
|
|
574
|
+
}
|
|
575
|
+
throw new Error(`Failed to load native binding`)
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
const { getCpuInfo, getCurrentNetwork, getCurrentProcessInfo, getDiskInfo, getGpuInfo, getHostInfo, getMemoryInfo, getNetworkInfo, getProcessInfo } = nativeBinding
|
|
579
|
+
export { getCpuInfo }
|
|
580
|
+
export { getCurrentNetwork }
|
|
581
|
+
export { getCurrentProcessInfo }
|
|
582
|
+
export { getDiskInfo }
|
|
583
|
+
export { getGpuInfo }
|
|
584
|
+
export { getHostInfo }
|
|
585
|
+
export { getMemoryInfo }
|
|
586
|
+
export { getNetworkInfo }
|
|
587
|
+
export { getProcessInfo }
|
package/package.json
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@puniyu/system-info",
|
|
3
|
+
"version": "1.1.5",
|
|
4
|
+
"description": "一个用于获取系统信息库",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"author": "puniyu",
|
|
9
|
+
"repository": "https://github.com/puniyu/system-info",
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
"keywords": [
|
|
12
|
+
"napi-rs",
|
|
13
|
+
"system",
|
|
14
|
+
"system-info"
|
|
15
|
+
],
|
|
16
|
+
"files": [
|
|
17
|
+
"dist"
|
|
18
|
+
],
|
|
19
|
+
"napi": {
|
|
20
|
+
"binaryName": "system-info",
|
|
21
|
+
"targets": [
|
|
22
|
+
"x86_64-pc-windows-msvc",
|
|
23
|
+
"x86_64-apple-darwin",
|
|
24
|
+
"x86_64-unknown-linux-gnu",
|
|
25
|
+
"aarch64-unknown-linux-gnu",
|
|
26
|
+
"aarch64-apple-darwin"
|
|
27
|
+
],
|
|
28
|
+
"dtsHeader": "// powered by system_info_core\n"
|
|
29
|
+
},
|
|
30
|
+
"engines": {
|
|
31
|
+
"node": ">= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0"
|
|
32
|
+
},
|
|
33
|
+
"devDependencies": {
|
|
34
|
+
"@napi-rs/cli": "^3.4.1"
|
|
35
|
+
},
|
|
36
|
+
"optionalDependencies": {
|
|
37
|
+
"@puniyu/system-info-win32-x64-msvc": "1.1.5",
|
|
38
|
+
"@puniyu/system-info-darwin-x64": "1.1.5",
|
|
39
|
+
"@puniyu/system-info-linux-x64-gnu": "1.1.5",
|
|
40
|
+
"@puniyu/system-info-linux-arm64-gnu": "1.1.5",
|
|
41
|
+
"@puniyu/system-info-darwin-arm64": "1.1.5"
|
|
42
|
+
},
|
|
43
|
+
"scripts": {
|
|
44
|
+
"artifacts": "napi artifacts",
|
|
45
|
+
"build": "napi build --platform --release -p system_info_node --esm -o dist",
|
|
46
|
+
"create-npm-dirs": "napi create-npm-dirs"
|
|
47
|
+
}
|
|
48
|
+
}
|