@teambit/preview 0.0.531 → 0.0.535
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/dist/exceptions/index.js +4 -4
- package/dist/index.js +5 -5
- package/dist/preview.aspect.js +1 -1
- package/dist/preview.main.runtime.js +1 -1
- package/dist/preview.main.runtime.js.map +1 -1
- package/dist/preview.preview.runtime.js +1 -1
- package/dist/preview.start-plugin.d.ts +3 -1
- package/dist/preview.start-plugin.js +19 -4
- package/dist/preview.start-plugin.js.map +1 -1
- package/dist/strategies/index.js +4 -4
- package/package-tar/teambit-preview-0.0.535.tgz +0 -0
- package/package.json +20 -20
- package/preview.main.runtime.tsx +1 -1
- package/preview.start-plugin.tsx +25 -17
- package/package-tar/teambit-preview-0.0.531.tgz +0 -0
package/dist/exceptions/index.js
CHANGED
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
Object.defineProperty(exports, "
|
|
6
|
+
Object.defineProperty(exports, "BundlingStrategyNotFound", {
|
|
7
7
|
enumerable: true,
|
|
8
8
|
get: function () {
|
|
9
|
-
return
|
|
9
|
+
return _bundlingStrategyNotFound().BundlingStrategyNotFound;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
12
|
Object.defineProperty(exports, "PreviewArtifactNotFound", {
|
|
@@ -15,10 +15,10 @@ Object.defineProperty(exports, "PreviewArtifactNotFound", {
|
|
|
15
15
|
return _previewArtifactNotFound().PreviewArtifactNotFound;
|
|
16
16
|
}
|
|
17
17
|
});
|
|
18
|
-
Object.defineProperty(exports, "
|
|
18
|
+
Object.defineProperty(exports, "PreviewNotFound", {
|
|
19
19
|
enumerable: true,
|
|
20
20
|
get: function () {
|
|
21
|
-
return
|
|
21
|
+
return _previewNotFound().PreviewNotFound;
|
|
22
22
|
}
|
|
23
23
|
});
|
|
24
24
|
|
package/dist/index.js
CHANGED
|
@@ -8,16 +8,16 @@ var _exportNames = {
|
|
|
8
8
|
PreviewRuntime: true,
|
|
9
9
|
PreviewDefinition: true
|
|
10
10
|
};
|
|
11
|
-
Object.defineProperty(exports, "
|
|
11
|
+
Object.defineProperty(exports, "PreviewAspect", {
|
|
12
12
|
enumerable: true,
|
|
13
13
|
get: function () {
|
|
14
14
|
return _preview().PreviewAspect;
|
|
15
15
|
}
|
|
16
16
|
});
|
|
17
|
-
Object.defineProperty(exports, "
|
|
17
|
+
Object.defineProperty(exports, "PreviewDefinition", {
|
|
18
18
|
enumerable: true,
|
|
19
19
|
get: function () {
|
|
20
|
-
return
|
|
20
|
+
return _previewDefinition().PreviewDefinition;
|
|
21
21
|
}
|
|
22
22
|
});
|
|
23
23
|
Object.defineProperty(exports, "PreviewRuntime", {
|
|
@@ -26,10 +26,10 @@ Object.defineProperty(exports, "PreviewRuntime", {
|
|
|
26
26
|
return _preview().PreviewRuntime;
|
|
27
27
|
}
|
|
28
28
|
});
|
|
29
|
-
Object.defineProperty(exports, "
|
|
29
|
+
Object.defineProperty(exports, "default", {
|
|
30
30
|
enumerable: true,
|
|
31
31
|
get: function () {
|
|
32
|
-
return
|
|
32
|
+
return _preview().PreviewAspect;
|
|
33
33
|
}
|
|
34
34
|
});
|
|
35
35
|
|
package/dist/preview.aspect.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.default = exports.
|
|
6
|
+
exports.default = exports.PreviewRuntime = exports.PreviewAspect = void 0;
|
|
7
7
|
|
|
8
8
|
function _harmony() {
|
|
9
9
|
const data = require("@teambit/harmony");
|
|
@@ -494,7 +494,7 @@ class PreviewMain {
|
|
|
494
494
|
static async provider([bundler, builder, componentExtension, uiMain, envs, workspace, pkg, pubsub, aspectLoader, loggerMain], config, [previewSlot, bundlingStrategySlot], harmony) {
|
|
495
495
|
const logger = loggerMain.createLogger(_preview().PreviewAspect.id);
|
|
496
496
|
const preview = new PreviewMain(harmony, previewSlot, uiMain, envs, pkg, aspectLoader, config, bundlingStrategySlot, builder, workspace, logger);
|
|
497
|
-
if (workspace) uiMain.registerStartPlugin(new (_preview4().PreviewStartPlugin)(workspace, bundler, uiMain, pubsub));
|
|
497
|
+
if (workspace) uiMain.registerStartPlugin(new (_preview4().PreviewStartPlugin)(workspace, bundler, uiMain, pubsub, logger));
|
|
498
498
|
componentExtension.registerRoute([new (_preview2().PreviewRoute)(preview, logger)]);
|
|
499
499
|
bundler.registerTarget([{
|
|
500
500
|
entry: preview.getPreviewTarget.bind(preview)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["preview.main.runtime.tsx"],"names":["noopResult","results","toString","DEFAULT_TEMP_DIR","CACHE_ROOT","PreviewAspect","id","PreviewMain","constructor","harmony","previewSlot","ui","envs","pkg","aspectLoader","config","bundlingStrategySlot","builder","workspace","logger","Map","Date","now","c","updater","env","getEnv","envId","executionRef","executionRefs","get","warn","updateLinkFiles","currentComponents","executionCtx","cId","component","forEach","components","found","Promise","resolve","handleComponentChange","remove","tempFolder","getTempDir","getPreview","artifacts","getArtifactsVinylByExtension","length","undefined","PreviewArtifact","getDefs","values","writeLink","prefix","moduleMap","defaultModule","dirName","contents","hash","targetPath","timestamp","writeHash","set","getPreviewTarget","context","relatedContexts","ctxId","ExecutionRef","previewRuntime","writePreviewRuntime","linkFiles","previews","paths","map","previewDef","templatePath","renderTemplatePath","getModuleMap","environment","envRuntime","compilerInstance","getCompiler","withPaths","files","modulePath","getPreviewComponentRootPath","getModulePath","file","path","distRelativePath","getDistPathBySrcPath","relative","dirPath","recursive","link","all","getUi","Error","name","uiRoot","resolvedAspects","resolveAspects","PreviewRuntime","filteredAspects","filterAspectsByExecutionContext","filePath","generateRoot","aspects","allComponentContextAspects","reduce","acc","curr","concat","state","ids","hostAspects","Object","keys","toObject","allAspectsToInclude","filtered","filter","aspect","getId","isCoreAspect","includes","getDefaultStrategies","EnvBundlingStrategy","ComponentBundlingStrategy","getBundlingStrategy","defaultStrategies","strategyName","bundlingStrategy","strategies","selected","find","strategy","BundlingStrategyNotFound","registerBundlingStrategy","register","registerDefinition","provider","bundler","componentExtension","uiMain","pubsub","loggerMain","createLogger","preview","registerStartPlugin","PreviewStartPlugin","registerRoute","PreviewRoute","registerTarget","entry","bind","disabled","registerBuildTasks","PreviewTask","registerOnComponentAdd","add","registerOnComponentChange","update","registerOnComponentRemove","handleComponentRemoval","Slot","withType","MainRuntime","BundlerAspect","BuilderAspect","ComponentAspect","UIAspect","EnvsAspect","WorkspaceAspect","PkgAspect","PubsubAspect","AspectLoaderAspect","LoggerAspect","addRuntime"],"mappings":"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","sourcesContent":["import { BuilderAspect, BuilderMain } from '@teambit/builder';\nimport { BundlerAspect, BundlerMain } from '@teambit/bundler';\nimport { PubsubAspect, PubsubMain } from '@teambit/pubsub';\nimport { MainRuntime } from '@teambit/cli';\nimport { Component, ComponentAspect, ComponentMain, ComponentMap, ComponentID } from '@teambit/component';\nimport { EnvsAspect, EnvsMain, ExecutionContext } from '@teambit/envs';\nimport { Slot, SlotRegistry, Harmony } from '@teambit/harmony';\nimport { UIAspect, UiMain } from '@teambit/ui';\nimport { CACHE_ROOT } from '@teambit/legacy/dist/constants';\nimport objectHash from 'object-hash';\nimport { uniq } from 'lodash';\nimport { writeFileSync, existsSync, mkdirSync } from 'fs-extra';\nimport { join } from 'path';\nimport { PkgAspect, PkgMain } from '@teambit/pkg';\nimport { AspectDefinition, AspectLoaderMain, AspectLoaderAspect } from '@teambit/aspect-loader';\nimport WorkspaceAspect, { Workspace } from '@teambit/workspace';\nimport { LoggerAspect, LoggerMain, Logger } from '@teambit/logger';\nimport { BundlingStrategyNotFound } from './exceptions';\nimport { generateLink } from './generate-link';\nimport { PreviewArtifact } from './preview-artifact';\nimport { PreviewDefinition } from './preview-definition';\nimport { PreviewAspect, PreviewRuntime } from './preview.aspect';\nimport { PreviewRoute } from './preview.route';\nimport { PreviewTask } from './preview.task';\nimport { BundlingStrategy } from './bundling-strategy';\nimport { EnvBundlingStrategy, ComponentBundlingStrategy } from './strategies';\nimport { ExecutionRef } from './execution-ref';\nimport { PreviewStartPlugin } from './preview.start-plugin';\n\nconst noopResult = {\n results: [],\n toString: () => `updating link file`,\n};\n\nconst DEFAULT_TEMP_DIR = join(CACHE_ROOT, PreviewAspect.id);\n\nexport type PreviewDefinitionRegistry = SlotRegistry<PreviewDefinition>;\n\nexport type PreviewConfig = {\n bundlingStrategy: string;\n disabled: boolean;\n};\n\nexport type BundlingStrategySlot = SlotRegistry<BundlingStrategy>;\n\nexport class PreviewMain {\n constructor(\n /**\n * harmony context.\n */\n private harmony: Harmony,\n\n /**\n * slot for preview definitions.\n */\n private previewSlot: PreviewDefinitionRegistry,\n\n private ui: UiMain,\n\n private envs: EnvsMain,\n\n private pkg: PkgMain,\n\n private aspectLoader: AspectLoaderMain,\n\n readonly config: PreviewConfig,\n\n private bundlingStrategySlot: BundlingStrategySlot,\n\n private builder: BuilderMain,\n\n private workspace: Workspace | undefined,\n\n private logger: Logger\n ) {}\n\n get tempFolder(): string {\n return this.workspace?.getTempDir(PreviewAspect.id) || DEFAULT_TEMP_DIR;\n }\n\n async getPreview(component: Component): Promise<PreviewArtifact | undefined> {\n const artifacts = await this.builder.getArtifactsVinylByExtension(component, PreviewAspect.id);\n if (!artifacts.length) return undefined;\n\n return new PreviewArtifact(artifacts);\n }\n\n getDefs(): PreviewDefinition[] {\n return this.previewSlot.values();\n }\n\n private writeHash = new Map<string, string>();\n private timestamp = Date.now();\n\n /**\n * write a link to load custom modules dynamically.\n * @param prefix write\n * @param moduleMap map of components to module paths to require.\n * @param defaultModule\n * @param dirName\n */\n writeLink(prefix: string, moduleMap: ComponentMap<string[]>, defaultModule: string | undefined, dirName: string) {\n const contents = generateLink(prefix, moduleMap, defaultModule);\n const hash = objectHash(contents);\n const targetPath = join(dirName, `__${prefix}-${this.timestamp}.js`);\n\n // write only if link has changed (prevents triggering fs watches)\n if (this.writeHash.get(targetPath) !== hash) {\n writeFileSync(targetPath, contents);\n this.writeHash.set(targetPath, hash);\n }\n\n return targetPath;\n }\n\n private executionRefs = new Map<string, ExecutionRef>();\n\n private async getPreviewTarget(\n /** execution context (of the specific env) */\n context: ExecutionContext\n ): Promise<string[]> {\n // store context for later link-file updates\n // also register related envs that this context is acting on their behalf\n [context.id, ...context.relatedContexts].forEach((ctxId) => {\n this.executionRefs.set(ctxId, new ExecutionRef(context));\n });\n\n const previewRuntime = await this.writePreviewRuntime(context);\n const linkFiles = await this.updateLinkFiles(context.components, context);\n\n return [...linkFiles, previewRuntime];\n }\n\n private updateLinkFiles(components: Component[] = [], context: ExecutionContext) {\n const previews = this.previewSlot.values();\n const paths = previews.map(async (previewDef) => {\n const templatePath = await previewDef.renderTemplatePath?.(context);\n\n const map = await previewDef.getModuleMap(components);\n const environment = context.envRuntime.env;\n const compilerInstance = environment.getCompiler?.();\n const withPaths = map.map<string[]>((files, component) => {\n const modulePath =\n compilerInstance?.getPreviewComponentRootPath?.(component) || this.pkg.getModulePath(component);\n return files.map((file) => {\n if (!this.workspace || !compilerInstance) {\n return file.path;\n }\n const distRelativePath = compilerInstance.getDistPathBySrcPath(file.relative);\n return join(this.workspace.path, modulePath, distRelativePath);\n });\n // return files.map((file) => file.path);\n });\n\n const dirPath = join(this.tempFolder, context.id);\n if (!existsSync(dirPath)) mkdirSync(dirPath, { recursive: true });\n\n const link = this.writeLink(previewDef.prefix, withPaths, templatePath, dirPath);\n return link;\n });\n\n return Promise.all(paths);\n }\n\n async writePreviewRuntime(context: { components: Component[] }) {\n const ui = this.ui.getUi();\n if (!ui) throw new Error('ui not found');\n const [name, uiRoot] = ui;\n const resolvedAspects = await uiRoot.resolveAspects(PreviewRuntime.name);\n const filteredAspects = this.filterAspectsByExecutionContext(resolvedAspects, context);\n const filePath = await this.ui.generateRoot(filteredAspects, name, 'preview', PreviewAspect.id);\n return filePath;\n }\n\n /**\n * Filter the aspects to have only aspects that are:\n * 1. core aspects\n * 2. configured on the host (workspace/scope)\n * 3. used by at least one component from the context\n * @param aspects\n * @param context\n */\n private filterAspectsByExecutionContext(aspects: AspectDefinition[], context: { components: Component[] }) {\n let allComponentContextAspects: string[] = [];\n allComponentContextAspects = context.components.reduce((acc, curr) => {\n return acc.concat(curr.state.aspects.ids);\n }, allComponentContextAspects);\n const hostAspects = Object.keys(this.harmony.config.toObject());\n const allAspectsToInclude = uniq(hostAspects.concat(allComponentContextAspects));\n const filtered = aspects.filter((aspect) => {\n if (!aspect.getId) {\n return false;\n }\n return this.aspectLoader.isCoreAspect(aspect.getId) || allAspectsToInclude.includes(aspect.getId);\n });\n return filtered;\n }\n\n private getDefaultStrategies() {\n return [new EnvBundlingStrategy(this), new ComponentBundlingStrategy()];\n }\n\n // TODO - executionContext should be responsible for updating components list, and emit 'update' events\n // instead we keep track of changes\n private handleComponentChange = async (c: Component, updater: (currentComponents: ExecutionRef) => void) => {\n const env = this.envs.getEnv(c);\n const envId = env.id.toString();\n\n const executionRef = this.executionRefs.get(envId);\n if (!executionRef) {\n this.logger.warn(\n `failed to update link file for component \"${c.id.toString()}\" - could not find execution context for ${envId}`\n );\n return noopResult;\n }\n\n // add / remove / etc\n updater(executionRef);\n\n await this.updateLinkFiles(executionRef.currentComponents, executionRef.executionCtx);\n\n return noopResult;\n };\n\n private handleComponentRemoval = (cId: ComponentID) => {\n let component: Component | undefined;\n this.executionRefs.forEach((components) => {\n const found = components.get(cId);\n if (found) component = found;\n });\n if (!component) return Promise.resolve(noopResult);\n\n return this.handleComponentChange(component, (currentComponents) => currentComponents.remove(cId));\n };\n\n /**\n * return the configured bundling strategy.\n */\n getBundlingStrategy(): BundlingStrategy {\n const defaultStrategies = this.getDefaultStrategies();\n const strategyName = this.config.bundlingStrategy;\n const strategies = this.bundlingStrategySlot.values().concat(defaultStrategies);\n const selected = strategies.find((strategy) => {\n return strategy.name === strategyName;\n });\n\n if (!selected) throw new BundlingStrategyNotFound(strategyName);\n\n return selected;\n }\n\n /**\n * register a new bundling strategy. default available strategies are `env` and ``\n */\n registerBundlingStrategy(bundlingStrategy: BundlingStrategy) {\n this.bundlingStrategySlot.register(bundlingStrategy);\n return this;\n }\n\n /**\n * register a new preview definition.\n */\n registerDefinition(previewDef: PreviewDefinition) {\n this.previewSlot.register(previewDef);\n }\n\n static slots = [Slot.withType<PreviewDefinition>(), Slot.withType<BundlingStrategy>()];\n\n static runtime = MainRuntime;\n static dependencies = [\n BundlerAspect,\n BuilderAspect,\n ComponentAspect,\n UIAspect,\n EnvsAspect,\n WorkspaceAspect,\n PkgAspect,\n PubsubAspect,\n AspectLoaderAspect,\n LoggerAspect,\n ];\n\n static defaultConfig = {\n bundlingStrategy: 'env',\n disabled: false,\n };\n\n static async provider(\n [bundler, builder, componentExtension, uiMain, envs, workspace, pkg, pubsub, aspectLoader, loggerMain]: [\n BundlerMain,\n BuilderMain,\n ComponentMain,\n UiMain,\n EnvsMain,\n Workspace | undefined,\n PkgMain,\n PubsubMain,\n AspectLoaderMain,\n LoggerMain\n ],\n config: PreviewConfig,\n [previewSlot, bundlingStrategySlot]: [PreviewDefinitionRegistry, BundlingStrategySlot],\n harmony: Harmony\n ) {\n const logger = loggerMain.createLogger(PreviewAspect.id);\n\n const preview = new PreviewMain(\n harmony,\n previewSlot,\n uiMain,\n envs,\n pkg,\n aspectLoader,\n config,\n bundlingStrategySlot,\n builder,\n workspace,\n logger\n );\n\n if (workspace) uiMain.registerStartPlugin(new PreviewStartPlugin(workspace, bundler, uiMain, pubsub));\n\n componentExtension.registerRoute([new PreviewRoute(preview, logger)]);\n bundler.registerTarget([\n {\n entry: preview.getPreviewTarget.bind(preview),\n },\n ]);\n\n if (!config.disabled) builder.registerBuildTasks([new PreviewTask(bundler, preview)]);\n\n if (workspace) {\n workspace.registerOnComponentAdd((c) =>\n preview.handleComponentChange(c, (currentComponents) => currentComponents.add(c))\n );\n workspace.registerOnComponentChange((c) =>\n preview.handleComponentChange(c, (currentComponents) => currentComponents.update(c))\n );\n workspace.registerOnComponentRemove((cId) => preview.handleComponentRemoval(cId));\n }\n\n return preview;\n }\n}\n\nPreviewAspect.addRuntime(PreviewMain);\n"]}
|
|
1
|
+
{"version":3,"sources":["preview.main.runtime.tsx"],"names":["noopResult","results","toString","DEFAULT_TEMP_DIR","CACHE_ROOT","PreviewAspect","id","PreviewMain","constructor","harmony","previewSlot","ui","envs","pkg","aspectLoader","config","bundlingStrategySlot","builder","workspace","logger","Map","Date","now","c","updater","env","getEnv","envId","executionRef","executionRefs","get","warn","updateLinkFiles","currentComponents","executionCtx","cId","component","forEach","components","found","Promise","resolve","handleComponentChange","remove","tempFolder","getTempDir","getPreview","artifacts","getArtifactsVinylByExtension","length","undefined","PreviewArtifact","getDefs","values","writeLink","prefix","moduleMap","defaultModule","dirName","contents","hash","targetPath","timestamp","writeHash","set","getPreviewTarget","context","relatedContexts","ctxId","ExecutionRef","previewRuntime","writePreviewRuntime","linkFiles","previews","paths","map","previewDef","templatePath","renderTemplatePath","getModuleMap","environment","envRuntime","compilerInstance","getCompiler","withPaths","files","modulePath","getPreviewComponentRootPath","getModulePath","file","path","distRelativePath","getDistPathBySrcPath","relative","dirPath","recursive","link","all","getUi","Error","name","uiRoot","resolvedAspects","resolveAspects","PreviewRuntime","filteredAspects","filterAspectsByExecutionContext","filePath","generateRoot","aspects","allComponentContextAspects","reduce","acc","curr","concat","state","ids","hostAspects","Object","keys","toObject","allAspectsToInclude","filtered","filter","aspect","getId","isCoreAspect","includes","getDefaultStrategies","EnvBundlingStrategy","ComponentBundlingStrategy","getBundlingStrategy","defaultStrategies","strategyName","bundlingStrategy","strategies","selected","find","strategy","BundlingStrategyNotFound","registerBundlingStrategy","register","registerDefinition","provider","bundler","componentExtension","uiMain","pubsub","loggerMain","createLogger","preview","registerStartPlugin","PreviewStartPlugin","registerRoute","PreviewRoute","registerTarget","entry","bind","disabled","registerBuildTasks","PreviewTask","registerOnComponentAdd","add","registerOnComponentChange","update","registerOnComponentRemove","handleComponentRemoval","Slot","withType","MainRuntime","BundlerAspect","BuilderAspect","ComponentAspect","UIAspect","EnvsAspect","WorkspaceAspect","PkgAspect","PubsubAspect","AspectLoaderAspect","LoggerAspect","addRuntime"],"mappings":"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","sourcesContent":["import { BuilderAspect, BuilderMain } from '@teambit/builder';\nimport { BundlerAspect, BundlerMain } from '@teambit/bundler';\nimport { PubsubAspect, PubsubMain } from '@teambit/pubsub';\nimport { MainRuntime } from '@teambit/cli';\nimport { Component, ComponentAspect, ComponentMain, ComponentMap, ComponentID } from '@teambit/component';\nimport { EnvsAspect, EnvsMain, ExecutionContext } from '@teambit/envs';\nimport { Slot, SlotRegistry, Harmony } from '@teambit/harmony';\nimport { UIAspect, UiMain } from '@teambit/ui';\nimport { CACHE_ROOT } from '@teambit/legacy/dist/constants';\nimport objectHash from 'object-hash';\nimport { uniq } from 'lodash';\nimport { writeFileSync, existsSync, mkdirSync } from 'fs-extra';\nimport { join } from 'path';\nimport { PkgAspect, PkgMain } from '@teambit/pkg';\nimport { AspectDefinition, AspectLoaderMain, AspectLoaderAspect } from '@teambit/aspect-loader';\nimport WorkspaceAspect, { Workspace } from '@teambit/workspace';\nimport { LoggerAspect, LoggerMain, Logger } from '@teambit/logger';\nimport { BundlingStrategyNotFound } from './exceptions';\nimport { generateLink } from './generate-link';\nimport { PreviewArtifact } from './preview-artifact';\nimport { PreviewDefinition } from './preview-definition';\nimport { PreviewAspect, PreviewRuntime } from './preview.aspect';\nimport { PreviewRoute } from './preview.route';\nimport { PreviewTask } from './preview.task';\nimport { BundlingStrategy } from './bundling-strategy';\nimport { EnvBundlingStrategy, ComponentBundlingStrategy } from './strategies';\nimport { ExecutionRef } from './execution-ref';\nimport { PreviewStartPlugin } from './preview.start-plugin';\n\nconst noopResult = {\n results: [],\n toString: () => `updating link file`,\n};\n\nconst DEFAULT_TEMP_DIR = join(CACHE_ROOT, PreviewAspect.id);\n\nexport type PreviewDefinitionRegistry = SlotRegistry<PreviewDefinition>;\n\nexport type PreviewConfig = {\n bundlingStrategy: string;\n disabled: boolean;\n};\n\nexport type BundlingStrategySlot = SlotRegistry<BundlingStrategy>;\n\nexport class PreviewMain {\n constructor(\n /**\n * harmony context.\n */\n private harmony: Harmony,\n\n /**\n * slot for preview definitions.\n */\n private previewSlot: PreviewDefinitionRegistry,\n\n private ui: UiMain,\n\n private envs: EnvsMain,\n\n private pkg: PkgMain,\n\n private aspectLoader: AspectLoaderMain,\n\n readonly config: PreviewConfig,\n\n private bundlingStrategySlot: BundlingStrategySlot,\n\n private builder: BuilderMain,\n\n private workspace: Workspace | undefined,\n\n private logger: Logger\n ) {}\n\n get tempFolder(): string {\n return this.workspace?.getTempDir(PreviewAspect.id) || DEFAULT_TEMP_DIR;\n }\n\n async getPreview(component: Component): Promise<PreviewArtifact | undefined> {\n const artifacts = await this.builder.getArtifactsVinylByExtension(component, PreviewAspect.id);\n if (!artifacts.length) return undefined;\n\n return new PreviewArtifact(artifacts);\n }\n\n getDefs(): PreviewDefinition[] {\n return this.previewSlot.values();\n }\n\n private writeHash = new Map<string, string>();\n private timestamp = Date.now();\n\n /**\n * write a link to load custom modules dynamically.\n * @param prefix write\n * @param moduleMap map of components to module paths to require.\n * @param defaultModule\n * @param dirName\n */\n writeLink(prefix: string, moduleMap: ComponentMap<string[]>, defaultModule: string | undefined, dirName: string) {\n const contents = generateLink(prefix, moduleMap, defaultModule);\n const hash = objectHash(contents);\n const targetPath = join(dirName, `__${prefix}-${this.timestamp}.js`);\n\n // write only if link has changed (prevents triggering fs watches)\n if (this.writeHash.get(targetPath) !== hash) {\n writeFileSync(targetPath, contents);\n this.writeHash.set(targetPath, hash);\n }\n\n return targetPath;\n }\n\n private executionRefs = new Map<string, ExecutionRef>();\n\n private async getPreviewTarget(\n /** execution context (of the specific env) */\n context: ExecutionContext\n ): Promise<string[]> {\n // store context for later link-file updates\n // also register related envs that this context is acting on their behalf\n [context.id, ...context.relatedContexts].forEach((ctxId) => {\n this.executionRefs.set(ctxId, new ExecutionRef(context));\n });\n\n const previewRuntime = await this.writePreviewRuntime(context);\n const linkFiles = await this.updateLinkFiles(context.components, context);\n\n return [...linkFiles, previewRuntime];\n }\n\n private updateLinkFiles(components: Component[] = [], context: ExecutionContext) {\n const previews = this.previewSlot.values();\n const paths = previews.map(async (previewDef) => {\n const templatePath = await previewDef.renderTemplatePath?.(context);\n\n const map = await previewDef.getModuleMap(components);\n const environment = context.envRuntime.env;\n const compilerInstance = environment.getCompiler?.();\n const withPaths = map.map<string[]>((files, component) => {\n const modulePath =\n compilerInstance?.getPreviewComponentRootPath?.(component) || this.pkg.getModulePath(component);\n return files.map((file) => {\n if (!this.workspace || !compilerInstance) {\n return file.path;\n }\n const distRelativePath = compilerInstance.getDistPathBySrcPath(file.relative);\n return join(this.workspace.path, modulePath, distRelativePath);\n });\n // return files.map((file) => file.path);\n });\n\n const dirPath = join(this.tempFolder, context.id);\n if (!existsSync(dirPath)) mkdirSync(dirPath, { recursive: true });\n\n const link = this.writeLink(previewDef.prefix, withPaths, templatePath, dirPath);\n return link;\n });\n\n return Promise.all(paths);\n }\n\n async writePreviewRuntime(context: { components: Component[] }) {\n const ui = this.ui.getUi();\n if (!ui) throw new Error('ui not found');\n const [name, uiRoot] = ui;\n const resolvedAspects = await uiRoot.resolveAspects(PreviewRuntime.name);\n const filteredAspects = this.filterAspectsByExecutionContext(resolvedAspects, context);\n const filePath = await this.ui.generateRoot(filteredAspects, name, 'preview', PreviewAspect.id);\n return filePath;\n }\n\n /**\n * Filter the aspects to have only aspects that are:\n * 1. core aspects\n * 2. configured on the host (workspace/scope)\n * 3. used by at least one component from the context\n * @param aspects\n * @param context\n */\n private filterAspectsByExecutionContext(aspects: AspectDefinition[], context: { components: Component[] }) {\n let allComponentContextAspects: string[] = [];\n allComponentContextAspects = context.components.reduce((acc, curr) => {\n return acc.concat(curr.state.aspects.ids);\n }, allComponentContextAspects);\n const hostAspects = Object.keys(this.harmony.config.toObject());\n const allAspectsToInclude = uniq(hostAspects.concat(allComponentContextAspects));\n const filtered = aspects.filter((aspect) => {\n if (!aspect.getId) {\n return false;\n }\n return this.aspectLoader.isCoreAspect(aspect.getId) || allAspectsToInclude.includes(aspect.getId);\n });\n return filtered;\n }\n\n private getDefaultStrategies() {\n return [new EnvBundlingStrategy(this), new ComponentBundlingStrategy()];\n }\n\n // TODO - executionContext should be responsible for updating components list, and emit 'update' events\n // instead we keep track of changes\n private handleComponentChange = async (c: Component, updater: (currentComponents: ExecutionRef) => void) => {\n const env = this.envs.getEnv(c);\n const envId = env.id.toString();\n\n const executionRef = this.executionRefs.get(envId);\n if (!executionRef) {\n this.logger.warn(\n `failed to update link file for component \"${c.id.toString()}\" - could not find execution context for ${envId}`\n );\n return noopResult;\n }\n\n // add / remove / etc\n updater(executionRef);\n\n await this.updateLinkFiles(executionRef.currentComponents, executionRef.executionCtx);\n\n return noopResult;\n };\n\n private handleComponentRemoval = (cId: ComponentID) => {\n let component: Component | undefined;\n this.executionRefs.forEach((components) => {\n const found = components.get(cId);\n if (found) component = found;\n });\n if (!component) return Promise.resolve(noopResult);\n\n return this.handleComponentChange(component, (currentComponents) => currentComponents.remove(cId));\n };\n\n /**\n * return the configured bundling strategy.\n */\n getBundlingStrategy(): BundlingStrategy {\n const defaultStrategies = this.getDefaultStrategies();\n const strategyName = this.config.bundlingStrategy;\n const strategies = this.bundlingStrategySlot.values().concat(defaultStrategies);\n const selected = strategies.find((strategy) => {\n return strategy.name === strategyName;\n });\n\n if (!selected) throw new BundlingStrategyNotFound(strategyName);\n\n return selected;\n }\n\n /**\n * register a new bundling strategy. default available strategies are `env` and ``\n */\n registerBundlingStrategy(bundlingStrategy: BundlingStrategy) {\n this.bundlingStrategySlot.register(bundlingStrategy);\n return this;\n }\n\n /**\n * register a new preview definition.\n */\n registerDefinition(previewDef: PreviewDefinition) {\n this.previewSlot.register(previewDef);\n }\n\n static slots = [Slot.withType<PreviewDefinition>(), Slot.withType<BundlingStrategy>()];\n\n static runtime = MainRuntime;\n static dependencies = [\n BundlerAspect,\n BuilderAspect,\n ComponentAspect,\n UIAspect,\n EnvsAspect,\n WorkspaceAspect,\n PkgAspect,\n PubsubAspect,\n AspectLoaderAspect,\n LoggerAspect,\n ];\n\n static defaultConfig = {\n bundlingStrategy: 'env',\n disabled: false,\n };\n\n static async provider(\n [bundler, builder, componentExtension, uiMain, envs, workspace, pkg, pubsub, aspectLoader, loggerMain]: [\n BundlerMain,\n BuilderMain,\n ComponentMain,\n UiMain,\n EnvsMain,\n Workspace | undefined,\n PkgMain,\n PubsubMain,\n AspectLoaderMain,\n LoggerMain\n ],\n config: PreviewConfig,\n [previewSlot, bundlingStrategySlot]: [PreviewDefinitionRegistry, BundlingStrategySlot],\n harmony: Harmony\n ) {\n const logger = loggerMain.createLogger(PreviewAspect.id);\n\n const preview = new PreviewMain(\n harmony,\n previewSlot,\n uiMain,\n envs,\n pkg,\n aspectLoader,\n config,\n bundlingStrategySlot,\n builder,\n workspace,\n logger\n );\n\n if (workspace) uiMain.registerStartPlugin(new PreviewStartPlugin(workspace, bundler, uiMain, pubsub, logger));\n\n componentExtension.registerRoute([new PreviewRoute(preview, logger)]);\n bundler.registerTarget([\n {\n entry: preview.getPreviewTarget.bind(preview),\n },\n ]);\n\n if (!config.disabled) builder.registerBuildTasks([new PreviewTask(bundler, preview)]);\n\n if (workspace) {\n workspace.registerOnComponentAdd((c) =>\n preview.handleComponentChange(c, (currentComponents) => currentComponents.add(c))\n );\n workspace.registerOnComponentChange((c) =>\n preview.handleComponentChange(c, (currentComponents) => currentComponents.update(c))\n );\n workspace.registerOnComponentRemove((cId) => preview.handleComponentRemoval(cId));\n }\n\n return preview;\n }\n}\n\nPreviewAspect.addRuntime(PreviewMain);\n"]}
|
|
@@ -13,8 +13,8 @@ require("core-js/modules/web.url.js");
|
|
|
13
13
|
Object.defineProperty(exports, "__esModule", {
|
|
14
14
|
value: true
|
|
15
15
|
});
|
|
16
|
-
exports.linkModules = linkModules;
|
|
17
16
|
exports.PreviewPreview = void 0;
|
|
17
|
+
exports.linkModules = linkModules;
|
|
18
18
|
|
|
19
19
|
function _defineProperty2() {
|
|
20
20
|
const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
@@ -2,12 +2,14 @@ import { BundlerMain, ComponentServer } from '@teambit/bundler';
|
|
|
2
2
|
import { PubsubMain } from '@teambit/pubsub';
|
|
3
3
|
import { ProxyEntry, StartPlugin, StartPluginOptions, UiMain } from '@teambit/ui';
|
|
4
4
|
import { Workspace } from '@teambit/workspace';
|
|
5
|
+
import { Logger } from '@teambit/logger';
|
|
5
6
|
export declare class PreviewStartPlugin implements StartPlugin {
|
|
6
7
|
private workspace;
|
|
7
8
|
private bundler;
|
|
8
9
|
private ui;
|
|
9
10
|
private pubsub;
|
|
10
|
-
|
|
11
|
+
private logger;
|
|
12
|
+
constructor(workspace: Workspace, bundler: BundlerMain, ui: UiMain, pubsub: PubsubMain, logger: Logger);
|
|
11
13
|
previewServers: ComponentServer[];
|
|
12
14
|
initiate(options: StartPluginOptions): Promise<void>;
|
|
13
15
|
getProxy(): ProxyEntry[];
|
|
@@ -51,6 +51,16 @@ function _previewCli() {
|
|
|
51
51
|
return data;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
+
function _workspace() {
|
|
55
|
+
const data = require("@teambit/workspace");
|
|
56
|
+
|
|
57
|
+
_workspace = function () {
|
|
58
|
+
return data;
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
return data;
|
|
62
|
+
}
|
|
63
|
+
|
|
54
64
|
function _previewCli2() {
|
|
55
65
|
const data = require("@teambit/preview.cli.webpack-events-listener");
|
|
56
66
|
|
|
@@ -80,11 +90,12 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
80
90
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2().default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
81
91
|
|
|
82
92
|
class PreviewStartPlugin {
|
|
83
|
-
constructor(workspace, bundler, ui, pubsub) {
|
|
93
|
+
constructor(workspace, bundler, ui, pubsub, logger) {
|
|
84
94
|
this.workspace = workspace;
|
|
85
95
|
this.bundler = bundler;
|
|
86
96
|
this.ui = ui;
|
|
87
97
|
this.pubsub = pubsub;
|
|
98
|
+
this.logger = logger;
|
|
88
99
|
(0, _defineProperty2().default)(this, "previewServers", []);
|
|
89
100
|
(0, _defineProperty2().default)(this, "setReady", void 0);
|
|
90
101
|
(0, _defineProperty2().default)(this, "readyPromise", new Promise(resolve => this.setReady = resolve));
|
|
@@ -115,11 +126,11 @@ class PreviewStartPlugin {
|
|
|
115
126
|
const previewServers = await this.bundler.devServer(components); // eslint-disable-next-line @typescript-eslint/no-misused-promises
|
|
116
127
|
|
|
117
128
|
previewServers.forEach(server => server.listen()); // DON'T add wait! this promise never resolve so it's stop all the start process!
|
|
118
|
-
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
119
129
|
|
|
120
130
|
this.workspace.watcher.watchAll({
|
|
121
|
-
|
|
122
|
-
|
|
131
|
+
spawnTSServer: true,
|
|
132
|
+
checkTypes: _workspace().CheckTypes.None,
|
|
133
|
+
preCompile: false,
|
|
123
134
|
msgs: {
|
|
124
135
|
onAll: () => {},
|
|
125
136
|
onStart: () => {},
|
|
@@ -130,6 +141,10 @@ class PreviewStartPlugin {
|
|
|
130
141
|
onUnlink: () => {}
|
|
131
142
|
},
|
|
132
143
|
initiator: _compiler().CompilationInitiator.Start
|
|
144
|
+
}).catch(err => {
|
|
145
|
+
const msg = `watcher found an error`;
|
|
146
|
+
this.logger.error(msg, err);
|
|
147
|
+
this.logger.console(`${msg}, ${err.message}`);
|
|
133
148
|
});
|
|
134
149
|
this.previewServers = this.previewServers.concat(previewServers);
|
|
135
150
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["preview.start-plugin.tsx"],"names":["PreviewStartPlugin","constructor","workspace","bundler","ui","pubsub","Promise","resolve","setReady","servers","initialState","setServers","updateServers","noneAreCompiling","Object","values","every","x","compiling","previewServers","initiate","options","listenToDevServers","components","byPattern","pattern","devServer","forEach","server","listen","watcher","watchAll","checkTypes","
|
|
1
|
+
{"version":3,"sources":["preview.start-plugin.tsx"],"names":["PreviewStartPlugin","constructor","workspace","bundler","ui","pubsub","logger","Promise","resolve","setReady","servers","initialState","setServers","updateServers","noneAreCompiling","Object","values","every","x","compiling","previewServers","initiate","options","listenToDevServers","components","byPattern","pattern","devServer","forEach","server","listen","watcher","watchAll","spawnTSServer","checkTypes","CheckTypes","None","preCompile","msgs","onAll","onStart","onReady","onChange","onAdd","onError","onUnlink","initiator","CompilationInitiator","Start","catch","err","msg","error","console","message","concat","getProxy","proxyConfigs","map","context","envRuntime","id","target","port","ws","state","onDone","results","whenReady","readyPromise"],"mappings":"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","sourcesContent":["import React, { useState, useEffect, Dispatch, SetStateAction } from 'react';\nimport { flatten } from 'lodash';\nimport { PreviewServerStatus } from '@teambit/preview.cli.preview-server-status';\nimport { BundlerMain, ComponentServer } from '@teambit/bundler';\nimport { PubsubMain } from '@teambit/pubsub';\nimport { ProxyEntry, StartPlugin, StartPluginOptions, UiMain } from '@teambit/ui';\nimport { Workspace, CheckTypes } from '@teambit/workspace';\nimport { SubscribeToWebpackEvents, CompilationResult } from '@teambit/preview.cli.webpack-events-listener';\nimport { CompilationInitiator } from '@teambit/compiler';\nimport { Logger } from '@teambit/logger';\n\ntype CompilationServers = Record<string, CompilationResult>;\ntype ServersSetter = Dispatch<SetStateAction<CompilationServers>>;\n\nexport class PreviewStartPlugin implements StartPlugin {\n constructor(\n private workspace: Workspace,\n private bundler: BundlerMain,\n private ui: UiMain,\n private pubsub: PubsubMain,\n private logger: Logger\n ) {}\n\n previewServers: ComponentServer[] = [];\n\n async initiate(options: StartPluginOptions) {\n this.listenToDevServers();\n\n const components = await this.workspace.byPattern(options.pattern || '');\n // TODO: logic for creating preview servers must be refactored to this aspect from the DevServer aspect.\n const previewServers = await this.bundler.devServer(components);\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n previewServers.forEach((server) => server.listen());\n // DON'T add wait! this promise never resolve so it's stop all the start process!\n this.workspace.watcher\n .watchAll({\n spawnTSServer: true,\n checkTypes: CheckTypes.None,\n preCompile: false,\n msgs: {\n onAll: () => {},\n onStart: () => {},\n onReady: () => {},\n onChange: () => {},\n onAdd: () => {},\n onError: () => {},\n onUnlink: () => {},\n },\n initiator: CompilationInitiator.Start,\n })\n .catch((err) => {\n const msg = `watcher found an error`;\n this.logger.error(msg, err);\n this.logger.console(`${msg}, ${err.message}`);\n });\n this.previewServers = this.previewServers.concat(previewServers);\n }\n\n getProxy(): ProxyEntry[] {\n const proxyConfigs = this.previewServers.map<ProxyEntry[]>((server) => {\n return [\n {\n context: [`/preview/${server.context.envRuntime.id}`],\n target: `http://localhost:${server.port}`,\n },\n {\n context: [`/_hmr/${server.context.envRuntime.id}`],\n target: `http://localhost:${server.port}`,\n ws: true,\n },\n ];\n });\n\n return flatten(proxyConfigs);\n }\n\n // TODO: this should be a part of the devServer\n private listenToDevServers() {\n // keep state changes immutable!\n SubscribeToWebpackEvents(this.pubsub, {\n onStart: (id) => {\n this.updateServers((state) => ({\n ...state,\n [id]: { compiling: true },\n }));\n },\n onDone: (id, results) => {\n this.updateServers((state) => ({\n ...state,\n [id]: results,\n }));\n },\n });\n }\n\n private setReady: () => void;\n private readyPromise = new Promise<void>((resolve) => (this.setReady = resolve));\n get whenReady(): Promise<void> {\n return this.readyPromise;\n }\n\n private initialState: CompilationServers = {};\n // implements react-like setter (value or updater)\n private updateServers: ServersSetter = (servers) => {\n this.initialState = typeof servers === 'function' ? servers(this.initialState) : servers;\n return servers;\n };\n\n render = () => {\n const [servers, setServers] = useState<CompilationServers>(this.initialState);\n this.updateServers = setServers;\n this.initialState = {};\n\n useEffect(() => {\n const noneAreCompiling = Object.values(servers).every((x) => !x.compiling);\n if (noneAreCompiling) this.setReady();\n }, [servers]);\n\n return <PreviewServerStatus previewServers={this.previewServers} serverStats={servers} />;\n };\n}\n"]}
|
package/dist/strategies/index.js
CHANGED
|
@@ -3,16 +3,16 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
Object.defineProperty(exports, "
|
|
6
|
+
Object.defineProperty(exports, "ComponentBundlingStrategy", {
|
|
7
7
|
enumerable: true,
|
|
8
8
|
get: function () {
|
|
9
|
-
return
|
|
9
|
+
return _componentStrategy().ComponentBundlingStrategy;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
|
-
Object.defineProperty(exports, "
|
|
12
|
+
Object.defineProperty(exports, "EnvBundlingStrategy", {
|
|
13
13
|
enumerable: true,
|
|
14
14
|
get: function () {
|
|
15
|
-
return
|
|
15
|
+
return _envStrategy().EnvBundlingStrategy;
|
|
16
16
|
}
|
|
17
17
|
});
|
|
18
18
|
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/preview",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.535",
|
|
4
4
|
"homepage": "https://bit.dev/teambit/preview/preview",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.preview",
|
|
8
8
|
"name": "preview",
|
|
9
|
-
"version": "0.0.
|
|
9
|
+
"version": "0.0.535"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"fs-extra": "10.0.0",
|
|
@@ -17,25 +17,25 @@
|
|
|
17
17
|
"mime": "2.5.2",
|
|
18
18
|
"@babel/runtime": "7.12.18",
|
|
19
19
|
"core-js": "^3.0.0",
|
|
20
|
-
"@teambit/builder": "0.0.
|
|
21
|
-
"@teambit/bundler": "0.0.
|
|
22
|
-
"@teambit/component": "0.0.
|
|
23
|
-
"@teambit/envs": "0.0.
|
|
24
|
-
"@teambit/toolbox.path.to-windows-compatible-path": "0.0.
|
|
25
|
-
"@teambit/aspect-loader": "0.0.
|
|
20
|
+
"@teambit/builder": "0.0.535",
|
|
21
|
+
"@teambit/bundler": "0.0.535",
|
|
22
|
+
"@teambit/component": "0.0.535",
|
|
23
|
+
"@teambit/envs": "0.0.535",
|
|
24
|
+
"@teambit/toolbox.path.to-windows-compatible-path": "0.0.448",
|
|
25
|
+
"@teambit/aspect-loader": "0.0.535",
|
|
26
26
|
"@teambit/cli": "0.0.380",
|
|
27
|
-
"@teambit/logger": "0.0.
|
|
28
|
-
"@teambit/pkg": "0.0.
|
|
29
|
-
"@teambit/pubsub": "0.0.
|
|
30
|
-
"@teambit/ui": "0.0.
|
|
31
|
-
"@teambit/workspace": "0.0.
|
|
27
|
+
"@teambit/logger": "0.0.457",
|
|
28
|
+
"@teambit/pkg": "0.0.535",
|
|
29
|
+
"@teambit/pubsub": "0.0.535",
|
|
30
|
+
"@teambit/ui": "0.0.535",
|
|
31
|
+
"@teambit/workspace": "0.0.535",
|
|
32
32
|
"@teambit/component-id": "0.0.370",
|
|
33
|
-
"@teambit/express": "0.0.
|
|
34
|
-
"@teambit/ui-foundation.ui.pages.static-error": "0.0.
|
|
35
|
-
"@teambit/compiler": "0.0.
|
|
36
|
-
"@teambit/preview.cli.preview-server-status": "0.0.
|
|
37
|
-
"@teambit/preview.cli.webpack-events-listener": "0.0.
|
|
38
|
-
"@teambit/isolator": "0.0.
|
|
33
|
+
"@teambit/express": "0.0.461",
|
|
34
|
+
"@teambit/ui-foundation.ui.pages.static-error": "0.0.35",
|
|
35
|
+
"@teambit/compiler": "0.0.535",
|
|
36
|
+
"@teambit/preview.cli.preview-server-status": "0.0.454",
|
|
37
|
+
"@teambit/preview.cli.webpack-events-listener": "0.0.124",
|
|
38
|
+
"@teambit/isolator": "0.0.535",
|
|
39
39
|
"@teambit/bit-error": "0.0.366"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"@types/jest": "^26.0.0",
|
|
50
50
|
"@types/react-dom": "^17.0.5",
|
|
51
51
|
"@types/node": "12.20.4",
|
|
52
|
-
"@teambit/preview.aspect-docs.preview": "0.0.
|
|
52
|
+
"@teambit/preview.aspect-docs.preview": "0.0.93"
|
|
53
53
|
},
|
|
54
54
|
"peerDependencies": {
|
|
55
55
|
"@teambit/legacy": "1.0.76",
|
package/preview.main.runtime.tsx
CHANGED
|
@@ -318,7 +318,7 @@ export class PreviewMain {
|
|
|
318
318
|
logger
|
|
319
319
|
);
|
|
320
320
|
|
|
321
|
-
if (workspace) uiMain.registerStartPlugin(new PreviewStartPlugin(workspace, bundler, uiMain, pubsub));
|
|
321
|
+
if (workspace) uiMain.registerStartPlugin(new PreviewStartPlugin(workspace, bundler, uiMain, pubsub, logger));
|
|
322
322
|
|
|
323
323
|
componentExtension.registerRoute([new PreviewRoute(preview, logger)]);
|
|
324
324
|
bundler.registerTarget([
|
package/preview.start-plugin.tsx
CHANGED
|
@@ -4,9 +4,10 @@ import { PreviewServerStatus } from '@teambit/preview.cli.preview-server-status'
|
|
|
4
4
|
import { BundlerMain, ComponentServer } from '@teambit/bundler';
|
|
5
5
|
import { PubsubMain } from '@teambit/pubsub';
|
|
6
6
|
import { ProxyEntry, StartPlugin, StartPluginOptions, UiMain } from '@teambit/ui';
|
|
7
|
-
import { Workspace } from '@teambit/workspace';
|
|
7
|
+
import { Workspace, CheckTypes } from '@teambit/workspace';
|
|
8
8
|
import { SubscribeToWebpackEvents, CompilationResult } from '@teambit/preview.cli.webpack-events-listener';
|
|
9
9
|
import { CompilationInitiator } from '@teambit/compiler';
|
|
10
|
+
import { Logger } from '@teambit/logger';
|
|
10
11
|
|
|
11
12
|
type CompilationServers = Record<string, CompilationResult>;
|
|
12
13
|
type ServersSetter = Dispatch<SetStateAction<CompilationServers>>;
|
|
@@ -16,7 +17,8 @@ export class PreviewStartPlugin implements StartPlugin {
|
|
|
16
17
|
private workspace: Workspace,
|
|
17
18
|
private bundler: BundlerMain,
|
|
18
19
|
private ui: UiMain,
|
|
19
|
-
private pubsub: PubsubMain
|
|
20
|
+
private pubsub: PubsubMain,
|
|
21
|
+
private logger: Logger
|
|
20
22
|
) {}
|
|
21
23
|
|
|
22
24
|
previewServers: ComponentServer[] = [];
|
|
@@ -30,21 +32,27 @@ export class PreviewStartPlugin implements StartPlugin {
|
|
|
30
32
|
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
|
31
33
|
previewServers.forEach((server) => server.listen());
|
|
32
34
|
// DON'T add wait! this promise never resolve so it's stop all the start process!
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
35
|
+
this.workspace.watcher
|
|
36
|
+
.watchAll({
|
|
37
|
+
spawnTSServer: true,
|
|
38
|
+
checkTypes: CheckTypes.None,
|
|
39
|
+
preCompile: false,
|
|
40
|
+
msgs: {
|
|
41
|
+
onAll: () => {},
|
|
42
|
+
onStart: () => {},
|
|
43
|
+
onReady: () => {},
|
|
44
|
+
onChange: () => {},
|
|
45
|
+
onAdd: () => {},
|
|
46
|
+
onError: () => {},
|
|
47
|
+
onUnlink: () => {},
|
|
48
|
+
},
|
|
49
|
+
initiator: CompilationInitiator.Start,
|
|
50
|
+
})
|
|
51
|
+
.catch((err) => {
|
|
52
|
+
const msg = `watcher found an error`;
|
|
53
|
+
this.logger.error(msg, err);
|
|
54
|
+
this.logger.console(`${msg}, ${err.message}`);
|
|
55
|
+
});
|
|
48
56
|
this.previewServers = this.previewServers.concat(previewServers);
|
|
49
57
|
}
|
|
50
58
|
|
|
Binary file
|