@vscode/component-explorer-vite-plugin 0.1.1-0 → 0.1.1-10

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 ADDED
@@ -0,0 +1,55 @@
1
+ # @vscode/component-explorer-vite-plugin
2
+
3
+ Vite plugin for the [Component Explorer](../../README.md). Discovers fixture files, generates virtual entry modules, and serves the explorer UI during development.
4
+
5
+ ## Usage
6
+
7
+ ```ts
8
+ // vite.config.ts
9
+ import { defineConfig } from 'vite';
10
+ import { componentExplorer } from '@vscode/component-explorer-vite-plugin';
11
+
12
+ export default defineConfig({
13
+ plugins: [
14
+ componentExplorer({
15
+ // options (all optional)
16
+ }),
17
+ ],
18
+ });
19
+ ```
20
+
21
+ ## Options
22
+
23
+ | Option | Type | Default | Description |
24
+ |---|---|---|---|
25
+ | `include` | `string` | `'./src/**/*.fixture.{ts,tsx}'` | Glob pattern for discovering fixture files. |
26
+ | `route` | `string` | `'/___explorer'` | URL path where the explorer UI is served during development. |
27
+ | `build` | `BuildMode` | `'app-only'` | Controls what gets included in `vite build` output. See [Build Modes](#build-modes). |
28
+ | `outFile` | `string` | `'___explorer.html'` | Output filename for the explorer HTML in production builds. Defaults to `'index.html'` when `build` is `'explorer-only'`. |
29
+ | `logLevel` | `LogLevel` | `'info'` | Logging verbosity: `'silent'`, `'info'`, or `'verbose'`. |
30
+
31
+ ### Build Modes
32
+
33
+ The `build` option controls what gets emitted during `vite build` (has no effect on `vite dev`):
34
+
35
+ | Mode | Description |
36
+ |---|---|
37
+ | `'app-only'` | Build the app without the explorer. Suitable for production deployments. |
38
+ | `'all'` | Build both the app and the explorer. Useful for CI/staging environments. |
39
+ | `'explorer-only'` | Build only the explorer, emitting `index.html`. For static hosting of the explorer. |
40
+
41
+ ```ts
42
+ componentExplorer({
43
+ build: 'all', // include explorer in production build
44
+ })
45
+ ```
46
+
47
+ To set the build mode via an environment variable:
48
+
49
+ ```ts
50
+ import { type BuildMode } from '@vscode/component-explorer-vite-plugin';
51
+
52
+ componentExplorer({
53
+ build: (process.env.EXPLORER_BUILD as BuildMode) ?? undefined,
54
+ })
55
+ ```
package/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export { componentExplorer, type ComponentExplorerOptions } from './plugin.js';
1
+ export { componentExplorer, type ComponentExplorerOptions, type BuildMode } from './plugin.js';
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,wBAAwB,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,wBAAwB,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAiC,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAiD,MAAM,aAAa,CAAC"}
package/dist/plugin.d.ts CHANGED
@@ -1,12 +1,28 @@
1
1
  import type { Plugin } from 'vite';
2
- export type LogLevel = 'silent' | 'info' | 'verbose';
2
+ declare global {
3
+ interface Window {
4
+ __EXPLORER_DAEMON__?: {
5
+ sessionName: string;
6
+ };
7
+ }
8
+ }
9
+ export type LogLevel = 'silent' | 'info' | 'verbose' | 'warn' | 'error';
10
+ /** Controls what the plugin includes during `vite build`. Has no effect on dev serve. */
11
+ export type BuildMode = 'app-only' | 'all' | 'explorer-only';
3
12
  export interface ComponentExplorerOptions {
4
13
  /** Glob pattern for fixture files. Default: './src/**\/*.fixture.{ts,tsx}' */
5
14
  include?: string;
6
15
  /** Explorer route path. Default: '/___explorer' */
7
16
  route?: string;
8
- /** Output filename for the explorer HTML. Default: '___explorer.html' */
17
+ /** Output filename for the explorer HTML. Default: '___explorer.html' (or 'index.html' in explorer-only mode) */
9
18
  outFile?: string;
19
+ /**
20
+ * Controls what gets built during `vite build`. Has no effect on dev serve.
21
+ * - `'app-only'` (default): build the app without the explorer
22
+ * - `'all'`: build the app + explorer
23
+ * - `'explorer-only'`: build only the explorer (emits index.html for static hosting)
24
+ */
25
+ build?: BuildMode;
10
26
  /** Log level. Default: 'info' */
11
27
  logLevel?: LogLevel;
12
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,MAAM,CAAC;AAUnD,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AAarD,MAAM,WAAW,wBAAwB;IACvC,8EAA8E;IAC9E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,wBAA6B,GAAG,MAAM,CAoKhF"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,MAAM,CAAC;AAkBnD,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,MAAM;QACf,mBAAmB,CAAC,EAAE;YAAE,WAAW,EAAE,MAAM,CAAA;SAAE,CAAC;KAC9C;CACD;AAED,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAExE,0FAA0F;AAC1F,MAAM,MAAM,SAAS,GACjB,UAAU,GACV,KAAK,GACL,eAAe,CAAC;AAapB,MAAM,WAAW,wBAAwB;IACvC,8EAA8E;IAC9E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iHAAiH;IACjH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,wBAA6B,GAAG,MAAM,CA6PhF"}
package/dist/plugin.js CHANGED
@@ -1,9 +1,11 @@
1
+ import http from 'node:http';
1
2
  import { glob } from 'tinyglobby';
2
3
  import path from 'node:path';
3
4
  const VIRTUAL_ENTRY_ID = 'virtual:component-explorer/entry';
4
5
  const VIRTUAL_FIXTURES_ID = 'virtual:component-explorer/fixtures';
5
6
  const RESOLVED_VIRTUAL_ENTRY_ID = '\0' + VIRTUAL_ENTRY_ID;
6
7
  const RESOLVED_VIRTUAL_FIXTURES_ID = '\0' + VIRTUAL_FIXTURES_ID;
8
+ const DAEMON_API_PREFIX = '/__explorer/daemon-api';
7
9
  /** Normalize a glob pattern for use with import.meta.glob (must start with '/') */
8
10
  function normalizeGlobForImportMeta(fixtureGlob) {
9
11
  if (fixtureGlob.startsWith('./')) {
@@ -17,11 +19,13 @@ function normalizeGlobForImportMeta(fixtureGlob) {
17
19
  }
18
20
  }
19
21
  export function componentExplorer(options = {}) {
20
- const fixtureGlob = options.include ?? './src/**/*.fixture.{ts,tsx}';
22
+ const rawInclude = options.include ?? './src/**/*.fixture.{ts,tsx}';
21
23
  const explorerRoute = options.route ?? '/___explorer';
22
- const outFile = options.outFile ?? '___explorer.html';
24
+ const buildMode = options.build ?? 'app-only';
25
+ const outFile = options.outFile ?? (buildMode === 'explorer-only' ? 'index.html' : '___explorer.html');
23
26
  const logLevel = options.logLevel ?? 'info';
24
27
  let config;
28
+ let fixtureGlob;
25
29
  const log = (level, message) => {
26
30
  const levels = ['silent', 'info', 'verbose'];
27
31
  if (levels.indexOf(level) <= levels.indexOf(logLevel)) {
@@ -32,6 +36,14 @@ export function componentExplorer(options = {}) {
32
36
  name: 'component-explorer',
33
37
  async configResolved(resolvedConfig) {
34
38
  config = resolvedConfig;
39
+ // If the include glob is absolute, make it relative to root so both
40
+ // tinyglobby and import.meta.glob resolve consistently.
41
+ if (path.isAbsolute(rawInclude)) {
42
+ fixtureGlob = './' + path.relative(config.root, rawInclude).split(path.sep).join('/');
43
+ }
44
+ else {
45
+ fixtureGlob = rawInclude;
46
+ }
35
47
  if (logLevel === 'verbose') {
36
48
  const rootDir = config.root;
37
49
  const normalizedGlob = fixtureGlob.startsWith('./') ? fixtureGlob.slice(2) : fixtureGlob;
@@ -52,7 +64,25 @@ export function componentExplorer(options = {}) {
52
64
  }
53
65
  },
54
66
  config(userConfig) {
55
- // Add explorer entry to build inputs
67
+ if (buildMode === 'app-only') {
68
+ return;
69
+ }
70
+ if (buildMode === 'explorer-only') {
71
+ // Mutate directly — returning `input` would deep-merge with the
72
+ // user's existing entries (e.g. MPA pages), but we want only the
73
+ // explorer entry.
74
+ userConfig.build ??= {};
75
+ userConfig.build.rollupOptions ??= {};
76
+ userConfig.build.rollupOptions.input = { '___explorer': VIRTUAL_ENTRY_ID };
77
+ // Clear lib mode so the explorer gets a proper HTML build
78
+ delete userConfig.build.lib;
79
+ return {
80
+ define: {
81
+ 'process.env.NODE_ENV': JSON.stringify('production'),
82
+ },
83
+ };
84
+ }
85
+ // buildMode === 'all': add explorer entry alongside app inputs
56
86
  const currentInput = userConfig.build?.rollupOptions?.input;
57
87
  let input;
58
88
  if (!currentInput) {
@@ -68,21 +98,52 @@ export function componentExplorer(options = {}) {
68
98
  else {
69
99
  input = { ...currentInput, '___explorer': VIRTUAL_ENTRY_ID };
70
100
  }
101
+ // When lib mode is used, lib.fileName controls entryFileNames for ALL
102
+ // entries, causing the explorer chunk to get the same filename as the
103
+ // app entry (e.g. both become "index.js"). Override entryFileNames to
104
+ // give the explorer entry a distinct name while preserving the lib
105
+ // naming for the app entry.
106
+ const lib = userConfig.build?.lib;
107
+ const libFileName = lib && typeof lib === 'object' && !Array.isArray(lib)
108
+ ? lib.fileName
109
+ : undefined;
110
+ const outputOverrides = {};
111
+ if (typeof libFileName === 'string') {
112
+ outputOverrides.entryFileNames = (chunkInfo) => {
113
+ if (chunkInfo.name === '___explorer') {
114
+ return '___explorer-[hash].js';
115
+ }
116
+ return `${libFileName}.js`;
117
+ };
118
+ }
71
119
  return {
120
+ define: {
121
+ 'process.env.NODE_ENV': JSON.stringify('production'),
122
+ },
72
123
  build: {
73
124
  rollupOptions: {
74
125
  input,
126
+ output: outputOverrides,
75
127
  },
76
128
  },
77
129
  };
78
130
  },
79
- resolveId(id) {
131
+ async resolveId(id, importer) {
80
132
  if (id === VIRTUAL_ENTRY_ID) {
81
133
  return RESOLVED_VIRTUAL_ENTRY_ID;
82
134
  }
83
135
  if (id === VIRTUAL_FIXTURES_ID) {
84
136
  return RESOLVED_VIRTUAL_FIXTURES_ID;
85
137
  }
138
+ if (importer === RESOLVED_VIRTUAL_ENTRY_ID && id.startsWith('@vscode/component-explorer')) {
139
+ const fakeImporter = config.configFile; // file must exist for vite resolution to work
140
+ const result = await this.resolve(id, fakeImporter, { skipSelf: true });
141
+ if (result) {
142
+ log('verbose', `Resolving ${id}: Resolved to ${result.id}`);
143
+ return result;
144
+ }
145
+ log('verbose', `Resolving ${id}: Failed to resolve from ${fakeImporter}`);
146
+ }
86
147
  },
87
148
  load(id) {
88
149
  if (id === RESOLVED_VIRTUAL_ENTRY_ID) {
@@ -93,6 +154,9 @@ export function componentExplorer(options = {}) {
93
154
  }
94
155
  },
95
156
  generateBundle(_, bundle) {
157
+ if (buildMode === 'app-only') {
158
+ return;
159
+ }
96
160
  // Find the explorer entry chunk
97
161
  const explorerChunk = Object.values(bundle).find((chunk) => chunk.type === 'chunk' && chunk.name === '___explorer' && chunk.isEntry);
98
162
  if (explorerChunk && explorerChunk.type === 'chunk') {
@@ -112,6 +176,18 @@ export function componentExplorer(options = {}) {
112
176
  },
113
177
  configureServer(viteServer) {
114
178
  log('info', `Explorer available at: ${explorerRoute}`);
179
+ // Parse daemon config from env var (set by daemon process)
180
+ const daemonEnv = process.env.COMPONENT_EXPLORER_DAEMON_CONFIG;
181
+ let daemonConfig;
182
+ if (daemonEnv) {
183
+ try {
184
+ daemonConfig = JSON.parse(daemonEnv);
185
+ log('info', `Daemon mode enabled (session: ${daemonConfig.sessionName})`);
186
+ }
187
+ catch (e) {
188
+ log('error', `Failed to parse daemon config: ${e}`);
189
+ }
190
+ }
115
191
  // Watch for fixture file additions/deletions to reload the fixtures module
116
192
  const isFixtureFile = (file) => file.match(/\.fixture\.(ts|tsx)$/);
117
193
  const invalidateFixturesModule = (file, event) => {
@@ -133,10 +209,17 @@ export function componentExplorer(options = {}) {
133
209
  });
134
210
  viteServer.middlewares.use(async (req, res, next) => {
135
211
  const url = req.url ?? '';
136
- // Explorer shell route
137
- if (url === explorerRoute || url === explorerRoute + '/') {
212
+ const parsedUrl = new URL(url, 'http://localhost');
213
+ // Proxy daemon API requests to the named pipe
214
+ if (daemonConfig && parsedUrl.pathname.startsWith(DAEMON_API_PREFIX + '/')) {
215
+ const daemonPath = '/api' + parsedUrl.pathname.slice(DAEMON_API_PREFIX.length);
216
+ proxyToDaemon(req, res, daemonConfig.pipeName, daemonPath, log);
217
+ return;
218
+ }
219
+ // Serve explorer HTML for the explorer route (all modes via query params)
220
+ if (parsedUrl.pathname === explorerRoute || parsedUrl.pathname === explorerRoute + '/') {
138
221
  log('verbose', `Serving explorer HTML for: ${url}`);
139
- const html = getExplorerHtml();
222
+ const html = getExplorerHtml(daemonConfig);
140
223
  // Transform HTML through Vite to inject React preamble and client
141
224
  const transformedHtml = await viteServer.transformIndexHtml(url, html);
142
225
  res.setHeader('Content-Type', 'text/html');
@@ -161,17 +244,38 @@ export function componentExplorer(options = {}) {
161
244
  }
162
245
  function generateEntryModule() {
163
246
  return `
164
- import { ExplorerApp } from '@vscode/component-explorer';
247
+ import { ExplorerApp, CliRuntime } from '@vscode/component-explorer/viewer';
248
+ import '@vscode/component-explorer/styles.css';
165
249
  import { fixtures } from 'virtual:component-explorer/fixtures';
166
250
 
167
- const app = new ExplorerApp(document.getElementById('root'), fixtures);
251
+ const params = new URLSearchParams(location.search);
252
+ const root = document.getElementById('root');
253
+
254
+ const target = params.get('mode') === 'render'
255
+ ? new CliRuntime(root, fixtures)
256
+ : new ExplorerApp(root, fixtures);
257
+
258
+ const autoFixture = params.get('fixture');
259
+ if (autoFixture && target instanceof CliRuntime) {
260
+ target.renderFixture(autoFixture);
261
+ }
168
262
 
169
263
  if (import.meta.hot) {
170
264
  import.meta.hot.accept('virtual:component-explorer/fixtures', (newModule) => {
171
265
  if (newModule) {
172
- app.updateFixtures(newModule.fixtures);
266
+ target.updateFixtures(newModule.fixtures);
173
267
  }
174
268
  });
269
+
270
+ import.meta.hot.on('vite:afterUpdate', (payload) => {
271
+ if (payload.updates.length > 0) {
272
+ target.bumpVersion();
273
+ }
274
+ });
275
+
276
+ import.meta.hot.on('vite:beforeFullReload', () => {
277
+ console.log('[component-explorer] Full page reload incoming');
278
+ });
175
279
  }
176
280
  `;
177
281
  }
@@ -181,7 +285,10 @@ function generateFixturesModule(fixtureGlob) {
181
285
  export const fixtures = import.meta.glob('${normalizedGlob}', { eager: true });
182
286
  `;
183
287
  }
184
- function getExplorerHtml() {
288
+ function getExplorerHtml(daemonConfig) {
289
+ const daemonScript = daemonConfig
290
+ ? `<script>window.__EXPLORER_DAEMON__ = ${JSON.stringify({ sessionName: daemonConfig.sessionName })};</script>`
291
+ : '';
185
292
  return `<!DOCTYPE html>
186
293
  <html lang="en">
187
294
  <head>
@@ -192,6 +299,7 @@ function getExplorerHtml() {
192
299
  * { margin: 0; padding: 0; box-sizing: border-box; }
193
300
  html, body, #root { height: 100%; width: 100%; }
194
301
  </style>
302
+ ${daemonScript}
195
303
  </head>
196
304
  <body>
197
305
  <div id="root"></div>
@@ -199,6 +307,41 @@ function getExplorerHtml() {
199
307
  </body>
200
308
  </html>`;
201
309
  }
310
+ /**
311
+ * Proxies a request to the daemon's named pipe server.
312
+ */
313
+ function proxyToDaemon(req, res, pipeName, daemonPath, log) {
314
+ const body = [];
315
+ req.on('data', chunk => body.push(chunk));
316
+ req.on('end', () => {
317
+ const reqBody = Buffer.concat(body);
318
+ const options = {
319
+ socketPath: pipeName,
320
+ path: daemonPath || '/',
321
+ method: req.method,
322
+ headers: {
323
+ 'Content-Type': 'application/json',
324
+ 'Content-Length': reqBody.byteLength,
325
+ },
326
+ };
327
+ const daemonReq = http.request(options, (daemonRes) => {
328
+ const chunks = [];
329
+ daemonRes.on('data', chunk => chunks.push(chunk));
330
+ daemonRes.on('end', () => {
331
+ const responseBuffer = Buffer.concat(chunks);
332
+ res.writeHead(daemonRes.statusCode || 200, daemonRes.headers);
333
+ res.end(responseBuffer);
334
+ });
335
+ });
336
+ daemonReq.on('error', (err) => {
337
+ log('info', `Daemon proxy error: ${err.message}`);
338
+ res.writeHead(503, { 'Content-Type': 'application/json' });
339
+ res.end(JSON.stringify({ error: 'Daemon unavailable' }));
340
+ });
341
+ daemonReq.write(reqBody);
342
+ daemonReq.end();
343
+ });
344
+ }
202
345
  function getExplorerHtmlForBuild(scriptPath, cssLinks) {
203
346
  return `<!DOCTYPE html>
204
347
  <html lang="en">
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vscode/component-explorer-vite-plugin",
3
- "version": "0.1.1-0",
3
+ "version": "0.1.1-10",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -15,18 +15,26 @@
15
15
  ],
16
16
  "scripts": {
17
17
  "build": "tsc",
18
- "watch": "tsc --watch"
18
+ "dev": "tsc --watch",
19
+ "test": "vitest --run",
20
+ "test:update": "vitest --run --update"
19
21
  },
20
22
  "dependencies": {
21
- "@vscode/component-explorer": "workspace:*",
22
23
  "tinyglobby": "^0.2.0"
23
24
  },
24
25
  "devDependencies": {
26
+ "@vscode/component-explorer": "workspace:*",
25
27
  "@types/node": "^20.0.0",
28
+ "@vitejs/plugin-react": "^4.3.0",
29
+ "playwright": "^1.40.0",
30
+ "react": "^18.3.0",
31
+ "react-dom": "^18.3.0",
26
32
  "typescript": "^5.4.0",
27
- "vite": "^6.0.0"
33
+ "vite": "^6.0.0",
34
+ "vitest": "^1.3.0"
28
35
  },
29
36
  "peerDependencies": {
30
- "vite": "^5.0.0 || ^6.0.0"
37
+ "@vscode/component-explorer": "*",
38
+ "vite": "*"
31
39
  }
32
40
  }