@teambit/preview 0.0.770 → 0.0.771

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.
@@ -401,16 +401,18 @@ class ComponentBundlingStrategy {
401
401
  const moduleMapsPromise = defs.map(async previewDef => {
402
402
  const moduleMap = await previewDef.getModuleMap([component]);
403
403
  const maybeFiles = moduleMap.get(component);
404
- if (!maybeFiles || !capsule) return [];
404
+ if (!maybeFiles || !capsule) return {
405
+ prefix: previewDef.prefix,
406
+ paths: []
407
+ };
405
408
  const [, files] = maybeFiles;
406
- const compiledPaths = this.getPaths(context, component, files); // const files = flatten(paths.toArray().map(([, file]) => file));
407
-
409
+ const compiledPaths = this.getPaths(context, component, files);
408
410
  return {
409
411
  prefix: previewDef.prefix,
410
412
  paths: compiledPaths
411
413
  };
412
414
  });
413
- const moduleMaps = (0, _lodash().flatten)(await Promise.all(moduleMapsPromise));
415
+ const moduleMaps = await Promise.all(moduleMapsPromise);
414
416
  const contents = (0, _generateComponentLink().generateComponentLink)(moduleMaps);
415
417
  return this.preview.writeLinkContents(contents, this.getComponentOutputPath(capsule), 'preview'); // return flatten(moduleMaps);
416
418
  }
