@teambit/preview 0.0.976 → 0.0.978

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.
@@ -163,7 +163,8 @@ class EnvPreviewTemplateTask {
163
163
  development: context.dev,
164
164
  metaData: {
165
165
  initiator: `${GENERATE_ENV_TEMPLATE_TASK_NAME} task`,
166
- envId: context.id
166
+ envId: context.id,
167
+ isEnvTemplate: true
167
168
  }
168
169
  });
169
170
  const bundlerResults = await (0, _pMapSeries().default)(Object.entries(groups), async ([, targetsGroup]) => {
@@ -1 +1 @@
1
- {"version":3,"names":["GENERATE_ENV_TEMPLATE_TASK_NAME","EnvPreviewTemplateTask","constructor","preview","envs","aspectLoader","dependencyResolver","logger","execute","context","previewDefs","getDefs","htmlConfig","map","previewModule","generateHtmlConfig","dev","originalSeedersIds","capsuleNetwork","originalSeedersCapsules","c","component","id","toString","grouped","Promise","all","components","length","includes","undefined","envDef","getEnvFromComponent","env","bundlingStrategy","getBundlingStrategy","name","target","getEnvTargetFromComponent","shouldUseDefaultBundler","envToGetBundler","getEnvsEnvDefinition","groupEnvId","targets","push","isEmpty","componentsResults","runBundlerForGroups","groups","bundlerContext","Object","assign","entry","development","metaData","initiator","envId","bundlerResults","mapSeries","entries","targetsGroup","bundler","getTemplateBundler","bundlerResult","run","results","computeResults","flatten","isCoreEnv","envComponent","envPreviewConfig","getEnvPreviewConfig","peers","getPreviewHostDependenciesFromEnv","capsule","graphCapsules","getCapsule","Error","previewRoot","writePreviewRuntime","generateEntries","splitComponentBundle","workDir","path","outputPath","computeOutputPath","existsSync","mkdirpSync","resolvedEnvAspects","resolveAspects","MainRuntime","requestedOnly","resolvedEnv","hostRootDir","aspectPath","warn","html","chunking","splitChunks","hostDependencies","aliasHostDependencies","previewModules","getPreviewModules","previewEntries","rest","linkFile","writeLink","ComponentMap","create","default","peerLink","writePeerLink","generateTemplateEntries","previewRootPath","allResults","result","errors","err","message","warning","warnings","startTime","endTime","artifacts","getArtifactDef","modules","compact","def","renderTemplatePathByEnv","prefix","include","join","getArtifactDirectory","CAPSULE_ARTIFACTS_DIR","globPatterns","rootDir"],"sources":["env-preview-template.task.ts"],"sourcesContent":["import {\n BuildContext,\n BuiltTaskResult,\n BuildTask,\n TaskLocation,\n ComponentResult,\n CAPSULE_ARTIFACTS_DIR,\n} from '@teambit/builder';\nimport { MainRuntime } from '@teambit/cli';\nimport mapSeries from 'p-map-series';\nimport { Component, ComponentMap } from '@teambit/component';\nimport { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { Bundler, BundlerContext, BundlerHtmlConfig, BundlerResult, Target } from '@teambit/bundler';\nimport type { EnvDefinition, Environment, EnvsMain } from '@teambit/envs';\nimport { join } from 'path';\nimport { compact, flatten, isEmpty } from 'lodash';\nimport { Logger } from '@teambit/logger';\nimport { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { existsSync, mkdirpSync } from 'fs-extra';\nimport type { PreviewMain } from './preview.main.runtime';\nimport { generateTemplateEntries } from './bundler/chunks';\nimport { generateHtmlConfig } from './bundler/html-plugin';\nimport { writePeerLink } from './bundler/create-peers-link';\n\nexport type ModuleExpose = {\n name: string;\n path: string;\n include?: string[];\n};\n\ntype TargetsGroup = {\n env: Environment;\n envToGetBundler: Environment;\n targets: Target[];\n};\ntype TargetsGroupMap = {\n [envId: string]: TargetsGroup;\n};\n\nexport const GENERATE_ENV_TEMPLATE_TASK_NAME = 'GenerateEnvTemplate';\n\nexport class EnvPreviewTemplateTask implements BuildTask {\n aspectId = 'teambit.preview/preview';\n name = GENERATE_ENV_TEMPLATE_TASK_NAME;\n location: TaskLocation = 'end';\n // readonly dependencies = [CompilerAspect.id];\n\n constructor(\n private preview: PreviewMain,\n private envs: EnvsMain,\n private aspectLoader: AspectLoaderMain,\n private dependencyResolver: DependencyResolverMain,\n private logger: Logger\n ) {}\n\n async execute(context: BuildContext): Promise<BuiltTaskResult> {\n const previewDefs = this.preview.getDefs();\n const htmlConfig = previewDefs.map((previewModule) => generateHtmlConfig(previewModule, { dev: context.dev }));\n const originalSeedersIds = context.capsuleNetwork.originalSeedersCapsules.map((c) => c.component.id.toString());\n const grouped: TargetsGroupMap = {};\n await Promise.all(\n context.components.map(async (component) => {\n // Do not run over other components in the graph. it make the process much longer with no need\n if (originalSeedersIds && originalSeedersIds.length && !originalSeedersIds.includes(component.id.toString())) {\n return undefined;\n }\n const envDef = this.envs.getEnvFromComponent(component);\n if (!envDef) return undefined;\n const env = envDef.env;\n const bundlingStrategy = this.preview.getBundlingStrategy(envDef.env);\n if (bundlingStrategy.name === 'env') {\n return undefined;\n }\n const target = await this.getEnvTargetFromComponent(context, component, envDef, htmlConfig);\n if (!target) return undefined;\n const shouldUseDefaultBundler = this.shouldUseDefaultBundler(envDef);\n let envToGetBundler = this.envs.getEnvsEnvDefinition().env;\n let groupEnvId = 'default';\n if (!shouldUseDefaultBundler) {\n envToGetBundler = env;\n groupEnvId = envDef.id;\n }\n if (!grouped[groupEnvId]) {\n grouped[groupEnvId] = {\n env,\n envToGetBundler,\n targets: [target],\n };\n } else {\n grouped[groupEnvId].targets.push(target);\n }\n return undefined;\n })\n );\n if (isEmpty(grouped)) {\n return { componentsResults: [] };\n }\n\n return this.runBundlerForGroups(context, grouped);\n }\n\n private async runBundlerForGroups(context: BuildContext, groups: TargetsGroupMap): Promise<BuiltTaskResult> {\n const bundlerContext: BundlerContext = Object.assign(context, {\n targets: [],\n entry: [],\n development: context.dev,\n metaData: {\n initiator: `${GENERATE_ENV_TEMPLATE_TASK_NAME} task`,\n envId: context.id,\n },\n });\n const bundlerResults = await mapSeries(Object.entries(groups), async ([, targetsGroup]) => {\n bundlerContext.targets = targetsGroup.targets;\n const bundler: Bundler = await targetsGroup.envToGetBundler.getTemplateBundler(bundlerContext);\n const bundlerResult = await bundler.run();\n return bundlerResult;\n });\n\n const results = await this.computeResults(bundlerContext, flatten(bundlerResults));\n return results;\n }\n\n private shouldUseDefaultBundler(envDef: EnvDefinition): boolean {\n if (this.aspectLoader.isCoreEnv(envDef.id) && envDef.id !== 'teambit.react/react-native') return true;\n const env = envDef.env;\n if (env.getTemplateBundler && typeof env.getTemplateBundler === 'function') return false;\n return true;\n }\n\n private async getEnvTargetFromComponent(\n context: BuildContext,\n envComponent: Component,\n envDef: EnvDefinition,\n htmlConfig: BundlerHtmlConfig[]\n ): Promise<Target | undefined> {\n const envPreviewConfig = this.preview.getEnvPreviewConfig(envDef.env);\n\n const peers = await this.dependencyResolver.getPreviewHostDependenciesFromEnv(envDef.env);\n // const module = await this.getPreviewModule(envComponent);\n // const entries = Object.keys(module).map((key) => module.exposes[key]);\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(envComponent.id);\n if (!capsule) throw new Error('no capsule found');\n // Passing here the env itself to make sure it's preview runtime will be part of the preview root file\n // that's needed to make sure the providers register there are running correctly\n const previewRoot = await this.preview.writePreviewRuntime(context, [envComponent.id.toString()]);\n const entries = await this.generateEntries({\n envDef,\n splitComponentBundle: envPreviewConfig.splitComponentBundle ?? false,\n workDir: capsule.path,\n peers,\n previewRoot,\n });\n\n const outputPath = this.computeOutputPath(context, envComponent);\n if (!existsSync(outputPath)) mkdirpSync(outputPath);\n const resolvedEnvAspects = await this.preview.resolveAspects(MainRuntime.name, [envComponent.id], undefined, {\n requestedOnly: true,\n });\n const resolvedEnv = resolvedEnvAspects[0];\n const hostRootDir = resolvedEnv?.aspectPath;\n\n if (!hostRootDir) {\n this.logger.warn(`env preview template task, hostRootDir is not defined, for env ${envComponent.id.toString()}`);\n }\n\n return {\n peers,\n html: htmlConfig,\n entries,\n chunking: { splitChunks: true },\n components: [envComponent],\n outputPath,\n /* It's a path to the root of the host component. */\n hostRootDir,\n hostDependencies: peers,\n aliasHostDependencies: true,\n };\n }\n\n private async generateEntries({\n previewRoot,\n workDir,\n peers,\n envDef,\n splitComponentBundle,\n }: {\n previewRoot: string;\n workDir: string;\n peers: string[];\n envDef: EnvDefinition;\n splitComponentBundle: boolean;\n }) {\n const previewModules = await this.getPreviewModules(envDef);\n const previewEntries = previewModules.map(({ name, path, ...rest }) => {\n const linkFile = this.preview.writeLink(\n name,\n ComponentMap.create([]),\n { default: path },\n workDir,\n splitComponentBundle\n );\n\n return { name, path, ...rest, entry: linkFile };\n });\n const peerLink = await writePeerLink(peers, workDir);\n\n const entries = generateTemplateEntries({\n peers: peerLink,\n previewRootPath: previewRoot,\n previewModules: previewEntries,\n });\n return entries;\n }\n\n async computeResults(context: BundlerContext, results: BundlerResult[]) {\n const allResults = results.map((result) => {\n const componentsResults: ComponentResult[] = result.components.map((component) => {\n return {\n component,\n errors: result.errors.map((err) => (typeof err === 'string' ? err : err.message)),\n warning: result.warnings,\n startTime: result.startTime,\n endTime: result.endTime,\n };\n });\n return componentsResults;\n });\n\n const componentsResults = flatten(allResults);\n\n const artifacts = getArtifactDef();\n\n return {\n componentsResults,\n artifacts,\n };\n }\n\n private async getPreviewModules(envDef: EnvDefinition): Promise<ModuleExpose[]> {\n const previewDefs = this.preview.getDefs();\n\n const modules = compact(\n await Promise.all(\n previewDefs.map(async (def) => {\n if (!def.renderTemplatePathByEnv) return undefined;\n return {\n name: def.prefix,\n path: await def.renderTemplatePathByEnv(envDef.env) || '',\n include: def.include,\n };\n })\n )\n );\n\n return modules;\n }\n\n private computeOutputPath(context: BuildContext, component: Component) {\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n if (!capsule) throw new Error('no capsule found');\n return join(capsule.path, getArtifactDirectory());\n }\n}\n\nexport function getArtifactDirectory() {\n return join(CAPSULE_ARTIFACTS_DIR, 'env-template');\n}\n\nexport function getArtifactDef() {\n return [\n {\n name: 'env-template',\n globPatterns: ['**'],\n rootDir: getArtifactDirectory(),\n },\n ];\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["GENERATE_ENV_TEMPLATE_TASK_NAME","EnvPreviewTemplateTask","constructor","preview","envs","aspectLoader","dependencyResolver","logger","execute","context","previewDefs","getDefs","htmlConfig","map","previewModule","generateHtmlConfig","dev","originalSeedersIds","capsuleNetwork","originalSeedersCapsules","c","component","id","toString","grouped","Promise","all","components","length","includes","undefined","envDef","getEnvFromComponent","env","bundlingStrategy","getBundlingStrategy","name","target","getEnvTargetFromComponent","shouldUseDefaultBundler","envToGetBundler","getEnvsEnvDefinition","groupEnvId","targets","push","isEmpty","componentsResults","runBundlerForGroups","groups","bundlerContext","Object","assign","entry","development","metaData","initiator","envId","isEnvTemplate","bundlerResults","mapSeries","entries","targetsGroup","bundler","getTemplateBundler","bundlerResult","run","results","computeResults","flatten","isCoreEnv","envComponent","envPreviewConfig","getEnvPreviewConfig","peers","getPreviewHostDependenciesFromEnv","capsule","graphCapsules","getCapsule","Error","previewRoot","writePreviewRuntime","generateEntries","splitComponentBundle","workDir","path","outputPath","computeOutputPath","existsSync","mkdirpSync","resolvedEnvAspects","resolveAspects","MainRuntime","requestedOnly","resolvedEnv","hostRootDir","aspectPath","warn","html","chunking","splitChunks","hostDependencies","aliasHostDependencies","previewModules","getPreviewModules","previewEntries","rest","linkFile","writeLink","ComponentMap","create","default","peerLink","writePeerLink","generateTemplateEntries","previewRootPath","allResults","result","errors","err","message","warning","warnings","startTime","endTime","artifacts","getArtifactDef","modules","compact","def","renderTemplatePathByEnv","prefix","include","join","getArtifactDirectory","CAPSULE_ARTIFACTS_DIR","globPatterns","rootDir"],"sources":["env-preview-template.task.ts"],"sourcesContent":["import {\n BuildContext,\n BuiltTaskResult,\n BuildTask,\n TaskLocation,\n ComponentResult,\n CAPSULE_ARTIFACTS_DIR,\n} from '@teambit/builder';\nimport { MainRuntime } from '@teambit/cli';\nimport mapSeries from 'p-map-series';\nimport { Component, ComponentMap } from '@teambit/component';\nimport { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { Bundler, BundlerContext, BundlerHtmlConfig, BundlerResult, Target } from '@teambit/bundler';\nimport type { EnvDefinition, Environment, EnvsMain } from '@teambit/envs';\nimport { join } from 'path';\nimport { compact, flatten, isEmpty } from 'lodash';\nimport { Logger } from '@teambit/logger';\nimport { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { existsSync, mkdirpSync } from 'fs-extra';\nimport type { PreviewMain } from './preview.main.runtime';\nimport { generateTemplateEntries } from './bundler/chunks';\nimport { generateHtmlConfig } from './bundler/html-plugin';\nimport { writePeerLink } from './bundler/create-peers-link';\n\nexport type ModuleExpose = {\n name: string;\n path: string;\n include?: string[];\n};\n\ntype TargetsGroup = {\n env: Environment;\n envToGetBundler: Environment;\n targets: Target[];\n};\ntype TargetsGroupMap = {\n [envId: string]: TargetsGroup;\n};\n\nexport const GENERATE_ENV_TEMPLATE_TASK_NAME = 'GenerateEnvTemplate';\n\nexport class EnvPreviewTemplateTask implements BuildTask {\n aspectId = 'teambit.preview/preview';\n name = GENERATE_ENV_TEMPLATE_TASK_NAME;\n location: TaskLocation = 'end';\n // readonly dependencies = [CompilerAspect.id];\n\n constructor(\n private preview: PreviewMain,\n private envs: EnvsMain,\n private aspectLoader: AspectLoaderMain,\n private dependencyResolver: DependencyResolverMain,\n private logger: Logger\n ) {}\n\n async execute(context: BuildContext): Promise<BuiltTaskResult> {\n const previewDefs = this.preview.getDefs();\n const htmlConfig = previewDefs.map((previewModule) => generateHtmlConfig(previewModule, { dev: context.dev }));\n const originalSeedersIds = context.capsuleNetwork.originalSeedersCapsules.map((c) => c.component.id.toString());\n const grouped: TargetsGroupMap = {};\n await Promise.all(\n context.components.map(async (component) => {\n // Do not run over other components in the graph. it make the process much longer with no need\n if (originalSeedersIds && originalSeedersIds.length && !originalSeedersIds.includes(component.id.toString())) {\n return undefined;\n }\n const envDef = this.envs.getEnvFromComponent(component);\n if (!envDef) return undefined;\n const env = envDef.env;\n const bundlingStrategy = this.preview.getBundlingStrategy(envDef.env);\n if (bundlingStrategy.name === 'env') {\n return undefined;\n }\n const target = await this.getEnvTargetFromComponent(context, component, envDef, htmlConfig);\n if (!target) return undefined;\n const shouldUseDefaultBundler = this.shouldUseDefaultBundler(envDef);\n let envToGetBundler = this.envs.getEnvsEnvDefinition().env;\n let groupEnvId = 'default';\n if (!shouldUseDefaultBundler) {\n envToGetBundler = env;\n groupEnvId = envDef.id;\n }\n if (!grouped[groupEnvId]) {\n grouped[groupEnvId] = {\n env,\n envToGetBundler,\n targets: [target],\n };\n } else {\n grouped[groupEnvId].targets.push(target);\n }\n return undefined;\n })\n );\n if (isEmpty(grouped)) {\n return { componentsResults: [] };\n }\n\n return this.runBundlerForGroups(context, grouped);\n }\n\n private async runBundlerForGroups(context: BuildContext, groups: TargetsGroupMap): Promise<BuiltTaskResult> {\n const bundlerContext: BundlerContext = Object.assign(context, {\n targets: [],\n entry: [],\n development: context.dev,\n metaData: {\n initiator: `${GENERATE_ENV_TEMPLATE_TASK_NAME} task`,\n envId: context.id,\n isEnvTemplate: true\n },\n });\n\n const bundlerResults = await mapSeries(Object.entries(groups), async ([, targetsGroup]) => {\n bundlerContext.targets = targetsGroup.targets;\n const bundler: Bundler = await targetsGroup.envToGetBundler.getTemplateBundler(bundlerContext);\n const bundlerResult = await bundler.run();\n return bundlerResult;\n });\n\n const results = await this.computeResults(bundlerContext, flatten(bundlerResults));\n return results;\n }\n\n private shouldUseDefaultBundler(envDef: EnvDefinition): boolean {\n if (this.aspectLoader.isCoreEnv(envDef.id) && envDef.id !== 'teambit.react/react-native') return true;\n const env = envDef.env;\n if (env.getTemplateBundler && typeof env.getTemplateBundler === 'function') return false;\n return true;\n }\n\n private async getEnvTargetFromComponent(\n context: BuildContext,\n envComponent: Component,\n envDef: EnvDefinition,\n htmlConfig: BundlerHtmlConfig[]\n ): Promise<Target | undefined> {\n const envPreviewConfig = this.preview.getEnvPreviewConfig(envDef.env);\n\n const peers = await this.dependencyResolver.getPreviewHostDependenciesFromEnv(envDef.env);\n // const module = await this.getPreviewModule(envComponent);\n // const entries = Object.keys(module).map((key) => module.exposes[key]);\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(envComponent.id);\n if (!capsule) throw new Error('no capsule found');\n // Passing here the env itself to make sure it's preview runtime will be part of the preview root file\n // that's needed to make sure the providers register there are running correctly\n const previewRoot = await this.preview.writePreviewRuntime(context, [envComponent.id.toString()]);\n const entries = await this.generateEntries({\n envDef,\n splitComponentBundle: envPreviewConfig.splitComponentBundle ?? false,\n workDir: capsule.path,\n peers,\n previewRoot,\n });\n\n const outputPath = this.computeOutputPath(context, envComponent);\n if (!existsSync(outputPath)) mkdirpSync(outputPath);\n const resolvedEnvAspects = await this.preview.resolveAspects(MainRuntime.name, [envComponent.id], undefined, {\n requestedOnly: true,\n });\n const resolvedEnv = resolvedEnvAspects[0];\n const hostRootDir = resolvedEnv?.aspectPath;\n\n if (!hostRootDir) {\n this.logger.warn(`env preview template task, hostRootDir is not defined, for env ${envComponent.id.toString()}`);\n }\n\n return {\n peers,\n html: htmlConfig,\n entries,\n chunking: { splitChunks: true },\n components: [envComponent],\n outputPath,\n /* It's a path to the root of the host component. */\n hostRootDir,\n hostDependencies: peers,\n aliasHostDependencies: true,\n };\n }\n\n private async generateEntries({\n previewRoot,\n workDir,\n peers,\n envDef,\n splitComponentBundle,\n }: {\n previewRoot: string;\n workDir: string;\n peers: string[];\n envDef: EnvDefinition;\n splitComponentBundle: boolean;\n }) {\n const previewModules = await this.getPreviewModules(envDef);\n const previewEntries = previewModules.map(({ name, path, ...rest }) => {\n const linkFile = this.preview.writeLink(\n name,\n ComponentMap.create([]),\n { default: path },\n workDir,\n splitComponentBundle\n );\n\n return { name, path, ...rest, entry: linkFile };\n });\n const peerLink = await writePeerLink(peers, workDir);\n\n const entries = generateTemplateEntries({\n peers: peerLink,\n previewRootPath: previewRoot,\n previewModules: previewEntries,\n });\n return entries;\n }\n\n async computeResults(context: BundlerContext, results: BundlerResult[]) {\n const allResults = results.map((result) => {\n const componentsResults: ComponentResult[] = result.components.map((component) => {\n return {\n component,\n errors: result.errors.map((err) => (typeof err === 'string' ? err : err.message)),\n warning: result.warnings,\n startTime: result.startTime,\n endTime: result.endTime,\n };\n });\n return componentsResults;\n });\n\n const componentsResults = flatten(allResults);\n\n const artifacts = getArtifactDef();\n\n return {\n componentsResults,\n artifacts,\n };\n }\n\n private async getPreviewModules(envDef: EnvDefinition): Promise<ModuleExpose[]> {\n const previewDefs = this.preview.getDefs();\n\n const modules = compact(\n await Promise.all(\n previewDefs.map(async (def) => {\n if (!def.renderTemplatePathByEnv) return undefined;\n return {\n name: def.prefix,\n path: await def.renderTemplatePathByEnv(envDef.env) || '',\n include: def.include,\n };\n })\n )\n );\n\n return modules;\n }\n\n private computeOutputPath(context: BuildContext, component: Component) {\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n if (!capsule) throw new Error('no capsule found');\n return join(capsule.path, getArtifactDirectory());\n }\n}\n\nexport function getArtifactDirectory() {\n return join(CAPSULE_ARTIFACTS_DIR, 'env-template');\n}\n\nexport function getArtifactDef() {\n return [\n {\n name: 'env-template',\n globPatterns: ['**'],\n rootDir: getArtifactDirectory(),\n },\n ];\n}\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.preview_preview@0.0.976/dist/preview.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.preview_preview@0.0.976/dist/preview.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.preview_preview@0.0.978/dist/preview.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.preview_preview@0.0.978/dist/preview.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
@@ -20,12 +20,16 @@ class PreviewService {
20
20
  // Old env
21
21
  if (!(env !== null && env !== void 0 && env.preview)) return undefined;
22
22
  const preview = env.preview()(envContext);
23
- return {
23
+ const transformMap = {
24
24
  getAdditionalHostDependencies: preview.getHostDependencies.bind(preview),
25
25
  getMounter: preview.getMounter.bind(preview),
26
26
  getDocsTemplate: preview.getDocsTemplate.bind(preview),
27
27
  getPreviewConfig: preview.getPreviewConfig.bind(preview)
28
28
  };
29
+ if (preview.getTemplateBundler) {
30
+ transformMap.getTemplateBundler = context => preview.getTemplateBundler(context)(envContext);
31
+ }
32
+ return transformMap;
29
33
  }
30
34
  }
31
35
  exports.PreviewService = PreviewService;
@@ -1 +1 @@
1
- {"version":3,"names":["PreviewService","transform","env","envContext","preview","undefined","getAdditionalHostDependencies","getHostDependencies","bind","getMounter","getDocsTemplate","getPreviewConfig"],"sources":["preview.service.tsx"],"sourcesContent":["import { EnvService, Env, EnvContext, ServiceTransformationMap } from '@teambit/envs';\nimport { EnvPreviewConfig } from './preview.main.runtime';\n\ntype PreviewTransformationMap = ServiceTransformationMap & {\n /**\n * Returns a paths to a function which mounts a given component to DOM\n * Required for `bit start` & `bit build`\n */\n getMounter?: () => string;\n\n /**\n * Returns a path to a docs template.\n * Required for `bit start` & `bit build`\n */\n getDocsTemplate?: () => string;\n\n /**\n * Returns a list of additional host dependencies\n * this list will be provided as globals on the window after bit preview bundle\n * by default bit will merge this list with the peers from the getDependencies function\n */\n getAdditionalHostDependencies?: () => string[] | Promise<string[]>;\n\n /**\n * Returns preview config like the strategy name to use when bundling the components for the preview\n */\n getPreviewConfig?: () => EnvPreviewConfig;\n};\n\nexport class PreviewService implements EnvService<any> {\n name = 'preview';\n\n transform(env: Env, envContext: EnvContext): PreviewTransformationMap | undefined {\n // Old env\n if (!env?.preview) return undefined;\n const preview = env.preview()(envContext);\n\n return {\n getAdditionalHostDependencies: preview.getHostDependencies.bind(preview),\n getMounter: preview.getMounter.bind(preview),\n getDocsTemplate: preview.getDocsTemplate.bind(preview),\n getPreviewConfig: preview.getPreviewConfig.bind(preview),\n };\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AA6BO,MAAMA,cAAc,CAA4B;EAAA;IAAA,8CAC9C,SAAS;EAAA;EAEhBC,SAAS,CAACC,GAAQ,EAAEC,UAAsB,EAAwC;IAChF;IACA,IAAI,EAACD,GAAG,aAAHA,GAAG,eAAHA,GAAG,CAAEE,OAAO,GAAE,OAAOC,SAAS;IACnC,MAAMD,OAAO,GAAGF,GAAG,CAACE,OAAO,EAAE,CAACD,UAAU,CAAC;IAEzC,OAAO;MACLG,6BAA6B,EAAEF,OAAO,CAACG,mBAAmB,CAACC,IAAI,CAACJ,OAAO,CAAC;MACxEK,UAAU,EAAEL,OAAO,CAACK,UAAU,CAACD,IAAI,CAACJ,OAAO,CAAC;MAC5CM,eAAe,EAAEN,OAAO,CAACM,eAAe,CAACF,IAAI,CAACJ,OAAO,CAAC;MACtDO,gBAAgB,EAAEP,OAAO,CAACO,gBAAgB,CAACH,IAAI,CAACJ,OAAO;IACzD,CAAC;EACH;AACF;AAAC"}
1
+ {"version":3,"names":["PreviewService","transform","env","envContext","preview","undefined","transformMap","getAdditionalHostDependencies","getHostDependencies","bind","getMounter","getDocsTemplate","getPreviewConfig","getTemplateBundler","context"],"sources":["preview.service.tsx"],"sourcesContent":["import { EnvService, Env, EnvContext, ServiceTransformationMap } from '@teambit/envs';\nimport { EnvPreviewConfig } from './preview.main.runtime';\n\ntype PreviewTransformationMap = ServiceTransformationMap & {\n /**\n * Returns a paths to a function which mounts a given component to DOM\n * Required for `bit start` & `bit build`\n */\n getMounter?: () => string;\n\n /**\n * Returns a path to a docs template.\n * Required for `bit start` & `bit build`\n */\n getDocsTemplate?: () => string;\n\n /**\n * Returns a list of additional host dependencies\n * this list will be provided as globals on the window after bit preview bundle\n * by default bit will merge this list with the peers from the getDependencies function\n */\n getAdditionalHostDependencies?: () => string[] | Promise<string[]>;\n\n /**\n * Returns preview config like the strategy name to use when bundling the components for the preview\n */\n getPreviewConfig?: () => EnvPreviewConfig;\n};\n\nexport class PreviewService implements EnvService<any> {\n name = 'preview';\n\n transform(env: Env, envContext: EnvContext): PreviewTransformationMap | undefined {\n // Old env\n if (!env?.preview) return undefined;\n const preview = env.preview()(envContext);\n\n const transformMap: PreviewTransformationMap = {\n getAdditionalHostDependencies: preview.getHostDependencies.bind(preview),\n getMounter: preview.getMounter.bind(preview),\n getDocsTemplate: preview.getDocsTemplate.bind(preview),\n getPreviewConfig: preview.getPreviewConfig.bind(preview)\n };\n\n if (preview.getTemplateBundler) {\n transformMap.getTemplateBundler = (context) => preview.getTemplateBundler(context)(envContext);\n }\n\n return transformMap;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AA6BO,MAAMA,cAAc,CAA4B;EAAA;IAAA,8CAC9C,SAAS;EAAA;EAEhBC,SAAS,CAACC,GAAQ,EAAEC,UAAsB,EAAwC;IAChF;IACA,IAAI,EAACD,GAAG,aAAHA,GAAG,eAAHA,GAAG,CAAEE,OAAO,GAAE,OAAOC,SAAS;IACnC,MAAMD,OAAO,GAAGF,GAAG,CAACE,OAAO,EAAE,CAACD,UAAU,CAAC;IAEzC,MAAMG,YAAsC,GAAG;MAC7CC,6BAA6B,EAAEH,OAAO,CAACI,mBAAmB,CAACC,IAAI,CAACL,OAAO,CAAC;MACxEM,UAAU,EAAEN,OAAO,CAACM,UAAU,CAACD,IAAI,CAACL,OAAO,CAAC;MAC5CO,eAAe,EAAEP,OAAO,CAACO,eAAe,CAACF,IAAI,CAACL,OAAO,CAAC;MACtDQ,gBAAgB,EAAER,OAAO,CAACQ,gBAAgB,CAACH,IAAI,CAACL,OAAO;IACzD,CAAC;IAED,IAAIA,OAAO,CAACS,kBAAkB,EAAE;MAC9BP,YAAY,CAACO,kBAAkB,GAAIC,OAAO,IAAKV,OAAO,CAACS,kBAAkB,CAACC,OAAO,CAAC,CAACX,UAAU,CAAC;IAChG;IAEA,OAAOG,YAAY;EACrB;AACF;AAAC"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/preview",
3
- "version": "0.0.976",
3
+ "version": "0.0.978",
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.976"
9
+ "version": "0.0.978"
10
10
  },
11
11
  "dependencies": {
12
12
  "mime": "2.5.2",
@@ -23,29 +23,29 @@
23
23
  "core-js": "^3.0.0",
24
24
  "@babel/runtime": "7.20.0",
25
25
  "@teambit/harmony": "0.4.6",
26
- "@teambit/express": "0.0.754",
27
- "@teambit/logger": "0.0.749",
26
+ "@teambit/express": "0.0.755",
27
+ "@teambit/logger": "0.0.750",
28
28
  "@teambit/ui-foundation.ui.pages.static-error": "0.0.86",
29
- "@teambit/builder": "0.0.976",
30
- "@teambit/bundler": "0.0.976",
31
- "@teambit/component": "0.0.976",
29
+ "@teambit/builder": "0.0.978",
30
+ "@teambit/bundler": "0.0.978",
31
+ "@teambit/component": "0.0.978",
32
32
  "@teambit/preview.ui.component-preview": "0.0.512",
33
- "@teambit/aspect-loader": "0.0.976",
34
- "@teambit/cli": "0.0.656",
35
- "@teambit/dependency-resolver": "0.0.976",
36
- "@teambit/envs": "0.0.976",
33
+ "@teambit/aspect-loader": "0.0.978",
34
+ "@teambit/cli": "0.0.657",
35
+ "@teambit/dependency-resolver": "0.0.978",
36
+ "@teambit/envs": "0.0.978",
37
37
  "@teambit/toolbox.path.to-windows-compatible-path": "0.0.490",
38
38
  "@teambit/component-id": "0.0.425",
39
39
  "@teambit/bit-error": "0.0.402",
40
- "@teambit/graphql": "0.0.976",
41
- "@teambit/pkg": "0.0.976",
42
- "@teambit/pubsub": "0.0.976",
43
- "@teambit/ui": "0.0.976",
44
- "@teambit/workspace": "0.0.976",
45
- "@teambit/compiler": "0.0.976",
40
+ "@teambit/graphql": "0.0.978",
41
+ "@teambit/pkg": "0.0.978",
42
+ "@teambit/pubsub": "0.0.978",
43
+ "@teambit/ui": "0.0.978",
44
+ "@teambit/workspace": "0.0.978",
45
+ "@teambit/compiler": "0.0.978",
46
46
  "@teambit/preview.cli.preview-server-status": "0.0.499",
47
47
  "@teambit/preview.cli.webpack-events-listener": "0.0.168",
48
- "@teambit/isolator": "0.0.976"
48
+ "@teambit/isolator": "0.0.978"
49
49
  },
50
50
  "devDependencies": {
51
51
  "@types/mime": "2.0.3",
@@ -63,7 +63,7 @@
63
63
  "@teambit/preview.aspect-docs.preview": "0.0.151"
64
64
  },
65
65
  "peerDependencies": {
66
- "@teambit/legacy": "1.0.438",
66
+ "@teambit/legacy": "1.0.439",
67
67
  "react": "^16.8.0 || ^17.0.0",
68
68
  "react-dom": "^16.8.0 || ^17.0.0"
69
69
  },
@@ -35,11 +35,17 @@ export class PreviewService implements EnvService<any> {
35
35
  if (!env?.preview) return undefined;
36
36
  const preview = env.preview()(envContext);
37
37
 
38
- return {
38
+ const transformMap: PreviewTransformationMap = {
39
39
  getAdditionalHostDependencies: preview.getHostDependencies.bind(preview),
40
40
  getMounter: preview.getMounter.bind(preview),
41
41
  getDocsTemplate: preview.getDocsTemplate.bind(preview),
42
- getPreviewConfig: preview.getPreviewConfig.bind(preview),
42
+ getPreviewConfig: preview.getPreviewConfig.bind(preview)
43
43
  };
44
+
45
+ if (preview.getTemplateBundler) {
46
+ transformMap.getTemplateBundler = (context) => preview.getTemplateBundler(context)(envContext);
47
+ }
48
+
49
+ return transformMap;
44
50
  }
45
51
  }