@teambit/preview 0.0.737 → 0.0.740

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.
Files changed (54) hide show
  1. package/dist/artifact-file-middleware.js.map +1 -1
  2. package/dist/bundling-strategy.js.map +1 -1
  3. package/dist/component-preview.route.js.map +1 -1
  4. package/dist/env-preview-template.task.d.ts +5 -1
  5. package/dist/env-preview-template.task.js +16 -21
  6. package/dist/env-preview-template.task.js.map +1 -1
  7. package/dist/env-template.route.js.map +1 -1
  8. package/dist/events/click-inside-an-iframe.js.map +1 -1
  9. package/dist/events/index.js.map +1 -1
  10. package/dist/exceptions/bundling-strategy-not-found.js.map +1 -1
  11. package/dist/exceptions/index.js.map +1 -1
  12. package/dist/exceptions/preview-artifact-not-found.js.map +1 -1
  13. package/dist/exceptions/preview-not-found.js.map +1 -1
  14. package/dist/exceptions/preview-output-file-not-found.js.map +1 -1
  15. package/dist/execution-ref.js.map +1 -1
  16. package/dist/generate-link.js.map +1 -1
  17. package/dist/gql/fetch-component-aspects.js.map +1 -1
  18. package/dist/index.js.map +1 -1
  19. package/dist/mk-temp-dir.js.map +1 -1
  20. package/dist/preview-artifact.js.map +1 -1
  21. package/dist/preview-assets.route.js.map +1 -1
  22. package/dist/preview-context.js.map +1 -1
  23. package/dist/preview-definition.js.map +1 -1
  24. package/dist/preview-type.js.map +1 -1
  25. package/dist/preview.aspect.js.map +1 -1
  26. package/dist/preview.composition.js.map +1 -1
  27. package/dist/preview.graphql.js.map +1 -1
  28. package/dist/preview.main.runtime.js +2 -2
  29. package/dist/preview.main.runtime.js.map +1 -1
  30. package/dist/preview.preview.runtime.js.map +1 -1
  31. package/dist/preview.route.js.map +1 -1
  32. package/dist/preview.start-plugin.js.map +1 -1
  33. package/dist/preview.task.d.ts +5 -1
  34. package/dist/preview.task.js +4 -3
  35. package/dist/preview.task.js.map +1 -1
  36. package/dist/rendering-context.js.map +1 -1
  37. package/dist/strategies/component-strategy.d.ts +2 -6
  38. package/dist/strategies/component-strategy.js +8 -1
  39. package/dist/strategies/component-strategy.js.map +1 -1
  40. package/dist/strategies/env-strategy.d.ts +7 -1
  41. package/dist/strategies/env-strategy.js +10 -2
  42. package/dist/strategies/env-strategy.js.map +1 -1
  43. package/dist/strategies/generate-component-link.js.map +1 -1
  44. package/dist/strategies/index.js.map +1 -1
  45. package/dist/types/preview-module.js.map +1 -1
  46. package/dist/webpack/html.js.map +1 -1
  47. package/dist/webpack/index.js.map +1 -1
  48. package/package-tar/teambit-preview-0.0.740.tgz +0 -0
  49. package/package.json +20 -20
  50. package/{preview-1652930732694.js → preview-1653449228788.js} +2 -2
  51. package/preview.main.runtime.tsx +6 -3
  52. package/strategies/component-strategy.ts +9 -2
  53. package/strategies/env-strategy.ts +8 -1
  54. package/package-tar/teambit-preview-0.0.737.tgz +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["component-strategy.ts"],"names":["PREVIEW_CHUNK_SUFFIX","COMPONENT_CHUNK_SUFFIX","PREVIEW_CHUNK_FILENAME_SUFFIX","COMPONENT_CHUNK_FILENAME_SUFFIX","COMPONENT_STRATEGY_SIZE_KEY_NAME","COMPONENT_STRATEGY_ARTIFACT_NAME","ComponentBundlingStrategy","constructor","preview","pkg","dependencyResolver","computeTargets","context","previewDefs","outputPath","getOutputPath","origComponents","capsuleNetwork","originalSeedersCapsules","map","capsule","component","entriesArr","Promise","all","computeComponentEntry","chunkSize","config","maxChunkSize","chunks","targets","currentChunk","entries","components","forEach","entry","Object","assign","push","path","computePaths","componentPath","getPaths","mainFile","componentPreviewChunkId","getComponentChunkId","id","filename","getComponentChunkFileName","toString","fsCompatible","ignoreVersion","import","library","name","type","splitComponentBundle","componentChunkId","toStringWithoutVersion","componentId","idstr","suffix","getAssetAbsolutePath","asset","copyAssetsToCapsules","result","graphCapsules","getCapsule","files","findAssetsForComponent","assets","entriesAssetsMap","artifactDirFullPath","getArtifactDirectory","filePath","PreviewOutputFileNotFound","destFilePath","fs","copyFileSync","undefined","componentEntryId","componentPreviewEntryId","componentFiles","componentAuxiliaryFiles","auxiliaryAssets","componentPreviewFiles","componentPreviewAuxiliaryFiles","concat","CAPSULE_ARTIFACTS_DIR","computeComponentMetadata","file","size","compressedSize","filesTotalSize","assetsSize","compressedTotalFiles","compressedAssetsSize","assetsTotalSize","auxiliaryAssetsSize","compressedTotalAssets","compressedAuxiliaryAssetsSize","totalSize","compressedTotal","metadata","totalFiles","totalAssets","total","computeResults","results","componentsResults","computeTargetResult","artifacts","getArtifactDef","errors","err","message","warning","warnings","startTime","endTime","globPatterns","rootDir","getDirName","envName","replace","capsulesRootDir","compiler","env","getCompiler","getDistPathBySrcPath","relative","getComponentOutputPath","defs","BitError","moduleMapsPromise","previewDef","moduleMap","getModuleMap","maybeFiles","get","compiledPaths","prefix","paths","moduleMaps","contents","writeLinkContents"],"mappings":"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","sourcesContent":["import { join, resolve, basename, dirname } from 'path';\nimport { existsSync, mkdirpSync } from 'fs-extra';\nimport { Component } from '@teambit/component';\nimport { ComponentID } from '@teambit/component-id';\nimport { flatten, isEmpty, chunk } from 'lodash';\nimport { Compiler } from '@teambit/compiler';\nimport type { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport type { Capsule } from '@teambit/isolator';\nimport { CAPSULE_ARTIFACTS_DIR, ComponentResult } from '@teambit/builder';\nimport type { PkgMain } from '@teambit/pkg';\nimport { BitError } from '@teambit/bit-error';\nimport type { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport type { BundlerResult, BundlerContext, Asset, BundlerEntryMap, EntriesAssetsMap } from '@teambit/bundler';\nimport { BundlingStrategy, ComputeTargetsContext } from '../bundling-strategy';\nimport type { PreviewDefinition } from '../preview-definition';\nimport type { ComponentPreviewMetaData, PreviewMain } from '../preview.main.runtime';\nimport { generateComponentLink } from './generate-component-link';\nimport { PreviewOutputFileNotFound } from '../exceptions';\n\nexport const PREVIEW_CHUNK_SUFFIX = 'preview';\nexport const COMPONENT_CHUNK_SUFFIX = 'component';\nexport const PREVIEW_CHUNK_FILENAME_SUFFIX = `${PREVIEW_CHUNK_SUFFIX}.js`;\nexport const COMPONENT_CHUNK_FILENAME_SUFFIX = `${COMPONENT_CHUNK_SUFFIX}.js`;\n\nexport const COMPONENT_STRATEGY_SIZE_KEY_NAME = 'size';\nexport const COMPONENT_STRATEGY_ARTIFACT_NAME = 'preview-component';\n\ntype ComponentEntry = {\n component: Component;\n entries: Object;\n};\n/**\n * bundles all components in a given env into the same bundle.\n */\nexport class ComponentBundlingStrategy implements BundlingStrategy {\n name = 'component';\n\n constructor(private preview: PreviewMain, private pkg: PkgMain, private dependencyResolver: DependencyResolverMain) {}\n\n async computeTargets(context: ComputeTargetsContext, previewDefs: PreviewDefinition[]) {\n const outputPath = this.getOutputPath(context);\n if (!existsSync(outputPath)) mkdirpSync(outputPath);\n\n // const entriesArr = flatten(\n // await Promise.all(\n // context.capsuleNetwork.seedersCapsules.map((capsule) => {\n // return this.computeComponentEntry(previewDefs, capsule.component, context);\n // }, {})\n // )\n // );\n\n const origComponents = context.capsuleNetwork.originalSeedersCapsules.map((capsule) => capsule.component);\n\n const entriesArr = await Promise.all(\n origComponents.map((component) => {\n return this.computeComponentEntry(previewDefs, component, context);\n }, {})\n );\n\n const chunkSize = this.preview.config.maxChunkSize;\n\n const chunks = chunkSize ? chunk(entriesArr, chunkSize) : [entriesArr];\n\n const targets = chunks.map((currentChunk) => {\n const entries: BundlerEntryMap = {};\n const components: Component[] = [];\n currentChunk.forEach((entry) => {\n Object.assign(entries, entry.entries);\n components.push(entry.component);\n });\n\n return {\n entries,\n components,\n outputPath,\n };\n });\n\n return targets;\n // const entries = entriesArr.reduce((entriesMap, entry) => {\n // entriesMap[entry.library.name] = entry;\n // return entriesMap;\n // }, {});\n\n // const modules = await Promise.all(entriesArr.map(async (entry) => {\n // const dependencies = await this.dependencyResolver.getDependencies(entry.component);\n // const manifest = dependencies.toDependenciesManifest();\n // const peer = Object.entries(manifest.peerDependencies || {}).reduce((acc, [packageName, version]) => {\n // acc[packageName] = {\n // singleton: true,\n // requiredVersion: version\n // };\n\n // return acc;\n // }, {});\n // // console.log(entry);\n // return {\n // name: entry.library.name,\n // exposes: {\n // '.': entry.import || ''\n // },\n // shared: {\n // ...manifest.dependencies,\n // ...peer\n // },\n // };\n // }));\n }\n\n async computeComponentEntry(\n previewDefs: PreviewDefinition[],\n component: Component,\n context: ComputeTargetsContext\n ): Promise<ComponentEntry> {\n const path = await this.computePaths(previewDefs, context, component);\n const [componentPath] = this.getPaths(context, component, [component.mainFile]);\n const componentPreviewChunkId = this.getComponentChunkId(component.id, 'preview');\n\n const entries = {\n [componentPreviewChunkId]: {\n filename: this.getComponentChunkFileName(\n component.id.toString({\n fsCompatible: true,\n ignoreVersion: true,\n }),\n 'preview'\n ),\n import: path,\n // dependOn: component.id.toStringWithoutVersion(),\n library: {\n name: componentPreviewChunkId,\n type: 'umd',\n },\n },\n };\n if (context.splitComponentBundle) {\n const componentChunkId = component.id.toStringWithoutVersion();\n entries[componentChunkId] = {\n filename: this.getComponentChunkFileName(\n component.id.toString({\n fsCompatible: true,\n ignoreVersion: true,\n }),\n 'component'\n ),\n import: componentPath,\n library: {\n name: componentChunkId,\n type: 'umd',\n },\n };\n }\n return { component, entries };\n }\n\n private getComponentChunkId(componentId: ComponentID, type: 'component' | 'preview') {\n const id =\n type === 'component'\n ? componentId.toStringWithoutVersion()\n : `${componentId.toStringWithoutVersion()}-${PREVIEW_CHUNK_SUFFIX}`;\n return id;\n }\n\n private getComponentChunkFileName(idstr: string, type: 'component' | 'preview') {\n const suffix = type === 'component' ? COMPONENT_CHUNK_FILENAME_SUFFIX : PREVIEW_CHUNK_FILENAME_SUFFIX;\n return `${idstr}-${suffix}`;\n }\n\n private getAssetAbsolutePath(context: BundlerContext, asset: Asset): string {\n const path = this.getOutputPath(context);\n return join(path, 'public', asset.name);\n }\n\n copyAssetsToCapsules(context: BundlerContext, result: BundlerResult) {\n context.components.forEach((component) => {\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n if (!capsule) return;\n const files = this.findAssetsForComponent(component, result.assets, result.entriesAssetsMap || {});\n if (!files) return;\n const artifactDirFullPath = join(capsule.path, this.getArtifactDirectory());\n // We don't use the mkdirSync as it uses the capsule fs which uses memfs, which doesn't know to handle nested none existing folders\n mkdirpSync(artifactDirFullPath);\n\n files.forEach((asset) => {\n const filePath = this.getAssetAbsolutePath(context, asset);\n if (!existsSync(filePath)) {\n throw new PreviewOutputFileNotFound(component.id, filePath);\n }\n const destFilePath = join(artifactDirFullPath, asset.name);\n mkdirpSync(dirname(destFilePath));\n capsule.fs.copyFileSync(filePath, destFilePath);\n });\n });\n }\n\n // private getCssFileName(componentId: ComponentID): string {\n // return `${componentId.toString({ ignoreVersion: true, fsCompatible: true })}.css`;\n // }\n\n private findAssetsForComponent(\n component: Component,\n assets: Asset[],\n entriesAssetsMap: EntriesAssetsMap\n ): Asset[] | undefined {\n if (!assets) return undefined;\n\n const componentEntryId = component.id.toStringWithoutVersion();\n const componentPreviewEntryId = this.getComponentChunkId(component.id, 'preview');\n const componentFiles = entriesAssetsMap[componentEntryId]?.assets || [];\n const componentAuxiliaryFiles = entriesAssetsMap[componentEntryId]?.auxiliaryAssets || [];\n const componentPreviewFiles = entriesAssetsMap[componentPreviewEntryId]?.assets || [];\n const componentPreviewAuxiliaryFiles = entriesAssetsMap[componentPreviewEntryId]?.auxiliaryAssets || [];\n\n const files = componentFiles\n .concat(componentAuxiliaryFiles)\n .concat(componentPreviewFiles)\n .concat(componentPreviewAuxiliaryFiles);\n return files;\n }\n\n private getArtifactDirectory() {\n return join(CAPSULE_ARTIFACTS_DIR, 'preview');\n }\n\n private computeComponentMetadata(\n context: BundlerContext,\n result: BundlerResult,\n component: Component\n ): ComponentPreviewMetaData {\n const componentEntryId = component.id.toStringWithoutVersion();\n if (!result?.entriesAssetsMap || !result?.entriesAssetsMap[componentEntryId]) {\n return {};\n }\n const files = (result.entriesAssetsMap[componentEntryId]?.assets || []).map((file) => {\n return {\n name: basename(file.name),\n size: file.size,\n compressedSize: file.compressedSize,\n };\n });\n const filesTotalSize = result.entriesAssetsMap[componentEntryId]?.assetsSize || 0;\n const compressedTotalFiles = result.entriesAssetsMap[componentEntryId]?.compressedAssetsSize || 0;\n const assets = (result.entriesAssetsMap[componentEntryId]?.auxiliaryAssets || []).map((file) => {\n return {\n name: basename(file.name),\n size: file.size,\n compressedSize: file.compressedSize,\n };\n });\n const assetsTotalSize = result.entriesAssetsMap[componentEntryId]?.auxiliaryAssetsSize || 0;\n const compressedTotalAssets = result.entriesAssetsMap[componentEntryId]?.compressedAuxiliaryAssetsSize || 0;\n const totalSize = filesTotalSize + assetsTotalSize;\n const compressedTotal = compressedTotalFiles + compressedTotalAssets;\n\n const metadata = {\n [COMPONENT_STRATEGY_SIZE_KEY_NAME]: {\n files,\n assets,\n totalFiles: filesTotalSize,\n totalAssets: assetsTotalSize,\n total: totalSize,\n compressedTotalFiles,\n compressedTotalAssets,\n compressedTotal,\n },\n };\n\n return metadata;\n }\n\n async computeResults(context: BundlerContext, results: BundlerResult[]) {\n const componentsResults = flatten(\n await Promise.all(results.map((result) => this.computeTargetResult(context, result)))\n );\n\n const artifacts = this.getArtifactDef();\n\n return {\n componentsResults,\n artifacts,\n };\n }\n\n async computeTargetResult(context: BundlerContext, result: BundlerResult) {\n if (isEmpty(result.errors)) {\n // In case there are errors files will not be emitted so trying to copy them will fail anyway\n this.copyAssetsToCapsules(context, result);\n }\n\n const componentsResults: ComponentResult[] = result.components.map((component) => {\n const metadata = this.computeComponentMetadata(context, result, component);\n return {\n component,\n metadata,\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\n return componentsResults;\n }\n\n private getArtifactDef() {\n // eslint-disable-next-line @typescript-eslint/prefer-as-const\n // const env: 'env' = 'env';\n // const rootDir = this.getDirName(context);\n\n return [\n {\n name: COMPONENT_STRATEGY_ARTIFACT_NAME,\n globPatterns: ['**'],\n rootDir: this.getArtifactDirectory(),\n // context: env,\n },\n ];\n }\n\n getDirName(context: ComputeTargetsContext) {\n const envName = context.id.replace('/', '__');\n return `${envName}-preview`;\n }\n\n private getOutputPath(context: ComputeTargetsContext) {\n return resolve(`${context.capsuleNetwork.capsulesRootDir}/${this.getDirName(context)}`);\n }\n\n private getPaths(context: ComputeTargetsContext, component: Component, files: AbstractVinyl[]) {\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n if (!capsule) return [];\n const compiler: Compiler = context.env.getCompiler();\n return files.map((file) => join(capsule.path, compiler.getDistPathBySrcPath(file.relative)));\n }\n\n private getComponentOutputPath(capsule: Capsule) {\n return resolve(`${capsule.path}`);\n }\n\n private async computePaths(\n defs: PreviewDefinition[],\n context: ComputeTargetsContext,\n component: Component\n ): Promise<string> {\n // const previewMain = await this.preview.writePreviewRuntime(context);\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n // if (!capsule) return undefined;\n if (!capsule)\n throw new BitError(\n `could not find capsule for component ${component.id.toString()} during compute paths to bundle`\n );\n const moduleMapsPromise = defs.map(async (previewDef) => {\n const moduleMap = await previewDef.getModuleMap([component]);\n const maybeFiles = moduleMap.get(component);\n if (!maybeFiles || !capsule) return [];\n const [, files] = maybeFiles;\n const compiledPaths = this.getPaths(context, component, files);\n // const files = flatten(paths.toArray().map(([, file]) => file));\n\n return {\n prefix: previewDef.prefix,\n paths: compiledPaths,\n };\n });\n\n const moduleMaps = flatten(await Promise.all(moduleMapsPromise));\n\n const contents = generateComponentLink(moduleMaps);\n return this.preview.writeLinkContents(contents, this.getComponentOutputPath(capsule), 'preview');\n // return flatten(moduleMaps);\n }\n}\n"]}
