@marko/run 0.1.10 → 0.1.11

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.
@@ -66,7 +66,7 @@ async function createViteDevServer(config2) {
66
66
  const devServer = await (0, import_vite.createServer)({
67
67
  ...config2,
68
68
  appType: "custom",
69
- server: { middlewareMode: true }
69
+ server: { ...config2 == null ? void 0 : config2.server, middlewareMode: true }
70
70
  });
71
71
  const originalClose = devServer.close;
72
72
  devServer.close = () => {
@@ -124,7 +124,10 @@ async function spawnServer(cmd, args = [], port = 0, env, cwd = process.cwd(), w
124
124
  proc.kill();
125
125
  };
126
126
  try {
127
- await waitForServer(port, wait);
127
+ await Promise.race([
128
+ waitForError(proc, port),
129
+ waitForServer(port, wait)
130
+ ]);
128
131
  } catch (err) {
129
132
  close();
130
133
  throw err;
@@ -161,6 +164,14 @@ async function spawnServerWorker(module2, args = [], port = 0, env) {
161
164
  import_cluster.default.settings.execArgv = originalArgs;
162
165
  }
163
166
  }
167
+ async function waitForError(proc, port) {
168
+ return new Promise((_, reject) => {
169
+ proc.once("error", reject);
170
+ proc.once("exit", (code) => {
171
+ reject(new Error(`Process exited with code ${code} while waiting for server to start on port "${port}".`));
172
+ });
173
+ });
174
+ }
164
175
  async function waitForServer(port, wait = 0) {
165
176
  let remaining = wait > 0 ? wait : Infinity;
166
177
  let connection;
@@ -170,12 +181,29 @@ async function waitForServer(port, wait = 0) {
170
181
  await sleep(100);
171
182
  } else {
172
183
  throw new Error(
173
- `site-write: timeout while wating for server to start on port "${port}".`
184
+ `Timeout while wating for server to start on port "${port}".`
174
185
  );
175
186
  }
176
187
  }
177
188
  return connection;
178
189
  }
190
+ async function waitForWorker(worker, port) {
191
+ return new Promise((resolve, reject) => {
192
+ function listening(address) {
193
+ if (address.port === port) {
194
+ worker.off("listening", listening);
195
+ resolve();
196
+ }
197
+ }
198
+ worker.on("listening", listening).once("error", reject).once("exit", (code) => {
199
+ reject(
200
+ new Error(
201
+ `Worker exited with code ${code} while waiting for dev server to start on port "${port}".`
202
+ )
203
+ );
204
+ });
205
+ });
206
+ }
179
207
  async function getConnection(port) {
180
208
  return new Promise((resolve) => {
181
209
  const connection = import_net.default.connect(port).setNoDelay(true).setKeepAlive(false).on("error", () => {
@@ -275,17 +303,6 @@ function adapter() {
275
303
  }
276
304
  };
277
305
  }
278
- async function waitForWorker(worker, port) {
279
- return new Promise((resolve) => {
280
- function listening(address) {
281
- if (address.port === port) {
282
- worker.off("listening", listening);
283
- resolve();
284
- }
285
- }
286
- worker.on("listening", listening);
287
- });
288
- }
289
306
  // Annotate the CommonJS export names for ESM import in node:
290
307
  0 && (module.exports = {
291
308
  activeDevServers,
@@ -32,7 +32,7 @@ async function createViteDevServer(config2) {
32
32
  const devServer = await createServer({
33
33
  ...config2,
34
34
  appType: "custom",
35
- server: { middlewareMode: true }
35
+ server: { ...config2 == null ? void 0 : config2.server, middlewareMode: true }
36
36
  });
37
37
  const originalClose = devServer.close;
38
38
  devServer.close = () => {
@@ -90,7 +90,10 @@ async function spawnServer(cmd, args = [], port = 0, env, cwd = process.cwd(), w
90
90
  proc.kill();
91
91
  };
92
92
  try {
93
- await waitForServer(port, wait);
93
+ await Promise.race([
94
+ waitForError(proc, port),
95
+ waitForServer(port, wait)
96
+ ]);
94
97
  } catch (err) {
95
98
  close();
96
99
  throw err;
@@ -127,6 +130,14 @@ async function spawnServerWorker(module, args = [], port = 0, env) {
127
130
  cluster.settings.execArgv = originalArgs;
128
131
  }
129
132
  }
133
+ async function waitForError(proc, port) {
134
+ return new Promise((_, reject) => {
135
+ proc.once("error", reject);
136
+ proc.once("exit", (code) => {
137
+ reject(new Error(`Process exited with code ${code} while waiting for server to start on port "${port}".`));
138
+ });
139
+ });
140
+ }
130
141
  async function waitForServer(port, wait = 0) {
131
142
  let remaining = wait > 0 ? wait : Infinity;
132
143
  let connection;
@@ -136,12 +147,29 @@ async function waitForServer(port, wait = 0) {
136
147
  await sleep(100);
137
148
  } else {
138
149
  throw new Error(
139
- `site-write: timeout while wating for server to start on port "${port}".`
150
+ `Timeout while wating for server to start on port "${port}".`
140
151
  );
141
152
  }
142
153
  }
143
154
  return connection;
144
155
  }
156
+ async function waitForWorker(worker, port) {
157
+ return new Promise((resolve, reject) => {
158
+ function listening(address) {
159
+ if (address.port === port) {
160
+ worker.off("listening", listening);
161
+ resolve();
162
+ }
163
+ }
164
+ worker.on("listening", listening).once("error", reject).once("exit", (code) => {
165
+ reject(
166
+ new Error(
167
+ `Worker exited with code ${code} while waiting for dev server to start on port "${port}".`
168
+ )
169
+ );
170
+ });
171
+ });
172
+ }
145
173
  async function getConnection(port) {
146
174
  return new Promise((resolve) => {
147
175
  const connection = net.connect(port).setNoDelay(true).setKeepAlive(false).on("error", () => {
@@ -240,17 +268,6 @@ function adapter() {
240
268
  }
241
269
  };
242
270
  }
243
- async function waitForWorker(worker, port) {
244
- return new Promise((resolve) => {
245
- function listening(address) {
246
- if (address.port === port) {
247
- worker.off("listening", listening);
248
- resolve();
249
- }
250
- }
251
- worker.on("listening", listening);
252
- });
253
- }
254
271
  export {
255
272
  activeDevServers,
256
273
  createDevServer,
@@ -1379,7 +1379,7 @@ function markoRun(opts = {}) {
1379
1379
  const filepath = import_path2.default.join(typesDir, "routes.d.ts");
1380
1380
  const data = await renderRouteTypeInfo(
1381
1381
  routes,
1382
- import_path2.default.relative(typesDir, resolvedRoutesDir),
1382
+ normalizePath(import_path2.default.relative(typesDir, resolvedRoutesDir)),
1383
1383
  adapter
1384
1384
  );
1385
1385
  if (data !== typesFile || !import_fs2.default.existsSync(filepath)) {
@@ -1852,7 +1852,10 @@ async function spawnServer(cmd, args = [], port = 0, env, cwd = process.cwd(), w
1852
1852
  proc.kill();
1853
1853
  };
1854
1854
  try {
1855
- await waitForServer(port, wait);
1855
+ await Promise.race([
1856
+ waitForError(proc, port),
1857
+ waitForServer(port, wait)
1858
+ ]);
1856
1859
  } catch (err) {
1857
1860
  close();
1858
1861
  throw err;
@@ -1862,6 +1865,14 @@ async function spawnServer(cmd, args = [], port = 0, env, cwd = process.cwd(), w
1862
1865
  close
1863
1866
  };
1864
1867
  }
1868
+ async function waitForError(proc, port) {
1869
+ return new Promise((_, reject) => {
1870
+ proc.once("error", reject);
1871
+ proc.once("exit", (code) => {
1872
+ reject(new Error(`Process exited with code ${code} while waiting for server to start on port "${port}".`));
1873
+ });
1874
+ });
1875
+ }
1865
1876
  async function waitForServer(port, wait = 0) {
1866
1877
  let remaining = wait > 0 ? wait : Infinity;
1867
1878
  let connection;
@@ -1871,7 +1882,7 @@ async function waitForServer(port, wait = 0) {
1871
1882
  await sleep(100);
1872
1883
  } else {
1873
1884
  throw new Error(
1874
- `site-write: timeout while wating for server to start on port "${port}".`
1885
+ `Timeout while wating for server to start on port "${port}".`
1875
1886
  );
1876
1887
  }
1877
1888
  }
@@ -1341,7 +1341,7 @@ function markoRun(opts = {}) {
1341
1341
  const filepath = path2.join(typesDir, "routes.d.ts");
1342
1342
  const data = await renderRouteTypeInfo(
1343
1343
  routes,
1344
- path2.relative(typesDir, resolvedRoutesDir),
1344
+ normalizePath(path2.relative(typesDir, resolvedRoutesDir)),
1345
1345
  adapter
1346
1346
  );
1347
1347
  if (data !== typesFile || !fs2.existsSync(filepath)) {
@@ -1814,7 +1814,10 @@ async function spawnServer(cmd, args = [], port = 0, env, cwd = process.cwd(), w
1814
1814
  proc.kill();
1815
1815
  };
1816
1816
  try {
1817
- await waitForServer(port, wait);
1817
+ await Promise.race([
1818
+ waitForError(proc, port),
1819
+ waitForServer(port, wait)
1820
+ ]);
1818
1821
  } catch (err) {
1819
1822
  close();
1820
1823
  throw err;
@@ -1824,6 +1827,14 @@ async function spawnServer(cmd, args = [], port = 0, env, cwd = process.cwd(), w
1824
1827
  close
1825
1828
  };
1826
1829
  }
1830
+ async function waitForError(proc, port) {
1831
+ return new Promise((_, reject) => {
1832
+ proc.once("error", reject);
1833
+ proc.once("exit", (code) => {
1834
+ reject(new Error(`Process exited with code ${code} while waiting for server to start on port "${port}".`));
1835
+ });
1836
+ });
1837
+ }
1827
1838
  async function waitForServer(port, wait = 0) {
1828
1839
  let remaining = wait > 0 ? wait : Infinity;
1829
1840
  let connection;
@@ -1833,7 +1844,7 @@ async function waitForServer(port, wait = 0) {
1833
1844
  await sleep(100);
1834
1845
  } else {
1835
1846
  throw new Error(
1836
- `site-write: timeout while wating for server to start on port "${port}".`
1847
+ `Timeout while wating for server to start on port "${port}".`
1837
1848
  );
1838
1849
  }
1839
1850
  }
@@ -1,5 +1,7 @@
1
1
  /// <reference types="node" />
2
+ /// <reference types="node" />
2
3
  import { type Socket } from "net";
4
+ import { ChildProcess } from "child_process";
3
5
  import { type Worker } from "cluster";
4
6
  export interface SpawnedServer {
5
7
  port: number;
@@ -9,7 +11,9 @@ export declare function parseEnv(envFile: string): Promise<import("dotenv").Dote
9
11
  export declare function loadEnv(envFile: string): void;
10
12
  export declare function spawnServer(cmd: string, args?: string[], port?: number, env?: string | Record<string, string>, cwd?: string, wait?: number): Promise<SpawnedServer>;
11
13
  export declare function spawnServerWorker(module: string, args?: string[], port?: number, env?: string | Record<string, string>): Promise<Worker>;
14
+ export declare function waitForError(proc: ChildProcess, port: number): Promise<void>;
12
15
  export declare function waitForServer(port: number, wait?: number): Promise<Socket>;
16
+ export declare function waitForWorker(worker: Worker, port: number): Promise<void>;
13
17
  export declare function getConnection(port: number): Promise<Socket | null>;
14
18
  export declare function isPortInUse(port: number): Promise<boolean>;
15
19
  export declare function getAvailablePort(): Promise<number>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@marko/run",
3
- "version": "0.1.10",
3
+ "version": "0.1.11",
4
4
  "description": "The Marko application framework.",
5
5
  "license": "MIT",
6
6
  "homepage": "https://github.com/marko-js/run/tree/main/packages/run",