@rspack-debug/binding 1.3.14

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/binding.js ADDED
@@ -0,0 +1,241 @@
1
+ const { existsSync, readFileSync } = require('fs')
2
+ const { join } = require('path')
3
+
4
+ const { platform, arch } = process
5
+
6
+ let nativeBinding = null
7
+ let localFileExisted = false
8
+ let loadError = null
9
+
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) {
17
+ return true
18
+ }
19
+ } else {
20
+ const { glibcVersionRuntime } = process.report.getReport().header
21
+ return !glibcVersionRuntime
22
+ }
23
+ }
24
+
25
+ switch (platform) {
26
+ case 'android':
27
+ switch (arch) {
28
+ case 'arm64':
29
+ localFileExisted = existsSync(join(__dirname, 'rspack.android-arm64.node'))
30
+ try {
31
+ if (localFileExisted) {
32
+ nativeBinding = require('./rspack.android-arm64.node')
33
+ } else {
34
+ nativeBinding = require('@rspack/binding-android-arm64')
35
+ }
36
+ } catch (e) {
37
+ loadError = e
38
+ }
39
+ break
40
+ case 'arm':
41
+ localFileExisted = existsSync(join(__dirname, 'rspack.android-arm-eabi.node'))
42
+ try {
43
+ if (localFileExisted) {
44
+ nativeBinding = require('./rspack.android-arm-eabi.node')
45
+ } else {
46
+ nativeBinding = require('@rspack/binding-android-arm-eabi')
47
+ }
48
+ } catch (e) {
49
+ loadError = e
50
+ }
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(join(__dirname, 'rspack.win32-x64-msvc.node'))
60
+ try {
61
+ if (localFileExisted) {
62
+ nativeBinding = require('./rspack.win32-x64-msvc.node')
63
+ } else {
64
+ nativeBinding = require('@rspack/binding-win32-x64-msvc')
65
+ }
66
+ } catch (e) {
67
+ loadError = e
68
+ }
69
+ break
70
+ case 'ia32':
71
+ localFileExisted = existsSync(join(__dirname, 'rspack.win32-ia32-msvc.node'))
72
+ try {
73
+ if (localFileExisted) {
74
+ nativeBinding = require('./rspack.win32-ia32-msvc.node')
75
+ } else {
76
+ nativeBinding = require('@rspack/binding-win32-ia32-msvc')
77
+ }
78
+ } catch (e) {
79
+ loadError = e
80
+ }
81
+ break
82
+ case 'arm64':
83
+ localFileExisted = existsSync(join(__dirname, 'rspack.win32-arm64-msvc.node'))
84
+ try {
85
+ if (localFileExisted) {
86
+ nativeBinding = require('./rspack.win32-arm64-msvc.node')
87
+ } else {
88
+ nativeBinding = require('@rspack/binding-win32-arm64-msvc')
89
+ }
90
+ } catch (e) {
91
+ loadError = e
92
+ }
93
+ break
94
+ default:
95
+ throw new Error(`Unsupported architecture on Windows: ${arch}`)
96
+ }
97
+ break
98
+ case 'darwin':
99
+ switch (arch) {
100
+ case 'x64':
101
+ localFileExisted = existsSync(join(__dirname, 'rspack.darwin-x64.node'))
102
+ try {
103
+ if (localFileExisted) {
104
+ nativeBinding = require('./rspack.darwin-x64.node')
105
+ } else {
106
+ nativeBinding = require('@rspack/binding-darwin-x64')
107
+ }
108
+ } catch (e) {
109
+ loadError = e
110
+ }
111
+ break
112
+ case 'arm64':
113
+ localFileExisted = existsSync(join(__dirname, 'rspack.darwin-arm64.node'))
114
+ try {
115
+ if (localFileExisted) {
116
+ nativeBinding = require('./rspack.darwin-arm64.node')
117
+ } else {
118
+ nativeBinding = require('@rspack/binding-darwin-arm64')
119
+ }
120
+ } catch (e) {
121
+ loadError = e
122
+ }
123
+ break
124
+ default:
125
+ throw new Error(`Unsupported architecture on macOS: ${arch}`)
126
+ }
127
+ break
128
+ case 'freebsd':
129
+ if (arch !== 'x64') {
130
+ throw new Error(`Unsupported architecture on FreeBSD: ${arch}`)
131
+ }
132
+ localFileExisted = existsSync(join(__dirname, 'rspack.freebsd-x64.node'))
133
+ try {
134
+ if (localFileExisted) {
135
+ nativeBinding = require('./rspack.freebsd-x64.node')
136
+ } else {
137
+ nativeBinding = require('@rspack/binding-freebsd-x64')
138
+ }
139
+ } catch (e) {
140
+ loadError = e
141
+ }
142
+ break
143
+ case 'linux':
144
+ switch (arch) {
145
+ case 'x64':
146
+ if (isMusl()) {
147
+ localFileExisted = existsSync(join(__dirname, 'rspack.linux-x64-musl.node'))
148
+ try {
149
+ if (localFileExisted) {
150
+ nativeBinding = require('./rspack.linux-x64-musl.node')
151
+ } else {
152
+ nativeBinding = require('@rspack/binding-linux-x64-musl')
153
+ }
154
+ } catch (e) {
155
+ loadError = e
156
+ }
157
+ } else {
158
+ localFileExisted = existsSync(join(__dirname, 'rspack.linux-x64-gnu.node'))
159
+ try {
160
+ if (localFileExisted) {
161
+ nativeBinding = require('./rspack.linux-x64-gnu.node')
162
+ } else {
163
+ nativeBinding = require('@rspack/binding-linux-x64-gnu')
164
+ }
165
+ } catch (e) {
166
+ loadError = e
167
+ }
168
+ }
169
+ break
170
+ case 'arm64':
171
+ if (isMusl()) {
172
+ localFileExisted = existsSync(join(__dirname, 'rspack.linux-arm64-musl.node'))
173
+ try {
174
+ if (localFileExisted) {
175
+ nativeBinding = require('./rspack.linux-arm64-musl.node')
176
+ } else {
177
+ nativeBinding = require('@rspack/binding-linux-arm64-musl')
178
+ }
179
+ } catch (e) {
180
+ loadError = e
181
+ }
182
+ } else {
183
+ localFileExisted = existsSync(join(__dirname, 'rspack.linux-arm64-gnu.node'))
184
+ try {
185
+ if (localFileExisted) {
186
+ nativeBinding = require('./rspack.linux-arm64-gnu.node')
187
+ } else {
188
+ nativeBinding = require('@rspack/binding-linux-arm64-gnu')
189
+ }
190
+ } catch (e) {
191
+ loadError = e
192
+ }
193
+ }
194
+ break
195
+ case 'arm':
196
+ localFileExisted = existsSync(join(__dirname, 'rspack.linux-arm-gnueabihf.node'))
197
+ try {
198
+ if (localFileExisted) {
199
+ nativeBinding = require('./rspack.linux-arm-gnueabihf.node')
200
+ } else {
201
+ nativeBinding = require('@rspack/binding-linux-arm-gnueabihf')
202
+ }
203
+ } catch (e) {
204
+ loadError = e
205
+ }
206
+ break
207
+ default:
208
+ throw new Error(`Unsupported architecture on Linux: ${arch}`)
209
+ }
210
+ break
211
+ default:
212
+ throw new Error(`Unsupported OS: ${platform}, architecture: ${arch}`)
213
+ }
214
+
215
+ if (!nativeBinding || process.env.NAPI_RS_FORCE_WASI) {
216
+ try {
217
+ nativeBinding = require('./rspack.wasi.cjs')
218
+ } catch (e) {
219
+ if (process.env.NAPI_RS_FORCE_WASI) {
220
+ loadError = e
221
+ }
222
+ }
223
+ if (!nativeBinding) {
224
+ try {
225
+ nativeBinding = require('@rspack/binding-wasm32-wasi')
226
+ } catch (e) {
227
+ if (process.env.NAPI_RS_FORCE_WASI) {
228
+ loadError = e
229
+ }
230
+ }
231
+ }
232
+ }
233
+
234
+ if (!nativeBinding) {
235
+ if (loadError) {
236
+ throw loadError
237
+ }
238
+ throw new Error(`Failed to load native binding`)
239
+ }
240
+
241
+ module.exports.default = module.exports = nativeBinding
package/package.json ADDED
@@ -0,0 +1,71 @@
1
+ {
2
+ "name": "@rspack-debug/binding",
3
+ "version": "1.3.14",
4
+ "license": "MIT",
5
+ "description": "Node binding for rspack",
6
+ "main": "binding.js",
7
+ "types": "binding.d.ts",
8
+ "publishConfig": {
9
+ "access": "public",
10
+ "provenance": true
11
+ },
12
+ "files": [
13
+ "binding.js",
14
+ "binding.d.ts"
15
+ ],
16
+ "homepage": "https://rspack.rs",
17
+ "bugs": "https://github.com/web-infra-dev/rspack/issues",
18
+ "repository": "web-infra-dev/rspack",
19
+ "devDependencies": {
20
+ "@napi-rs/cli": "3.0.0-alpha.84",
21
+ "@napi-rs/wasm-runtime": "^0.2.10",
22
+ "emnapi": "^1.4.3",
23
+ "typescript": "^5.8.3",
24
+ "@emnapi/core": "^1.4.3"
25
+ },
26
+ "napi": {
27
+ "binaryName": "rspack",
28
+ "packageName": "@rspack/binding",
29
+ "targets": [
30
+ "x86_64-apple-darwin",
31
+ "x86_64-pc-windows-msvc",
32
+ "x86_64-unknown-linux-gnu",
33
+ "x86_64-unknown-linux-musl",
34
+ "x86_64-unknown-freebsd",
35
+ "i686-pc-windows-msvc",
36
+ "armv7-unknown-linux-gnueabihf",
37
+ "aarch64-unknown-linux-gnu",
38
+ "aarch64-apple-darwin",
39
+ "aarch64-unknown-linux-musl",
40
+ "aarch64-pc-windows-msvc"
41
+ ],
42
+ "wasm": {
43
+ "initialMemory": 16384,
44
+ "browser": {
45
+ "fs": true
46
+ }
47
+ }
48
+ },
49
+ "optionalDependencies": {
50
+ "@rspack/binding-win32-arm64-msvc": "npm:@rspack-debug/binding-win32-arm64-msvc@1.3.14",
51
+ "@rspack/binding-linux-arm64-musl": "npm:@rspack-debug/binding-linux-arm64-musl@1.3.14",
52
+ "@rspack/binding-darwin-arm64": "npm:@rspack-debug/binding-darwin-arm64@1.3.14",
53
+ "@rspack/binding-linux-arm64-gnu": "npm:@rspack-debug/binding-linux-arm64-gnu@1.3.14",
54
+ "@rspack/binding-win32-ia32-msvc": "npm:@rspack-debug/binding-win32-ia32-msvc@1.3.14",
55
+ "@rspack/binding-win32-x64-msvc": "npm:@rspack-debug/binding-win32-x64-msvc@1.3.14",
56
+ "@rspack/binding-darwin-x64": "npm:@rspack-debug/binding-darwin-x64@1.3.14",
57
+ "@rspack/binding-linux-x64-musl": "npm:@rspack-debug/binding-linux-x64-musl@1.3.14",
58
+ "@rspack/binding-linux-x64-gnu": "npm:@rspack-debug/binding-linux-x64-gnu@1.3.14"
59
+ },
60
+ "scripts": {
61
+ "build:dev": "node scripts/build.js",
62
+ "build:debug": "node scripts/build.js --profile release-debug",
63
+ "build:ci": "node scripts/build.js --profile ci",
64
+ "build:profiling": "node scripts/build.js --profile profiling",
65
+ "build:release": "node scripts/build.js --profile release",
66
+ "build:dev:wasm": "DISABLE_PLUGIN=1 RUST_TARGET=wasm32-wasip1-threads node scripts/build.js",
67
+ "build:release:wasm": "DISABLE_PLUGIN=1 RUST_TARGET=wasm32-wasip1-threads node scripts/build.js --profile release-wasi",
68
+ "move-binding": "node scripts/move-binding",
69
+ "test": "tsc -p tsconfig.type-test.json"
70
+ }
71
+ }