@scrymore/scry-sbcov 0.8.0-next.20261007180431 → 0.8.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.
|
@@ -3,15 +3,6 @@
|
|
|
3
3
|
* Serves a built Storybook for capture, on a port nothing else can be holding.
|
|
4
4
|
*/
|
|
5
5
|
import { type BuiltStoryIndex } from './built-story-index.js';
|
|
6
|
-
/**
|
|
7
|
-
* How long to wait for the server to answer, ms. It was a hard-coded 30 s and lost dashboard main
|
|
8
|
-
* builds 352 and 354 on a loaded box (F15); 120 s covers that and a failure still names its limit.
|
|
9
|
-
*/
|
|
10
|
-
export declare const DEFAULT_SERVER_READY_TIMEOUT_MS = 120000;
|
|
11
|
-
/** Environment variable that overrides DEFAULT_SERVER_READY_TIMEOUT_MS (whole milliseconds, > 0). */
|
|
12
|
-
export declare const READY_TIMEOUT_ENV = "SBCOV_STATIC_SERVER_TIMEOUT_MS";
|
|
13
|
-
/** The readiness wait for this run: the env value when it is a positive integer, else the default (with a warning). */
|
|
14
|
-
export declare function resolveReadyTimeoutMs(env?: Record<string, string | undefined>, warn?: (message: string) => void): number;
|
|
15
6
|
export interface StaticServer {
|
|
16
7
|
/** Base URL to point the browser at. */
|
|
17
8
|
url: string;
|
|
@@ -38,9 +29,7 @@ export declare function reserveEphemeralPort(): Promise<number>;
|
|
|
38
29
|
/**
|
|
39
30
|
* Serve `staticDir` and resolve once it actually answers.
|
|
40
31
|
*/
|
|
41
|
-
export declare function startStaticServer(staticDir: string, verbose: boolean, buildCommand?: ServerCommand
|
|
42
|
-
readyTimeoutMs?: number;
|
|
43
|
-
}): Promise<StaticServer>;
|
|
32
|
+
export declare function startStaticServer(staticDir: string, verbose: boolean, buildCommand?: ServerCommand): Promise<StaticServer>;
|
|
44
33
|
/**
|
|
45
34
|
* Confirm the server on `url` is serving the build we intend to capture.
|
|
46
35
|
*
|
|
@@ -55,16 +44,4 @@ export declare function startStaticServer(staticDir: string, verbose: boolean, b
|
|
|
55
44
|
* to describe the same build, not merely a compatible one.
|
|
56
45
|
*/
|
|
57
46
|
export declare function verifyServedBuild(url: string, staticDir: string, built: BuiltStoryIndex, captureIds: readonly string[]): Promise<void>;
|
|
58
|
-
/** The clock, the sleep and the request, replaceable so a 45 s start can be tested in no time. */
|
|
59
|
-
export interface WaitDeps {
|
|
60
|
-
now: () => number;
|
|
61
|
-
sleep: (ms: number) => Promise<void>;
|
|
62
|
-
fetch: (url: string) => Promise<{
|
|
63
|
-
ok: boolean;
|
|
64
|
-
}>;
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Poll until the server answers, or explain why it never will.
|
|
68
|
-
*/
|
|
69
|
-
export declare function waitForServer(url: string, timeout: number, reasonToStop: () => string | null, deps?: WaitDeps): Promise<void>;
|
|
70
47
|
//# sourceMappingURL=static-server.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static-server.d.ts","sourceRoot":"","sources":["../../src/core/static-server.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"static-server.d.ts","sourceRoot":"","sources":["../../src/core/static-server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,wBAAwB,CAAC;AAahC,MAAM,WAAW,YAAY;IAC3B,wCAAwC;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,8EAA8E;IAC9E,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED,iFAAiF;AACjF,MAAM,MAAM,aAAa,GAAG,CAC1B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,KACT;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAEzC,eAAO,MAAM,iBAAiB,EAAE,aAc9B,CAAC;AAEH;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC,CAa5D;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,EAChB,YAAY,GAAE,aAAiC,GAC9C,OAAO,CAAC,YAAY,CAAC,CAuDvB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,eAAe,EACtB,UAAU,EAAE,SAAS,MAAM,EAAE,GAC5B,OAAO,CAAC,IAAI,CAAC,CA+Df"}
|
|
@@ -3,9 +3,7 @@
|
|
|
3
3
|
* Serves a built Storybook for capture, on a port nothing else can be holding.
|
|
4
4
|
*/
|
|
5
5
|
import { spawn } from 'node:child_process';
|
|
6
|
-
import { createRequire } from 'node:module';
|
|
7
6
|
import * as net from 'node:net';
|
|
8
|
-
import * as path from 'node:path';
|
|
9
7
|
import { parseStoryIndex, STORY_INDEX_FILENAMES, } from './built-story-index.js';
|
|
10
8
|
/**
|
|
11
9
|
* Loopback only. The build is served for this run, not for the network, and a
|
|
@@ -14,55 +12,16 @@ import { parseStoryIndex, STORY_INDEX_FILENAMES, } from './built-story-index.js'
|
|
|
14
12
|
* where the server bound IPv4.
|
|
15
13
|
*/
|
|
16
14
|
const HOST = '127.0.0.1';
|
|
17
|
-
/** Windows
|
|
15
|
+
/** Windows cannot spawn `npx.cmd` without a shell, and has no process groups. */
|
|
18
16
|
const IS_WINDOWS = process.platform === 'win32';
|
|
19
|
-
/**
|
|
20
|
-
* How long to wait for the server to answer, ms. It was a hard-coded 30 s and lost dashboard main
|
|
21
|
-
* builds 352 and 354 on a loaded box (F15); 120 s covers that and a failure still names its limit.
|
|
22
|
-
*/
|
|
23
|
-
export const DEFAULT_SERVER_READY_TIMEOUT_MS = 120_000;
|
|
24
|
-
/** Environment variable that overrides DEFAULT_SERVER_READY_TIMEOUT_MS (whole milliseconds, > 0). */
|
|
25
|
-
export const READY_TIMEOUT_ENV = 'SBCOV_STATIC_SERVER_TIMEOUT_MS';
|
|
26
|
-
/** The readiness wait for this run: the env value when it is a positive integer, else the default (with a warning). */
|
|
27
|
-
export function resolveReadyTimeoutMs(env = process.env, warn = console.warn) {
|
|
28
|
-
const raw = env[READY_TIMEOUT_ENV];
|
|
29
|
-
if (raw === undefined)
|
|
30
|
-
return DEFAULT_SERVER_READY_TIMEOUT_MS;
|
|
31
|
-
const value = Number(raw.trim());
|
|
32
|
-
if (raw.trim() === '' || !Number.isInteger(value) || value <= 0) {
|
|
33
|
-
warn(`sbcov: ${READY_TIMEOUT_ENV}=${JSON.stringify(raw)} is not a positive whole number of milliseconds; ` +
|
|
34
|
-
`using the default ${DEFAULT_SERVER_READY_TIMEOUT_MS} ms.`);
|
|
35
|
-
return DEFAULT_SERVER_READY_TIMEOUT_MS;
|
|
36
|
-
}
|
|
37
|
-
return value;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* The http-server entry point from sbcov's own dependencies (found the way Node resolves any
|
|
41
|
-
* package, so a hoisted install works too). Resolved at run time from disk, never downloaded:
|
|
42
|
-
* `npx -y http-server` reached the npm registry on every run, and a slow registry on a loaded
|
|
43
|
-
* box was one of the two ways builds 352 and 354 were lost (F15).
|
|
44
|
-
*/
|
|
45
|
-
function resolveHttpServerBin() {
|
|
46
|
-
const require = createRequire(import.meta.url);
|
|
47
|
-
let manifestPath;
|
|
48
|
-
try {
|
|
49
|
-
manifestPath = require.resolve('http-server/package.json');
|
|
50
|
-
}
|
|
51
|
-
catch (error) {
|
|
52
|
-
throw new Error(`sbcov: the http-server dependency is not installed next to @scrymore/scry-sbcov (${error instanceof Error ? error.message : String(error)}). ` +
|
|
53
|
-
'Reinstall @scrymore/scry-sbcov; it is no longer fetched with npx at run time.');
|
|
54
|
-
}
|
|
55
|
-
const manifest = require(manifestPath);
|
|
56
|
-
const bin = typeof manifest.bin === 'string' ? manifest.bin : manifest.bin?.['http-server'];
|
|
57
|
-
if (!bin)
|
|
58
|
-
throw new Error(`sbcov: ${manifestPath} declares no http-server binary`);
|
|
59
|
-
return path.resolve(path.dirname(manifestPath), bin);
|
|
60
|
-
}
|
|
61
17
|
export const httpServerCommand = (staticDir, port) => ({
|
|
62
|
-
command:
|
|
18
|
+
command: 'npx',
|
|
63
19
|
args: [
|
|
64
|
-
|
|
65
|
-
|
|
20
|
+
'-y',
|
|
21
|
+
'http-server',
|
|
22
|
+
// Only the shell path needs quoting, and only there does an unquoted path
|
|
23
|
+
// with spaces turn into two arguments.
|
|
24
|
+
IS_WINDOWS ? `"${staticDir}"` : staticDir,
|
|
66
25
|
'-a',
|
|
67
26
|
HOST,
|
|
68
27
|
'-p',
|
|
@@ -98,8 +57,7 @@ export async function reserveEphemeralPort() {
|
|
|
98
57
|
/**
|
|
99
58
|
* Serve `staticDir` and resolve once it actually answers.
|
|
100
59
|
*/
|
|
101
|
-
export async function startStaticServer(staticDir, verbose, buildCommand = httpServerCommand
|
|
102
|
-
const readyTimeoutMs = options.readyTimeoutMs ?? resolveReadyTimeoutMs();
|
|
60
|
+
export async function startStaticServer(staticDir, verbose, buildCommand = httpServerCommand) {
|
|
103
61
|
const port = await reserveEphemeralPort();
|
|
104
62
|
const url = `http://${HOST}:${port}`;
|
|
105
63
|
const { command, args } = buildCommand(staticDir, port);
|
|
@@ -111,8 +69,10 @@ export async function startStaticServer(staticDir, verbose, buildCommand = httpS
|
|
|
111
69
|
// open, so `scry-sbcov ... | tee log` waits forever for an EOF that the
|
|
112
70
|
// finished deploy already earned.
|
|
113
71
|
stdio: ['ignore', 'pipe', 'pipe'],
|
|
114
|
-
|
|
115
|
-
//
|
|
72
|
+
shell: IS_WINDOWS,
|
|
73
|
+
// `npx` launches http-server as a further child, so the pid we hold is the
|
|
74
|
+
// launcher rather than the listener. Its own group is what makes killing
|
|
75
|
+
// both of them possible.
|
|
116
76
|
detached: !IS_WINDOWS,
|
|
117
77
|
});
|
|
118
78
|
// Kept for the failure message, not as a log — the tail is all that explains
|
|
@@ -136,7 +96,7 @@ export async function startStaticServer(staticDir, verbose, buildCommand = httpS
|
|
|
136
96
|
});
|
|
137
97
|
const stop = createStop(child);
|
|
138
98
|
try {
|
|
139
|
-
await waitForServer(url,
|
|
99
|
+
await waitForServer(url, 30000, () => {
|
|
140
100
|
if (!failure)
|
|
141
101
|
return null;
|
|
142
102
|
const detail = output.trim();
|
|
@@ -279,31 +239,25 @@ function killTree(child, signal) {
|
|
|
279
239
|
function hasExited(child) {
|
|
280
240
|
return child.exitCode !== null || child.signalCode !== null;
|
|
281
241
|
}
|
|
282
|
-
const REAL_WAIT_DEPS = {
|
|
283
|
-
now: () => Date.now(),
|
|
284
|
-
sleep: (ms) => new Promise((resolve) => setTimeout(resolve, ms)),
|
|
285
|
-
fetch: (url) => fetch(url),
|
|
286
|
-
};
|
|
287
242
|
/**
|
|
288
243
|
* Poll until the server answers, or explain why it never will.
|
|
289
244
|
*/
|
|
290
|
-
|
|
291
|
-
const deadline =
|
|
292
|
-
while (
|
|
245
|
+
async function waitForServer(url, timeout, reasonToStop) {
|
|
246
|
+
const deadline = Date.now() + timeout;
|
|
247
|
+
while (Date.now() < deadline) {
|
|
293
248
|
const reason = reasonToStop();
|
|
294
249
|
if (reason)
|
|
295
250
|
throw new Error(reason);
|
|
296
251
|
try {
|
|
297
|
-
const response = await
|
|
252
|
+
const response = await fetch(url);
|
|
298
253
|
if (response.ok)
|
|
299
254
|
return;
|
|
300
255
|
}
|
|
301
256
|
catch {
|
|
302
257
|
// Not listening yet.
|
|
303
258
|
}
|
|
304
|
-
await
|
|
259
|
+
await new Promise((resolve) => setTimeout(resolve, 250));
|
|
305
260
|
}
|
|
306
|
-
throw new Error(reasonToStop() ??
|
|
307
|
-
`Server at ${url} did not become ready within ${timeout}ms (raise the wait with ${READY_TIMEOUT_ENV}=<milliseconds>)`);
|
|
261
|
+
throw new Error(reasonToStop() ?? `Server at ${url} did not become ready within ${timeout}ms`);
|
|
308
262
|
}
|
|
309
263
|
//# sourceMappingURL=static-server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static-server.js","sourceRoot":"","sources":["../../src/core/static-server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAqB,MAAM,oBAAoB,CAAC;AAC9D,OAAO,
|
|
1
|
+
{"version":3,"file":"static-server.js","sourceRoot":"","sources":["../../src/core/static-server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scrymore/scry-sbcov",
|
|
3
|
-
"version": "0.8.0
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "Storybook story coverage analyzer for React component libraries",
|
|
5
5
|
"bin": {
|
|
6
6
|
"scry-sbcov": "./bin/scry-sbcov.js"
|
|
@@ -41,7 +41,6 @@
|
|
|
41
41
|
"chalk": "^5.3.0",
|
|
42
42
|
"commander": "^12.0.0",
|
|
43
43
|
"glob": "^10.3.0",
|
|
44
|
-
"http-server": "14.1.1",
|
|
45
44
|
"parse-diff": "^0.11.1",
|
|
46
45
|
"simple-git": "^3.22.0",
|
|
47
46
|
"ts-morph": "^22.0.0"
|