@php-wasm/util 0.5.5 → 0.6.0

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.
Files changed (2) hide show
  1. package/index.js +36 -25
  2. package/package.json +2 -2
package/index.js CHANGED
@@ -111,19 +111,43 @@ function createSpawnHandler(program) {
111
111
  return function(command) {
112
112
  const childProcess = new ChildProcess();
113
113
  const processApi = new ProcessApi(childProcess);
114
- setTimeout(() => {
115
- program(command, processApi);
114
+ setTimeout(async () => {
115
+ await program(command, processApi);
116
+ childProcess.emit("spawn", true);
116
117
  });
117
118
  return childProcess;
118
119
  };
119
120
  }
120
- var ProcessApi = class {
121
+ var EventEmitter = class {
122
+ constructor() {
123
+ this.listeners = {};
124
+ }
125
+ emit(eventName, data) {
126
+ if (this.listeners[eventName]) {
127
+ this.listeners[eventName].forEach(function(listener) {
128
+ listener(data);
129
+ });
130
+ }
131
+ }
132
+ on(eventName, listener) {
133
+ if (!this.listeners[eventName]) {
134
+ this.listeners[eventName] = [];
135
+ }
136
+ this.listeners[eventName].push(listener);
137
+ }
138
+ };
139
+ var ProcessApi = class extends EventEmitter {
121
140
  constructor(childProcess) {
141
+ super();
122
142
  this.childProcess = childProcess;
123
143
  this.exited = false;
124
144
  this.stdinData = [];
125
145
  childProcess.on("stdin", (data) => {
126
- this.stdinData.push(data);
146
+ if (this.stdinData) {
147
+ this.stdinData.push(data.slice());
148
+ } else {
149
+ this.emit("stdin", data);
150
+ }
127
151
  });
128
152
  }
129
153
  stdout(data) {
@@ -145,32 +169,19 @@ var ProcessApi = class {
145
169
  }
146
170
  }
147
171
  flushStdin() {
148
- const data = this.stdinData.join("");
149
- this.stdinData = [];
150
- return data;
151
- }
152
- };
153
- var EventEmitter = class {
154
- constructor() {
155
- this.listeners = {};
156
- }
157
- emit(eventName, data) {
158
- if (this.listeners[eventName]) {
159
- this.listeners[eventName].forEach(function(listener) {
160
- listener(data);
161
- });
162
- }
163
- }
164
- on(eventName, listener) {
165
- if (!this.listeners[eventName]) {
166
- this.listeners[eventName] = [];
172
+ if (this.stdinData) {
173
+ for (let i = 0; i < this.stdinData.length; i++) {
174
+ this.emit("stdin", this.stdinData[i]);
175
+ }
167
176
  }
168
- this.listeners[eventName].push(listener);
177
+ this.stdinData = null;
169
178
  }
170
179
  };
180
+ var lastPid = 9743;
171
181
  var ChildProcess = class extends EventEmitter {
172
- constructor() {
182
+ constructor(pid = lastPid++) {
173
183
  super();
184
+ this.pid = pid;
174
185
  this.stdout = new EventEmitter();
175
186
  this.stderr = new EventEmitter();
176
187
  const self = this;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@php-wasm/util",
3
- "version": "0.5.5",
3
+ "version": "0.6.0",
4
4
  "type": "commonjs",
5
5
  "typedoc": {
6
6
  "entryPoint": "./src/index.ts",
@@ -12,7 +12,7 @@
12
12
  "access": "public",
13
13
  "directory": "../../../dist/packages/php-wasm/util"
14
14
  },
15
- "gitHead": "1ec8131ad189a9d77ec1ecbfdf0f82abb6aeb96a",
15
+ "gitHead": "3f137306ec8e3b10ec0674a1fe69ee43349edb4a",
16
16
  "engines": {
17
17
  "node": ">=18.18.2",
18
18
  "npm": ">=8.11.0"