sane-wasm 0.1.0 → 0.1.1

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/build/libsane.js CHANGED
@@ -978,7 +978,7 @@ function dbg(text) {
978
978
  }
979
979
 
980
980
  var ASM_CONSTS = {
981
- 1061203: ($0, $1, $2) => {
981
+ 1061804: ($0, $1, $2) => {
982
982
  return stringToUTF16(Emval.toValue($0), $1, $2);
983
983
  }
984
984
  };
@@ -987,8 +987,18 @@ function module_set(k, v) {
987
987
  Module[UTF8ToString(k)] = Emval.toValue(v);
988
988
  }
989
989
 
990
+ function em_libusb_event_target() {
991
+ if (ENVIRONMENT_IS_NODE) {
992
+ if (!Module.libusbEventTarget) {
993
+ Module.libusbEventTarget = new EventTarget();
994
+ }
995
+ return Module.libusbEventTarget;
996
+ }
997
+ return globalThis;
998
+ }
999
+
990
1000
  function em_libusb_notify() {
991
- dispatchEvent(new Event("em-libusb"));
1001
+ em_libusb_event_target().dispatchEvent(new Event("em-libusb"));
992
1002
  Object.values(PThread.pthreads).forEach(w => {
993
1003
  w.postMessage({
994
1004
  target: "setimmediate",
@@ -1000,24 +1010,40 @@ function em_libusb_notify() {
1000
1010
  function __asyncjs__em_libusb_wait(timeout) {
1001
1011
  return Asyncify.handleAsync(async () => {
1002
1012
  let onEvent, onEventWorker, timeoutId, intervalId;
1013
+ let parentPort = ENVIRONMENT_IS_WORKER && ENVIRONMENT_IS_NODE && require("node:worker_threads").parentPort;
1003
1014
  try {
1004
1015
  intervalId = setInterval(_em_force_yield_main_thread, 50);
1005
1016
  return await new Promise(resolve => {
1006
1017
  onEvent = () => resolve(0);
1007
- addEventListener("em-libusb", onEvent);
1008
- if (typeof WorkerGlobalScope !== "undefined") {
1009
- onEventWorker = e => {
1010
- if (e.data.cmd == "em-libusb") {
1011
- resolve(0);
1012
- }
1013
- };
1014
- addEventListener("message", onEventWorker);
1018
+ em_libusb_event_target().addEventListener("em-libusb", onEvent);
1019
+ if (ENVIRONMENT_IS_WORKER) {
1020
+ if (ENVIRONMENT_IS_NODE) {
1021
+ onEventWorker = data => {
1022
+ if (data.cmd == "em-libusb") {
1023
+ resolve(0);
1024
+ }
1025
+ };
1026
+ parentPort.on("message", onEventWorker);
1027
+ } else {
1028
+ onEventWorker = e => {
1029
+ if (e.data.cmd == "em-libusb") {
1030
+ resolve(0);
1031
+ }
1032
+ };
1033
+ addEventListener("message", onEventWorker);
1034
+ }
1015
1035
  }
1016
1036
  timeoutId = setTimeout(resolve, timeout, -1);
1017
1037
  });
1018
1038
  } finally {
1019
- removeEventListener("em-libusb", onEvent);
1020
- removeEventListener("message", onEventWorker);
1039
+ em_libusb_event_target().removeEventListener("em-libusb", onEvent);
1040
+ if (ENVIRONMENT_IS_WORKER) {
1041
+ if (ENVIRONMENT_IS_NODE) {
1042
+ parentPort.off("message", onEventWorker);
1043
+ } else {
1044
+ addEventListener("message", onEventWorker);
1045
+ }
1046
+ }
1021
1047
  clearInterval(intervalId);
1022
1048
  clearTimeout(timeoutId);
1023
1049
  }
@@ -8422,7 +8448,7 @@ var ___emscripten_embedded_file_data = Module["___emscripten_embedded_file_data"
8422
8448
 
8423
8449
  var ___start_em_js = Module["___start_em_js"] = 1058876;
8424
8450
 
8425
- var ___stop_em_js = Module["___stop_em_js"] = 1061203;
8451
+ var ___stop_em_js = Module["___stop_em_js"] = 1061804;
8426
8452
 
8427
8453
  Module["addRunDependency"] = addRunDependency;
8428
8454
 
@@ -8567,6 +8593,17 @@ if (Module["noInitialRun"]) shouldRunNow = false;
8567
8593
 
8568
8594
  run();
8569
8595
 
8596
+ {
8597
+ if (ENVIRONMENT_IS_NODE) {
8598
+ if (!globalThis.navigator) {
8599
+ globalThis.navigator = {};
8600
+ }
8601
+ if (!globalThis.navigator.usb) {
8602
+ globalThis.navigator.usb = require("usb").webusb;
8603
+ }
8604
+ }
8605
+ }
8606
+
8570
8607
 
8571
8608
  return LibSANE.ready
8572
8609
  }
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sane-wasm",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "A project to bring the SANE API to the web.",
5
5
  "main": "build/libsane.js",
6
6
  "types": "libsane.d.ts",
@@ -24,5 +24,8 @@
24
24
  "bugs": {
25
25
  "url": "https://github.com/goncalomb/sane-wasm/issues"
26
26
  },
27
- "homepage": "https://github.com/goncalomb/sane-wasm#readme"
27
+ "homepage": "https://github.com/goncalomb/sane-wasm#readme",
28
+ "dependencies": {
29
+ "usb": "^2.10.0"
30
+ }
28
31
  }