@teambit/preview 1.0.465 → 1.0.467
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/artifacts/__bit_junit.xml +2 -2
- package/artifacts/preview/teambit_preview_preview-preview.js +1 -1
- package/artifacts/schema.json +1545 -779
- package/dist/generate-preview.cmd.d.ts +32 -0
- package/dist/generate-preview.cmd.js +72 -0
- package/dist/generate-preview.cmd.js.map +1 -0
- package/dist/{preview-1731900045011.js → preview-1731986398447.js} +2 -2
- package/dist/preview.main.runtime.d.ts +17 -5
- package/dist/preview.main.runtime.js +119 -10
- package/dist/preview.main.runtime.js.map +1 -1
- package/dist/preview.service.d.ts +24 -2
- package/dist/preview.service.js +203 -1
- package/dist/preview.service.js.map +1 -1
- package/dist/serve-preview.cmd.d.ts +21 -0
- package/dist/serve-preview.cmd.js +29 -0
- package/dist/serve-preview.cmd.js.map +1 -0
- package/dist/strategies/component-strategy.d.ts +1 -3
- package/dist/strategies/component-strategy.js +1 -2
- package/dist/strategies/component-strategy.js.map +1 -1
- package/generate-preview.cmd.tsx +50 -0
- package/package.json +25 -23
- package/preview.service.tsx +188 -2
- package/serve-preview.cmd.tsx +21 -0
- package/strategies/component-strategy.ts +0 -2
@@ -0,0 +1,32 @@
|
|
1
|
+
import { Command, CommandOptions } from '@teambit/cli';
|
2
|
+
import type { PreviewMain } from './preview.main.runtime';
|
3
|
+
import { EnvsExecutionResult } from '@teambit/envs';
|
4
|
+
type GeneratePreviewArgs = [userPattern: string];
|
5
|
+
type GeneratePreviewFlags = {
|
6
|
+
name: string;
|
7
|
+
};
|
8
|
+
export declare class GeneratePreviewCmd implements Command {
|
9
|
+
/**
|
10
|
+
* access to the extension instance.
|
11
|
+
*/
|
12
|
+
private preview;
|
13
|
+
name: string;
|
14
|
+
description: string;
|
15
|
+
arguments: {
|
16
|
+
name: string;
|
17
|
+
description: string;
|
18
|
+
}[];
|
19
|
+
group: string;
|
20
|
+
options: CommandOptions;
|
21
|
+
private: boolean;
|
22
|
+
constructor(
|
23
|
+
/**
|
24
|
+
* access to the extension instance.
|
25
|
+
*/
|
26
|
+
preview: PreviewMain);
|
27
|
+
report([userPattern]: GeneratePreviewArgs, { name }: GeneratePreviewFlags): Promise<string>;
|
28
|
+
formatOutput(res: EnvsExecutionResult<{
|
29
|
+
[id: string]: string;
|
30
|
+
}>): string;
|
31
|
+
}
|
32
|
+
export {};
|
@@ -0,0 +1,72 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.GeneratePreviewCmd = void 0;
|
7
|
+
function _padRight() {
|
8
|
+
const data = _interopRequireDefault(require("pad-right"));
|
9
|
+
_padRight = function () {
|
10
|
+
return data;
|
11
|
+
};
|
12
|
+
return data;
|
13
|
+
}
|
14
|
+
function _constants() {
|
15
|
+
const data = require("@teambit/legacy/dist/constants");
|
16
|
+
_constants = function () {
|
17
|
+
return data;
|
18
|
+
};
|
19
|
+
return data;
|
20
|
+
}
|
21
|
+
function _chalk() {
|
22
|
+
const data = _interopRequireDefault(require("chalk"));
|
23
|
+
_chalk = function () {
|
24
|
+
return data;
|
25
|
+
};
|
26
|
+
return data;
|
27
|
+
}
|
28
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
29
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
30
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
31
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
32
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
33
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
34
|
+
class GeneratePreviewCmd {
|
35
|
+
constructor(
|
36
|
+
/**
|
37
|
+
* access to the extension instance.
|
38
|
+
*/
|
39
|
+
preview) {
|
40
|
+
this.preview = preview;
|
41
|
+
_defineProperty(this, "name", 'generate-preview [component-pattern]');
|
42
|
+
_defineProperty(this, "description", 'generate preview bundle for components');
|
43
|
+
_defineProperty(this, "arguments", [{
|
44
|
+
name: 'component-pattern',
|
45
|
+
description: _constants().COMPONENT_PATTERN_HELP
|
46
|
+
}]);
|
47
|
+
_defineProperty(this, "group", 'development');
|
48
|
+
_defineProperty(this, "options", [['n', 'name <name>', 'name for the preview']]);
|
49
|
+
_defineProperty(this, "private", true);
|
50
|
+
}
|
51
|
+
async report([userPattern], {
|
52
|
+
name
|
53
|
+
}) {
|
54
|
+
const res = await this.preview.generateComponentPreview(userPattern, name);
|
55
|
+
const formattedOutput = this.formatOutput(res);
|
56
|
+
return _chalk().default.green(`previews generated successfully in:\n${formattedOutput}`);
|
57
|
+
}
|
58
|
+
formatOutput(res) {
|
59
|
+
const merged = res.results.reduce((acc, result) => {
|
60
|
+
acc = _objectSpread(_objectSpread({}, acc), result.data);
|
61
|
+
return acc;
|
62
|
+
}, {});
|
63
|
+
const rows = Object.entries(merged).map(([id, previewPath]) => {
|
64
|
+
const keyPadded = (0, _padRight().default)(id, 20, ' ');
|
65
|
+
return _chalk().default.green(`${keyPadded} - ${previewPath}`);
|
66
|
+
});
|
67
|
+
return rows.join('\n');
|
68
|
+
}
|
69
|
+
}
|
70
|
+
exports.GeneratePreviewCmd = GeneratePreviewCmd;
|
71
|
+
|
72
|
+
//# sourceMappingURL=generate-preview.cmd.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["_padRight","data","_interopRequireDefault","require","_constants","_chalk","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","GeneratePreviewCmd","constructor","preview","name","description","COMPONENT_PATTERN_HELP","report","userPattern","res","generateComponentPreview","formattedOutput","formatOutput","chalk","green","merged","results","reduce","acc","result","rows","entries","map","id","previewPath","keyPadded","padRight","join","exports"],"sources":["generate-preview.cmd.tsx"],"sourcesContent":["import padRight from 'pad-right';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { COMPONENT_PATTERN_HELP } from '@teambit/legacy/dist/constants';\nimport chalk from 'chalk';\nimport type { PreviewMain } from './preview.main.runtime';\nimport { EnvsExecutionResult } from '@teambit/envs';\n\ntype GeneratePreviewArgs = [userPattern: string];\ntype GeneratePreviewFlags = {\n name: string;\n};\n\nexport class GeneratePreviewCmd implements Command {\n name = 'generate-preview [component-pattern]';\n description = 'generate preview bundle for components';\n arguments = [\n {\n name: 'component-pattern',\n description: COMPONENT_PATTERN_HELP,\n },\n ];\n group = 'development';\n options = [['n', 'name <name>', 'name for the preview']] as CommandOptions;\n private = true;\n\n constructor(\n /**\n * access to the extension instance.\n */\n private preview: PreviewMain\n ) {}\n\n async report([userPattern]: GeneratePreviewArgs, { name }: GeneratePreviewFlags) {\n const res = await this.preview.generateComponentPreview(userPattern, name);\n const formattedOutput = this.formatOutput(res);\n return chalk.green(`previews generated successfully in:\\n${formattedOutput}`);\n }\n\n formatOutput(res: EnvsExecutionResult<{ [id: string]: string }>) {\n const merged = res.results.reduce((acc, result) => {\n acc = { ...acc, ...result.data };\n return acc;\n }, {});\n const rows = Object.entries(merged).map(([id, previewPath]) => {\n const keyPadded = padRight(id, 20, ' ');\n return chalk.green(`${keyPadded} - ${previewPath}`);\n });\n return rows.join('\\n');\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.preview_preview@1.0.
|
2
|
-
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.preview_preview@1.0.
|
1
|
+
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.preview_preview@1.0.467/dist/preview.composition.js';
|
2
|
+
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.preview_preview@1.0.467/dist/preview.docs.mdx';
|
3
3
|
|
4
4
|
export const compositions = [compositions_0];
|
5
5
|
export const overview = [overview_0];
|
@@ -1,8 +1,9 @@
|
|
1
1
|
import type { BuilderMain } from '@teambit/builder';
|
2
2
|
import { Asset, BundlerMain } from '@teambit/bundler';
|
3
3
|
import { PubsubMain } from '@teambit/pubsub';
|
4
|
+
import type { CLIMain } from '@teambit/cli';
|
4
5
|
import { Component, ComponentMain, ComponentMap, ComponentID, ResolveAspectsOptions } from '@teambit/component';
|
5
|
-
import type { EnvsMain, PreviewEnv } from '@teambit/envs';
|
6
|
+
import type { EnvsExecutionResult, EnvsMain, ExecutionContext, PreviewEnv } from '@teambit/envs';
|
6
7
|
import { SlotRegistry, Harmony } from '@teambit/harmony';
|
7
8
|
import { UiMain, UIRoot } from '@teambit/ui';
|
8
9
|
import { CacheMain } from '@teambit/cache';
|
@@ -11,6 +12,7 @@ import type { AspectDefinition, AspectLoaderMain } from '@teambit/aspect-loader'
|
|
11
12
|
import { Workspace } from '@teambit/workspace';
|
12
13
|
import { LoggerMain, Logger } from '@teambit/logger';
|
13
14
|
import type { DependencyResolverMain } from '@teambit/dependency-resolver';
|
15
|
+
import { ExpressMain } from '@teambit/express';
|
14
16
|
import { WatcherMain } from '@teambit/watcher';
|
15
17
|
import { GraphqlMain } from '@teambit/graphql';
|
16
18
|
import { ScopeMain } from '@teambit/scope';
|
@@ -118,6 +120,7 @@ export declare class PreviewMain {
|
|
118
120
|
private workspace;
|
119
121
|
private logger;
|
120
122
|
private dependencyResolver;
|
123
|
+
private express;
|
121
124
|
constructor(
|
122
125
|
/**
|
123
126
|
* harmony context.
|
@@ -126,7 +129,8 @@ export declare class PreviewMain {
|
|
126
129
|
/**
|
127
130
|
* slot for preview definitions.
|
128
131
|
*/
|
129
|
-
previewSlot: PreviewDefinitionRegistry, ui: UiMain, cache: CacheMain, envs: EnvsMain, componentAspect: ComponentMain, pkg: PkgMain, aspectLoader: AspectLoaderMain, config: PreviewConfig, bundlingStrategySlot: BundlingStrategySlot, builder: BuilderMain, workspace: Workspace | undefined, logger: Logger, dependencyResolver: DependencyResolverMain);
|
132
|
+
previewSlot: PreviewDefinitionRegistry, ui: UiMain, cache: CacheMain, envs: EnvsMain, componentAspect: ComponentMain, pkg: PkgMain, aspectLoader: AspectLoaderMain, config: PreviewConfig, bundlingStrategySlot: BundlingStrategySlot, builder: BuilderMain, workspace: Workspace | undefined, logger: Logger, dependencyResolver: DependencyResolverMain, express: ExpressMain);
|
133
|
+
private previewService;
|
130
134
|
get tempFolder(): string;
|
131
135
|
getComponentBundleSize(component: Component): ComponentPreviewSize | undefined;
|
132
136
|
getPreview(component: Component): Promise<PreviewArtifact | undefined>;
|
@@ -164,6 +168,12 @@ export declare class PreviewMain {
|
|
164
168
|
doesEnvUseNameParam(envComponent: Component): boolean;
|
165
169
|
private calculateIncludeOnlyOverview;
|
166
170
|
private calculateUseNameParam;
|
171
|
+
generateComponentPreview(componentPattern: string, name: string): Promise<EnvsExecutionResult<{
|
172
|
+
[id: string]: string;
|
173
|
+
}>>;
|
174
|
+
serveLocalPreview({ port }: {
|
175
|
+
port: number;
|
176
|
+
}): Promise<number>;
|
167
177
|
/**
|
168
178
|
* Calculate preview data on component load
|
169
179
|
* @param component
|
@@ -286,7 +296,7 @@ export declare class PreviewMain {
|
|
286
296
|
private executionRefs;
|
287
297
|
private getPreviewTarget;
|
288
298
|
private writePreviewEntry;
|
289
|
-
|
299
|
+
updateLinkFiles(previews: PreviewDefinition[], components: Component[] | undefined, context: ExecutionContext): Promise<string[]>;
|
290
300
|
writePreviewRuntime(context: {
|
291
301
|
components: Component[];
|
292
302
|
}, aspectsIdsToNotFilterOut?: string[]): Promise<string>;
|
@@ -324,7 +334,7 @@ export declare class PreviewMain {
|
|
324
334
|
disabled: boolean;
|
325
335
|
onlyOverview: boolean;
|
326
336
|
};
|
327
|
-
static provider([bundler, builder, componentExtension, uiMain, cache, envs, workspace, pkg, pubsub, aspectLoader, loggerMain, dependencyResolver, graphql, watcher, scope,]: [
|
337
|
+
static provider([bundler, builder, componentExtension, uiMain, cache, envs, workspace, pkg, pubsub, aspectLoader, loggerMain, dependencyResolver, graphql, watcher, scope, cli, express,]: [
|
328
338
|
BundlerMain,
|
329
339
|
BuilderMain,
|
330
340
|
ComponentMain,
|
@@ -339,6 +349,8 @@ export declare class PreviewMain {
|
|
339
349
|
DependencyResolverMain,
|
340
350
|
GraphqlMain,
|
341
351
|
WatcherMain,
|
342
|
-
ScopeMain
|
352
|
+
ScopeMain,
|
353
|
+
CLIMain,
|
354
|
+
ExpressMain
|
343
355
|
], config: PreviewConfig, [previewSlot, bundlingStrategySlot]: [PreviewDefinitionRegistry, BundlingStrategySlot], harmony: Harmony): Promise<PreviewMain>;
|
344
356
|
}
|
@@ -144,6 +144,13 @@ function _dependencyResolver() {
|
|
144
144
|
};
|
145
145
|
return data;
|
146
146
|
}
|
147
|
+
function _express() {
|
148
|
+
const data = require("@teambit/express");
|
149
|
+
_express = function () {
|
150
|
+
return data;
|
151
|
+
};
|
152
|
+
return data;
|
153
|
+
}
|
147
154
|
function _component2() {
|
148
155
|
const data = require("@teambit/component.sources");
|
149
156
|
_component2 = function () {
|
@@ -305,6 +312,20 @@ function _preBundleUtils() {
|
|
305
312
|
};
|
306
313
|
return data;
|
307
314
|
}
|
315
|
+
function _generatePreview() {
|
316
|
+
const data = require("./generate-preview.cmd");
|
317
|
+
_generatePreview = function () {
|
318
|
+
return data;
|
319
|
+
};
|
320
|
+
return data;
|
321
|
+
}
|
322
|
+
function _servePreview() {
|
323
|
+
const data = require("./serve-preview.cmd");
|
324
|
+
_servePreview = function () {
|
325
|
+
return data;
|
326
|
+
};
|
327
|
+
return data;
|
328
|
+
}
|
308
329
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
309
330
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
310
331
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
@@ -338,7 +359,7 @@ class PreviewMain {
|
|
338
359
|
/**
|
339
360
|
* slot for preview definitions.
|
340
361
|
*/
|
341
|
-
previewSlot, ui, cache, envs, componentAspect, pkg, aspectLoader, config, bundlingStrategySlot, builder, workspace, logger, dependencyResolver) {
|
362
|
+
previewSlot, ui, cache, envs, componentAspect, pkg, aspectLoader, config, bundlingStrategySlot, builder, workspace, logger, dependencyResolver, express) {
|
342
363
|
this.harmony = harmony;
|
343
364
|
this.previewSlot = previewSlot;
|
344
365
|
this.ui = ui;
|
@@ -353,6 +374,8 @@ class PreviewMain {
|
|
353
374
|
this.workspace = workspace;
|
354
375
|
this.logger = logger;
|
355
376
|
this.dependencyResolver = dependencyResolver;
|
377
|
+
this.express = express;
|
378
|
+
_defineProperty(this, "previewService", void 0);
|
356
379
|
_defineProperty(this, "writeHash", new Map());
|
357
380
|
_defineProperty(this, "timestamp", Date.now());
|
358
381
|
_defineProperty(this, "executionRefs", new Map());
|
@@ -369,7 +392,8 @@ class PreviewMain {
|
|
369
392
|
|
370
393
|
// add / remove / etc
|
371
394
|
updater(executionRef);
|
372
|
-
|
395
|
+
const previews = this.previewSlot.values();
|
396
|
+
await this.updateLinkFiles(previews, executionRef.currentComponents, executionRef.executionCtx);
|
373
397
|
return noopResult;
|
374
398
|
});
|
375
399
|
_defineProperty(this, "handleComponentRemoval", cId => {
|
@@ -465,6 +489,88 @@ class PreviewMain {
|
|
465
489
|
const envComponent = await this.envs.getEnvComponent(component);
|
466
490
|
return this.doesEnvUseNameParam(envComponent);
|
467
491
|
}
|
492
|
+
async generateComponentPreview(componentPattern, name) {
|
493
|
+
const componentIds = componentPattern ? await this.workspace?.idsByPattern(componentPattern, true) : this.workspace?.listIds();
|
494
|
+
if (!componentIds) {
|
495
|
+
throw new (_bitError().BitError)(`unable to find components by the pattern: ${componentPattern}`);
|
496
|
+
}
|
497
|
+
const components = await this.workspace?.getMany(componentIds);
|
498
|
+
if (!components) {
|
499
|
+
throw new (_bitError().BitError)(`unable to find components by the pattern: ${componentPattern}`);
|
500
|
+
}
|
501
|
+
const envsRuntime = await this.envs.createEnvironment(components);
|
502
|
+
const previewResults = await envsRuntime.run(this.previewService, {
|
503
|
+
name
|
504
|
+
});
|
505
|
+
return previewResults;
|
506
|
+
}
|
507
|
+
async serveLocalPreview({
|
508
|
+
port
|
509
|
+
}) {
|
510
|
+
const app = this.express.createApp();
|
511
|
+
const getDir = async (comp, msg) => {
|
512
|
+
const componentPreviewIndex = await this.previewService.readComponentsPreview(msg);
|
513
|
+
const componentPreviewFolder = componentPreviewIndex[comp];
|
514
|
+
const envPreviewDir = this.previewService.getEnvLocalPreviewDir(msg, componentPreviewFolder);
|
515
|
+
if (!componentPreviewFolder) {
|
516
|
+
return undefined;
|
517
|
+
}
|
518
|
+
const publicDir = (0, _path().join)(envPreviewDir, 'public');
|
519
|
+
return publicDir;
|
520
|
+
};
|
521
|
+
|
522
|
+
// const dynamicRouteRegex = '/?[^/@]+(/[^~]*)?';
|
523
|
+
// readonly route = `/:componentId(${this.dynamicRouteRegex})/~aspect${this.registerRoute.route}`;
|
524
|
+
// app.use(`/:message/:componentId(${dynamicRouteRegex})`, async (req, res, next) => {
|
525
|
+
|
526
|
+
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
527
|
+
app.use(`/:message/:componentId(*)`, async (req, res, next) => {
|
528
|
+
// const comp = req.query.comp as string;
|
529
|
+
// const msg = req.query.message as string;
|
530
|
+
let comp = req.params.componentId;
|
531
|
+
const msg = req.params.message;
|
532
|
+
// Check if the folderName is provided
|
533
|
+
if (!comp) {
|
534
|
+
return res.status(400).send('Please specify a comp.');
|
535
|
+
}
|
536
|
+
if (!msg) {
|
537
|
+
return res.status(400).send('Please specify a message.');
|
538
|
+
}
|
539
|
+
if (comp.endsWith('/')) {
|
540
|
+
comp = comp.slice(0, -1);
|
541
|
+
}
|
542
|
+
let filePath;
|
543
|
+
if (comp.endsWith('.js') || comp.endsWith('.css') || comp.endsWith('.map')) {
|
544
|
+
const splitted = comp.split('/');
|
545
|
+
filePath = splitted.pop();
|
546
|
+
comp = splitted.join('/');
|
547
|
+
}
|
548
|
+
const publicDir = await getDir(comp, msg);
|
549
|
+
if (!publicDir) {
|
550
|
+
return res.status(404).send('Folder not found.');
|
551
|
+
}
|
552
|
+
if (filePath) {
|
553
|
+
const file = (0, _path().join)(publicDir, filePath);
|
554
|
+
if (!(0, _fsExtra().existsSync)(file)) {
|
555
|
+
return res.status(404).send('File not found.');
|
556
|
+
}
|
557
|
+
return res.sendFile(file);
|
558
|
+
}
|
559
|
+
|
560
|
+
// Serve files from the specified folder
|
561
|
+
this.express.static(publicDir)(req, res, next);
|
562
|
+
});
|
563
|
+
const server = await app.listen(port);
|
564
|
+
return new Promise((resolve, reject) => {
|
565
|
+
server.on('error', err => {
|
566
|
+
reject(err);
|
567
|
+
});
|
568
|
+
server.on('listening', () => {
|
569
|
+
this.logger.consoleSuccess(`Bit preview server is listening on port ${port}`);
|
570
|
+
resolve(port);
|
571
|
+
});
|
572
|
+
});
|
573
|
+
}
|
468
574
|
|
469
575
|
/**
|
470
576
|
* Calculate preview data on component load
|
@@ -814,7 +920,8 @@ class PreviewMain {
|
|
814
920
|
this.executionRefs.set(ctxId, new (_executionRef().ExecutionRef)(context));
|
815
921
|
});
|
816
922
|
const previewRuntime = await this.writePreviewEntry(context);
|
817
|
-
const
|
923
|
+
const previews = this.previewSlot.values();
|
924
|
+
const linkFiles = await this.updateLinkFiles(previews, context.components, context);
|
818
925
|
return [...linkFiles, previewRuntime];
|
819
926
|
}
|
820
927
|
async writePreviewEntry(context, aspectsIdsToNotFilterOut = []) {
|
@@ -850,8 +957,7 @@ class PreviewMain {
|
|
850
957
|
const previewRuntime = await (0, _preBundle().generateBundlePreviewEntry)(name, bundlePath, this.harmony.config.toObject());
|
851
958
|
return previewRuntime;
|
852
959
|
}
|
853
|
-
updateLinkFiles(components = [], context) {
|
854
|
-
const previews = this.previewSlot.values();
|
960
|
+
updateLinkFiles(previews, components = [], context) {
|
855
961
|
const paths = previews.map(async previewDef => {
|
856
962
|
const defaultTemplatePath = await previewDef.renderTemplatePathByEnv?.(context.env);
|
857
963
|
const visitedEnvs = new Set();
|
@@ -937,7 +1043,7 @@ class PreviewMain {
|
|
937
1043
|
return filtered;
|
938
1044
|
}
|
939
1045
|
getDefaultStrategies() {
|
940
|
-
return [new (_strategies().EnvBundlingStrategy)(this, this.pkg, this.dependencyResolver), new (_strategies().ComponentBundlingStrategy)(this, this.
|
1046
|
+
return [new (_strategies().EnvBundlingStrategy)(this, this.pkg, this.dependencyResolver), new (_strategies().ComponentBundlingStrategy)(this, this.dependencyResolver, this.logger)];
|
941
1047
|
}
|
942
1048
|
getEnvPreviewConfig(env) {
|
943
1049
|
const config = env?.getPreviewConfig && typeof env?.getPreviewConfig === 'function' ? env?.getPreviewConfig() : {};
|
@@ -976,10 +1082,11 @@ class PreviewMain {
|
|
976
1082
|
}
|
977
1083
|
static async provider(
|
978
1084
|
// eslint-disable-next-line max-len
|
979
|
-
[bundler, builder, componentExtension, uiMain, cache, envs, workspace, pkg, pubsub, aspectLoader, loggerMain, dependencyResolver, graphql, watcher, scope], config, [previewSlot, bundlingStrategySlot], harmony) {
|
1085
|
+
[bundler, builder, componentExtension, uiMain, cache, envs, workspace, pkg, pubsub, aspectLoader, loggerMain, dependencyResolver, graphql, watcher, scope, cli, express], config, [previewSlot, bundlingStrategySlot], harmony) {
|
980
1086
|
const logger = loggerMain.createLogger(_preview().PreviewAspect.id);
|
981
1087
|
// app.registerApp(new PreviewApp());
|
982
|
-
const preview = new PreviewMain(harmony, previewSlot, uiMain, cache, envs, componentExtension, pkg, aspectLoader, config, bundlingStrategySlot, builder, workspace, logger, dependencyResolver);
|
1088
|
+
const preview = new PreviewMain(harmony, previewSlot, uiMain, cache, envs, componentExtension, pkg, aspectLoader, config, bundlingStrategySlot, builder, workspace, logger, dependencyResolver, express);
|
1089
|
+
cli.register(new (_generatePreview().GeneratePreviewCmd)(preview), new (_servePreview().ServePreviewCmd)(preview));
|
983
1090
|
if (workspace) uiMain.registerStartPlugin(new (_preview4().PreviewStartPlugin)(workspace, bundler, uiMain, pubsub, logger, watcher));
|
984
1091
|
componentExtension.registerRoute([new (_preview2().PreviewRoute)(preview, logger), new (_componentPreview().ComponentPreviewRoute)(preview, logger),
|
985
1092
|
// @ts-ignore
|
@@ -999,7 +1106,9 @@ class PreviewMain {
|
|
999
1106
|
if (scope) {
|
1000
1107
|
scope.registerOnCompAspectReCalc(c => preview.calcPreviewData(c));
|
1001
1108
|
}
|
1002
|
-
|
1109
|
+
const previewService = new (_preview6().PreviewService)(preview, logger, dependencyResolver, scope);
|
1110
|
+
envs.registerService(previewService);
|
1111
|
+
preview.previewService = previewService;
|
1003
1112
|
graphql.register((0, _preview5().previewSchema)(preview));
|
1004
1113
|
return preview;
|
1005
1114
|
}
|
@@ -1007,7 +1116,7 @@ class PreviewMain {
|
|
1007
1116
|
exports.PreviewMain = PreviewMain;
|
1008
1117
|
_defineProperty(PreviewMain, "slots", [_harmony().Slot.withType(), _harmony().Slot.withType()]);
|
1009
1118
|
_defineProperty(PreviewMain, "runtime", _cli().MainRuntime);
|
1010
|
-
_defineProperty(PreviewMain, "dependencies", [_bundler().BundlerAspect, _builder().BuilderAspect, _component().ComponentAspect, _ui().UIAspect, _cache().CacheAspect, _envs().EnvsAspect, _workspace().WorkspaceAspect, _pkg().PkgAspect, _pubsub().PubsubAspect, _aspectLoader().AspectLoaderAspect, _logger().LoggerAspect, _dependencyResolver().DependencyResolverAspect, _graphql().GraphqlAspect, _watcher().WatcherAspect, _scope().ScopeAspect]);
|
1119
|
+
_defineProperty(PreviewMain, "dependencies", [_bundler().BundlerAspect, _builder().BuilderAspect, _component().ComponentAspect, _ui().UIAspect, _cache().CacheAspect, _envs().EnvsAspect, _workspace().WorkspaceAspect, _pkg().PkgAspect, _pubsub().PubsubAspect, _aspectLoader().AspectLoaderAspect, _logger().LoggerAspect, _dependencyResolver().DependencyResolverAspect, _graphql().GraphqlAspect, _watcher().WatcherAspect, _scope().ScopeAspect, _cli().CLIAspect, _express().ExpressAspect]);
|
1011
1120
|
_defineProperty(PreviewMain, "defaultConfig", {
|
1012
1121
|
disabled: false,
|
1013
1122
|
onlyOverview: false
|