nacos-sdk-rust-binding-node 0.5.3 → 0.7.0

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/index.js CHANGED
@@ -1,581 +1,253 @@
1
- // prettier-ignore
2
- /* eslint-disable */
3
- // @ts-nocheck
4
- /* auto-generated by NAPI-RS */
1
+ const { existsSync, readFileSync } = require('fs')
2
+ const { join } = require('path')
5
3
 
6
- const { readFileSync } = require('node:fs')
7
- let nativeBinding = null
8
- const loadErrors = []
9
-
10
- const isMusl = () => {
11
- let musl = false
12
- if (process.platform === 'linux') {
13
- musl = isMuslFromFilesystem()
14
- if (musl === null) {
15
- musl = isMuslFromReport()
16
- }
17
- if (musl === null) {
18
- musl = isMuslFromChildProcess()
19
- }
20
- }
21
- return musl
22
- }
23
-
24
- const isFileMusl = (f) => f.includes('libc.musl-') || f.includes('ld-musl-')
4
+ const { platform, arch } = process
25
5
 
26
- const isMuslFromFilesystem = () => {
27
- try {
28
- return readFileSync('/usr/bin/ldd', 'utf-8').includes('musl')
29
- } catch {
30
- return null
31
- }
32
- }
6
+ let nativeBinding = null
7
+ let localFileExisted = false
8
+ let loadError = null
33
9
 
