Skip to content

Commit fbe7b14

Browse files
committed
move bindings to a different file, shorten function names
1 parent 16e0292 commit fbe7b14

File tree

5 files changed

+329
-160
lines changed

5 files changed

+329
-160
lines changed

bindings.js

Lines changed: 316 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,316 @@
1+
/* tslint:disable */
2+
/* eslint-disable */
3+
/* prettier-ignore */
4+
5+
/* auto-generated by NAPI-RS */
6+
7+
const { existsSync, readFileSync } = require('fs')
8+
const { join } = require('path')
9+
10+
const { platform, arch } = process
11+
12+
let nativeBinding = null
13+
let localFileExisted = false
14+
let loadError = null
15+
16+
function isMusl() {
17+
// For Node 10
18+
if (!process.report || typeof process.report.getReport !== 'function') {
19+
try {
20+
const lddPath = require('child_process').execSync('which ldd').toString().trim()
21+
return readFileSync(lddPath, 'utf8').includes('musl')
22+
} catch (e) {
23+
return true
24+
}
25+
} else {
26+
const { glibcVersionRuntime } = process.report.getReport().header
27+
return !glibcVersionRuntime
28+
}
29+
}
30+
31+
switch (platform) {
32+
case 'android':
33+
switch (arch) {
34+
case 'arm64':
35+
localFileExisted = existsSync(join(__dirname, 'zstd.android-arm64.node'))
36+
try {
37+
if (localFileExisted) {
38+
nativeBinding = require('./zstd.android-arm64.node')
39+
} else {
40+
nativeBinding = require('@mongodb-js/zstd-android-arm64')
41+
}
42+
} catch (e) {
43+
loadError = e
44+
}
45+
break
46+
case 'arm':
47+
localFileExisted = existsSync(join(__dirname, 'zstd.android-arm-eabi.node'))
48+
try {
49+
if (localFileExisted) {
50+
nativeBinding = require('./zstd.android-arm-eabi.node')
51+
} else {
52+
nativeBinding = require('@mongodb-js/zstd-android-arm-eabi')
53+
}
54+
} catch (e) {
55+
loadError = e
56+
}
57+
break
58+
default:
59+
throw new Error(`Unsupported architecture on Android ${arch}`)
60+
}
61+
break
62+
case 'win32':
63+
switch (arch) {
64+
case 'x64':
65+
localFileExisted = existsSync(
66+
join(__dirname, 'zstd.win32-x64-msvc.node')
67+
)
68+
try {
69+
if (localFileExisted) {
70+
nativeBinding = require('./zstd.win32-x64-msvc.node')
71+
} else {
72+
nativeBinding = require('@mongodb-js/zstd-win32-x64-msvc')
73+
}
74+
} catch (e) {
75+
loadError = e
76+
}
77+
break
78+
case 'ia32':
79+
localFileExisted = existsSync(
80+
join(__dirname, 'zstd.win32-ia32-msvc.node')
81+
)
82+
try {
83+
if (localFileExisted) {
84+
nativeBinding = require('./zstd.win32-ia32-msvc.node')
85+
} else {
86+
nativeBinding = require('@mongodb-js/zstd-win32-ia32-msvc')
87+
}
88+
} catch (e) {
89+
loadError = e
90+
}
91+
break
92+
case 'arm64':
93+
localFileExisted = existsSync(
94+
join(__dirname, 'zstd.win32-arm64-msvc.node')
95+
)
96+
try {
97+
if (localFileExisted) {
98+
nativeBinding = require('./zstd.win32-arm64-msvc.node')
99+
} else {
100+
nativeBinding = require('@mongodb-js/zstd-win32-arm64-msvc')
101+
}
102+
} catch (e) {
103+
loadError = e
104+
}
105+
break
106+
default:
107+
throw new Error(`Unsupported architecture on Windows: ${arch}`)
108+
}
109+
break
110+
case 'darwin':
111+
localFileExisted = existsSync(join(__dirname, 'zstd.darwin-universal.node'))
112+
try {
113+
if (localFileExisted) {
114+
nativeBinding = require('./zstd.darwin-universal.node')
115+
} else {
116+
nativeBinding = require('@mongodb-js/zstd-darwin-universal')
117+
}
118+
break
119+
} catch {}
120+
switch (arch) {
121+
case 'x64':
122+
localFileExisted = existsSync(join(__dirname, 'zstd.darwin-x64.node'))
123+
try {
124+
if (localFileExisted) {
125+
nativeBinding = require('./zstd.darwin-x64.node')
126+
} else {
127+
nativeBinding = require('@mongodb-js/zstd-darwin-x64')
128+
}
129+
} catch (e) {
130+
loadError = e
131+
}
132+
break
133+
case 'arm64':
134+
localFileExisted = existsSync(
135+
join(__dirname, 'zstd.darwin-arm64.node')
136+
)
137+
try {
138+
if (localFileExisted) {
139+
nativeBinding = require('./zstd.darwin-arm64.node')
140+
} else {
141+
nativeBinding = require('@mongodb-js/zstd-darwin-arm64')
142+
}
143+
} catch (e) {
144+
loadError = e
145+
}
146+
break
147+
default:
148+
throw new Error(`Unsupported architecture on macOS: ${arch}`)
149+
}
150+
break
151+
case 'freebsd':
152+
if (arch !== 'x64') {
153+
throw new Error(`Unsupported architecture on FreeBSD: ${arch}`)
154+
}
155+
localFileExisted = existsSync(join(__dirname, 'zstd.freebsd-x64.node'))
156+
try {
157+
if (localFileExisted) {
158+
nativeBinding = require('./zstd.freebsd-x64.node')
159+
} else {
160+
nativeBinding = require('@mongodb-js/zstd-freebsd-x64')
161+
}
162+
} catch (e) {
163+
loadError = e
164+
}
165+
break
166+
case 'linux':
167+
switch (arch) {
168+
case 'x64':
169+
if (isMusl()) {
170+
localFileExisted = existsSync(
171+
join(__dirname, 'zstd.linux-x64-musl.node')
172+
)
173+
try {
174+
if (localFileExisted) {
175+
nativeBinding = require('./zstd.linux-x64-musl.node')
176+
} else {
177+
nativeBinding = require('@mongodb-js/zstd-linux-x64-musl')
178+
}
179+
} catch (e) {
180+
loadError = e
181+
}
182+
} else {
183+
localFileExisted = existsSync(
184+
join(__dirname, 'zstd.linux-x64-gnu.node')
185+
)
186+
try {
187+
if (localFileExisted) {
188+
nativeBinding = require('./zstd.linux-x64-gnu.node')
189+
} else {
190+
nativeBinding = require('@mongodb-js/zstd-linux-x64-gnu')
191+
}
192+
} catch (e) {
193+
loadError = e
194+
}
195+
}
196+
break
197+
case 'arm64':
198+
if (isMusl()) {
199+
localFileExisted = existsSync(
200+
join(__dirname, 'zstd.linux-arm64-musl.node')
201+
)
202+
try {
203+
if (localFileExisted) {
204+
nativeBinding = require('./zstd.linux-arm64-musl.node')
205+
} else {
206+
nativeBinding = require('@mongodb-js/zstd-linux-arm64-musl')
207+
}
208+
} catch (e) {
209+
loadError = e
210+
}
211+
} else {
212+
localFileExisted = existsSync(
213+
join(__dirname, 'zstd.linux-arm64-gnu.node')
214+
)
215+
try {
216+
if (localFileExisted) {
217+
nativeBinding = require('./zstd.linux-arm64-gnu.node')
218+
} else {
219+
nativeBinding = require('@mongodb-js/zstd-linux-arm64-gnu')
220+
}
221+
} catch (e) {
222+
loadError = e
223+
}
224+
}
225+
break
226+
case 'arm':
227+
if (isMusl()) {
228+
localFileExisted = existsSync(
229+
join(__dirname, 'zstd.linux-arm-musleabihf.node')
230+
)
231+
try {
232+
if (localFileExisted) {
233+
nativeBinding = require('./zstd.linux-arm-musleabihf.node')
234+
} else {
235+
nativeBinding = require('@mongodb-js/zstd-linux-arm-musleabihf')
236+
}
237+
} catch (e) {
238+
loadError = e
239+
}
240+
} else {
241+
localFileExisted = existsSync(
242+
join(__dirname, 'zstd.linux-arm-gnueabihf.node')
243+
)
244+
try {
245+
if (localFileExisted) {
246+
nativeBinding = require('./zstd.linux-arm-gnueabihf.node')
247+
} else {
248+
nativeBinding = require('@mongodb-js/zstd-linux-arm-gnueabihf')
249+
}
250+
} catch (e) {
251+
loadError = e
252+
}
253+
}
254+
break
255+
case 'riscv64':
256+
if (isMusl()) {
257+
localFileExisted = existsSync(
258+
join(__dirname, 'zstd.linux-riscv64-musl.node')
259+
)
260+
try {
261+
if (localFileExisted) {
262+
nativeBinding = require('./zstd.linux-riscv64-musl.node')
263+
} else {
264+
nativeBinding = require('@mongodb-js/zstd-linux-riscv64-musl')
265+
}
266+
} catch (e) {
267+
loadError = e
268+
}
269+
} else {
270+
localFileExisted = existsSync(
271+
join(__dirname, 'zstd.linux-riscv64-gnu.node')
272+
)
273+
try {
274+
if (localFileExisted) {
275+
nativeBinding = require('./zstd.linux-riscv64-gnu.node')
276+
} else {
277+
nativeBinding = require('@mongodb-js/zstd-linux-riscv64-gnu')
278+
}
279+
} catch (e) {
280+
loadError = e
281+
}
282+
}
283+
break
284+
case 's390x':
285+
localFileExisted = existsSync(
286+
join(__dirname, 'zstd.linux-s390x-gnu.node')
287+
)
288+
try {
289+
if (localFileExisted) {
290+
nativeBinding = require('./zstd.linux-s390x-gnu.node')
291+
} else {
292+
nativeBinding = require('@mongodb-js/zstd-linux-s390x-gnu')
293+
}
294+
} catch (e) {
295+
loadError = e
296+
}
297+
break
298+
default:
299+
throw new Error(`Unsupported architecture on Linux: ${arch}`)
300+
}
301+
break
302+
default:
303+
throw new Error(`Unsupported OS: ${platform}, architecture: ${arch}`)
304+
}
305+
306+
if (!nativeBinding) {
307+
if (loadError) {
308+
throw loadError
309+
}
310+
throw new Error(`Failed to load native binding`)
311+
}
312+
313+
const { compress, decompress } = nativeBinding
314+
315+
module.exports.compress = compress
316+
module.exports.decompress = decompress

index.d.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33

44
/* auto-generated by NAPI-RS */
55

6-
export function compress(data: Buffer, level?: number | undefined | null): Promise<Buffer>
7-
export function decompress(data: Buffer): Promise<Buffer>
6+
export declare function compress(data: Buffer, level?: number | undefined | null): Promise<Buffer>
7+
export declare function decompress(data: Buffer): Promise<Buffer>

0 commit comments

Comments
 (0)