proxy-signals.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.proxySignals = void 0;
  4. const all_signals_js_1 = require("./all-signals.js");
  5. /**
  6. * Starts forwarding signals to `child` through `parent`.
  7. */
  8. const proxySignals = (child) => {
  9. const listeners = new Map();
  10. for (const sig of all_signals_js_1.allSignals) {
  11. const listener = () => {
  12. // some signals can only be received, not sent
  13. try {
  14. child.kill(sig);
  15. /* c8 ignore start */
  16. }
  17. catch (_) { }
  18. /* c8 ignore stop */
  19. };
  20. try {
  21. // if it's a signal this system doesn't recognize, skip it
  22. process.on(sig, listener);
  23. listeners.set(sig, listener);
  24. /* c8 ignore start */
  25. }
  26. catch (_) { }
  27. /* c8 ignore stop */
  28. }
  29. const unproxy = () => {
  30. for (const [sig, listener] of listeners) {
  31. process.removeListener(sig, listener);
  32. }
  33. };
  34. child.on('exit', unproxy);
  35. return unproxy;
  36. };
  37. exports.proxySignals = proxySignals;
  38. //# sourceMappingURL=proxy-signals.js.map