@phpsandbox/sdk 0.0.13 → 0.0.16

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.
@@ -342,6 +342,7 @@ var PHPSandbox = (() => {
342
342
  Transport: () => Transport,
343
343
  createBeacon: () => createBeacon,
344
344
  isBeaconSupported: () => isBeaconSupported,
345
+ once: () => once,
345
346
  timeout: () => timeout
346
347
  });
347
348
 
@@ -600,6 +601,34 @@ var PHPSandbox = (() => {
600
601
  }
601
602
  };
602
603
 
604
+ // src/errors/index.ts
605
+ var PromiseTimeoutError = class extends Error {
606
+ constructor(message, time) {
607
+ super(message);
608
+ this.time = time;
609
+ }
610
+ };
611
+ var SendTimeoutError = class _SendTimeoutError extends PromiseTimeoutError {
612
+ static fromPromiseTimeoutError(error) {
613
+ return new _SendTimeoutError(error.message, error.time);
614
+ }
615
+ };
616
+
617
+ // src/utils/promise.ts
618
+ var timeout = (prom, time) => {
619
+ let timer;
620
+ return Promise.race([
621
+ prom,
622
+ new Promise(
623
+ (_r, rej) => timer = setTimeout(rej, time, new PromiseTimeoutError("Timeout before promise can resolve", time))
624
+ )
625
+ ]).finally(() => clearTimeout(timer));
626
+ };
627
+ var once = (fn) => {
628
+ let result = null;
629
+ return () => result || (result = fn());
630
+ };
631
+
603
632
  // src/terminal.ts
604
633
  var Terminal = class {
605
634
  constructor(okra) {
@@ -662,10 +691,10 @@ var PHPSandbox = (() => {
662
691
  })
663
692
  );
664
693
  });
665
- const kill = () => {
694
+ const kill = once(() => {
666
695
  dispose();
667
696
  return this.okra.invoke("terminal.close", { id });
668
- };
697
+ });
669
698
  const resize = (dimensions) => {
670
699
  this.okra.invoke("terminal.resize", { id, width: dimensions.cols, height: dimensions.rows });
671
700
  };
@@ -2913,30 +2942,6 @@ var PHPSandbox = (() => {
2913
2942
  );
2914
2943
  var reconnecting_websocket_mjs_default = ReconnectingWebSocket;
2915
2944
 
2916
- // src/errors/index.ts
2917
- var PromiseTimeoutError = class extends Error {
2918
- constructor(message, time) {
2919
- super(message);
2920
- this.time = time;
2921
- }
2922
- };
2923
- var SendTimeoutError = class _SendTimeoutError extends PromiseTimeoutError {
2924
- static fromPromiseTimeoutError(error) {
2925
- return new _SendTimeoutError(error.message, error.time);
2926
- }
2927
- };
2928
-
2929
- // src/utils/promise.ts
2930
- var timeout = (prom, time) => {
2931
- let timer;
2932
- return Promise.race([
2933
- prom,
2934
- new Promise(
2935
- (_r, rej) => timer = setTimeout(rej, time, new PromiseTimeoutError("Timeout before promise can resolve", time))
2936
- )
2937
- ]).finally(() => clearTimeout(timer));
2938
- };
2939
-
2940
2945
  // node_modules/isomorphic-ws/browser.js
2941
2946
  var ws = null;
2942
2947
  if (typeof WebSocket !== "undefined") {
@@ -3166,6 +3171,11 @@ var PHPSandbox = (() => {
3166
3171
  }
3167
3172
  listenOnce(event, listener, context) {
3168
3173
  this.eventEmitter.once(event, listener, context);
3174
+ this.disposables.add(`once_${event}_${nanoid()}`, {
3175
+ dispose: () => {
3176
+ this.eventEmitter.removeListener(event, listener);
3177
+ }
3178
+ });
3169
3179
  }
3170
3180
  emit(event, ...data) {
3171
3181
  this.eventEmitter.emit(event, ...data);
@@ -4755,9 +4765,10 @@ var PHPSandbox = (() => {
4755
4765
  return disposable;
4756
4766
  }
4757
4767
  async reconnect() {
4768
+ const whenConnected = this.whenConnected();
4758
4769
  this.socket.reconnect();
4759
4770
  this.initialized = false;
4760
- await this.whenConnected();
4771
+ await whenConnected;
4761
4772
  __privateMethod(this, _NotebookInstance_instances, init_fn).call(this);
4762
4773
  return this.ready().then(() => this);
4763
4774
  }