34
- const isMuslFromReport = () => {
35
- let report = null
36
- if (typeof process.report?.getReport === 'function') {
37
- process.report.excludeNetwork = true
38
- report = process.report.getReport()
39
- }
40
- if (!report) {
41
- return null
42
- }
43
- if (report.header && report.header.glibcVersionRuntime) {
44
- return false
45
- }
46
- if (Array.isArray(report.sharedObjects)) {
47
- if (report.sharedObjects.some(isFileMusl)) {
10
+ function isMusl() {
11
+ // For Node 10
12
+ if (!process.report || typeof process.report.getReport !== 'function') {
13
+ try {
14
+ const lddPath = require('child_process').execSync('which ldd').toString().trim();
15
+ return readFileSync(lddPath, 'utf8').includes('musl')
16
+ } catch (e) {
48
17
  return true
49
18
  }
50
- }
51
- return false
52
- }
53
-
54
- const isMuslFromChildProcess = () => {
55
- try {
56
- return require('child_process').execSync('ldd --version', { encoding: 'utf8' }).includes('musl')
57
- } catch (e) {
58
- // If we reach this case, we don't know if the system is musl or not, so is better to just fallback to false
59
- return false
19
+ } else {
20
+ const { glibcVersionRuntime } = process.report.getReport().header
21
+ return !glibcVersionRuntime
60
22
  }
61
23
  }
62
24
 
63
- function requireNative() {
64
- if (process.env.NAPI_RS_NATIVE_LIBRARY_PATH) {
65
- try {
66
- return require(process.env.NAPI_RS_NATIVE_LIBRARY_PATH);
67
- } catch (err) {
68
- loadErrors.push(err)
69
- }
70
- } else if (process.platform === 'android') {
71
- if (process.arch === 'arm64') {
72
- try {
73
- return require('./nacos-sdk-rust-binding-node.android-arm64.node')
74
- } catch (e) {
75
- loadErrors.push(e)
76
- }
77
- try {
78
- const binding = require('nacos-sdk-rust-binding-node-android-arm64')
79
- const bindingPackageVersion = require('nacos-sdk-rust-binding-node-android-arm64/package.json').version
80
- if (bindingPackageVersion !== '0.5.3' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
81
- throw new Error(`Native binding package version mismatch, expected 0.5.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
82
- }
83
- return binding
84
- } catch (e) {
85
- loadErrors.push(e)
86
- }
87
- } else if (process.arch === 'arm') {
88
- try {
89
- return require('./nacos-sdk-rust-binding-node.android-arm-eabi.node')
90
- } catch (e) {
91
- loadErrors.push(e)
92
- }
93
- try {
94
- const binding = require('nacos-sdk-rust-binding-node-android-arm-eabi')
95
- const bindingPackageVersion = require('nacos-sdk-rust-binding-node-android-arm-eabi/package.json').version
96
- if (bindingPackageVersion !== '0.5.3' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
97
- throw new Error(`Native binding package version mismatch, expected 0.5.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
98
- }
99
- return binding
100
- } catch (e) {
101
- loadErrors.push(e)
102
- }
103
- } else {
104
- loadErrors.push(new Error(`Unsupported architecture on Android ${process.arch}`))
105
- }
106
- } else if (process.platform === 'win32') {
107
- if (process.arch === 'x64') {
108
- if (process.config?.variables?.shlib_suffix === 'dll.a' || process.config?.variables?.node_target_type === 'shared_library') {
109
- try {
110
- return require('./nacos-sdk-rust-binding-node.win32-x64-gnu.node')
111
- } catch (e) {
112
- loadErrors.push(e)
113
- }
114
- try {
115
- const binding = require('nacos-sdk-rust-binding-node-win32-x64-gnu')
116
- const bindingPackageVersion = require('nacos-sdk-rust-binding-node-win32-x64-gnu/package.json').version
117
- if (bindingPackageVersion !== '0.5.3' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
118
- throw new Error(`Native binding package version mismatch, expected 0.5.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
119
- }
120
- return binding
121
- } catch (e) {
122
- loadErrors.push(e)
123
- }
124
- } else {
125
- try {
126
- return require('./nacos-sdk-rust-binding-node.win32-x64-msvc.node')
127
- } catch (e) {
128
- loadErrors.push(e)
129
- }
130
- try {
131
- const binding = require('nacos-sdk-rust-binding-node-win32-x64-msvc')
132
- const bindingPackageVersion = require('nacos-sdk-rust-binding-node-win32-x64-msvc/package.json').version
133
- if (bindingPackageVersion !== '0.5.3' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
134
- throw new Error(`Native binding package version mismatch, expected 0.5.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
135
- }
136
- return binding
137
- } catch (e) {
138
- loadErrors.push(e)
139
- }
140
- }
141
- } else if (process.arch === 'ia32') {
142
- try {
143
- return require('./nacos-sdk-rust-binding-node.win32-ia32-msvc.node')
144
- } catch (e) {
145
- loadErrors.push(e)
146
- }
147
- try {
148
- const binding = require('nacos-sdk-rust-binding-node-win32-ia32-msvc')
149
- const bindingPackageVersion = require('nacos-sdk-rust-binding-node-win32-ia32-msvc/package.json').version
150
- if (bindingPackageVersion !== '0.5.3' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
151
- throw new Error(`Native binding package version mismatch, expected 0.5.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
152
- }
153
- return binding
154
- } catch (e) {
155
- loadErrors.push(e)
156
- }
157
- } else if (process.arch === 'arm64') {
158
- try {
159
- return require('./nacos-sdk-rust-binding-node.win32-arm64-msvc.node')
160
- } catch (e) {
161
- loadErrors.push(e)
162
- }
163
- try {
164
- const binding = require('nacos-sdk-rust-binding-node-win32-arm64-msvc')
165
- const bindingPackageVersion = require('nacos-sdk-rust-binding-node-win32-arm64-msvc/package.json').version
166
- if (bindingPackageVersion !== '0.5.3' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
167
- throw new Error(`Native binding package version mismatch, expected 0.5.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
168
- }
169
- return binding
170
- } catch (e) {
171
- loadErrors.push(e)
172
- }
173
- } else {
174
- loadErrors.push(new Error(`Unsupported architecture on Windows: ${process.arch}`))
175
- }
176
- } else if (process.platform === 'darwin') {
177
- try {
178
- return require('./nacos-sdk-rust-binding-node.darwin-universal.node')
179
- } catch (e) {
180
- loadErrors.push(e)
181
- }
182
- try {
183
- const binding = require('nacos-sdk-rust-binding-node-darwin-universal')
184
- const bindingPackageVersion = require('nacos-sdk-rust-binding-node-darwin-universal/package.json').version
185
- if (bindingPackageVersion !== '0.5.3' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
186
- throw new Error(`Native binding package version mismatch, expected 0.5.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
187
- }
188
- return binding
189
- } catch (e) {
190
- loadErrors.push(e)
191
- }
192
- if (process.arch === 'x64') {
193
- try {
194
- return require('./nacos-sdk-rust-binding-node.darwin-x64.node')
195
- } catch (e) {
196
- loadErrors.push(e)
197
- }
198
- try {
199
- const binding = require('nacos-sdk-rust-binding-node-darwin-x64')
200
- const bindingPackageVersion = require('nacos-sdk-rust-binding-node-darwin-x64/package.json').version
201
- if (bindingPackageVersion !== '0.5.3' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
202
- throw new Error(`Native binding package version mismatch, expected 0.5.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
203
- }
204
- return binding
205
- } catch (e) {
206
- loadErrors.push(e)
207
- }
208
- } else if (process.arch === 'arm64') {
209
- try {
210
- return require('./nacos-sdk-rust-binding-node.darwin-arm64.node')
211
- } catch (e) {
212
- loadErrors.push(e)
213
- }
214
- try {
215
- const binding = require('nacos-sdk-rust-binding-node-darwin-arm64')
216
- const bindingPackageVersion = require('nacos-sdk-rust-binding-node-darwin-arm64/package.json').version
217
- if (bindingPackageVersion !== '0.5.3' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
218
- throw new Error(`Native binding package version mismatch, expected 0.5.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
219
- }
220
- return binding
221
- } catch (e) {
222
- loadErrors.push(e)
223
- }
224
- } else {
225
- loadErrors.push(new Error(`Unsupported architecture on macOS: ${process.arch}`))
226
- }
227
- } else if (process.platform === 'freebsd') {
228
- if (process.arch === 'x64') {
229
- try {
230
- return require('./nacos-sdk-rust-binding-node.freebsd-x64.node')
231
- } catch (e) {
232
- loadErrors.push(e)
233
- }
234
- try {
235
- const binding = require('nacos-sdk-rust-binding-node-freebsd-x64')
236
- const bindingPackageVersion = require('nacos-sdk-rust-binding-node-freebsd-x64/package.json').version
237
- if (bindingPackageVersion !== '0.5.3' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
238
- throw new Error(`Native binding package version mismatch, expected 0.5.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
239
- }
240
- return binding
241
- } catch (e) {
242
- loadErrors.push(e)
243
- }
244
- } else if (process.arch === 'arm64') {
245
- try {
246
- return require('./nacos-sdk-rust-binding-node.freebsd-arm64.node')
247
- } catch (e) {
248
- loadErrors.push(e)
249
- }
250
- try {
251
- const binding = require('nacos-sdk-rust-binding-node-freebsd-arm64')
252
- const bindingPackageVersion = require('nacos-sdk-rust-binding-node-freebsd-arm64/package.json').version
253
- if (bindingPackageVersion !== '0.5.3' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
254
- throw new Error(`Native binding package version mismatch, expected 0.5.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
255
- }
256
- return binding
257
- } catch (e) {
258
- loadErrors.push(e)
259
- }
260
- } else {
261
- loadErrors.push(new Error(`Unsupported architecture on FreeBSD: ${process.arch}`))
262
- }
263
- } else if (process.platform === 'linux') {
264
- if (process.arch === 'x64') {
265
- if (isMusl()) {
266
- try {
267
- return require('./nacos-sdk-rust-binding-node.linux-x64-musl.node')
268
- } catch (e) {
269
- loadErrors.push(e)
270
- }
271
- try {
272
- const binding = require('nacos-sdk-rust-binding-node-linux-x64-musl')
273
- const bindingPackageVersion = require('nacos-sdk-rust-binding-node-linux-x64-musl/package.json').version
274
- if (bindingPackageVersion !== '0.5.3' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
275
- throw new Error(`Native binding package version mismatch, expected 0.5.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
25
+ switch (platform) {
26
+ case 'android':
27
+ switch (arch) {
28
+ case 'arm64':
29
+ localFileExisted = existsSync(join(__dirname, 'nacos-sdk-rust-binding-node.android-arm64.node'))
30
+ try {
31
+ if (localFileExisted) {
32
+ nativeBinding = require('./nacos-sdk-rust-binding-node.android-arm64.node')
33
+ } else {
34
+ nativeBinding = require('nacos-sdk-rust-binding-node-android-arm64')
276
35
  }
277
- return binding
278
- } catch (e) {
279
- loadErrors.push(e)
280
- }
281
- } else {
282
- try {
283
- return require('./nacos-sdk-rust-binding-node.linux-x64-gnu.node')
284
36
  } catch (e) {
285
- loadErrors.push(e)
37
+ loadError = e
286
38
  }
39
+ break
40
+ case 'arm':
41
+ localFileExisted = existsSync(join(__dirname, 'nacos-sdk-rust-binding-node.android-arm-eabi.node'))
287
42
  try {
288
- const binding = require('nacos-sdk-rust-binding-node-linux-x64-gnu')
289
- const bindingPackageVersion = require('nacos-sdk-rust-binding-node-linux-x64-gnu/package.json').version
290
- if (bindingPackageVersion !== '0.5.3' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
291
- throw new Error(`Native binding package version mismatch, expected 0.5.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
43
+ if (localFileExisted) {
44
+ nativeBinding = require('./nacos-sdk-rust-binding-node.android-arm-eabi.node')
45
+ } else {
46
+ nativeBinding = require('nacos-sdk-rust-binding-node-android-arm-eabi')
292
47
  }
293
- return binding
294
- } catch (e) {
295
- loadErrors.push(e)
296
- }
297
- }
298
- } else if (process.arch === 'arm64') {
299
- if (isMusl()) {
300
- try {
301
- return require('./nacos-sdk-rust-binding-node.linux-arm64-musl.node')
302
48
  } catch (e) {
303
- loadErrors.push(e)
49
+ loadError = e
304
50
  }
305
- try {
306
- const binding = require('nacos-sdk-rust-binding-node-linux-arm64-musl')
307
- const bindingPackageVersion = require('nacos-sdk-rust-binding-node-linux-arm64-musl/package.json').version
308
- if (bindingPackageVersion !== '0.5.3' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
309
- throw new Error(`Native binding package version mismatch, expected 0.5.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
51
+ break
52
+ default:
53
+ throw new Error(`Unsupported architecture on Android ${arch}`)
54
+ }
55
+ break
56
+ case 'win32':
57
+ switch (arch) {
58
+ case 'x64':
59
+ localFileExisted = existsSync(
60
+ join(__dirname, 'nacos-sdk-rust-binding-node.win32-x64-msvc.node')
61
+ )
62
+ try {
63
+ if (localFileExisted) {
64
+ nativeBinding = require('./nacos-sdk-rust-binding-node.win32-x64-msvc.node')
65
+ } else {
66
+ nativeBinding = require('nacos-sdk-rust-binding-node-win32-x64-msvc')
310
67
  }
311
- return binding
312
- } catch (e) {
313
- loadErrors.push(e)
314
- }
315
- } else {
316
- try {
317
- return require('./nacos-sdk-rust-binding-node.linux-arm64-gnu.node')
318
68
  } catch (e) {
319
- loadErrors.push(e)
69
+ loadError = e
320
70
  }
71
+ break
72
+ case 'ia32':
73
+ localFileExisted = existsSync(
74
+ join(__dirname, 'nacos-sdk-rust-binding-node.win32-ia32-msvc.node')
75
+ )
321
76
  try {
322
- const binding = require('nacos-sdk-rust-binding-node-linux-arm64-gnu')
323
- const bindingPackageVersion = require('nacos-sdk-rust-binding-node-linux-arm64-gnu/package.json').version
324
- if (bindingPackageVersion !== '0.5.3' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
325
- throw new Error(`Native binding package version mismatch, expected 0.5.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
77
+ if (localFileExisted) {
78
+ nativeBinding = require('./nacos-sdk-rust-binding-node.win32-ia32-msvc.node')
79
+ } else {
80
+ nativeBinding = require('nacos-sdk-rust-binding-node-win32-ia32-msvc')
326
81
  }
327
- return binding
328
- } catch (e) {
329
- loadErrors.push(e)
330
- }
331
- }
332
- } else if (process.arch === 'arm') {
333
- if (isMusl()) {
334
- try {
335
- return require('./nacos-sdk-rust-binding-node.linux-arm-musleabihf.node')
336
82
  } catch (e) {
337
- loadErrors.push(e)
83
+ loadError = e
338
84
  }
85
+ break
86
+ case 'arm64':
87
+ localFileExisted = existsSync(
88
+ join(__dirname, 'nacos-sdk-rust-binding-node.win32-arm64-msvc.node')
89
+ )
339
90
  try {
340
- const binding = require('nacos-sdk-rust-binding-node-linux-arm-musleabihf')
341
- const bindingPackageVersion = require('nacos-sdk-rust-binding-node-linux-arm-musleabihf/package.json').version
342
- if (bindingPackageVersion !== '0.5.3' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
343
- throw new Error(`Native binding package version mismatch, expected 0.5.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
91
+ if (localFileExisted) {
92
+ nativeBinding = require('./nacos-sdk-rust-binding-node.win32-arm64-msvc.node')
93
+ } else {
94
+ nativeBinding = require('nacos-sdk-rust-binding-node-win32-arm64-msvc')
344
95
  }
345
- return binding
346
96
  } catch (e) {
347
- loadErrors.push(e)
97
+ loadError = e
348
98
  }
99
+ break
100
+ default:
101
+ throw new Error(`Unsupported architecture on Windows: ${arch}`)
102
+ }
103
+ break
104
+ case 'darwin':
105
+ localFileExisted = existsSync(join(__dirname, 'nacos-sdk-rust-binding-node.darwin-universal.node'))
106
+ try {
107
+ if (localFileExisted) {
108
+ nativeBinding = require('./nacos-sdk-rust-binding-node.darwin-universal.node')
349
109
  } else {
350
- try {
351
- return require('./nacos-sdk-rust-binding-node.linux-arm-gnueabihf.node')
352
- } catch (e) {
353
- loadErrors.push(e)
354
- }
355
- try {
356
- const binding = require('nacos-sdk-rust-binding-node-linux-arm-gnueabihf')
357
- const bindingPackageVersion = require('nacos-sdk-rust-binding-node-linux-arm-gnueabihf/package.json').version
358
- if (bindingPackageVersion !== '0.5.3' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
359
- throw new Error(`Native binding package version mismatch, expected 0.5.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
110
+ nativeBinding = require('nacos-sdk-rust-binding-node-darwin-universal')
111
+ }
112
+ break
113
+ } catch {}
114
+ switch (arch) {
115
+ case 'x64':
116
+ localFileExisted = existsSync(join(__dirname, 'nacos-sdk-rust-binding-node.darwin-x64.node'))
117
+ try {
118
+ if (localFileExisted) {
119
+ nativeBinding = require('./nacos-sdk-rust-binding-node.darwin-x64.node')
120
+ } else {
121
+ nativeBinding = require('nacos-sdk-rust-binding-node-darwin-x64')
360
122
  }
361
- return binding
362
- } catch (e) {
363
- loadErrors.push(e)
364
- }
365
- }
366
- } else if (process.arch === 'loong64') {
367
- if (isMusl()) {
368
- try {
369
- return require('./nacos-sdk-rust-binding-node.linux-loong64-musl.node')
370
123
  } catch (e) {
371
- loadErrors.push(e)
124
+ loadError = e
372
125
  }
126
+ break
127
+ case 'arm64':
128
+ localFileExisted = existsSync(
129
+ join(__dirname, 'nacos-sdk-rust-binding-node.darwin-arm64.node')
130
+ )
373
131
  try {
374
- const binding = require('nacos-sdk-rust-binding-node-linux-loong64-musl')
375
- const bindingPackageVersion = require('nacos-sdk-rust-binding-node-linux-loong64-musl/package.json').version
376
- if (bindingPackageVersion !== '0.5.3' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
377
- throw new Error(`Native binding package version mismatch, expected 0.5.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
132
+ if (localFileExisted) {
133
+ nativeBinding = require('./nacos-sdk-rust-binding-node.darwin-arm64.node')
134
+ } else {
135
+ nativeBinding = require('nacos-sdk-rust-binding-node-darwin-arm64')
378
136
  }
379
- return binding
380
137
  } catch (e) {
381
- loadErrors.push(e)
138
+ loadError = e
382
139
  }
140
+ break
141
+ default:
142
+ throw new Error(`Unsupported architecture on macOS: ${arch}`)
143
+ }
144
+ break
145
+ case 'freebsd':
146
+ if (arch !== 'x64') {
147
+ throw new Error(`Unsupported architecture on FreeBSD: ${arch}`)
148
+ }
149
+ localFileExisted = existsSync(join(__dirname, 'nacos-sdk-rust-binding-node.freebsd-x64.node'))
150
+ try {
151
+ if (localFileExisted) {
152
+ nativeBinding = require('./nacos-sdk-rust-binding-node.freebsd-x64.node')
383
153
  } else {
384
- try {
385
- return require('./nacos-sdk-rust-binding-node.linux-loong64-gnu.node')
386
- } catch (e) {
387
- loadErrors.push(e)
388
- }
389
- try {
390
- const binding = require('nacos-sdk-rust-binding-node-linux-loong64-gnu')
391
- const bindingPackageVersion = require('nacos-sdk-rust-binding-node-linux-loong64-gnu/package.json').version
392
- if (bindingPackageVersion !== '0.5.3' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
393
- throw new Error(`Native binding package version mismatch, expected 0.5.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
394
- }
395
- return binding
396
- } catch (e) {
397
- loadErrors.push(e)
398
- }
154
+ nativeBinding = require('nacos-sdk-rust-binding-node-freebsd-x64')
399
155
  }
400
- } else if (process.arch === 'riscv64') {
401
- if (isMusl()) {
402
- try {
403
- return require('./nacos-sdk-rust-binding-node.linux-riscv64-musl.node')
404
- } catch (e) {
405
- loadErrors.push(e)
406
- }
407
- try {
408
- const binding = require('nacos-sdk-rust-binding-node-linux-riscv64-musl')
409
- const bindingPackageVersion = require('nacos-sdk-rust-binding-node-linux-riscv64-musl/package.json').version
410
- if (bindingPackageVersion !== '0.5.3' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
411
- throw new Error(`Native binding package version mismatch, expected 0.5.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
156
+ } catch (e) {
157
+ loadError = e
158
+ }
159
+ break
160
+ case 'linux':
161
+ switch (arch) {
162
+ case 'x64':
163
+ if (isMusl()) {
164
+ localFileExisted = existsSync(
165
+ join(__dirname, 'nacos-sdk-rust-binding-node.linux-x64-musl.node')
166
+ )
167
+ try {
168
+ if (localFileExisted) {
169
+ nativeBinding = require('./nacos-sdk-rust-binding-node.linux-x64-musl.node')
170
+ } else {
171
+ nativeBinding = require('nacos-sdk-rust-binding-node-linux-x64-musl')
172
+ }
173
+ } catch (e) {
174
+ loadError = e
175
+ }
176
+ } else {
177
+ localFileExisted = existsSync(
178
+ join(__dirname, 'nacos-sdk-rust-binding-node.linux-x64-gnu.node')
179
+ )
180
+ try {
181
+ if (localFileExisted) {
182
+ nativeBinding = require('./nacos-sdk-rust-binding-node.linux-x64-gnu.node')
183
+ } else {
184
+ nativeBinding = require('nacos-sdk-rust-binding-node-linux-x64-gnu')
185
+ }
186
+ } catch (e) {
187
+ loadError = e
412
188
  }
413
- return binding
414
- } catch (e) {
415
- loadErrors.push(e)
416
189
  }
417
- } else {
418
- try {
419
- return require('./nacos-sdk-rust-binding-node.linux-riscv64-gnu.node')
420
- } catch (e) {
421
- loadErrors.push(e)
190
+ break
191
+ case 'arm64':
192
+ if (isMusl()) {
193
+ localFileExisted = existsSync(
194
+ join(__dirname, 'nacos-sdk-rust-binding-node.linux-arm64-musl.node')
195
+ )
196
+ try {
197
+ if (localFileExisted) {
198
+ nativeBinding = require('./nacos-sdk-rust-binding-node.linux-arm64-musl.node')
199
+ } else {
200
+ nativeBinding = require('nacos-sdk-rust-binding-node-linux-arm64-musl')
201
+ }
202
+ } catch (e) {
203
+ loadError = e
204
+ }
205
+ } else {
206
+ localFileExisted = existsSync(
207
+ join(__dirname, 'nacos-sdk-rust-binding-node.linux-arm64-gnu.node')
208
+ )
209
+ try {
210
+ if (localFileExisted) {
211
+ nativeBinding = require('./nacos-sdk-rust-binding-node.linux-arm64-gnu.node')
212
+ } else {
213
+ nativeBinding = require('nacos-sdk-rust-binding-node-linux-arm64-gnu')
214
+ }
215
+ } catch (e) {
216
+ loadError = e
217
+ }
422
218
  }
219
+ break
220
+ case 'arm':
221
+ localFileExisted = existsSync(
222
+ join(__dirname, 'nacos-sdk-rust-binding-node.linux-arm-gnueabihf.node')
223
+ )
423
224
  try {
424
- const binding = require('nacos-sdk-rust-binding-node-linux-riscv64-gnu')
425
- const bindingPackageVersion = require('nacos-sdk-rust-binding-node-linux-riscv64-gnu/package.json').version
426
- if (bindingPackageVersion !== '0.5.3' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
427
- throw new Error(`Native binding package version mismatch, expected 0.5.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
225
+ if (localFileExisted) {
226
+ nativeBinding = require('./nacos-sdk-rust-binding-node.linux-arm-gnueabihf.node')
227
+ } else {
228
+ nativeBinding = require('nacos-sdk-rust-binding-node-linux-arm-gnueabihf')
428
229
  }
429
- return binding
430
230
  } catch (e) {
431
- loadErrors.push(e)
432
- }
433
- }
434
- } else if (process.arch === 'ppc64') {
435
- try {
436
- return require('./nacos-sdk-rust-binding-node.linux-ppc64-gnu.node')
437
- } catch (e) {
438
- loadErrors.push(e)
439
- }
440
- try {
441
- const binding = require('nacos-sdk-rust-binding-node-linux-ppc64-gnu')
442
- const bindingPackageVersion = require('nacos-sdk-rust-binding-node-linux-ppc64-gnu/package.json').version
443
- if (bindingPackageVersion !== '0.5.3' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
444
- throw new Error(`Native binding package version mismatch, expected 0.5.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
445
- }
446
- return binding
447
- } catch (e) {
448
- loadErrors.push(e)
449
- }
450
- } else if (process.arch === 's390x') {
451
- try {
452
- return require('./nacos-sdk-rust-binding-node.linux-s390x-gnu.node')
453
- } catch (e) {
454
- loadErrors.push(e)
455
- }
456
- try {
457
- const binding = require('nacos-sdk-rust-binding-node-linux-s390x-gnu')
458
- const bindingPackageVersion = require('nacos-sdk-rust-binding-node-linux-s390x-gnu/package.json').version
459
- if (bindingPackageVersion !== '0.5.3' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
460
- throw new Error(`Native binding package version mismatch, expected 0.5.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
461
- }
462
- return binding
463
- } catch (e) {
464
- loadErrors.push(e)
465
- }
466
- } else {
467
- loadErrors.push(new Error(`Unsupported architecture on Linux: ${process.arch}`))
468
- }
469
- } else if (process.platform === 'openharmony') {
470
- if (process.arch === 'arm64') {
471
- try {
472
- return require('./nacos-sdk-rust-binding-node.openharmony-arm64.node')
473
- } catch (e) {
474
- loadErrors.push(e)
475
- }
476
- try {
477
- const binding = require('nacos-sdk-rust-binding-node-openharmony-arm64')
478
- const bindingPackageVersion = require('nacos-sdk-rust-binding-node-openharmony-arm64/package.json').version
479
- if (bindingPackageVersion !== '0.5.3' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
480
- throw new Error(`Native binding package version mismatch, expected 0.5.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
481
- }
482
- return binding
483
- } catch (e) {
484
- loadErrors.push(e)
485
- }
486
- } else if (process.arch === 'x64') {
487
- try {
488
- return require('./nacos-sdk-rust-binding-node.openharmony-x64.node')
489
- } catch (e) {
490
- loadErrors.push(e)
491
- }
492
- try {
493
- const binding = require('nacos-sdk-rust-binding-node-openharmony-x64')
494
- const bindingPackageVersion = require('nacos-sdk-rust-binding-node-openharmony-x64/package.json').version
495
- if (bindingPackageVersion !== '0.5.3' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
496
- throw new Error(`Native binding package version mismatch, expected 0.5.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
231
+ loadError = e
497
232
  }
498
- return binding
499
- } catch (e) {
500
- loadErrors.push(e)
501
- }
502
- } else if (process.arch === 'arm') {
503
- try {
504
- return require('./nacos-sdk-rust-binding-node.openharmony-arm.node')
505
- } catch (e) {
506
- loadErrors.push(e)
507
- }
508
- try {
509
- const binding = require('nacos-sdk-rust-binding-node-openharmony-arm')
510
- const bindingPackageVersion = require('nacos-sdk-rust-binding-node-openharmony-arm/package.json').version
511
- if (bindingPackageVersion !== '0.5.3' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
512
- throw new Error(`Native binding package version mismatch, expected 0.5.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
513
- }
514
- return binding
515
- } catch (e) {
516
- loadErrors.push(e)
517
- }
518
- } else {
519
- loadErrors.push(new Error(`Unsupported architecture on OpenHarmony: ${process.arch}`))
233
+ break
234
+ default:
235
+ throw new Error(`Unsupported architecture on Linux: ${arch}`)
520
236
  }
521
- } else {
522
- loadErrors.push(new Error(`Unsupported OS: ${process.platform}, architecture: ${process.arch}`))
523
- }
524
- }
525
-
526
- nativeBinding = requireNative()
527
-
528
- if (!nativeBinding || process.env.NAPI_RS_FORCE_WASI) {
529
- let wasiBinding = null
530
- let wasiBindingError = null
531
- try {
532
- wasiBinding = require('./nacos-sdk-rust-binding-node.wasi.cjs')
533
- nativeBinding = wasiBinding
534
- } catch (err) {
535
- if (process.env.NAPI_RS_FORCE_WASI) {
536
- wasiBindingError = err
537
- }
538
- }
539
- if (!nativeBinding || process.env.NAPI_RS_FORCE_WASI) {
540
- try {
541
- wasiBinding = require('nacos-sdk-rust-binding-node-wasm32-wasi')
542
- nativeBinding = wasiBinding
543
- } catch (err) {
544
- if (process.env.NAPI_RS_FORCE_WASI) {
545
- if (!wasiBindingError) {
546
- wasiBindingError = err
547
- } else {
548
- wasiBindingError.cause = err
549
- }
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
- }
237
+ break
238
+ default:
239
+ throw new Error(`Unsupported OS: ${platform}, architecture: ${arch}`)
559
240
  }
560
241
 
561
242
  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
- )
243
+ if (loadError) {
244
+ throw loadError
574
245
  }
575
246
  throw new Error(`Failed to load native binding`)
576
247
  }
577
248
 
578
- module.exports = nativeBinding
579
- module.exports.NacosConfigClient = nativeBinding.NacosConfigClient
580
- module.exports.NacosNamingClient = nativeBinding.NacosNamingClient
581
- module.exports.sum = nativeBinding.sum
249
+ const { sum, NacosConfigClient, NacosNamingClient } = nativeBinding
250
+
251
+ module.exports.sum = sum
252
+ module.exports.NacosConfigClient = NacosConfigClient
253
+ module.exports.NacosNamingClient = NacosNamingClient