@vscode/component-explorer-cli 0.2.1-25 → 0.2.1-27
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.
- package/README.md +6 -6
- package/dist/_virtual/_build-info.js +1 -1
- package/dist/browserPage.d.ts +49 -0
- package/dist/browserPage.d.ts.map +1 -1
- package/dist/browserPage.js +75 -0
- package/dist/browserPage.js.map +1 -1
- package/dist/commands/acceptCommand.d.ts +1 -1
- package/dist/commands/acceptCommand.d.ts.map +1 -1
- package/dist/commands/acceptCommand.js +12 -5
- package/dist/commands/acceptCommand.js.map +1 -1
- package/dist/commands/artifactCommand.d.ts +3 -1
- package/dist/commands/artifactCommand.d.ts.map +1 -1
- package/dist/commands/checkStabilityCommand.d.ts +2 -0
- package/dist/commands/checkStabilityCommand.d.ts.map +1 -1
- package/dist/commands/checkStabilityCommand.js +17 -1
- package/dist/commands/checkStabilityCommand.js.map +1 -1
- package/dist/commands/compareCommand.d.ts +1 -1
- package/dist/commands/compareCommand.d.ts.map +1 -1
- package/dist/commands/compareCommand.js +12 -4
- package/dist/commands/compareCommand.js.map +1 -1
- package/dist/commands/inputArg.d.ts +33 -0
- package/dist/commands/inputArg.d.ts.map +1 -0
- package/dist/commands/inputArg.js +103 -0
- package/dist/commands/inputArg.js.map +1 -0
- package/dist/commands/renderCommand.d.ts +9 -1
- package/dist/commands/renderCommand.d.ts.map +1 -1
- package/dist/commands/renderCommand.js +300 -15
- package/dist/commands/renderCommand.js.map +1 -1
- package/dist/commands/watchCommand.d.ts +1 -0
- package/dist/commands/watchCommand.d.ts.map +1 -1
- package/dist/commands/watchCommand.js +22 -12
- package/dist/commands/watchCommand.js.map +1 -1
- package/dist/component-explorer-config.schema.json +53 -0
- package/dist/componentExplorer.d.ts +98 -7
- package/dist/componentExplorer.d.ts.map +1 -1
- package/dist/componentExplorer.js +133 -8
- package/dist/componentExplorer.js.map +1 -1
- package/dist/config.d.ts +27 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +42 -5
- package/dist/config.js.map +1 -1
- package/dist/coverage.d.ts +63 -0
- package/dist/coverage.d.ts.map +1 -0
- package/dist/coverage.js +212 -0
- package/dist/coverage.js.map +1 -0
- package/dist/daemon/DaemonService.d.ts +14 -5
- package/dist/daemon/DaemonService.d.ts.map +1 -1
- package/dist/daemon/DaemonService.js +32 -9
- package/dist/daemon/DaemonService.js.map +1 -1
- package/dist/daemon/version.d.ts +1 -1
- package/dist/daemon/version.js +1 -1
- package/dist/index.js +10 -1
- package/dist/index.js.map +1 -1
- package/dist/manifest.schema.json +38 -16
- package/dist/mcp/McpServer.d.ts.map +1 -1
- package/dist/mcp/McpServer.js +143 -72
- package/dist/mcp/McpServer.js.map +1 -1
- package/dist/packages/common/dist/renderManifest.js +26 -5
- package/dist/packages/common/dist/renderManifest.js.map +1 -1
- package/dist/server/serverConfig.d.ts +17 -0
- package/dist/server/serverConfig.d.ts.map +1 -1
- package/dist/server/serverConfig.js +2 -0
- package/dist/server/serverConfig.js.map +1 -1
- package/dist/server/viteServer.d.ts +15 -0
- package/dist/server/viteServer.d.ts.map +1 -1
- package/dist/server/viteServer.js +83 -0
- package/dist/server/viteServer.js.map +1 -1
- package/dist/utils.d.ts +0 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +1 -5
- package/dist/utils.js.map +1 -1
- package/package.json +6 -1
|
@@ -13,6 +13,7 @@ import { FileSystemStorage } from '../storage.js';
|
|
|
13
13
|
import { ResolvedConfig } from '../config.js';
|
|
14
14
|
import { ExplorerSession } from '../explorerSession.js';
|
|
15
15
|
import { compareScreenshots, ScreenshotCache, contentHash } from '../screenshotCache.js';
|
|
16
|
+
import { parseInputJson } from './inputArg.js';
|
|
16
17
|
|
|
17
18
|
class WatchCommand extends Command {
|
|
18
19
|
static paths = [['watch']];
|
|
@@ -28,15 +29,24 @@ class WatchCommand extends Command {
|
|
|
28
29
|
project = Option.String('-p,--project', process.cwd(), { description: 'Project: a directory, vite config file, or component-explorer.json' });
|
|
29
30
|
headed = Option.Boolean('--headed', false, { description: 'Show the browser window (useful for debugging)' });
|
|
30
31
|
timeout = Option.String('--timeout', '30000', { description: 'Navigation timeout in milliseconds (default: 30000)' });
|
|
32
|
+
input = Option.String('--input', { required: false, description: 'JSON object passed to every fixture as `RenderContext.input` (e.g. \'{"theme":"dark"}\'). Combine with `--input-<key> <value>` to override individual properties.' });
|
|
31
33
|
async execute() {
|
|
34
|
+
let input;
|
|
35
|
+
try {
|
|
36
|
+
input = parseInputJson(this.input);
|
|
37
|
+
}
|
|
38
|
+
catch (e) {
|
|
39
|
+
this.context.stderr.write(`Error: ${e instanceof Error ? e.message : String(e)}\n`);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
32
42
|
const disposables = new DisposableStore();
|
|
33
43
|
const config = await ResolvedConfig.fromProjectPath(this.project, disposables);
|
|
34
44
|
if (config.isFullConfig) {
|
|
35
|
-
return this._executeWithConfig(config, disposables);
|
|
45
|
+
return this._executeWithConfig(config, disposables, input);
|
|
36
46
|
}
|
|
37
|
-
return this._executeLegacy(config, disposables);
|
|
47
|
+
return this._executeLegacy(config, disposables, input);
|
|
38
48
|
}
|
|
39
|
-
async _executeLegacy(config, disposables) {
|
|
49
|
+
async _executeLegacy(config, disposables, input) {
|
|
40
50
|
const logger = new ConsoleLogger('watch', this.context.stdout, verbosityToLogLevel(this.verbose), createLogFileOptions(this.logFile, this.verbose));
|
|
41
51
|
logBuildInfo(logger);
|
|
42
52
|
const storage = new FileSystemStorage(config.screenshotDir);
|
|
@@ -47,14 +57,14 @@ class WatchCommand extends Command {
|
|
|
47
57
|
logger.log(`Server running at ${server.url}`);
|
|
48
58
|
const explorer = new BrowserComponentExplorer(browserFactory, server, logger);
|
|
49
59
|
logger.log('Taking initial screenshots...');
|
|
50
|
-
await captureAndCompare(explorer, storage, this.context.stdout);
|
|
60
|
+
await captureAndCompare(explorer, storage, this.context.stdout, input);
|
|
51
61
|
this.context.stdout.write('\nWatching for changes... (Ctrl+C to stop)\n\n');
|
|
52
62
|
let stopped = false;
|
|
53
63
|
process.on('SIGINT', () => { stopped = true; });
|
|
54
64
|
while (!stopped) {
|
|
55
65
|
try {
|
|
56
66
|
await explorer.waitForUpdate();
|
|
57
|
-
await captureAndCompare(explorer, storage, this.context.stdout);
|
|
67
|
+
await captureAndCompare(explorer, storage, this.context.stdout, input);
|
|
58
68
|
}
|
|
59
69
|
catch (err) {
|
|
60
70
|
if (stopped)
|
|
@@ -68,7 +78,7 @@ class WatchCommand extends Command {
|
|
|
68
78
|
await server.dispose();
|
|
69
79
|
disposables.dispose();
|
|
70
80
|
}
|
|
71
|
-
async _executeWithConfig(resolvedConfig, disposables) {
|
|
81
|
+
async _executeWithConfig(resolvedConfig, disposables, input) {
|
|
72
82
|
const logger = new ConsoleLogger('watch', this.context.stdout, verbosityToLogLevel(this.verbose), createLogFileOptions(this.logFile, this.verbose));
|
|
73
83
|
logBuildInfo(logger);
|
|
74
84
|
const browserFactory = new PlaywrightBrowserPageFactory(this.headed, Number(this.timeout));
|
|
@@ -86,7 +96,7 @@ class WatchCommand extends Command {
|
|
|
86
96
|
// Initial capture from all sessions
|
|
87
97
|
for (const [name, session] of sessions) {
|
|
88
98
|
logger.log(`Capturing initial screenshots: ${name}`);
|
|
89
|
-
const screenshots = await captureAll(session.explorer);
|
|
99
|
+
const screenshots = await captureAll(session.explorer, input);
|
|
90
100
|
caches.get(name).replaceAll(screenshots);
|
|
91
101
|
await writeScreenshotsToStorage(storage, name, screenshots);
|
|
92
102
|
}
|
|
@@ -106,7 +116,7 @@ class WatchCommand extends Command {
|
|
|
106
116
|
logger.log(`HMR update in session: ${event.sessionName}`);
|
|
107
117
|
const cache = caches.get(event.sessionName);
|
|
108
118
|
const session = sessions.get(event.sessionName);
|
|
109
|
-
const screenshots = await captureAll(session.explorer);
|
|
119
|
+
const screenshots = await captureAll(session.explorer, input);
|
|
110
120
|
cache.replaceAll(screenshots);
|
|
111
121
|
await writeScreenshotsToStorage(storage, event.sessionName, screenshots);
|
|
112
122
|
}
|
|
@@ -173,11 +183,11 @@ async function raceUpdates(sessions, resolvers) {
|
|
|
173
183
|
return Promise.race([...hmrPromises, refPromise]);
|
|
174
184
|
}
|
|
175
185
|
// --- Capture helpers ---
|
|
176
|
-
async function captureAll(explorer) {
|
|
186
|
+
async function captureAll(explorer, input) {
|
|
177
187
|
const { fixtures } = await explorer.listFixtures();
|
|
178
188
|
const screenshots = new Map();
|
|
179
189
|
for (const fixture of fixtures) {
|
|
180
|
-
const result = await explorer.screenshotFixture(fixture.fixtureId, { reloadOnError: true });
|
|
190
|
+
const result = await explorer.screenshotFixture(fixture.fixtureId, { reloadOnError: true, input });
|
|
181
191
|
if (result.image) {
|
|
182
192
|
screenshots.set(fixture.fixtureId, result.image);
|
|
183
193
|
}
|
|
@@ -212,13 +222,13 @@ function printCompareResult(result, stdout, baselineCache, currentCache) {
|
|
|
212
222
|
}
|
|
213
223
|
}
|
|
214
224
|
// --- Legacy helpers ---
|
|
215
|
-
async function captureAndCompare(explorer, storage, stdout) {
|
|
225
|
+
async function captureAndCompare(explorer, storage, stdout, input) {
|
|
216
226
|
const { fixtures } = await explorer.listFixtures();
|
|
217
227
|
const added = [];
|
|
218
228
|
const changed = [];
|
|
219
229
|
const unchanged = [];
|
|
220
230
|
for (const fixture of fixtures) {
|
|
221
|
-
const result = await explorer.screenshotFixture(fixture.fixtureId, { reloadOnError: true });
|
|
231
|
+
const result = await explorer.screenshotFixture(fixture.fixtureId, { reloadOnError: true, input });
|
|
222
232
|
if (!result.image) {
|
|
223
233
|
continue;
|
|
224
234
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watchCommand.js","sources":["../../src/commands/watchCommand.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"watchCommand.js","sources":["../../src/commands/watchCommand.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -375,6 +375,59 @@
|
|
|
375
375
|
"additionalProperties": false,
|
|
376
376
|
"description": "HTTP redirection server that redirects to the session URL"
|
|
377
377
|
},
|
|
378
|
+
"coverage": {
|
|
379
|
+
"type": "object",
|
|
380
|
+
"properties": {
|
|
381
|
+
"mode": {
|
|
382
|
+
"description": "Aggregate coverage across all fixtures (\"total\", default) or emit one report per fixture (\"per-fixture\")",
|
|
383
|
+
"type": "string",
|
|
384
|
+
"enum": [
|
|
385
|
+
"total",
|
|
386
|
+
"per-fixture"
|
|
387
|
+
]
|
|
388
|
+
},
|
|
389
|
+
"js": {
|
|
390
|
+
"description": "JavaScript coverage strategy. \"istanbul\" (default) instruments source via vite-plugin-istanbul. \"v8\" uses Playwright's native V8 coverage and converts to Istanbul. false disables JS coverage",
|
|
391
|
+
"anyOf": [
|
|
392
|
+
{
|
|
393
|
+
"type": "string",
|
|
394
|
+
"enum": [
|
|
395
|
+
"istanbul",
|
|
396
|
+
"v8"
|
|
397
|
+
]
|
|
398
|
+
},
|
|
399
|
+
{
|
|
400
|
+
"type": "boolean",
|
|
401
|
+
"const": false
|
|
402
|
+
}
|
|
403
|
+
]
|
|
404
|
+
},
|
|
405
|
+
"css": {
|
|
406
|
+
"description": "Collect CSS coverage via Playwright (raw range data, written separately). Default: false",
|
|
407
|
+
"type": "boolean"
|
|
408
|
+
},
|
|
409
|
+
"outputDir": {
|
|
410
|
+
"description": "Output directory for coverage JSON, relative to the render target dir (default: \"coverage\")",
|
|
411
|
+
"type": "string"
|
|
412
|
+
},
|
|
413
|
+
"include": {
|
|
414
|
+
"description": "Glob patterns of files to instrument (Istanbul only). Default: [\"**/src/**/*.{js,ts,jsx,tsx,mjs,cjs}\"]",
|
|
415
|
+
"type": "array",
|
|
416
|
+
"items": {
|
|
417
|
+
"type": "string"
|
|
418
|
+
}
|
|
419
|
+
},
|
|
420
|
+
"exclude": {
|
|
421
|
+
"description": "Glob patterns of files to skip (Istanbul only). Default: [\"**/*.fixture.{js,ts,jsx,tsx}\", \"**/node_modules/**\", \"**/*.{test,spec}.*\"]",
|
|
422
|
+
"type": "array",
|
|
423
|
+
"items": {
|
|
424
|
+
"type": "string"
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
},
|
|
428
|
+
"additionalProperties": false,
|
|
429
|
+
"description": "Code coverage configuration for `render --coverage`"
|
|
430
|
+
},
|
|
378
431
|
"$schema": {
|
|
379
432
|
"type": "string",
|
|
380
433
|
"description": "URL of the JSON Schema for this config file"
|
|
@@ -1,10 +1,33 @@
|
|
|
1
|
-
import type { BrowserPageFactory } from './browserPage.js';
|
|
1
|
+
import type { BrowserPage, BrowserPageFactory } from './browserPage.js';
|
|
2
2
|
import type { ComponentExplorerHttpServer } from './server/types.js';
|
|
3
3
|
import type { IObservable } from '@vscode/observables';
|
|
4
|
+
import type { IJsonSchema } from '@vscode/component-explorer-common';
|
|
4
5
|
import { type ILogger } from './logger.js';
|
|
5
6
|
import { SourceTreeId } from './sourceTreeId.js';
|
|
6
7
|
export interface ScreenshotOptions {
|
|
8
|
+
/**
|
|
9
|
+
* If true, reload the browser page if the fixture had an error during rendering. This can help avoid contamination of subsequent renders when the page is in a bad state, at the cost of longer execution time.
|
|
10
|
+
*/
|
|
7
11
|
readonly reloadOnError?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* If true, reload the browser page before rendering this fixture.
|
|
14
|
+
* Useful for bulk rendering to ensure each fixture starts from a clean page state.
|
|
15
|
+
*/
|
|
16
|
+
readonly reloadBeforeRender?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Arbitrary JSON-serializable data passed to the fixture's `RenderContext.input`.
|
|
19
|
+
* The fixture decides how to interpret it (e.g. theme switch, scenario selection).
|
|
20
|
+
* Must be JSON-serializable since it crosses the CLI → browser boundary.
|
|
21
|
+
*/
|
|
22
|
+
readonly input?: unknown;
|
|
23
|
+
/**
|
|
24
|
+
* If true, dispose the fixture after taking the screenshot and capture any
|
|
25
|
+
* errors / events that surface during dispose.
|
|
26
|
+
* Default: false — the fixture stays mounted until the next render, so
|
|
27
|
+
* `evaluate_js` can still operate on it. Use `disposeAfter` when you want to
|
|
28
|
+
* validate the teardown of a specific fixture.
|
|
29
|
+
*/
|
|
30
|
+
readonly disposeAfter?: boolean;
|
|
8
31
|
}
|
|
9
32
|
export interface ComponentExplorer {
|
|
10
33
|
readonly sourceTreeId: IObservable<SourceTreeId>;
|
|
@@ -14,6 +37,12 @@ export interface ComponentExplorer {
|
|
|
14
37
|
evaluateJs(expression: string, fixtureId?: string): Promise<unknown>;
|
|
15
38
|
codeCoverage(id: FixtureId | FixtureGroupId): Promise<CoverageData>;
|
|
16
39
|
waitForUpdate(timeoutMs?: number): Promise<void>;
|
|
40
|
+
/**
|
|
41
|
+
* Open the underlying browser page (if not already open) and return it.
|
|
42
|
+
* Used by coverage tooling to call `startJSCoverage` / `stopJSCoverage` on the
|
|
43
|
+
* exact same page used for fixture rendering.
|
|
44
|
+
*/
|
|
45
|
+
getOrOpenPage(): Promise<BrowserPage>;
|
|
17
46
|
dispose(): Promise<void>;
|
|
18
47
|
}
|
|
19
48
|
export interface FixtureInfo {
|
|
@@ -23,6 +52,8 @@ export interface FixtureInfo {
|
|
|
23
52
|
readonly background: 'light' | 'dark';
|
|
24
53
|
readonly labels: readonly string[];
|
|
25
54
|
readonly expectedVisualDescriptions: readonly string[];
|
|
55
|
+
/** JSON Schema describing the fixture's expected `input` object, if declared. */
|
|
56
|
+
readonly inputSchema?: IJsonSchema;
|
|
26
57
|
}
|
|
27
58
|
export interface ListFixturesResult {
|
|
28
59
|
readonly fixtures: FixtureInfo[];
|
|
@@ -50,31 +81,90 @@ export type RenderEventType = 'console.error' | 'console.warn' | 'console.log' |
|
|
|
50
81
|
export interface RenderEvent {
|
|
51
82
|
readonly type: RenderEventType;
|
|
52
83
|
readonly message: string;
|
|
84
|
+
readonly stack?: string;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Errors / events captured while disposing a fixture.
|
|
88
|
+
* `previousDispose` is populated when a screenshot's implicit dispose of the
|
|
89
|
+
* previous fixture surfaced something; `currentDispose` is populated when
|
|
90
|
+
* `disposeAfter: true` was requested.
|
|
91
|
+
*
|
|
92
|
+
* `hasError` is a derived getter: `true` when any exception was captured
|
|
93
|
+
* or a significant event (console.error / window.error / unhandledrejection) occurred.
|
|
94
|
+
*/
|
|
95
|
+
export declare class DisposeReport {
|
|
96
|
+
readonly errors: readonly ExceptionError[];
|
|
97
|
+
readonly events: readonly RenderEvent[];
|
|
98
|
+
constructor(data: {
|
|
99
|
+
readonly errors: readonly ExceptionError[];
|
|
100
|
+
readonly events: readonly RenderEvent[];
|
|
101
|
+
});
|
|
102
|
+
get hasError(): boolean;
|
|
103
|
+
static from(raw: {
|
|
104
|
+
errors: readonly ExceptionError[];
|
|
105
|
+
events: readonly RenderEvent[];
|
|
106
|
+
}): DisposeReport;
|
|
107
|
+
static fromIfSignificant(raw: {
|
|
108
|
+
errors: readonly ExceptionError[];
|
|
109
|
+
events: readonly RenderEvent[];
|
|
110
|
+
}): DisposeReport | undefined;
|
|
53
111
|
}
|
|
54
112
|
/**
|
|
55
113
|
* Result of taking a screenshot, including any errors captured during rendering.
|
|
114
|
+
*
|
|
115
|
+
* `hasError` is a derived getter that is `true` when any phase (render,
|
|
116
|
+
* previousDispose, or currentDispose) reported an error so that consumers
|
|
117
|
+
* never need to combine the flags manually.
|
|
56
118
|
*/
|
|
57
|
-
export
|
|
119
|
+
export declare class ScreenshotResult {
|
|
58
120
|
readonly image: Uint8Array | undefined;
|
|
59
|
-
readonly
|
|
121
|
+
readonly renderHasError: boolean;
|
|
60
122
|
readonly error?: ExceptionError;
|
|
61
123
|
readonly events: RenderEvent[];
|
|
62
|
-
readonly
|
|
124
|
+
readonly output?: unknown;
|
|
63
125
|
readonly renderTimeMs: {
|
|
64
126
|
readonly sync: number;
|
|
65
127
|
readonly total: number;
|
|
66
128
|
};
|
|
129
|
+
readonly previousDispose?: DisposeReport;
|
|
130
|
+
readonly currentDispose?: DisposeReport;
|
|
131
|
+
constructor(data: {
|
|
132
|
+
readonly image: Uint8Array | undefined;
|
|
133
|
+
readonly renderHasError: boolean;
|
|
134
|
+
readonly error?: ExceptionError;
|
|
135
|
+
readonly events: RenderEvent[];
|
|
136
|
+
readonly output?: unknown;
|
|
137
|
+
readonly renderTimeMs: {
|
|
138
|
+
readonly sync: number;
|
|
139
|
+
readonly total: number;
|
|
140
|
+
};
|
|
141
|
+
readonly previousDispose?: DisposeReport;
|
|
142
|
+
readonly currentDispose?: DisposeReport;
|
|
143
|
+
});
|
|
144
|
+
get hasError(): boolean;
|
|
67
145
|
}
|
|
68
146
|
export interface StabilityScreenshot {
|
|
69
147
|
readonly image: Uint8Array;
|
|
70
148
|
readonly delayMs: number;
|
|
71
149
|
}
|
|
72
|
-
export
|
|
150
|
+
export declare class StabilityCheckResult {
|
|
73
151
|
readonly screenshots: readonly StabilityScreenshot[];
|
|
74
|
-
readonly
|
|
152
|
+
readonly renderHasError: boolean;
|
|
75
153
|
readonly error?: ExceptionError;
|
|
76
154
|
readonly events: RenderEvent[];
|
|
77
|
-
readonly
|
|
155
|
+
readonly output?: unknown;
|
|
156
|
+
readonly previousDispose?: DisposeReport;
|
|
157
|
+
readonly currentDispose?: DisposeReport;
|
|
158
|
+
constructor(data: {
|
|
159
|
+
readonly screenshots: readonly StabilityScreenshot[];
|
|
160
|
+
readonly renderHasError: boolean;
|
|
161
|
+
readonly error?: ExceptionError;
|
|
162
|
+
readonly events: RenderEvent[];
|
|
163
|
+
readonly output?: unknown;
|
|
164
|
+
readonly previousDispose?: DisposeReport;
|
|
165
|
+
readonly currentDispose?: DisposeReport;
|
|
166
|
+
});
|
|
167
|
+
get hasError(): boolean;
|
|
78
168
|
}
|
|
79
169
|
export declare class BrowserComponentExplorer implements ComponentExplorer {
|
|
80
170
|
private readonly _browserPageFactory;
|
|
@@ -87,6 +177,7 @@ export declare class BrowserComponentExplorer implements ComponentExplorer {
|
|
|
87
177
|
readonly sourceTreeId: import("@vscode/observables").ISettableObservable<SourceTreeId, void>;
|
|
88
178
|
constructor(_browserPageFactory: BrowserPageFactory, _server: ComponentExplorerHttpServer, _logger?: ILogger);
|
|
89
179
|
private _bumpSourceTreeId;
|
|
180
|
+
getOrOpenPage(): Promise<BrowserPage>;
|
|
90
181
|
private _ensureReady;
|
|
91
182
|
private _reloadPage;
|
|
92
183
|
private _startPolling;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"componentExplorer.d.ts","sourceRoot":"","sources":["../src/componentExplorer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"componentExplorer.d.ts","sourceRoot":"","sources":["../src/componentExplorer.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,89 @@ import { buildExplorerUrl } from './packages/common/dist/explorerUrl.js';
|
|
|
13
13
|
import { EXPLORER_ROUTE } from './utils.js';
|
|
14
14
|
import { parseVersion, isCompatibleVersion, runtimeVersionNeededByCliText } from './daemon/version.js';
|
|
15
15
|
|
|
16
|
+
/**
|
|
17
|
+
* Errors / events captured while disposing a fixture.
|
|
18
|
+
* `previousDispose` is populated when a screenshot's implicit dispose of the
|
|
19
|
+
* previous fixture surfaced something; `currentDispose` is populated when
|
|
20
|
+
* `disposeAfter: true` was requested.
|
|
21
|
+
*
|
|
22
|
+
* `hasError` is a derived getter: `true` when any exception was captured
|
|
23
|
+
* or a significant event (console.error / window.error / unhandledrejection) occurred.
|
|
24
|
+
*/
|
|
25
|
+
class DisposeReport {
|
|
26
|
+
errors;
|
|
27
|
+
events;
|
|
28
|
+
constructor(data) {
|
|
29
|
+
this.errors = data.errors;
|
|
30
|
+
this.events = data.events;
|
|
31
|
+
}
|
|
32
|
+
get hasError() {
|
|
33
|
+
return this.errors.length > 0
|
|
34
|
+
|| this.events.some(e => e.type === 'console.error' || e.type === 'window.error' || e.type === 'window.unhandledrejection');
|
|
35
|
+
}
|
|
36
|
+
static from(raw) {
|
|
37
|
+
return new DisposeReport({ errors: raw.errors, events: raw.events });
|
|
38
|
+
}
|
|
39
|
+
static fromIfSignificant(raw) {
|
|
40
|
+
const report = DisposeReport.from(raw);
|
|
41
|
+
return (report.hasError || report.events.length > 0) ? report : undefined;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Result of taking a screenshot, including any errors captured during rendering.
|
|
46
|
+
*
|
|
47
|
+
* `hasError` is a derived getter that is `true` when any phase (render,
|
|
48
|
+
* previousDispose, or currentDispose) reported an error so that consumers
|
|
49
|
+
* never need to combine the flags manually.
|
|
50
|
+
*/
|
|
51
|
+
class ScreenshotResult {
|
|
52
|
+
image;
|
|
53
|
+
renderHasError;
|
|
54
|
+
error;
|
|
55
|
+
events;
|
|
56
|
+
output;
|
|
57
|
+
renderTimeMs;
|
|
58
|
+
previousDispose;
|
|
59
|
+
currentDispose;
|
|
60
|
+
constructor(data) {
|
|
61
|
+
this.image = data.image;
|
|
62
|
+
this.renderHasError = data.renderHasError;
|
|
63
|
+
this.error = data.error;
|
|
64
|
+
this.events = data.events;
|
|
65
|
+
this.output = data.output;
|
|
66
|
+
this.renderTimeMs = data.renderTimeMs;
|
|
67
|
+
this.previousDispose = data.previousDispose;
|
|
68
|
+
this.currentDispose = data.currentDispose;
|
|
69
|
+
}
|
|
70
|
+
get hasError() {
|
|
71
|
+
return this.renderHasError
|
|
72
|
+
|| !!this.previousDispose?.hasError
|
|
73
|
+
|| !!this.currentDispose?.hasError;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
class StabilityCheckResult {
|
|
77
|
+
screenshots;
|
|
78
|
+
renderHasError;
|
|
79
|
+
error;
|
|
80
|
+
events;
|
|
81
|
+
output;
|
|
82
|
+
previousDispose;
|
|
83
|
+
currentDispose;
|
|
84
|
+
constructor(data) {
|
|
85
|
+
this.screenshots = data.screenshots;
|
|
86
|
+
this.renderHasError = data.renderHasError;
|
|
87
|
+
this.error = data.error;
|
|
88
|
+
this.events = data.events;
|
|
89
|
+
this.output = data.output;
|
|
90
|
+
this.previousDispose = data.previousDispose;
|
|
91
|
+
this.currentDispose = data.currentDispose;
|
|
92
|
+
}
|
|
93
|
+
get hasError() {
|
|
94
|
+
return this.renderHasError
|
|
95
|
+
|| !!this.previousDispose?.hasError
|
|
96
|
+
|| !!this.currentDispose?.hasError;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
16
99
|
class BrowserComponentExplorer {
|
|
17
100
|
_browserPageFactory;
|
|
18
101
|
_server;
|
|
@@ -36,6 +119,9 @@ class BrowserComponentExplorer {
|
|
|
36
119
|
_bumpSourceTreeId() {
|
|
37
120
|
this.sourceTreeId.set(new SourceTreeId(Date.now().toString()), undefined);
|
|
38
121
|
}
|
|
122
|
+
getOrOpenPage() {
|
|
123
|
+
return this._ensureReady();
|
|
124
|
+
}
|
|
39
125
|
async _ensureReady() {
|
|
40
126
|
if (!this._page) {
|
|
41
127
|
const cliUrl = buildExplorerUrl({ baseUrl: this._server.url, pathname: EXPLORER_ROUTE, mode: 'headless' });
|
|
@@ -151,15 +237,35 @@ class BrowserComponentExplorer {
|
|
|
151
237
|
const page = await this._ensureReady();
|
|
152
238
|
const debugUrl = buildExplorerUrl({ baseUrl: this._server.url, pathname: EXPLORER_ROUTE, mode: 'headless', fixtureId });
|
|
153
239
|
this._logger.debug(`Rendering fixture: ${debugUrl}`);
|
|
154
|
-
|
|
240
|
+
if (options?.reloadBeforeRender) {
|
|
241
|
+
this._logger.debug(`Reloading page before render: ${fixtureId}`);
|
|
242
|
+
await this._reloadPage(page);
|
|
243
|
+
}
|
|
244
|
+
const input = options?.input;
|
|
245
|
+
const renderResult = await evaluateFn(page, (api, args) => api.renderFixture(args.id, args.input), explorerApi, { id: fixtureId, input });
|
|
155
246
|
this._logger.debug(`Render completed: ${fixtureId} (hasError=${renderResult.hasError}, ${Date.now() - startTime}ms)`);
|
|
156
247
|
const image = await page.screenshot(`document.getElementById('root').lastElementChild`);
|
|
157
248
|
this._logger.debug(`Screenshot done: ${fixtureId} (ok=${image.ok}, ${Date.now() - startTime}ms)`);
|
|
249
|
+
let currentDispose;
|
|
250
|
+
if (options?.disposeAfter) {
|
|
251
|
+
this._logger.debug(`Disposing fixture after screenshot: ${fixtureId}`);
|
|
252
|
+
const rawDispose = await evaluateFn(page, (api) => api.disposeCurrentFixture(), explorerApi);
|
|
253
|
+
currentDispose = DisposeReport.fromIfSignificant(rawDispose);
|
|
254
|
+
}
|
|
158
255
|
if (renderResult.hasError && options?.reloadOnError) {
|
|
159
256
|
this._logger.debug(`Fixture had error, reloading page to avoid contamination: ${fixtureId}`);
|
|
160
257
|
await this._reloadPage(page);
|
|
161
258
|
}
|
|
162
|
-
return {
|
|
259
|
+
return new ScreenshotResult({
|
|
260
|
+
image: image.ok ? image.screenshot : undefined,
|
|
261
|
+
renderHasError: renderResult.hasError,
|
|
262
|
+
error: renderResult.error,
|
|
263
|
+
events: renderResult.events,
|
|
264
|
+
output: renderResult.output,
|
|
265
|
+
renderTimeMs: renderResult.renderTimeMs,
|
|
266
|
+
previousDispose: renderResult.previousDispose ? DisposeReport.from(renderResult.previousDispose) : undefined,
|
|
267
|
+
currentDispose,
|
|
268
|
+
});
|
|
163
269
|
}
|
|
164
270
|
finally {
|
|
165
271
|
this._logger.trace(`Screenshot mutex: released for ${fixtureId}`);
|
|
@@ -177,9 +283,14 @@ class BrowserComponentExplorer {
|
|
|
177
283
|
const page = await this._ensureReady();
|
|
178
284
|
const debugUrl = buildExplorerUrl({ baseUrl: this._server.url, pathname: EXPLORER_ROUTE, mode: 'headless', fixtureId });
|
|
179
285
|
this._logger.debug(`Stability check: ${debugUrl}`);
|
|
180
|
-
|
|
286
|
+
if (options?.reloadBeforeRender) {
|
|
287
|
+
this._logger.debug(`Reloading page before stability check: ${fixtureId}`);
|
|
288
|
+
await this._reloadPage(page);
|
|
289
|
+
}
|
|
290
|
+
const priorDispose = DisposeReport.fromIfSignificant(await evaluateFn(page, (api) => api.disposeCurrentFixture(), explorerApi));
|
|
181
291
|
const startTime = Date.now();
|
|
182
|
-
const
|
|
292
|
+
const input = options?.input;
|
|
293
|
+
const renderResult = await evaluateFn(page, (api, args) => api.renderFixture(args.id, args.input), explorerApi, { id: fixtureId, input });
|
|
183
294
|
const domExpr = `document.getElementById('root').lastElementChild`;
|
|
184
295
|
const image0 = await unwrapScreenshot(page, domExpr);
|
|
185
296
|
const delay0 = Date.now() - startTime;
|
|
@@ -198,14 +309,28 @@ class BrowserComponentExplorer {
|
|
|
198
309
|
const image2 = await unwrapScreenshot(page, domExpr);
|
|
199
310
|
const delay2 = Date.now() - startTime;
|
|
200
311
|
this._logger.debug(`Stability check done: ${fixtureId} (${delay2}ms total)`);
|
|
201
|
-
|
|
312
|
+
let currentDispose;
|
|
313
|
+
if (options?.disposeAfter) {
|
|
314
|
+
this._logger.debug(`Disposing fixture after stability check: ${fixtureId}`);
|
|
315
|
+
const rawDispose = await evaluateFn(page, (api) => api.disposeCurrentFixture(), explorerApi);
|
|
316
|
+
currentDispose = DisposeReport.fromIfSignificant(rawDispose);
|
|
317
|
+
}
|
|
318
|
+
const previousDispose = renderResult.previousDispose
|
|
319
|
+
? DisposeReport.from(renderResult.previousDispose)
|
|
320
|
+
: priorDispose;
|
|
321
|
+
const result = new StabilityCheckResult({
|
|
202
322
|
screenshots: [
|
|
203
323
|
{ image: image0, delayMs: delay0 },
|
|
204
324
|
{ image: image1, delayMs: delay1 },
|
|
205
325
|
{ image: image2, delayMs: delay2 },
|
|
206
326
|
],
|
|
207
|
-
|
|
208
|
-
|
|
327
|
+
renderHasError: renderResult.hasError,
|
|
328
|
+
error: renderResult.error,
|
|
329
|
+
events: renderResult.events,
|
|
330
|
+
output: renderResult.output,
|
|
331
|
+
previousDispose,
|
|
332
|
+
currentDispose,
|
|
333
|
+
});
|
|
209
334
|
if (renderResult.hasError && options?.reloadOnError) {
|
|
210
335
|
this._logger.debug(`Stability check fixture had error, reloading page to avoid contamination: ${fixtureId}`);
|
|
211
336
|
await this._reloadPage(page);
|
|
@@ -275,5 +400,5 @@ async function unwrapScreenshot(page, domExpr) {
|
|
|
275
400
|
return result.screenshot;
|
|
276
401
|
}
|
|
277
402
|
|
|
278
|
-
export { BrowserComponentExplorer };
|
|
403
|
+
export { BrowserComponentExplorer, DisposeReport, ScreenshotResult, StabilityCheckResult };
|
|
279
404
|
//# sourceMappingURL=componentExplorer.js.map
|