1
+ {"version":3,"names":["PREVIEW_CHUNK_SUFFIX","COMPONENT_CHUNK_SUFFIX","PREVIEW_CHUNK_FILENAME_SUFFIX","COMPONENT_CHUNK_FILENAME_SUFFIX","COMPONENT_STRATEGY_SIZE_KEY_NAME","COMPONENT_STRATEGY_ARTIFACT_NAME","ComponentBundlingStrategy","constructor","preview","pkg","dependencyResolver","computeTargets","context","previewDefs","outputPath","getOutputPath","existsSync","mkdirpSync","origComponents","capsuleNetwork","originalSeedersCapsules","map","capsule","component","entriesArr","Promise","all","computeComponentEntry","chunkSize","config","maxChunkSize","chunks","chunk","peers","getPeerDependenciesListFromEnv","env","targets","currentChunk","entries","components","forEach","entry","Object","assign","push","hostDependencies","aliasHostDependencies","externalizeHostDependencies","path","computePaths","componentPath","getPaths","mainFile","componentPreviewChunkId","getComponentChunkId","id","filename","getComponentChunkFileName","toString","fsCompatible","ignoreVersion","import","library","name","type","splitComponentBundle","componentChunkId","toStringWithoutVersion","componentId","idstr","suffix","getAssetAbsolutePath","asset","join","copyAssetsToCapsules","result","graphCapsules","getCapsule","files","findAssetsForComponent","assets","entriesAssetsMap","artifactDirFullPath","getArtifactDirectory","filePath","PreviewOutputFileNotFound","destFilePath","dirname","fs","copyFileSync","undefined","componentEntryId","componentPreviewEntryId","componentFiles","componentAuxiliaryFiles","auxiliaryAssets","componentPreviewFiles","componentPreviewAuxiliaryFiles","concat","CAPSULE_ARTIFACTS_DIR","computeComponentMetadata","file","basename","size","compressedSize","filesTotalSize","assetsSize","compressedTotalFiles","compressedAssetsSize","assetsTotalSize","auxiliaryAssetsSize","compressedTotalAssets","compressedAuxiliaryAssetsSize","totalSize","compressedTotal","metadata","totalFiles","totalAssets","total","computeResults","results","componentsResults","flatten","computeTargetResult","artifacts","getArtifactDef","isEmpty","errors","err","message","warning","warnings","startTime","endTime","globPatterns","rootDir","getDirName","envName","replace","resolve","capsulesRootDir","compiler","getCompiler","getDistPathBySrcPath","relative","getComponentOutputPath","defs","BitError","moduleMapsPromise","previewDef","moduleMap","getModuleMap","maybeFiles","get","compiledPaths","prefix","paths","moduleMaps","contents","generateComponentLink","writeLinkContents"],"sources":["component-strategy.ts"],"sourcesContent":["import { join, resolve, basename, dirname } from 'path';\nimport { existsSync, mkdirpSync } from 'fs-extra';\nimport { Component } from '@teambit/component';\nimport { ComponentID } from '@teambit/component-id';\nimport { flatten, isEmpty, chunk } from 'lodash';\nimport { Compiler } from '@teambit/compiler';\nimport type { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport type { Capsule } from '@teambit/isolator';\nimport { CAPSULE_ARTIFACTS_DIR, ComponentResult } from '@teambit/builder';\nimport type { PkgMain } from '@teambit/pkg';\nimport { BitError } from '@teambit/bit-error';\nimport type { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport type { BundlerResult, BundlerContext, Asset, BundlerEntryMap, EntriesAssetsMap, Target } from '@teambit/bundler';\nimport { BundlingStrategy, ComputeTargetsContext } from '../bundling-strategy';\nimport type { PreviewDefinition } from '../preview-definition';\nimport type { ComponentPreviewMetaData, PreviewMain } from '../preview.main.runtime';\nimport { generateComponentLink } from './generate-component-link';\nimport { PreviewOutputFileNotFound } from '../exceptions';\n\nexport const PREVIEW_CHUNK_SUFFIX = 'preview';\nexport const COMPONENT_CHUNK_SUFFIX = 'component';\nexport const PREVIEW_CHUNK_FILENAME_SUFFIX = `${PREVIEW_CHUNK_SUFFIX}.js`;\nexport const COMPONENT_CHUNK_FILENAME_SUFFIX = `${COMPONENT_CHUNK_SUFFIX}.js`;\n\nexport const COMPONENT_STRATEGY_SIZE_KEY_NAME = 'size';\nexport const COMPONENT_STRATEGY_ARTIFACT_NAME = 'preview-component';\n\ntype ComponentEntry = {\n component: Component;\n entries: Object;\n};\n/**\n * bundles all components in a given env into the same bundle.\n */\nexport class ComponentBundlingStrategy implements BundlingStrategy {\n name = 'component';\n\n constructor(private preview: PreviewMain, private pkg: PkgMain, private dependencyResolver: DependencyResolverMain) {}\n\n async computeTargets(context: ComputeTargetsContext, previewDefs: PreviewDefinition[]): Promise<Target[]> {\n const outputPath = this.getOutputPath(context);\n if (!existsSync(outputPath)) mkdirpSync(outputPath);\n\n // const entriesArr = flatten(\n // await Promise.all(\n // context.capsuleNetwork.seedersCapsules.map((capsule) => {\n // return this.computeComponentEntry(previewDefs, capsule.component, context);\n // }, {})\n // )\n // );\n\n const origComponents = context.capsuleNetwork.originalSeedersCapsules.map((capsule) => capsule.component);\n\n const entriesArr = await Promise.all(\n origComponents.map((component) => {\n return this.computeComponentEntry(previewDefs, component, context);\n }, {})\n );\n\n const chunkSize = this.preview.config.maxChunkSize;\n\n const chunks = chunkSize ? chunk(entriesArr, chunkSize) : [entriesArr];\n\n const peers = await this.dependencyResolver.getPeerDependenciesListFromEnv(context.env);\n\n const targets = chunks.map((currentChunk) => {\n const entries: BundlerEntryMap = {};\n const components: Component[] = [];\n currentChunk.forEach((entry) => {\n Object.assign(entries, entry.entries);\n components.push(entry.component);\n });\n\n return {\n entries,\n components,\n outputPath,\n /* It's a path to the root of the host component. */\n // hostRootDir, handle this\n hostDependencies: peers,\n aliasHostDependencies: true,\n externalizeHostDependencies: true,\n };\n });\n\n return targets;\n // const entries = entriesArr.reduce((entriesMap, entry) => {\n // entriesMap[entry.library.name] = entry;\n // return entriesMap;\n // }, {});\n\n // const modules = await Promise.all(entriesArr.map(async (entry) => {\n // const dependencies = await this.dependencyResolver.getDependencies(entry.component);\n // const manifest = dependencies.toDependenciesManifest();\n // const peer = Object.entries(manifest.peerDependencies || {}).reduce((acc, [packageName, version]) => {\n // acc[packageName] = {\n // singleton: true,\n // requiredVersion: version\n // };\n\n // return acc;\n // }, {});\n // // console.log(entry);\n // return {\n // name: entry.library.name,\n // exposes: {\n // '.': entry.import || ''\n // },\n // shared: {\n // ...manifest.dependencies,\n // ...peer\n // },\n // };\n // }));\n }\n\n async computeComponentEntry(\n previewDefs: PreviewDefinition[],\n component: Component,\n context: ComputeTargetsContext\n ): Promise<ComponentEntry> {\n const path = await this.computePaths(previewDefs, context, component);\n const [componentPath] = this.getPaths(context, component, [component.mainFile]);\n const componentPreviewChunkId = this.getComponentChunkId(component.id, 'preview');\n\n const entries = {\n [componentPreviewChunkId]: {\n filename: this.getComponentChunkFileName(\n component.id.toString({\n fsCompatible: true,\n ignoreVersion: true,\n }),\n 'preview'\n ),\n import: path,\n // dependOn: component.id.toStringWithoutVersion(),\n library: {\n name: componentPreviewChunkId,\n type: 'umd',\n },\n },\n };\n if (context.splitComponentBundle) {\n const componentChunkId = component.id.toStringWithoutVersion();\n entries[componentChunkId] = {\n filename: this.getComponentChunkFileName(\n component.id.toString({\n fsCompatible: true,\n ignoreVersion: true,\n }),\n 'component'\n ),\n import: componentPath,\n library: {\n name: componentChunkId,\n type: 'umd',\n },\n };\n }\n return { component, entries };\n }\n\n private getComponentChunkId(componentId: ComponentID, type: 'component' | 'preview') {\n const id =\n type === 'component'\n ? componentId.toStringWithoutVersion()\n : `${componentId.toStringWithoutVersion()}-${PREVIEW_CHUNK_SUFFIX}`;\n return id;\n }\n\n private getComponentChunkFileName(idstr: string, type: 'component' | 'preview') {\n const suffix = type === 'component' ? COMPONENT_CHUNK_FILENAME_SUFFIX : PREVIEW_CHUNK_FILENAME_SUFFIX;\n return `${idstr}-${suffix}`;\n }\n\n private getAssetAbsolutePath(context: BundlerContext, asset: Asset): string {\n const path = this.getOutputPath(context);\n return join(path, 'public', asset.name);\n }\n\n copyAssetsToCapsules(context: BundlerContext, result: BundlerResult) {\n context.components.forEach((component) => {\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n if (!capsule) return;\n const files = this.findAssetsForComponent(component, result.assets, result.entriesAssetsMap || {});\n if (!files) return;\n const artifactDirFullPath = join(capsule.path, this.getArtifactDirectory());\n // We don't use the mkdirSync as it uses the capsule fs which uses memfs, which doesn't know to handle nested none existing folders\n mkdirpSync(artifactDirFullPath);\n\n files.forEach((asset) => {\n const filePath = this.getAssetAbsolutePath(context, asset);\n if (!existsSync(filePath)) {\n throw new PreviewOutputFileNotFound(component.id, filePath);\n }\n const destFilePath = join(artifactDirFullPath, asset.name);\n mkdirpSync(dirname(destFilePath));\n capsule.fs.copyFileSync(filePath, destFilePath);\n });\n });\n }\n\n // private getCssFileName(componentId: ComponentID): string {\n // return `${componentId.toString({ ignoreVersion: true, fsCompatible: true })}.css`;\n // }\n\n private findAssetsForComponent(\n component: Component,\n assets: Asset[],\n entriesAssetsMap: EntriesAssetsMap\n ): Asset[] | undefined {\n if (!assets) return undefined;\n\n const componentEntryId = component.id.toStringWithoutVersion();\n const componentPreviewEntryId = this.getComponentChunkId(component.id, 'preview');\n const componentFiles = entriesAssetsMap[componentEntryId]?.assets || [];\n const componentAuxiliaryFiles = entriesAssetsMap[componentEntryId]?.auxiliaryAssets || [];\n const componentPreviewFiles = entriesAssetsMap[componentPreviewEntryId]?.assets || [];\n const componentPreviewAuxiliaryFiles = entriesAssetsMap[componentPreviewEntryId]?.auxiliaryAssets || [];\n\n const files = componentFiles\n .concat(componentAuxiliaryFiles)\n .concat(componentPreviewFiles)\n .concat(componentPreviewAuxiliaryFiles);\n return files;\n }\n\n private getArtifactDirectory() {\n return join(CAPSULE_ARTIFACTS_DIR, 'preview');\n }\n\n private computeComponentMetadata(\n context: BundlerContext,\n result: BundlerResult,\n component: Component\n ): ComponentPreviewMetaData {\n const componentEntryId = component.id.toStringWithoutVersion();\n if (!result?.entriesAssetsMap || !result?.entriesAssetsMap[componentEntryId]) {\n return {};\n }\n const files = (result.entriesAssetsMap[componentEntryId]?.assets || []).map((file) => {\n return {\n name: basename(file.name),\n size: file.size,\n compressedSize: file.compressedSize,\n };\n });\n const filesTotalSize = result.entriesAssetsMap[componentEntryId]?.assetsSize || 0;\n const compressedTotalFiles = result.entriesAssetsMap[componentEntryId]?.compressedAssetsSize || 0;\n const assets = (result.entriesAssetsMap[componentEntryId]?.auxiliaryAssets || []).map((file) => {\n return {\n name: basename(file.name),\n size: file.size,\n compressedSize: file.compressedSize,\n };\n });\n const assetsTotalSize = result.entriesAssetsMap[componentEntryId]?.auxiliaryAssetsSize || 0;\n const compressedTotalAssets = result.entriesAssetsMap[componentEntryId]?.compressedAuxiliaryAssetsSize || 0;\n const totalSize = filesTotalSize + assetsTotalSize;\n const compressedTotal = compressedTotalFiles + compressedTotalAssets;\n\n const metadata = {\n [COMPONENT_STRATEGY_SIZE_KEY_NAME]: {\n files,\n assets,\n totalFiles: filesTotalSize,\n totalAssets: assetsTotalSize,\n total: totalSize,\n compressedTotalFiles,\n compressedTotalAssets,\n compressedTotal,\n },\n };\n\n return metadata;\n }\n\n async computeResults(context: BundlerContext, results: BundlerResult[]) {\n const componentsResults = flatten(\n await Promise.all(results.map((result) => this.computeTargetResult(context, result)))\n );\n\n const artifacts = this.getArtifactDef();\n\n return {\n componentsResults,\n artifacts,\n };\n }\n\n async computeTargetResult(context: BundlerContext, result: BundlerResult) {\n if (isEmpty(result.errors)) {\n // In case there are errors files will not be emitted so trying to copy them will fail anyway\n this.copyAssetsToCapsules(context, result);\n }\n\n const componentsResults: ComponentResult[] = result.components.map((component) => {\n const metadata = this.computeComponentMetadata(context, result, component);\n return {\n component,\n metadata,\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\n return componentsResults;\n }\n\n private getArtifactDef() {\n // eslint-disable-next-line @typescript-eslint/prefer-as-const\n // const env: 'env' = 'env';\n // const rootDir = this.getDirName(context);\n\n return [\n {\n name: COMPONENT_STRATEGY_ARTIFACT_NAME,\n globPatterns: ['**'],\n rootDir: this.getArtifactDirectory(),\n // context: env,\n },\n ];\n }\n\n getDirName(context: ComputeTargetsContext) {\n const envName = context.id.replace('/', '__');\n return `${envName}-preview`;\n }\n\n private getOutputPath(context: ComputeTargetsContext) {\n return resolve(`${context.capsuleNetwork.capsulesRootDir}/${this.getDirName(context)}`);\n }\n\n private getPaths(context: ComputeTargetsContext, component: Component, files: AbstractVinyl[]) {\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n if (!capsule) return [];\n const compiler: Compiler = context.env.getCompiler();\n return files.map((file) => join(capsule.path, compiler.getDistPathBySrcPath(file.relative)));\n }\n\n private getComponentOutputPath(capsule: Capsule) {\n return resolve(`${capsule.path}`);\n }\n\n private async computePaths(\n defs: PreviewDefinition[],\n context: ComputeTargetsContext,\n component: Component\n ): Promise<string> {\n // const previewMain = await this.preview.writePreviewRuntime(context);\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n // if (!capsule) return undefined;\n if (!capsule)\n throw new BitError(\n `could not find capsule for component ${component.id.toString()} during compute paths to bundle`\n );\n const moduleMapsPromise = defs.map(async (previewDef) => {\n const moduleMap = await previewDef.getModuleMap([component]);\n const maybeFiles = moduleMap.get(component);\n if (!maybeFiles || !capsule) return [];\n const [, files] = maybeFiles;\n const compiledPaths = this.getPaths(context, component, files);\n // const files = flatten(paths.toArray().map(([, file]) => file));\n\n return {\n prefix: previewDef.prefix,\n paths: compiledPaths,\n };\n });\n\n const moduleMaps = flatten(await Promise.all(moduleMapsPromise));\n\n const contents = generateComponentLink(moduleMaps);\n return this.preview.writeLinkContents(contents, this.getComponentOutputPath(capsule), 'preview');\n // return flatten(moduleMaps);\n }\n}\n"],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  import { ComponentResult } from '@teambit/builder';
2
2
  import { BundlerContext, BundlerHtmlConfig, BundlerResult } from '@teambit/bundler';
3
+ import { DependencyResolverMain } from '@teambit/dependency-resolver';
4
+ import { PkgMain } from '@teambit/pkg';
3
5
  import type { BundlingStrategy, ComputeTargetsContext } from '../bundling-strategy';
4
6
  import { PreviewDefinition } from '../preview-definition';
5
7
  import { PreviewMain } from '../preview.main.runtime';
@@ -8,13 +10,17 @@ import { PreviewMain } from '../preview.main.runtime';
8
10
  */
9
11
  export declare class EnvBundlingStrategy implements BundlingStrategy {
10
12
  private preview;
13
+ private pkg;
14
+ private dependencyResolver;
11
15
  name: string;
12
- constructor(preview: PreviewMain);
16
+ constructor(preview: PreviewMain, pkg: PkgMain, dependencyResolver: DependencyResolverMain);
13
17
  computeTargets(context: ComputeTargetsContext, previewDefs: PreviewDefinition[]): Promise<{
14
18
  entries: string[];
15
19
  html: BundlerHtmlConfig[];
16
20
  components: import("@teambit/component").Component[];
17
21
  outputPath: string;
22
+ hostDependencies: string[];
23
+ aliasHostDependencies: boolean;
18
24
  }[]>;
19
25
  private generateHtmlConfig;
20
26
  computeResults(context: BundlerContext, results: BundlerResult[]): Promise<{
@@ -79,8 +79,10 @@ function _webpack() {
79
79
  * bundles all components in a given env into the same bundle.
80
80
  */
81
81
  class EnvBundlingStrategy {
82
- constructor(preview) {
82
+ constructor(preview, pkg, dependencyResolver) {
83
83
  this.preview = preview;
84
+ this.pkg = pkg;
85
+ this.dependencyResolver = dependencyResolver;
84
86
  (0, _defineProperty2().default)(this, "name", 'env');
85
87
  }
86
88
 
@@ -90,11 +92,17 @@ class EnvBundlingStrategy {
90
92
  const htmlConfig = this.generateHtmlConfig({
91
93
  dev: context.dev
92
94
  });
95
+ const peers = await this.dependencyResolver.getPeerDependenciesListFromEnv(context.env);
93
96
  return [{
94
97
  entries: await this.computePaths(outputPath, previewDefs, context),
95
98
  html: [htmlConfig],
96
99
  components: context.components,
97
- outputPath
100
+ outputPath,
101
+
102
+ /* It's a path to the root of the host component. */
103
+ // hostRootDir, handle this
104
+ hostDependencies: peers,
105
+ aliasHostDependencies: true
98
106
  }];
99
107
  }
100
108
 
@@ -1 +1 @@
1
- {"version":3,"sources":["env-strategy.ts"],"names":["EnvBundlingStrategy","constructor","preview","computeTargets","context","previewDefs","outputPath","getOutputPath","htmlConfig","generateHtmlConfig","dev","entries","computePaths","html","components","options","config","title","templateContent","cache","minify","computeResults","results","result","componentsResults","map","component","errors","err","message","warning","warnings","startTime","endTime","artifacts","getArtifactDef","env","rootDir","getDirName","name","globPatterns","envName","id","replace","capsuleNetwork","capsulesRootDir","getPaths","files","capsule","compiler","getCompiler","file","path","getDistPathBySrcPath","relative","defs","previewMain","writePreviewRuntime","moduleMapsPromise","previewDef","moduleMap","getModuleMap","paths","ComponentMap","as","graphCapsules","getCapsule","maybeFiles","get","compiledPaths","template","renderTemplatePath","link","writeLink","prefix","undefined","toArray","concat","moduleMaps","Promise","all"],"mappings":"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","sourcesContent":["import { join, resolve } from 'path';\nimport { existsSync, mkdirpSync } from 'fs-extra';\nimport { flatten } from 'lodash';\nimport { ComponentMap } from '@teambit/component';\nimport { Compiler } from '@teambit/compiler';\nimport { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport { Capsule } from '@teambit/isolator';\nimport { ComponentResult } from '@teambit/builder';\nimport { BundlerContext, BundlerHtmlConfig, BundlerResult } from '@teambit/bundler';\nimport type { BundlingStrategy, ComputeTargetsContext } from '../bundling-strategy';\nimport { PreviewDefinition } from '../preview-definition';\nimport { PreviewMain } from '../preview.main.runtime';\nimport { html } from '../webpack';\n\n/**\n * bundles all components in a given env into the same bundle.\n */\nexport class EnvBundlingStrategy implements BundlingStrategy {\n name = 'env';\n\n constructor(private preview: PreviewMain) {}\n\n async computeTargets(context: ComputeTargetsContext, previewDefs: PreviewDefinition[]) {\n const outputPath = this.getOutputPath(context);\n if (!existsSync(outputPath)) mkdirpSync(outputPath);\n const htmlConfig = this.generateHtmlConfig({ dev: context.dev });\n\n return [\n {\n entries: await this.computePaths(outputPath, previewDefs, context),\n html: [htmlConfig],\n components: context.components,\n outputPath,\n },\n ];\n }\n\n private generateHtmlConfig(options: { dev?: boolean }): BundlerHtmlConfig {\n const config = {\n title: 'Preview',\n templateContent: html('Preview'),\n cache: false,\n minify: options?.dev ?? true,\n };\n return config;\n }\n\n async computeResults(context: BundlerContext, results: BundlerResult[]) {\n const result = results[0];\n\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\n const artifacts = this.getArtifactDef(context);\n\n return {\n componentsResults,\n artifacts,\n };\n }\n\n private getArtifactDef(context: ComputeTargetsContext) {\n // eslint-disable-next-line @typescript-eslint/prefer-as-const\n const env: 'env' = 'env';\n const rootDir = this.getDirName(context);\n\n return [\n {\n name: 'preview',\n globPatterns: ['public/**'],\n rootDir,\n context: env,\n },\n ];\n }\n\n getDirName(context: ComputeTargetsContext) {\n const envName = context.id.replace('/', '__');\n return `${envName}-preview`;\n }\n\n private getOutputPath(context: ComputeTargetsContext) {\n return resolve(`${context.capsuleNetwork.capsulesRootDir}/${this.getDirName(context)}`);\n }\n\n private getPaths(context: ComputeTargetsContext, files: AbstractVinyl[], capsule: Capsule) {\n const compiler: Compiler = context.env.getCompiler();\n return files.map((file) => join(capsule.path, compiler.getDistPathBySrcPath(file.relative)));\n }\n\n private async computePaths(\n outputPath: string,\n defs: PreviewDefinition[],\n context: ComputeTargetsContext\n ): Promise<string[]> {\n const previewMain = await this.preview.writePreviewRuntime(context);\n const moduleMapsPromise = defs.map(async (previewDef) => {\n const moduleMap = await previewDef.getModuleMap(context.components);\n\n const paths = ComponentMap.as(context.components, (component) => {\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n const maybeFiles = moduleMap.get(component);\n if (!maybeFiles || !capsule) return [];\n const [, files] = maybeFiles;\n const compiledPaths = this.getPaths(context, files, capsule);\n return compiledPaths;\n });\n\n const template = previewDef.renderTemplatePath ? await previewDef.renderTemplatePath(context) : 'undefined';\n\n const link = this.preview.writeLink(\n previewDef.prefix,\n paths,\n previewDef.renderTemplatePath ? await previewDef.renderTemplatePath(context) : undefined,\n outputPath,\n false\n );\n\n const files = flatten(paths.toArray().map(([, file]) => file)).concat([link]);\n\n if (template) return files.concat([template]);\n return files;\n });\n\n const moduleMaps = await Promise.all(moduleMapsPromise);\n\n return flatten(moduleMaps.concat([previewMain]));\n }\n}\n"]}
1
+ {"version":3,"names":["EnvBundlingStrategy","constructor","preview","pkg","dependencyResolver","computeTargets","context","previewDefs","outputPath","getOutputPath","existsSync","mkdirpSync","htmlConfig","generateHtmlConfig","dev","peers","getPeerDependenciesListFromEnv","env","entries","computePaths","html","components","hostDependencies","aliasHostDependencies","options","config","title","templateContent","cache","minify","computeResults","results","result","componentsResults","map","component","errors","err","message","warning","warnings","startTime","endTime","artifacts","getArtifactDef","rootDir","getDirName","name","globPatterns","envName","id","replace","resolve","capsuleNetwork","capsulesRootDir","getPaths","files","capsule","compiler","getCompiler","file","join","path","getDistPathBySrcPath","relative","defs","previewMain","writePreviewRuntime","moduleMapsPromise","previewDef","moduleMap","getModuleMap","paths","ComponentMap","as","graphCapsules","getCapsule","maybeFiles","get","compiledPaths","template","renderTemplatePath","link","writeLink","prefix","undefined","flatten","toArray","concat","moduleMaps","Promise","all"],"sources":["env-strategy.ts"],"sourcesContent":["import { join, resolve } from 'path';\nimport { existsSync, mkdirpSync } from 'fs-extra';\nimport { flatten } from 'lodash';\nimport { ComponentMap } from '@teambit/component';\nimport { Compiler } from '@teambit/compiler';\nimport { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport { Capsule } from '@teambit/isolator';\nimport { ComponentResult } from '@teambit/builder';\nimport { BundlerContext, BundlerHtmlConfig, BundlerResult } from '@teambit/bundler';\nimport { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { PkgMain } from '@teambit/pkg';\nimport type { BundlingStrategy, ComputeTargetsContext } from '../bundling-strategy';\nimport { PreviewDefinition } from '../preview-definition';\nimport { PreviewMain } from '../preview.main.runtime';\nimport { html } from '../webpack';\n\n/**\n * bundles all components in a given env into the same bundle.\n */\nexport class EnvBundlingStrategy implements BundlingStrategy {\n name = 'env';\n\n constructor(private preview: PreviewMain, private pkg: PkgMain, private dependencyResolver: DependencyResolverMain) {}\n\n async computeTargets(context: ComputeTargetsContext, previewDefs: PreviewDefinition[]) {\n const outputPath = this.getOutputPath(context);\n if (!existsSync(outputPath)) mkdirpSync(outputPath);\n const htmlConfig = this.generateHtmlConfig({ dev: context.dev });\n const peers = await this.dependencyResolver.getPeerDependenciesListFromEnv(context.env);\n\n return [\n {\n entries: await this.computePaths(outputPath, previewDefs, context),\n html: [htmlConfig],\n components: context.components,\n outputPath,\n /* It's a path to the root of the host component. */\n // hostRootDir, handle this\n hostDependencies: peers,\n aliasHostDependencies: true,\n },\n ];\n }\n\n private generateHtmlConfig(options: { dev?: boolean }): BundlerHtmlConfig {\n const config = {\n title: 'Preview',\n templateContent: html('Preview'),\n cache: false,\n minify: options?.dev ?? true,\n };\n return config;\n }\n\n async computeResults(context: BundlerContext, results: BundlerResult[]) {\n const result = results[0];\n\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\n const artifacts = this.getArtifactDef(context);\n\n return {\n componentsResults,\n artifacts,\n };\n }\n\n private getArtifactDef(context: ComputeTargetsContext) {\n // eslint-disable-next-line @typescript-eslint/prefer-as-const\n const env: 'env' = 'env';\n const rootDir = this.getDirName(context);\n\n return [\n {\n name: 'preview',\n globPatterns: ['public/**'],\n rootDir,\n context: env,\n },\n ];\n }\n\n getDirName(context: ComputeTargetsContext) {\n const envName = context.id.replace('/', '__');\n return `${envName}-preview`;\n }\n\n private getOutputPath(context: ComputeTargetsContext) {\n return resolve(`${context.capsuleNetwork.capsulesRootDir}/${this.getDirName(context)}`);\n }\n\n private getPaths(context: ComputeTargetsContext, files: AbstractVinyl[], capsule: Capsule) {\n const compiler: Compiler = context.env.getCompiler();\n return files.map((file) => join(capsule.path, compiler.getDistPathBySrcPath(file.relative)));\n }\n\n private async computePaths(\n outputPath: string,\n defs: PreviewDefinition[],\n context: ComputeTargetsContext\n ): Promise<string[]> {\n const previewMain = await this.preview.writePreviewRuntime(context);\n const moduleMapsPromise = defs.map(async (previewDef) => {\n const moduleMap = await previewDef.getModuleMap(context.components);\n\n const paths = ComponentMap.as(context.components, (component) => {\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n const maybeFiles = moduleMap.get(component);\n if (!maybeFiles || !capsule) return [];\n const [, files] = maybeFiles;\n const compiledPaths = this.getPaths(context, files, capsule);\n return compiledPaths;\n });\n\n const template = previewDef.renderTemplatePath ? await previewDef.renderTemplatePath(context) : 'undefined';\n\n const link = this.preview.writeLink(\n previewDef.prefix,\n paths,\n previewDef.renderTemplatePath ? await previewDef.renderTemplatePath(context) : undefined,\n outputPath,\n false\n );\n\n const files = flatten(paths.toArray().map(([, file]) => file)).concat([link]);\n\n if (template) return files.concat([template]);\n return files;\n });\n\n const moduleMaps = await Promise.all(moduleMapsPromise);\n\n return flatten(moduleMaps.concat([previewMain]));\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["generate-component-link.ts"],"names":["generateComponentLink","modules","map","moduleVar","prefix","paths","path","join"],"mappings":";;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAOO,SAASA,qBAAT,CAA+BC,OAA/B,EAA6D;AAClE,SAAQ,GAAEA,OAAO,CACdC,GADO,CACFC,SAAD,IAAe;AAClB,WAAQ,gBAAeA,SAAS,CAACC,MAAO,OAAMD,SAAS,CAACE,KAAV,CAC3CH,GAD2C,CACtCI,IAAD,IAAW,YAAW,4CAAwBA,IAAxB,CAA8B,IADb,EAE3CC,IAF2C,CAEtC,IAFsC,CAEhC,GAFd,CADkB,CAKlB;AACD,GAPO,EAQPA,IARO,CAQF,IARE,CAQI;AAChB,CATE;AAUD","sourcesContent":["import { toWindowsCompatiblePath } from '@teambit/toolbox.path.to-windows-compatible-path';\n\nexport type ModuleVar = {\n prefix: string;\n paths: string[];\n};\n\nexport function generateComponentLink(modules: ModuleVar[]): string {\n return `${modules\n .map((moduleVar) => {\n return `export const ${moduleVar.prefix} = [${moduleVar.paths\n .map((path) => `require('${toWindowsCompatiblePath(path)}')`)\n .join(', ')}]`;\n\n // return `export { * as ${moduleVar.prefix} } from '${toWindowsCompatiblePath(moduleVar.paths)}'`;\n })\n .join('\\n')}\n`;\n}\n"]}
1
+ {"version":3,"names":["generateComponentLink","modules","map","moduleVar","prefix","paths","path","toWindowsCompatiblePath","join"],"sources":["generate-component-link.ts"],"sourcesContent":["import { toWindowsCompatiblePath } from '@teambit/toolbox.path.to-windows-compatible-path';\n\nexport type ModuleVar = {\n prefix: string;\n paths: string[];\n};\n\nexport function generateComponentLink(modules: ModuleVar[]): string {\n return `${modules\n .map((moduleVar) => {\n return `export const ${moduleVar.prefix} = [${moduleVar.paths\n .map((path) => `require('${toWindowsCompatiblePath(path)}')`)\n .join(', ')}]`;\n\n // return `export { * as ${moduleVar.prefix} } from '${toWindowsCompatiblePath(moduleVar.paths)}'`;\n })\n .join('\\n')}\n`;\n}\n"],"mappings":";;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAOO,SAASA,qBAAT,CAA+BC,OAA/B,EAA6D;EAClE,OAAQ,GAAEA,OAAO,CACdC,GADO,CACFC,SAAD,IAAe;IAClB,OAAQ,gBAAeA,SAAS,CAACC,MAAO,OAAMD,SAAS,CAACE,KAAV,CAC3CH,GAD2C,CACtCI,IAAD,IAAW,YAAW,IAAAC,sCAAA,EAAwBD,IAAxB,CAA8B,IADb,EAE3CE,IAF2C,CAEtC,IAFsC,CAEhC,GAFd,CADkB,CAKlB;EACD,CAPO,EAQPA,IARO,CAQF,IARE,CAQI;AAChB,CATE;AAUD"}
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA","sourcesContent":["export { EnvBundlingStrategy } from './env-strategy';\nexport { ComponentBundlingStrategy } from './component-strategy';\n"]}
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { EnvBundlingStrategy } from './env-strategy';\nexport { ComponentBundlingStrategy } from './component-strategy';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
1
+ {"version":3,"names":[],"sources":["preview-module.ts"],"sourcesContent":["/**\n * A full index of the preview data\n */\nexport type PreviewModule<T = any> = {\n /** Dictionary mapping components to their module files. */\n componentMap: Record<string, ModuleFile<T>[]>;\n\n /** The 'main file' for this Preview type */\n mainModule: {\n default: (...args: any[]) => void;\n };\n\n isSplitComponentBundle?: boolean;\n};\n\n/** single preview module, e.g. compositions file */\nexport type ModuleFile<T = any> = Record<string, T>;\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"sources":["html.ts"],"names":["html","title"],"mappings":";;;;;;;AAAA;AACO,SAASA,IAAT,CAAcC,KAAd,EAA6B;AAClC,SAAQ;AACV;AACA;AACA;AACA;AACA;AACA,eAAeA,KAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAlBE;AAmBD","sourcesContent":["/** html template for Previews (docs, compositions, etc) */\nexport function html(title: string) {\n return `\n <!DOCTYPE html>\n <html lang=\"en\">\n <head>\n <meta charset=\"utf-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>${title}</title>\n <script>\n // Allow to use react dev-tools inside the examples\n try { window.__REACT_DEVTOOLS_GLOBAL_HOOK__ = window.parent.__REACT_DEVTOOLS_GLOBAL_HOOK__; } catch {}\n </script>\n <!-- minimal css resets -->\n <style> html { height: 100%; } body { margin: 0; height: 100%; } #root { height: 100%; } </style>\n </head>\n <body>\n <div id=\"root\"></div>\n </body>\n </html>\n `;\n}\n"]}
1
+ {"version":3,"names":["html","title"],"sources":["html.ts"],"sourcesContent":["/** html template for Previews (docs, compositions, etc) */\nexport function html(title: string) {\n return `\n <!DOCTYPE html>\n <html lang=\"en\">\n <head>\n <meta charset=\"utf-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>${title}</title>\n <script>\n // Allow to use react dev-tools inside the examples\n try { window.__REACT_DEVTOOLS_GLOBAL_HOOK__ = window.parent.__REACT_DEVTOOLS_GLOBAL_HOOK__; } catch {}\n </script>\n <!-- minimal css resets -->\n <style> html { height: 100%; } body { margin: 0; height: 100%; } #root { height: 100%; } </style>\n </head>\n <body>\n <div id=\"root\"></div>\n </body>\n </html>\n `;\n}\n"],"mappings":";;;;;;;AAAA;AACO,SAASA,IAAT,CAAcC,KAAd,EAA6B;EAClC,OAAQ;AACV;AACA;AACA;AACA;AACA;AACA,eAAeA,KAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAlBE;AAmBD"}
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA","sourcesContent":["export { html } from './html';\n"]}
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { html } from './html';\n"],"mappings":";;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/preview",
3
- "version": "0.0.737",
3
+ "version": "0.0.740",
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.737"
9
+ "version": "0.0.740"
10
10
  },
11
11
  "dependencies": {
12
12
  "mime": "2.5.2",
@@ -21,26 +21,26 @@
21
21
  "@babel/runtime": "7.12.18",
22
22
  "core-js": "^3.0.0",
23
23
  "@teambit/harmony": "0.3.3",
24
- "@teambit/express": "0.0.587",
25
- "@teambit/logger": "0.0.583",
24
+ "@teambit/express": "0.0.589",
25
+ "@teambit/logger": "0.0.584",
26
26
  "@teambit/ui-foundation.ui.pages.static-error": "0.0.72",
27
- "@teambit/builder": "0.0.737",
28
- "@teambit/bundler": "0.0.737",
29
- "@teambit/component": "0.0.737",
30
- "@teambit/aspect-loader": "0.0.737",
31
- "@teambit/envs": "0.0.737",
32
- "@teambit/isolator": "0.0.737",
27
+ "@teambit/builder": "0.0.740",
28
+ "@teambit/bundler": "0.0.740",
29
+ "@teambit/component": "0.0.740",
30
+ "@teambit/aspect-loader": "0.0.740",
31
+ "@teambit/dependency-resolver": "0.0.740",
32
+ "@teambit/envs": "0.0.740",
33
+ "@teambit/isolator": "0.0.740",
33
34
  "@teambit/toolbox.path.to-windows-compatible-path": "0.0.483",
34
35
  "@teambit/component-id": "0.0.402",
35
36
  "@teambit/bit-error": "0.0.394",
36
- "@teambit/cli": "0.0.491",
37
- "@teambit/dependency-resolver": "0.0.737",
38
- "@teambit/graphql": "0.0.737",
39
- "@teambit/pkg": "0.0.737",
40
- "@teambit/pubsub": "0.0.737",
41
- "@teambit/ui": "0.0.737",
42
- "@teambit/workspace": "0.0.737",
43
- "@teambit/compiler": "0.0.737",
37
+ "@teambit/cli": "0.0.492",
38
+ "@teambit/graphql": "0.0.740",
39
+ "@teambit/pkg": "0.0.740",
40
+ "@teambit/pubsub": "0.0.740",
41
+ "@teambit/ui": "0.0.740",
42
+ "@teambit/workspace": "0.0.740",
43
+ "@teambit/compiler": "0.0.740",
44
44
  "@teambit/preview.cli.preview-server-status": "0.0.491",
45
45
  "@teambit/preview.cli.webpack-events-listener": "0.0.161"
46
46
  },
@@ -59,7 +59,7 @@
59
59
  "@teambit/preview.aspect-docs.preview": "0.0.137"
60
60
  },
61
61
  "peerDependencies": {
62
- "@teambit/legacy": "1.0.271",
62
+ "@teambit/legacy": "1.0.272",
63
63
  "react-dom": "^16.8.0 || ^17.0.0",
64
64
  "react": "^16.8.0 || ^17.0.0"
65
65
  },
@@ -87,7 +87,7 @@
87
87
  "react": "-"
88
88
  },
89
89
  "peerDependencies": {
90
- "@teambit/legacy": "1.0.271",
90
+ "@teambit/legacy": "1.0.272",
91
91
  "react-dom": "^16.8.0 || ^17.0.0",
92
92
  "react": "^16.8.0 || ^17.0.0"
93
93
  }
@@ -1,2 +1,2 @@
1
- export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.preview_preview@0.0.737/dist/preview.composition.js')]
2
- export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.preview_preview@0.0.737/dist/preview.docs.mdx')]
1
+ export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.preview_preview@0.0.740/dist/preview.composition.js')]
2
+ export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.preview_preview@0.0.740/dist/preview.docs.mdx')]
@@ -393,7 +393,10 @@ export class PreviewMain {
393
393
  }
394
394
 
395
395
  private getDefaultStrategies() {
396
- return [new EnvBundlingStrategy(this), new ComponentBundlingStrategy(this, this.pkg, this.dependencyResolver)];
396
+ return [
397
+ new EnvBundlingStrategy(this, this.pkg, this.dependencyResolver),
398
+ new ComponentBundlingStrategy(this, this.pkg, this.dependencyResolver),
399
+ ];
397
400
  }
398
401
 
399
402
  // TODO - executionContext should be responsible for updating components list, and emit 'update' events
@@ -559,8 +562,8 @@ export class PreviewMain {
559
562
 
560
563
  if (!config.disabled)
561
564
  builder.registerBuildTasks([
562
- new EnvPreviewTemplateTask(preview, envs, aspectLoader),
563
- new PreviewTask(bundler, preview),
565
+ new EnvPreviewTemplateTask(preview, envs, aspectLoader, dependencyResolver, logger),
566
+ new PreviewTask(bundler, preview, dependencyResolver, logger),
564
567
  ]);
565
568
 
566
569
  if (workspace) {
@@ -10,7 +10,7 @@ import { CAPSULE_ARTIFACTS_DIR, ComponentResult } from '@teambit/builder';
10
10
  import type { PkgMain } from '@teambit/pkg';
11
11
  import { BitError } from '@teambit/bit-error';
12
12
  import type { DependencyResolverMain } from '@teambit/dependency-resolver';
13
- import type { BundlerResult, BundlerContext, Asset, BundlerEntryMap, EntriesAssetsMap } from '@teambit/bundler';
13
+ import type { BundlerResult, BundlerContext, Asset, BundlerEntryMap, EntriesAssetsMap, Target } from '@teambit/bundler';
14
14
  import { BundlingStrategy, ComputeTargetsContext } from '../bundling-strategy';
15
15
  import type { PreviewDefinition } from '../preview-definition';
16
16
  import type { ComponentPreviewMetaData, PreviewMain } from '../preview.main.runtime';
@@ -37,7 +37,7 @@ export class ComponentBundlingStrategy implements BundlingStrategy {
37
37
 
38
38
  constructor(private preview: PreviewMain, private pkg: PkgMain, private dependencyResolver: DependencyResolverMain) {}
39
39
 
40
- async computeTargets(context: ComputeTargetsContext, previewDefs: PreviewDefinition[]) {
40
+ async computeTargets(context: ComputeTargetsContext, previewDefs: PreviewDefinition[]): Promise<Target[]> {
41
41
  const outputPath = this.getOutputPath(context);
42
42
  if (!existsSync(outputPath)) mkdirpSync(outputPath);
43
43
 
@@ -61,6 +61,8 @@ export class ComponentBundlingStrategy implements BundlingStrategy {
61
61
 
62
62
  const chunks = chunkSize ? chunk(entriesArr, chunkSize) : [entriesArr];
63
63
 
64
+ const peers = await this.dependencyResolver.getPeerDependenciesListFromEnv(context.env);
65
+
64
66
  const targets = chunks.map((currentChunk) => {
65
67
  const entries: BundlerEntryMap = {};
66
68
  const components: Component[] = [];
@@ -73,6 +75,11 @@ export class ComponentBundlingStrategy implements BundlingStrategy {
73
75
  entries,
74
76
  components,
75
77
  outputPath,
78
+ /* It's a path to the root of the host component. */
79
+ // hostRootDir, handle this
80
+ hostDependencies: peers,
81
+ aliasHostDependencies: true,
82
+ externalizeHostDependencies: true,
76
83
  };
77
84
  });
78
85
 
@@ -7,6 +7,8 @@ import { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';
7
7
  import { Capsule } from '@teambit/isolator';
8
8
  import { ComponentResult } from '@teambit/builder';
9
9
  import { BundlerContext, BundlerHtmlConfig, BundlerResult } from '@teambit/bundler';
10
+ import { DependencyResolverMain } from '@teambit/dependency-resolver';
11
+ import { PkgMain } from '@teambit/pkg';
10
12
  import type { BundlingStrategy, ComputeTargetsContext } from '../bundling-strategy';
11
13
  import { PreviewDefinition } from '../preview-definition';
12
14
  import { PreviewMain } from '../preview.main.runtime';
@@ -18,12 +20,13 @@ import { html } from '../webpack';
18
20
  export class EnvBundlingStrategy implements BundlingStrategy {
19
21
  name = 'env';
20
22
 
21
- constructor(private preview: PreviewMain) {}
23
+ constructor(private preview: PreviewMain, private pkg: PkgMain, private dependencyResolver: DependencyResolverMain) {}
22
24
 
23
25
  async computeTargets(context: ComputeTargetsContext, previewDefs: PreviewDefinition[]) {
24
26
  const outputPath = this.getOutputPath(context);
25
27
  if (!existsSync(outputPath)) mkdirpSync(outputPath);
26
28
  const htmlConfig = this.generateHtmlConfig({ dev: context.dev });
29
+ const peers = await this.dependencyResolver.getPeerDependenciesListFromEnv(context.env);
27
30
 
28
31
  return [
29
32
  {
@@ -31,6 +34,10 @@ export class EnvBundlingStrategy implements BundlingStrategy {
31
34
  html: [htmlConfig],
32
35
  components: context.components,
33
36
  outputPath,
37
+ /* It's a path to the root of the host component. */
38
+ // hostRootDir, handle this
39
+ hostDependencies: peers,
40
+ aliasHostDependencies: true,
34
41
  },
35
42
  ];
36
43
  }