index.js 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258
  1. /* tslint:disable */
  2. /* eslint-disable */
  3. /* prettier-ignore */
  4. /* auto-generated by NAPI-RS */
  5. const { existsSync, readFileSync } = require('fs')
  6. const { join } = require('path')
  7. const { platform, arch } = process
  8. let nativeBinding = null
  9. let localFileExisted = false
  10. let loadError = null
  11. function isMusl() {
  12. // For Node 10
  13. if (!process.report || typeof process.report.getReport !== 'function') {
  14. try {
  15. const lddPath = require('child_process').execSync('which ldd').toString().trim();
  16. return readFileSync(lddPath, 'utf8').includes('musl')
  17. } catch (e) {
  18. return true
  19. }
  20. } else {
  21. const { glibcVersionRuntime } = process.report.getReport().header
  22. return !glibcVersionRuntime
  23. }
  24. }
  25. switch (platform) {
  26. case 'android':
  27. switch (arch) {
  28. case 'arm64':
  29. localFileExisted = existsSync(join(__dirname, 'cli.android-arm64.node'))
  30. try {
  31. if (localFileExisted) {
  32. nativeBinding = require('./cli.android-arm64.node')
  33. } else {
  34. nativeBinding = require('@tauri-apps/cli-android-arm64')
  35. }
  36. } catch (e) {
  37. loadError = e
  38. }
  39. break
  40. case 'arm':
  41. localFileExisted = existsSync(join(__dirname, 'cli.android-arm-eabi.node'))
  42. try {
  43. if (localFileExisted) {
  44. nativeBinding = require('./cli.android-arm-eabi.node')
  45. } else {
  46. nativeBinding = require('@tauri-apps/cli-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(
  60. join(__dirname, 'cli.win32-x64-msvc.node')
  61. )
  62. try {
  63. if (localFileExisted) {
  64. nativeBinding = require('./cli.win32-x64-msvc.node')
  65. } else {
  66. nativeBinding = require('@tauri-apps/cli-win32-x64-msvc')
  67. }
  68. } catch (e) {
  69. loadError = e
  70. }
  71. break
  72. case 'ia32':
  73. localFileExisted = existsSync(
  74. join(__dirname, 'cli.win32-ia32-msvc.node')
  75. )
  76. try {
  77. if (localFileExisted) {
  78. nativeBinding = require('./cli.win32-ia32-msvc.node')
  79. } else {
  80. nativeBinding = require('@tauri-apps/cli-win32-ia32-msvc')
  81. }
  82. } catch (e) {
  83. loadError = e
  84. }
  85. break
  86. case 'arm64':
  87. localFileExisted = existsSync(
  88. join(__dirname, 'cli.win32-arm64-msvc.node')
  89. )
  90. try {
  91. if (localFileExisted) {
  92. nativeBinding = require('./cli.win32-arm64-msvc.node')
  93. } else {
  94. nativeBinding = require('@tauri-apps/cli-win32-arm64-msvc')
  95. }
  96. } catch (e) {
  97. loadError = e
  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, 'cli.darwin-universal.node'))
  106. try {
  107. if (localFileExisted) {
  108. nativeBinding = require('./cli.darwin-universal.node')
  109. } else {
  110. nativeBinding = require('@tauri-apps/cli-darwin-universal')
  111. }
  112. break
  113. } catch {}
  114. switch (arch) {
  115. case 'x64':
  116. localFileExisted = existsSync(join(__dirname, 'cli.darwin-x64.node'))
  117. try {
  118. if (localFileExisted) {
  119. nativeBinding = require('./cli.darwin-x64.node')
  120. } else {
  121. nativeBinding = require('@tauri-apps/cli-darwin-x64')
  122. }
  123. } catch (e) {
  124. loadError = e
  125. }
  126. break
  127. case 'arm64':
  128. localFileExisted = existsSync(
  129. join(__dirname, 'cli.darwin-arm64.node')
  130. )
  131. try {
  132. if (localFileExisted) {
  133. nativeBinding = require('./cli.darwin-arm64.node')
  134. } else {
  135. nativeBinding = require('@tauri-apps/cli-darwin-arm64')
  136. }
  137. } catch (e) {
  138. loadError = e
  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, 'cli.freebsd-x64.node'))
  150. try {
  151. if (localFileExisted) {
  152. nativeBinding = require('./cli.freebsd-x64.node')
  153. } else {
  154. nativeBinding = require('@tauri-apps/cli-freebsd-x64')
  155. }
  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, 'cli.linux-x64-musl.node')
  166. )
  167. try {
  168. if (localFileExisted) {
  169. nativeBinding = require('./cli.linux-x64-musl.node')
  170. } else {
  171. nativeBinding = require('@tauri-apps/cli-linux-x64-musl')
  172. }
  173. } catch (e) {
  174. loadError = e
  175. }
  176. } else {
  177. localFileExisted = existsSync(
  178. join(__dirname, 'cli.linux-x64-gnu.node')
  179. )
  180. try {
  181. if (localFileExisted) {
  182. nativeBinding = require('./cli.linux-x64-gnu.node')
  183. } else {
  184. nativeBinding = require('@tauri-apps/cli-linux-x64-gnu')
  185. }
  186. } catch (e) {
  187. loadError = e
  188. }
  189. }
  190. break
  191. case 'arm64':
  192. if (isMusl()) {
  193. localFileExisted = existsSync(
  194. join(__dirname, 'cli.linux-arm64-musl.node')
  195. )
  196. try {
  197. if (localFileExisted) {
  198. nativeBinding = require('./cli.linux-arm64-musl.node')
  199. } else {
  200. nativeBinding = require('@tauri-apps/cli-linux-arm64-musl')
  201. }
  202. } catch (e) {
  203. loadError = e
  204. }
  205. } else {
  206. localFileExisted = existsSync(
  207. join(__dirname, 'cli.linux-arm64-gnu.node')
  208. )
  209. try {
  210. if (localFileExisted) {
  211. nativeBinding = require('./cli.linux-arm64-gnu.node')
  212. } else {
  213. nativeBinding = require('@tauri-apps/cli-linux-arm64-gnu')
  214. }
  215. } catch (e) {
  216. loadError = e
  217. }
  218. }
  219. break
  220. case 'arm':
  221. localFileExisted = existsSync(
  222. join(__dirname, 'cli.linux-arm-gnueabihf.node')
  223. )
  224. try {
  225. if (localFileExisted) {
  226. nativeBinding = require('./cli.linux-arm-gnueabihf.node')
  227. } else {
  228. nativeBinding = require('@tauri-apps/cli-linux-arm-gnueabihf')
  229. }
  230. } catch (e) {
  231. loadError = e
  232. }
  233. break
  234. default:
  235. throw new Error(`Unsupported architecture on Linux: ${arch}`)
  236. }
  237. break
  238. default:
  239. throw new Error(`Unsupported OS: ${platform}, architecture: ${arch}`)
  240. }
  241. if (!nativeBinding) {
  242. if (loadError) {
  243. throw loadError
  244. }
  245. throw new Error(`Failed to load native binding`)
  246. }
  247. const { run, logError } = nativeBinding
  248. module.exports.run = run
  249. module.exports.logError = logError