@@ -1 +1 @@
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","getAssetFilename","split","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', this.getAssetFilename(asset));\n }\n\n private getAssetFilename(asset: Asset): string {\n // handle cases where the asset name is something like my-image.svg?hash (while the filename in the fs is just my-image.svg)\n const [name] = asset.name.split('?');\n return 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, this.getAssetFilename(asset));\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
+ {"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","getAssetFilename","split","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","prefix","paths","compiledPaths","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', this.getAssetFilename(asset));\n }\n\n private getAssetFilename(asset: Asset): string {\n // handle cases where the asset name is something like my-image.svg?hash (while the filename in the fs is just my-image.svg)\n const [name] = asset.name.split('?');\n return 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, this.getAssetFilename(asset));\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 { prefix: previewDef.prefix, paths: [] };\n\n const [, files] = maybeFiles;\n const compiledPaths = this.getPaths(context, component, files);\n\n return {\n prefix: previewDef.prefix,\n paths: compiledPaths,\n };\n });\n\n const moduleMaps = 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
  "use strict";
2
2
 
3
+ require("core-js/modules/es.array.iterator.js");
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
@@ -16,9 +18,31 @@ function _toolboxPath() {
16
18
  }
17
19
 
18
20
  function generateComponentLink(modules) {
19
- return `${modules.map(moduleVar => {
20
- return `export const ${moduleVar.prefix} = [${moduleVar.paths.map(path => `require('${(0, _toolboxPath().toWindowsCompatiblePath)(path)}')`).join(', ')}]`; // return `export { * as ${moduleVar.prefix} } from '${toWindowsCompatiblePath(moduleVar.paths)}'`;
21
- }).join('\n')}
21
+ const links = modules.map(({
22
+ prefix,
23
+ paths
24
+ }) => ({
25
+ name: prefix,
26
+ entries: paths.map((path, idx) => ({
27
+ path: (0, _toolboxPath().toWindowsCompatiblePath)(path),
28
+ linkName: `${prefix}_${idx}`
29
+ }))
30
+ })); // import per preview file
31
+
32
+ const importStr = links.map(({
33
+ entries
34
+ }) => entries.map(({
35
+ path,
36
+ linkName
37
+ }) => `import * as ${linkName} from '${path}'`).join(';\n')).join('\n'); // export files group per preview
38
+
39
+ const exportsString = links.map(({
40
+ name,
41
+ entries
42
+ }) => `export const ${name} = [${entries.map(entry => entry.linkName).join(', ')}]`).join(';\n');
43
+ return `${importStr}
44
+
45
+ ${exportsString}
22
46
  `;
23
47
  }
24
48
 
@@ -1 +1 @@
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
+ {"version":3,"names":["generateComponentLink","modules","links","map","prefix","paths","name","entries","path","idx","toWindowsCompatiblePath","linkName","importStr","join","exportsString","entry"],"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 const links = modules.map(({ prefix, paths }) => ({\n name: prefix,\n entries: paths.map((path, idx) => ({\n path: toWindowsCompatiblePath(path),\n linkName: `${prefix}_${idx}`,\n })),\n }));\n\n // import per preview file\n const importStr: string = links\n .map(({ entries }) => entries.map(({ path, linkName }) => `import * as ${linkName} from '${path}'`).join(';\\n'))\n .join('\\n');\n\n // export files group per preview\n const exportsString: string = links\n .map(({ name, entries }) => `export const ${name} = [${entries.map((entry) => entry.linkName).join(', ')}]`)\n .join(';\\n');\n\n return `${importStr}\n\n${exportsString}\n`;\n}\n"],"mappings":";;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAOO,SAASA,qBAAT,CAA+BC,OAA/B,EAA6D;EAClE,MAAMC,KAAK,GAAGD,OAAO,CAACE,GAAR,CAAY,CAAC;IAAEC,MAAF;IAAUC;EAAV,CAAD,MAAwB;IAChDC,IAAI,EAAEF,MAD0C;IAEhDG,OAAO,EAAEF,KAAK,CAACF,GAAN,CAAU,CAACK,IAAD,EAAOC,GAAP,MAAgB;MACjCD,IAAI,EAAE,IAAAE,sCAAA,EAAwBF,IAAxB,CAD2B;MAEjCG,QAAQ,EAAG,GAAEP,MAAO,IAAGK,GAAI;IAFM,CAAhB,CAAV;EAFuC,CAAxB,CAAZ,CAAd,CADkE,CASlE;;EACA,MAAMG,SAAiB,GAAGV,KAAK,CAC5BC,GADuB,CACnB,CAAC;IAAEI;EAAF,CAAD,KAAiBA,OAAO,CAACJ,GAAR,CAAY,CAAC;IAAEK,IAAF;IAAQG;EAAR,CAAD,KAAyB,eAAcA,QAAS,UAASH,IAAK,GAA1E,EAA8EK,IAA9E,CAAmF,KAAnF,CADE,EAEvBA,IAFuB,CAElB,IAFkB,CAA1B,CAVkE,CAclE;;EACA,MAAMC,aAAqB,GAAGZ,KAAK,CAChCC,GAD2B,CACvB,CAAC;IAAEG,IAAF;IAAQC;EAAR,CAAD,KAAwB,gBAAeD,IAAK,OAAMC,OAAO,CAACJ,GAAR,CAAaY,KAAD,IAAWA,KAAK,CAACJ,QAA7B,EAAuCE,IAAvC,CAA4C,IAA5C,CAAkD,GAD7E,EAE3BA,IAF2B,CAEtB,KAFsB,CAA9B;EAIA,OAAQ,GAAED,SAAU;AACtB;AACA,EAAEE,aAAc;AAChB,CAHE;AAID"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/preview",
3
- "version": "0.0.770",
3
+ "version": "0.0.771",
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.770"
9
+ "version": "0.0.771"
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.607",
25
- "@teambit/logger": "0.0.602",
24
+ "@teambit/express": "0.0.608",
25
+ "@teambit/logger": "0.0.603",
26
26
  "@teambit/ui-foundation.ui.pages.static-error": "0.0.73",
27
- "@teambit/builder": "0.0.770",
28
- "@teambit/bundler": "0.0.770",
29
- "@teambit/component": "0.0.770",
30
- "@teambit/aspect-loader": "0.0.770",
31
- "@teambit/dependency-resolver": "0.0.770",
32
- "@teambit/envs": "0.0.770",
33
- "@teambit/isolator": "0.0.770",
27
+ "@teambit/builder": "0.0.771",
28
+ "@teambit/bundler": "0.0.771",
29
+ "@teambit/component": "0.0.771",
30
+ "@teambit/aspect-loader": "0.0.771",
31
+ "@teambit/dependency-resolver": "0.0.771",
32
+ "@teambit/envs": "0.0.771",
33
+ "@teambit/isolator": "0.0.771",
34
34
  "@teambit/toolbox.path.to-windows-compatible-path": "0.0.483",
35
35
  "@teambit/component-id": "0.0.402",
36
36
  "@teambit/bit-error": "0.0.394",
37
- "@teambit/cli": "0.0.509",
38
- "@teambit/graphql": "0.0.770",
39
- "@teambit/pkg": "0.0.770",
40
- "@teambit/pubsub": "0.0.770",
41
- "@teambit/ui": "0.0.770",
42
- "@teambit/workspace": "0.0.770",
43
- "@teambit/compiler": "0.0.770",
37
+ "@teambit/cli": "0.0.510",
38
+ "@teambit/graphql": "0.0.771",
39
+ "@teambit/pkg": "0.0.771",
40
+ "@teambit/pubsub": "0.0.771",
41
+ "@teambit/ui": "0.0.771",
42
+ "@teambit/workspace": "0.0.771",
43
+ "@teambit/compiler": "0.0.771",
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.138"
60
60
  },
61
61
  "peerDependencies": {
62
- "@teambit/legacy": "1.0.289",
62
+ "@teambit/legacy": "1.0.291",
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.289",
90
+ "@teambit/legacy": "1.0.291",
91
91
  "react-dom": "^16.8.0 || ^17.0.0",
92
92
  "react": "^16.8.0 || ^17.0.0"
93
93
  }
@@ -0,0 +1,5 @@
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.preview_preview@0.0.771/dist/preview.composition.js'
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.preview_preview@0.0.771/dist/preview.docs.mdx'
3
+
4
+ export const compositions = [compositions_0];
5
+ export const overview = [overview_0]
@@ -365,10 +365,10 @@ export class ComponentBundlingStrategy implements BundlingStrategy {
365
365
  const moduleMapsPromise = defs.map(async (previewDef) => {
366
366
  const moduleMap = await previewDef.getModuleMap([component]);
367
367
  const maybeFiles = moduleMap.get(component);
368
- if (!maybeFiles || !capsule) return [];
368
+ if (!maybeFiles || !capsule) return { prefix: previewDef.prefix, paths: [] };
369
+
369
370
  const [, files] = maybeFiles;
370
371
  const compiledPaths = this.getPaths(context, component, files);
371
- // const files = flatten(paths.toArray().map(([, file]) => file));
372
372
 
373
373
  return {
374
374
  prefix: previewDef.prefix,
@@ -376,7 +376,7 @@ export class ComponentBundlingStrategy implements BundlingStrategy {
376
376
  };
377
377
  });
378
378
 
379
- const moduleMaps = flatten(await Promise.all(moduleMapsPromise));
379
+ const moduleMaps = await Promise.all(moduleMapsPromise);
380
380
 
381
381
  const contents = generateComponentLink(moduleMaps);
382
382
  return this.preview.writeLinkContents(contents, this.getComponentOutputPath(capsule), 'preview');
@@ -6,14 +6,26 @@ export type ModuleVar = {
6
6
  };
7
7
 
8
8
  export function generateComponentLink(modules: ModuleVar[]): string {
9
- return `${modules
10
- .map((moduleVar) => {
11
- return `export const ${moduleVar.prefix} = [${moduleVar.paths
12
- .map((path) => `require('${toWindowsCompatiblePath(path)}')`)
13
- .join(', ')}]`;
9
+ const links = modules.map(({ prefix, paths }) => ({
10
+ name: prefix,
11
+ entries: paths.map((path, idx) => ({
12
+ path: toWindowsCompatiblePath(path),
13
+ linkName: `${prefix}_${idx}`,
14
+ })),
15
+ }));
14
16
 
15
- // return `export { * as ${moduleVar.prefix} } from '${toWindowsCompatiblePath(moduleVar.paths)}'`;
16
- })
17
- .join('\n')}
17
+ // import per preview file
18
+ const importStr: string = links
19
+ .map(({ entries }) => entries.map(({ path, linkName }) => `import * as ${linkName} from '${path}'`).join(';\n'))
20
+ .join('\n');
21
+
22
+ // export files group per preview
23
+ const exportsString: string = links
24
+ .map(({ name, entries }) => `export const ${name} = [${entries.map((entry) => entry.linkName).join(', ')}]`)
25
+ .join(';\n');
26
+
27
+ return `${importStr}
28
+
29
+ ${exportsString}
18
30
  `;
19
31
  }
@@ -1,2 +0,0 @@
1
- export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.preview_preview@0.0.770/dist/preview.composition.js')]
2
- export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.preview_preview@0.0.770/dist/preview.docs.mdx')]