@teambit/preview 1.0.667 → 1.0.669
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundler/html-plugin.ts +1 -1
- package/dist/bundler/html-plugin.d.ts +1 -1
- package/dist/bundler/html-plugin.js.map +1 -1
- package/dist/bundling-strategy.d.ts +4 -4
- package/dist/bundling-strategy.js.map +1 -1
- package/dist/component-preview.route.d.ts +1 -1
- package/dist/component-preview.route.js.map +1 -1
- package/dist/env-preview-template.task.d.ts +5 -5
- package/dist/env-preview-template.task.js.map +1 -1
- package/dist/env-template.route.js.map +1 -1
- package/dist/exceptions/preview-artifact-not-found.d.ts +1 -1
- package/dist/exceptions/preview-artifact-not-found.js.map +1 -1
- package/dist/exceptions/preview-output-file-not-found.d.ts +1 -1
- package/dist/exceptions/preview-output-file-not-found.js.map +1 -1
- package/dist/execution-ref.d.ts +1 -1
- package/dist/execution-ref.js.map +1 -1
- package/dist/generate-preview.cmd.d.ts +2 -2
- package/dist/generate-preview.cmd.js.map +1 -1
- package/dist/pre-bundle-utils.d.ts +3 -3
- package/dist/pre-bundle-utils.js.map +1 -1
- package/dist/pre-bundle.d.ts +1 -1
- package/dist/pre-bundle.js.map +1 -1
- package/dist/pre-bundle.task.d.ts +3 -3
- package/dist/pre-bundle.task.js.map +1 -1
- package/dist/{preview-1753809186996.js → preview-1753848836384.js} +2 -2
- package/dist/preview-artifact.d.ts +1 -1
- package/dist/preview-artifact.js.map +1 -1
- package/dist/preview-assets.route.d.ts +1 -1
- package/dist/preview-assets.route.js.map +1 -1
- package/dist/preview-context.d.ts +1 -1
- package/dist/preview-context.js.map +1 -1
- package/dist/preview-env.d.ts +3 -3
- package/dist/preview-env.js.map +1 -1
- package/dist/preview-type.d.ts +3 -3
- package/dist/preview-type.js.map +1 -1
- package/dist/preview.d.ts +1 -1
- package/dist/preview.graphql.d.ts +2 -2
- package/dist/preview.graphql.js.map +1 -1
- package/dist/preview.js.map +1 -1
- package/dist/preview.main.runtime.d.ts +16 -16
- package/dist/preview.main.runtime.js.map +1 -1
- package/dist/preview.preview.runtime.d.ts +4 -4
- package/dist/preview.preview.runtime.js.map +1 -1
- package/dist/preview.route.d.ts +1 -1
- package/dist/preview.route.js.map +1 -1
- package/dist/preview.service.d.ts +7 -7
- package/dist/preview.service.js.map +1 -1
- package/dist/preview.start-plugin.d.ts +7 -7
- package/dist/preview.start-plugin.js.map +1 -1
- package/dist/preview.task.d.ts +9 -9
- package/dist/preview.task.js.map +1 -1
- package/dist/rendering-context.d.ts +1 -1
- package/dist/rendering-context.js.map +1 -1
- package/dist/serve-preview.cmd.d.ts +1 -1
- package/dist/serve-preview.cmd.js.map +1 -1
- package/dist/strategies/component-strategy.d.ts +4 -4
- package/dist/strategies/component-strategy.js.map +1 -1
- package/dist/strategies/env-strategy.d.ts +6 -6
- package/dist/strategies/env-strategy.js.map +1 -1
- package/dist/webpack/webpack.config.d.ts +1 -1
- package/dist/webpack/webpack.config.js.map +1 -1
- package/exceptions/preview-artifact-not-found.ts +1 -1
- package/exceptions/preview-output-file-not-found.ts +1 -1
- package/generate-preview.cmd.tsx +2 -2
- package/package.json +25 -25
- package/preview.preview.runtime.tsx +6 -4
- package/preview.service.tsx +7 -7
- package/preview.start-plugin.tsx +8 -8
- package/serve-preview.cmd.tsx +1 -1
- package/strategies/component-strategy.ts +7 -6
- package/strategies/env-strategy.ts +9 -9
- package/webpack/webpack.config.ts +2 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_path","data","require","_fsExtra","_lodash","_builder","_bitError","_generateComponentLink","_exceptions","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","PREVIEW_GLOBAL_NAME_SUFFIX","exports","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","dependencyResolver","logger","computeTargets","context","previewDefs","outputPath","getOutputPath","existsSync","mkdirpSync","origComponents","capsuleNetwork","originalSeedersCapsules","map","capsule","component","entriesArr","Promise","all","computeComponentEntry","chunkSize","config","maxChunkSize","chunks","chunk","peers","getPreviewHostDependenciesFromEnv","envDefinition","env","targets","currentChunk","entries","components","componentDirectoryMap","forEach","entry","assign","push","id","toString","componentDir","hostRootDir","envRuntime","envAspectDefinition","aspectPath","hostDependencies","aliasHostDependencies","externalizeHostDependencies","componentPreviewPath","computePaths","componentPath","getPaths","mainFile","graphCapsules","getCapsule","path","componentPreview","getComponentChunkId","splitComponentBundle","undefined","libNames","getComponentChunkGlobalName","filename","getComponentChunkFileName","fsCompatible","ignoreVersion","import","dependOn","library","name","type","componentId","toStringWithoutVersion","idstr","suffix","getAssetAbsolutePath","asset","join","getAssetFilename","split","copyAssetsToCapsules","result","files","findAssetsForComponent","assets","entriesAssetsMap","artifactDirFullPath","getArtifactDirectory","filePath","PreviewOutputFileNotFound","destFilePath","dirname","fs","copyFileSync","componentEntryId","componentPreviewEntryId","componentFiles","componentAuxiliaryFiles","auxiliaryAssets","componentPreviewFiles","componentPreviewAuxiliaryFiles","concat","CAPSULE_ARTIFACTS_DIR","computeComponentMetadata","file","UNKNOWN","basename","warn","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","getDirName","envName","replace","resolve","capsulesRootDir","compiler","getCompiler","getDistPathBySrcPath","relative","getComponentOutputPath","capsulePath","distDir","getDistDir","defs","BitError","moduleMapsPromise","previewDef","moduleMap","getModuleMap","getMetadata","maybeFiles","get","prefix","paths","compiledPaths","moduleMaps","contents","generateComponentLink","targetDir","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/component.sources';\nimport type { Capsule } from '@teambit/isolator';\nimport { ArtifactDefinition, CAPSULE_ARTIFACTS_DIR, ComponentResult } from '@teambit/builder';\nimport { BitError } from '@teambit/bit-error';\nimport type { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { Logger } from '@teambit/logger';\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_GLOBAL_NAME_SUFFIX = 'preview';\nexport const PREVIEW_CHUNK_SUFFIX = 'preview-chunk';\nexport const COMPONENT_CHUNK_SUFFIX = 'component-chunk';\nexport const PREVIEW_CHUNK_FILENAME_SUFFIX = 'preview.js';\nexport const COMPONENT_CHUNK_FILENAME_SUFFIX = 'component.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 componentDir: string;\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(\n private preview: PreviewMain,\n private dependencyResolver: DependencyResolverMain,\n private logger: Logger\n ) {}\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.getPreviewHostDependenciesFromEnv(context.envDefinition.env);\n\n const targets = chunks.map((currentChunk) => {\n const entries: BundlerEntryMap = {};\n const components: Component[] = [];\n const componentDirectoryMap = {};\n currentChunk.forEach((entry) => {\n Object.assign(entries, entry.entries);\n components.push(entry.component);\n componentDirectoryMap[entry.component.id.toString()] = entry.componentDir;\n });\n\n return {\n entries,\n components,\n componentDirectoryMap,\n outputPath,\n hostRootDir: context.envRuntime.envAspectDefinition.aspectPath,\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 = 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 componentPreviewPath = await this.computePaths(previewDefs, context, component);\n const [componentPath] = this.getPaths(context, component, [component.mainFile]);\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n const componentDir = capsule?.path || '';\n\n const chunks = {\n componentPreview: this.getComponentChunkId(component.id, 'preview'),\n component: context.splitComponentBundle ? this.getComponentChunkId(component.id, 'component') : undefined,\n };\n\n const libNames = {\n componentPreview: this.getComponentChunkGlobalName(component.id, 'preview'),\n component: context.splitComponentBundle ? this.getComponentChunkGlobalName(component.id, 'component') : undefined,\n };\n\n const entries = {\n [chunks.componentPreview]: {\n filename: this.getComponentChunkFileName(\n component.id.toString({\n fsCompatible: true,\n ignoreVersion: true,\n }),\n 'preview'\n ),\n import: componentPreviewPath,\n dependOn: chunks.component,\n library: { name: libNames.componentPreview, type: 'umd' },\n },\n };\n\n if (chunks.component && libNames.component) {\n entries[chunks.component] = {\n filename: this.getComponentChunkFileName(\n component.id.toString({\n fsCompatible: true,\n ignoreVersion: true,\n }),\n 'component'\n ),\n dependOn: undefined,\n import: componentPath,\n library: { name: libNames.component, type: 'umd' },\n };\n }\n\n return { component, entries, componentDir };\n }\n\n private getComponentChunkId(componentId: ComponentID, type: 'component' | 'preview') {\n const id =\n type === 'component'\n ? `${componentId.toStringWithoutVersion()}-${COMPONENT_CHUNK_SUFFIX}`\n : `${componentId.toStringWithoutVersion()}-${PREVIEW_CHUNK_SUFFIX}`;\n return id;\n }\n\n private getComponentChunkGlobalName(componentId: ComponentID, type: 'component' | 'preview') {\n const id =\n type === 'component'\n ? componentId.toStringWithoutVersion()\n : `${componentId.toStringWithoutVersion()}-${PREVIEW_GLOBAL_NAME_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 = this.getComponentChunkId(component.id, 'component');\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 = this.getComponentChunkId(component.id, 'component');\n\n if (!result?.entriesAssetsMap || !result?.entriesAssetsMap[componentEntryId]) {\n return {};\n }\n const files = (result.entriesAssetsMap[componentEntryId]?.assets || []).map((file) => {\n const UNKNOWN = 'unknown';\n const name = file.name ? basename(file.name) : UNKNOWN;\n if (name === UNKNOWN) {\n this.logger.warn(`computeComponentMetadata: unable to get the name of the asset ${file}`);\n }\n return {\n 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 const UNKNOWN = 'unknown';\n const name = file.name ? basename(file.name) : UNKNOWN;\n if (name === UNKNOWN) {\n this.logger.warn(`computeComponentMetadata: unable to get the name of the auxiliary asset ${file}`);\n }\n return {\n 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(): ArtifactDefinition[] {\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: [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) || file.relative));\n }\n\n private getComponentOutputPath(capsule: Capsule, context: ComputeTargetsContext) {\n const capsulePath = resolve(`${capsule.path}`);\n const compiler: Compiler = context.env.getCompiler();\n const distDir = compiler.getDistDir?.() || 'dist';\n return join(capsulePath, distDir);\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 metadata = previewDef.getMetadata ? await previewDef.getMetadata(component) : undefined;\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 metadata,\n };\n });\n\n const moduleMaps = await Promise.all(moduleMapsPromise);\n\n const contents = generateComponentLink(moduleMaps);\n const targetDir = this.getComponentOutputPath(capsule, context);\n\n return this.preview.writeLinkContents(contents, targetDir, 'preview');\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"names":["_path","data","require","_fsExtra","_lodash","_builder","_bitError","_generateComponentLink","_exceptions","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","PREVIEW_GLOBAL_NAME_SUFFIX","exports","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","dependencyResolver","logger","computeTargets","context","previewDefs","outputPath","getOutputPath","existsSync","mkdirpSync","origComponents","capsuleNetwork","originalSeedersCapsules","map","capsule","component","entriesArr","Promise","all","computeComponentEntry","chunkSize","config","maxChunkSize","chunks","chunk","peers","getPreviewHostDependenciesFromEnv","envDefinition","env","targets","currentChunk","entries","components","componentDirectoryMap","forEach","entry","assign","push","id","toString","componentDir","hostRootDir","envRuntime","envAspectDefinition","aspectPath","hostDependencies","aliasHostDependencies","externalizeHostDependencies","componentPreviewPath","computePaths","componentPath","getPaths","mainFile","graphCapsules","getCapsule","path","componentPreview","getComponentChunkId","splitComponentBundle","undefined","libNames","getComponentChunkGlobalName","filename","getComponentChunkFileName","fsCompatible","ignoreVersion","import","dependOn","library","name","type","componentId","toStringWithoutVersion","idstr","suffix","getAssetAbsolutePath","asset","join","getAssetFilename","split","copyAssetsToCapsules","result","files","findAssetsForComponent","assets","entriesAssetsMap","artifactDirFullPath","getArtifactDirectory","filePath","PreviewOutputFileNotFound","destFilePath","dirname","fs","copyFileSync","componentEntryId","componentPreviewEntryId","componentFiles","componentAuxiliaryFiles","auxiliaryAssets","componentPreviewFiles","componentPreviewAuxiliaryFiles","concat","CAPSULE_ARTIFACTS_DIR","computeComponentMetadata","file","UNKNOWN","basename","warn","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","getDirName","envName","replace","resolve","capsulesRootDir","compiler","getCompiler","getDistPathBySrcPath","relative","getComponentOutputPath","capsulePath","distDir","getDistDir","defs","BitError","moduleMapsPromise","previewDef","moduleMap","getModuleMap","getMetadata","maybeFiles","get","prefix","paths","compiledPaths","moduleMaps","contents","generateComponentLink","targetDir","writeLinkContents"],"sources":["component-strategy.ts"],"sourcesContent":["import { join, resolve, basename, dirname } from 'path';\nimport { existsSync, mkdirpSync } from 'fs-extra';\nimport type { Component } from '@teambit/component';\nimport type { ComponentID } from '@teambit/component-id';\nimport { flatten, isEmpty, chunk } from 'lodash';\nimport type { Compiler } from '@teambit/compiler';\nimport type { AbstractVinyl } from '@teambit/component.sources';\nimport type { Capsule } from '@teambit/isolator';\nimport type { ArtifactDefinition, ComponentResult } from '@teambit/builder';\nimport { CAPSULE_ARTIFACTS_DIR } from '@teambit/builder';\nimport { BitError } from '@teambit/bit-error';\nimport type { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport type { Logger } from '@teambit/logger';\nimport type { BundlerResult, BundlerContext, Asset, BundlerEntryMap, EntriesAssetsMap, Target } from '@teambit/bundler';\nimport type { 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_GLOBAL_NAME_SUFFIX = 'preview';\nexport const PREVIEW_CHUNK_SUFFIX = 'preview-chunk';\nexport const COMPONENT_CHUNK_SUFFIX = 'component-chunk';\nexport const PREVIEW_CHUNK_FILENAME_SUFFIX = 'preview.js';\nexport const COMPONENT_CHUNK_FILENAME_SUFFIX = 'component.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 componentDir: string;\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(\n private preview: PreviewMain,\n private dependencyResolver: DependencyResolverMain,\n private logger: Logger\n ) {}\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.getPreviewHostDependenciesFromEnv(context.envDefinition.env);\n\n const targets = chunks.map((currentChunk) => {\n const entries: BundlerEntryMap = {};\n const components: Component[] = [];\n const componentDirectoryMap = {};\n currentChunk.forEach((entry) => {\n Object.assign(entries, entry.entries);\n components.push(entry.component);\n componentDirectoryMap[entry.component.id.toString()] = entry.componentDir;\n });\n\n return {\n entries,\n components,\n componentDirectoryMap,\n outputPath,\n hostRootDir: context.envRuntime.envAspectDefinition.aspectPath,\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 = 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 componentPreviewPath = await this.computePaths(previewDefs, context, component);\n const [componentPath] = this.getPaths(context, component, [component.mainFile]);\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n const componentDir = capsule?.path || '';\n\n const chunks = {\n componentPreview: this.getComponentChunkId(component.id, 'preview'),\n component: context.splitComponentBundle ? this.getComponentChunkId(component.id, 'component') : undefined,\n };\n\n const libNames = {\n componentPreview: this.getComponentChunkGlobalName(component.id, 'preview'),\n component: context.splitComponentBundle ? this.getComponentChunkGlobalName(component.id, 'component') : undefined,\n };\n\n const entries = {\n [chunks.componentPreview]: {\n filename: this.getComponentChunkFileName(\n component.id.toString({\n fsCompatible: true,\n ignoreVersion: true,\n }),\n 'preview'\n ),\n import: componentPreviewPath,\n dependOn: chunks.component,\n library: { name: libNames.componentPreview, type: 'umd' },\n },\n };\n\n if (chunks.component && libNames.component) {\n entries[chunks.component] = {\n filename: this.getComponentChunkFileName(\n component.id.toString({\n fsCompatible: true,\n ignoreVersion: true,\n }),\n 'component'\n ),\n dependOn: undefined,\n import: componentPath,\n library: { name: libNames.component, type: 'umd' },\n };\n }\n\n return { component, entries, componentDir };\n }\n\n private getComponentChunkId(componentId: ComponentID, type: 'component' | 'preview') {\n const id =\n type === 'component'\n ? `${componentId.toStringWithoutVersion()}-${COMPONENT_CHUNK_SUFFIX}`\n : `${componentId.toStringWithoutVersion()}-${PREVIEW_CHUNK_SUFFIX}`;\n return id;\n }\n\n private getComponentChunkGlobalName(componentId: ComponentID, type: 'component' | 'preview') {\n const id =\n type === 'component'\n ? componentId.toStringWithoutVersion()\n : `${componentId.toStringWithoutVersion()}-${PREVIEW_GLOBAL_NAME_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 = this.getComponentChunkId(component.id, 'component');\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 = this.getComponentChunkId(component.id, 'component');\n\n if (!result?.entriesAssetsMap || !result?.entriesAssetsMap[componentEntryId]) {\n return {};\n }\n const files = (result.entriesAssetsMap[componentEntryId]?.assets || []).map((file) => {\n const UNKNOWN = 'unknown';\n const name = file.name ? basename(file.name) : UNKNOWN;\n if (name === UNKNOWN) {\n this.logger.warn(`computeComponentMetadata: unable to get the name of the asset ${file}`);\n }\n return {\n 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 const UNKNOWN = 'unknown';\n const name = file.name ? basename(file.name) : UNKNOWN;\n if (name === UNKNOWN) {\n this.logger.warn(`computeComponentMetadata: unable to get the name of the auxiliary asset ${file}`);\n }\n return {\n 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(): ArtifactDefinition[] {\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: [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) || file.relative));\n }\n\n private getComponentOutputPath(capsule: Capsule, context: ComputeTargetsContext) {\n const capsulePath = resolve(`${capsule.path}`);\n const compiler: Compiler = context.env.getCompiler();\n const distDir = compiler.getDistDir?.() || 'dist';\n return join(capsulePath, distDir);\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 metadata = previewDef.getMetadata ? await previewDef.getMetadata(component) : undefined;\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 metadata,\n };\n });\n\n const moduleMaps = await Promise.all(moduleMapsPromise);\n\n const contents = generateComponentLink(moduleMaps);\n const targetDir = this.getComponentOutputPath(capsule, context);\n\n return this.preview.writeLinkContents(contents, targetDir, 'preview');\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
@@ -1,10 +1,10 @@
|
|
1
|
-
import { ArtifactDefinition, ComponentResult } from '@teambit/builder';
|
2
|
-
import { BundlerContext, BundlerHtmlConfig, BundlerResult } from '@teambit/bundler';
|
3
|
-
import { DependencyResolverMain } from '@teambit/dependency-resolver';
|
4
|
-
import { PkgMain } from '@teambit/pkg';
|
1
|
+
import type { ArtifactDefinition, ComponentResult } from '@teambit/builder';
|
2
|
+
import type { BundlerContext, BundlerHtmlConfig, BundlerResult } from '@teambit/bundler';
|
3
|
+
import type { DependencyResolverMain } from '@teambit/dependency-resolver';
|
4
|
+
import type { PkgMain } from '@teambit/pkg';
|
5
5
|
import type { BundlingStrategy, ComputeTargetsContext } from '../bundling-strategy';
|
6
|
-
import { PreviewDefinition } from '../preview-definition';
|
7
|
-
import { PreviewMain } from '../preview.main.runtime';
|
6
|
+
import type { PreviewDefinition } from '../preview-definition';
|
7
|
+
import type { PreviewMain } from '../preview.main.runtime';
|
8
8
|
export declare const ENV_STRATEGY_ARTIFACT_NAME = "preview";
|
9
9
|
/**
|
10
10
|
* bundles all components in a given env into the same bundle.
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_path","data","require","_fsExtra","_lodash","_component","_htmlTemplate","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ENV_STRATEGY_ARTIFACT_NAME","exports","EnvBundlingStrategy","constructor","preview","pkg","dependencyResolver","computeTargets","context","previewDefs","outputPath","getOutputPath","existsSync","mkdirpSync","htmlConfig","generateHtmlConfig","dev","peers","getPreviewHostDependenciesFromEnv","envDefinition","env","componentDirectoryMap","components","forEach","component","capsule","capsuleNetwork","graphCapsules","getCapsule","id","toString","path","entries","computePaths","html","hostDependencies","aliasHostDependencies","options","config","title","templateContent","cache","minify","computeResults","results","result","componentsResults","map","errors","err","message","warning","warnings","startTime","endTime","artifacts","getArtifactDef","rootDir","getDirName","name","globPatterns","envName","replace","resolve","capsulesRootDir","getPaths","files","compiler","getCompiler","file","join","getDistPathBySrcPath","relative","defs","previewMain","writePreviewEntry","moduleMapsPromise","previewDef","moduleMap","getModuleMap","paths","ComponentMap","as","maybeFiles","get","compiledPaths","template","renderTemplatePath","link","writeLink","prefix","default","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/component.sources';\nimport { Capsule } from '@teambit/isolator';\nimport { ArtifactDefinition, 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 '../bundler/html-template';\n\nexport const ENV_STRATEGY_ARTIFACT_NAME = 'preview';\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(\n private preview: PreviewMain,\n private pkg: PkgMain,\n private dependencyResolver: DependencyResolverMain\n ) {}\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.getPreviewHostDependenciesFromEnv(context.envDefinition.env);\n const componentDirectoryMap = {};\n context.components.forEach((component) => {\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n if (!capsule) return;\n componentDirectoryMap[component.id.toString()] = capsule.path;\n });\n\n return [\n {\n entries: await this.computePaths(outputPath, previewDefs, context),\n componentDirectoryMap,\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): ArtifactDefinition[] {\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: ENV_STRATEGY_ARTIFACT_NAME,\n globPatterns: [`${rootDir}/public`],\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) || 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.writePreviewEntry(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 { default: template || '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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","ignoreList":[]}
|
1
|
+
{"version":3,"names":["_path","data","require","_fsExtra","_lodash","_component","_htmlTemplate","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ENV_STRATEGY_ARTIFACT_NAME","exports","EnvBundlingStrategy","constructor","preview","pkg","dependencyResolver","computeTargets","context","previewDefs","outputPath","getOutputPath","existsSync","mkdirpSync","htmlConfig","generateHtmlConfig","dev","peers","getPreviewHostDependenciesFromEnv","envDefinition","env","componentDirectoryMap","components","forEach","component","capsule","capsuleNetwork","graphCapsules","getCapsule","id","toString","path","entries","computePaths","html","hostDependencies","aliasHostDependencies","options","config","title","templateContent","cache","minify","computeResults","results","result","componentsResults","map","errors","err","message","warning","warnings","startTime","endTime","artifacts","getArtifactDef","rootDir","getDirName","name","globPatterns","envName","replace","resolve","capsulesRootDir","getPaths","files","compiler","getCompiler","file","join","getDistPathBySrcPath","relative","defs","previewMain","writePreviewEntry","moduleMapsPromise","previewDef","moduleMap","getModuleMap","paths","ComponentMap","as","maybeFiles","get","compiledPaths","template","renderTemplatePath","link","writeLink","prefix","default","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 type { Compiler } from '@teambit/compiler';\nimport type { AbstractVinyl } from '@teambit/component.sources';\nimport type { Capsule } from '@teambit/isolator';\nimport type { ArtifactDefinition, ComponentResult } from '@teambit/builder';\nimport type { BundlerContext, BundlerHtmlConfig, BundlerResult } from '@teambit/bundler';\nimport type { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport type { PkgMain } from '@teambit/pkg';\nimport type { BundlingStrategy, ComputeTargetsContext } from '../bundling-strategy';\nimport type { PreviewDefinition } from '../preview-definition';\nimport type { PreviewMain } from '../preview.main.runtime';\nimport { html } from '../bundler/html-template';\n\nexport const ENV_STRATEGY_ARTIFACT_NAME = 'preview';\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(\n private preview: PreviewMain,\n private pkg: PkgMain,\n private dependencyResolver: DependencyResolverMain\n ) {}\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.getPreviewHostDependenciesFromEnv(context.envDefinition.env);\n const componentDirectoryMap = {};\n context.components.forEach((component) => {\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n if (!capsule) return;\n componentDirectoryMap[component.id.toString()] = capsule.path;\n });\n\n return [\n {\n entries: await this.computePaths(outputPath, previewDefs, context),\n componentDirectoryMap,\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): ArtifactDefinition[] {\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: ENV_STRATEGY_ARTIFACT_NAME,\n globPatterns: [`${rootDir}/public`],\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) || 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.writePreviewEntry(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 { default: template || '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":";;;;;;AAAA,SAAAA,MAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,KAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,SAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,QAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,QAAA;EAAA,MAAAH,IAAA,GAAAC,OAAA;EAAAE,OAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,WAAA;EAAA,MAAAJ,IAAA,GAAAC,OAAA;EAAAG,UAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAWA,SAAAK,cAAA;EAAA,MAAAL,IAAA,GAAAC,OAAA;EAAAI,aAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAgD,SAAAM,gBAAAC,CAAA,EAAAC,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAE,cAAA,CAAAF,CAAA,MAAAD,CAAA,GAAAI,MAAA,CAAAC,cAAA,CAAAL,CAAA,EAAAC,CAAA,IAAAK,KAAA,EAAAJ,CAAA,EAAAK,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAT,CAAA,CAAAC,CAAA,IAAAC,CAAA,EAAAF,CAAA;AAAA,SAAAG,eAAAD,CAAA,QAAAQ,CAAA,GAAAC,YAAA,CAAAT,CAAA,uCAAAQ,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAT,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAF,CAAA,GAAAE,CAAA,CAAAU,MAAA,CAAAC,WAAA,kBAAAb,CAAA,QAAAU,CAAA,GAAAV,CAAA,CAAAc,IAAA,CAAAZ,CAAA,EAAAD,CAAA,uCAAAS,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAAd,CAAA,GAAAe,MAAA,GAAAC,MAAA,EAAAf,CAAA;AAEzC,MAAMgB,0BAA0B,GAAAC,OAAA,CAAAD,0BAAA,GAAG,SAAS;;AAEnD;AACA;AACA;AACO,MAAME,mBAAmB,CAA6B;EAG3DC,WAAWA,CACDC,OAAoB,EACpBC,GAAY,EACZC,kBAA0C,EAClD;IAAA,KAHQF,OAAoB,GAApBA,OAAoB;IAAA,KACpBC,GAAY,GAAZA,GAAY;IAAA,KACZC,kBAA0C,GAA1CA,kBAA0C;IAAAzB,eAAA,eAL7C,KAAK;EAMT;EAEH,MAAM0B,cAAcA,CAACC,OAA8B,EAAEC,WAAgC,EAAE;IACrF,MAAMC,UAAU,GAAG,IAAI,CAACC,aAAa,CAACH,OAAO,CAAC;IAC9C,IAAI,CAAC,IAAAI,qBAAU,EAACF,UAAU,CAAC,EAAE,IAAAG,qBAAU,EAACH,UAAU,CAAC;IACnD,MAAMI,UAAU,GAAG,IAAI,CAACC,kBAAkB,CAAC;MAAEC,GAAG,EAAER,OAAO,CAACQ;IAAI,CAAC,CAAC;IAChE,MAAMC,KAAK,GAAG,MAAM,IAAI,CAACX,kBAAkB,CAACY,iCAAiC,CAACV,OAAO,CAACW,aAAa,CAACC,GAAG,CAAC;IACxG,MAAMC,qBAAqB,GAAG,CAAC,CAAC;IAChCb,OAAO,CAACc,UAAU,CAACC,OAAO,CAAEC,SAAS,IAAK;MACxC,MAAMC,OAAO,GAAGjB,OAAO,CAACkB,cAAc,CAACC,aAAa,CAACC,UAAU,CAACJ,SAAS,CAACK,EAAE,CAAC;MAC7E,IAAI,CAACJ,OAAO,EAAE;MACdJ,qBAAqB,CAACG,SAAS,CAACK,EAAE,CAACC,QAAQ,CAAC,CAAC,CAAC,GAAGL,OAAO,CAACM,IAAI;IAC/D,CAAC,CAAC;IAEF,OAAO,CACL;MACEC,OAAO,EAAE,MAAM,IAAI,CAACC,YAAY,CAACvB,UAAU,EAAED,WAAW,EAAED,OAAO,CAAC;MAClEa,qBAAqB;MACrBa,IAAI,EAAE,CAACpB,UAAU,CAAC;MAClBQ,UAAU,EAAEd,OAAO,CAACc,UAAU;MAC9BZ,UAAU;MACV;MACA;MACAyB,gBAAgB,EAAElB,KAAK;MACvBmB,qBAAqB,EAAE;IACzB,CAAC,CACF;EACH;EAEQrB,kBAAkBA,CAACsB,OAA0B,EAAqB;IACxE,MAAMC,MAAM,GAAG;MACbC,KAAK,EAAE,SAAS;MAChBC,eAAe,EAAE,IAAAN,oBAAI,EAAC,SAAS,CAAC;MAChCO,KAAK,EAAE,KAAK;MACZC,MAAM,EAAEL,OAAO,EAAErB,GAAG,IAAI;IAC1B,CAAC;IACD,OAAOsB,MAAM;EACf;EAEA,MAAMK,cAAcA,CAACnC,OAAuB,EAAEoC,OAAwB,EAAE;IACtE,MAAMC,MAAM,GAAGD,OAAO,CAAC,CAAC,CAAC;IAEzB,MAAME,iBAAoC,GAAGD,MAAM,CAACvB,UAAU,CAACyB,GAAG,CAAEvB,SAAS,IAAK;MAChF,OAAO;QACLA,SAAS;QACTwB,MAAM,EAAEH,MAAM,CAACG,MAAM,CAACD,GAAG,CAAEE,GAAG,IAAM,OAAOA,GAAG,KAAK,QAAQ,GAAGA,GAAG,GAAGA,GAAG,CAACC,OAAQ,CAAC;QACjFC,OAAO,EAAEN,MAAM,CAACO,QAAQ;QACxBC,SAAS,EAAER,MAAM,CAACQ,SAAS;QAC3BC,OAAO,EAAET,MAAM,CAACS;MAClB,CAAC;IACH,CAAC,CAAC;IAEF,MAAMC,SAAS,GAAG,IAAI,CAACC,cAAc,CAAChD,OAAO,CAAC;IAE9C,OAAO;MACLsC,iBAAiB;MACjBS;IACF,CAAC;EACH;EAEQC,cAAcA,CAAChD,OAA8B,EAAwB;IAC3E;IACA,MAAMY,GAAU,GAAG,KAAK;IACxB,MAAMqC,OAAO,GAAG,IAAI,CAACC,UAAU,CAAClD,OAAO,CAAC;IAExC,OAAO,CACL;MACEmD,IAAI,EAAE3D,0BAA0B;MAChC4D,YAAY,EAAE,CAAC,GAAGH,OAAO,SAAS,CAAC;MACnCjD,OAAO,EAAEY;IACX,CAAC,CACF;EACH;EAEAsC,UAAUA,CAAClD,OAA8B,EAAE;IACzC,MAAMqD,OAAO,GAAGrD,OAAO,CAACqB,EAAE,CAACiC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC;IAC7C,OAAO,GAAGD,OAAO,UAAU;EAC7B;EAEQlD,aAAaA,CAACH,OAA8B,EAAE;IACpD,OAAO,IAAAuD,eAAO,EAAC,GAAGvD,OAAO,CAACkB,cAAc,CAACsC,eAAe,IAAI,IAAI,CAACN,UAAU,CAAClD,OAAO,CAAC,EAAE,CAAC;EACzF;EAEQyD,QAAQA,CAACzD,OAA8B,EAAE0D,KAAsB,EAAEzC,OAAgB,EAAE;IACzF,MAAM0C,QAAkB,GAAG3D,OAAO,CAACY,GAAG,CAACgD,WAAW,GAAG,CAAC;IACtD,OAAOF,KAAK,CAACnB,GAAG,CAAEsB,IAAI,IAAK,IAAAC,YAAI,EAAC7C,OAAO,CAACM,IAAI,EAAEoC,QAAQ,EAAEI,oBAAoB,CAACF,IAAI,CAACG,QAAQ,CAAC,IAAIH,IAAI,CAACG,QAAQ,CAAC,CAAC;EAChH;EAEA,MAAcvC,YAAYA,CACxBvB,UAAkB,EAClB+D,IAAyB,EACzBjE,OAA8B,EACX;IACnB,MAAMkE,WAAW,GAAG,MAAM,IAAI,CAACtE,OAAO,CAACuE,iBAAiB,CAACnE,OAAO,CAAC;IACjE,MAAMoE,iBAAiB,GAAGH,IAAI,CAAC1B,GAAG,CAAC,MAAO8B,UAAU,IAAK;MACvD,MAAMC,SAAS,GAAG,MAAMD,UAAU,CAACE,YAAY,CAACvE,OAAO,CAACc,UAAU,CAAC;MAEnE,MAAM0D,KAAK,GAAGC,yBAAY,CAACC,EAAE,CAAC1E,OAAO,CAACc,UAAU,EAAGE,SAAS,IAAK;QAC/D,MAAMC,OAAO,GAAGjB,OAAO,CAACkB,cAAc,CAACC,aAAa,CAACC,UAAU,CAACJ,SAAS,CAACK,EAAE,CAAC;QAC7E,MAAMsD,UAAU,GAAGL,SAAS,CAACM,GAAG,CAAC5D,SAAS,CAAC;QAC3C,IAAI,CAAC2D,UAAU,IAAI,CAAC1D,OAAO,EAAE,OAAO,EAAE;QACtC,MAAM,GAAGyC,KAAK,CAAC,GAAGiB,UAAU;QAC5B,MAAME,aAAa,GAAG,IAAI,CAACpB,QAAQ,CAACzD,OAAO,EAAE0D,KAAK,EAAEzC,OAAO,CAAC;QAC5D,OAAO4D,aAAa;MACtB,CAAC,CAAC;MAEF,MAAMC,QAAQ,GAAGT,UAAU,CAACU,kBAAkB,GAAG,MAAMV,UAAU,CAACU,kBAAkB,CAAC/E,OAAO,CAAC,GAAG,WAAW;MAE3G,MAAMgF,IAAI,GAAG,IAAI,CAACpF,OAAO,CAACqF,SAAS,CACjCZ,UAAU,CAACa,MAAM,EACjBV,KAAK,EACL;QAAEW,OAAO,EAAEL,QAAQ,IAAI;MAAY,CAAC,EACpC5E,UAAU,EACV,KACF,CAAC;MAED,MAAMwD,KAAK,GAAG,IAAA0B,iBAAO,EAACZ,KAAK,CAACa,OAAO,CAAC,CAAC,CAAC9C,GAAG,CAAC,CAAC,GAAGsB,IAAI,CAAC,KAAKA,IAAI,CAAC,CAAC,CAACyB,MAAM,CAAC,CAACN,IAAI,CAAC,CAAC;MAE7E,IAAIF,QAAQ,EAAE,OAAOpB,KAAK,CAAC4B,MAAM,CAAC,CAACR,QAAQ,CAAC,CAAC;MAC7C,OAAOpB,KAAK;IACd,CAAC,CAAC;IAEF,MAAM6B,UAAU,GAAG,MAAMC,OAAO,CAACC,GAAG,CAACrB,iBAAiB,CAAC;IAEvD,OAAO,IAAAgB,iBAAO,EAACG,UAAU,CAACD,MAAM,CAAC,CAACpB,WAAW,CAAC,CAAC,CAAC;EAClD;AACF;AAACzE,OAAA,CAAAC,mBAAA,GAAAA,mBAAA","ignoreList":[]}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
import { Configuration } from 'webpack';
|
1
|
+
import type { Configuration } from 'webpack';
|
2
2
|
export declare function createWebpackConfig(outputDir: string, entryFile: string): Configuration;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_reactWebpack","data","require","_webpack","_webpackMerge","_webpack2","_webpackManifestPlugin","createWebpackConfig","outputDir","entryFile","baseConfig","configBaseFactory","preBundleConfig","createPreBundleConfig","combined","merge","mode","process","env","BIT_DEBUG_PREVIEW_BUNDLE","stats","children","errorDetails","entry","main","resolve","alias","react","fallback","module","path","fallbacks","dgram","dns","fs","stream","http2","net","tls","child_process","output","publicPath","chunkFilename","filename","library","type","externalsType","externals","plugins","WebpackManifestPlugin","fileName","generate","seed","files","entrypoints","manifestFiles","reduce","manifest","file","name","entrypointFiles","filter","endsWith","ProvidePlugin","fallbacksProvidePluginConfig"],"sources":["webpack.config.ts"],"sourcesContent":["import { configBaseFactory } from '@teambit/react.webpack.react-webpack';\n\nimport { Configuration
|
1
|
+
{"version":3,"names":["_reactWebpack","data","require","_webpack","_webpackMerge","_webpack2","_webpackManifestPlugin","createWebpackConfig","outputDir","entryFile","baseConfig","configBaseFactory","preBundleConfig","createPreBundleConfig","combined","merge","mode","process","env","BIT_DEBUG_PREVIEW_BUNDLE","stats","children","errorDetails","entry","main","resolve","alias","react","fallback","module","path","fallbacks","dgram","dns","fs","stream","http2","net","tls","child_process","output","publicPath","chunkFilename","filename","library","type","externalsType","externals","plugins","WebpackManifestPlugin","fileName","generate","seed","files","entrypoints","manifestFiles","reduce","manifest","file","name","entrypointFiles","filter","endsWith","ProvidePlugin","fallbacksProvidePluginConfig"],"sources":["webpack.config.ts"],"sourcesContent":["import { configBaseFactory } from '@teambit/react.webpack.react-webpack';\n\nimport type { Configuration } from 'webpack';\nimport { ProvidePlugin } from 'webpack';\nimport { merge } from 'webpack-merge';\nimport { fallbacksProvidePluginConfig, fallbacks } from '@teambit/webpack';\nimport { WebpackManifestPlugin } from 'webpack-manifest-plugin';\n\nexport function createWebpackConfig(outputDir: string, entryFile: string): Configuration {\n const baseConfig = configBaseFactory(true);\n const preBundleConfig = createPreBundleConfig(outputDir, entryFile);\n\n // @ts-ignore that's an issue because of different types/webpack version\n const combined = merge(baseConfig, preBundleConfig);\n\n // @ts-ignore that's an issue because of different types/webpack version\n return combined;\n}\n\nfunction createPreBundleConfig(outputDir: string, entryFile: string) {\n const mode = process.env.BIT_DEBUG_PREVIEW_BUNDLE ? 'development' : 'production';\n const preBundleConfig: Configuration = {\n stats: {\n children: true,\n errorDetails: true,\n },\n mode,\n entry: {\n main: entryFile,\n },\n resolve: {\n alias: {\n 'react/jsx-runtime': require.resolve('react/jsx-runtime'),\n react: require.resolve('react'),\n 'react-dom': require.resolve('react-dom'),\n },\n fallback: {\n module: false,\n path: fallbacks.path,\n dgram: false,\n dns: false,\n fs: false,\n stream: false,\n http2: false,\n net: false,\n tls: false,\n child_process: false,\n process: fallbacks.process,\n },\n },\n output: {\n path: outputDir,\n publicPath: '/',\n chunkFilename: 'static/js/[name].[contenthash:8].chunk.cjs',\n filename: 'static/js/[name].[contenthash:8].cjs',\n library: {\n type: 'commonjs-static',\n },\n },\n externalsType: 'commonjs',\n externals: ['react', 'react-dom', '@mdx-js/react', '@teambit/mdx.ui.mdx-scope-context'],\n plugins: [\n // Generate an asset manifest file with the following content:\n // - \"files\" key: Mapping of all asset filenames to their corresponding\n // output file so that tools can pick it up without having to parse\n // `index.html`\n // can be used to reconstruct the HTML if necessary\n new WebpackManifestPlugin({\n fileName: 'asset-manifest.json',\n generate: (seed, files, entrypoints) => {\n const manifestFiles = files.reduce((manifest, file) => {\n manifest[file.name] = file.path;\n return manifest;\n }, seed);\n const entrypointFiles = entrypoints.main.filter((fileName) => !fileName.endsWith('.map'));\n\n // @ts-ignore - https://github.com/shellscape/webpack-manifest-plugin/issues/276\n return {\n files: manifestFiles,\n entrypoints: entrypointFiles,\n } as Record<string, string>;\n },\n }),\n\n new ProvidePlugin({ process: fallbacksProvidePluginConfig.process }),\n ],\n };\n\n return preBundleConfig;\n}\n"],"mappings":"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","ignoreList":[]}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { BitError } from '@teambit/bit-error';
|
2
|
-
import { ComponentID } from '@teambit/component';
|
2
|
+
import type { ComponentID } from '@teambit/component';
|
3
3
|
|
4
4
|
export class PreviewOutputFileNotFound extends BitError {
|
5
5
|
constructor(componentId: ComponentID, filePath: string) {
|
package/generate-preview.cmd.tsx
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
import padRight from 'pad-right';
|
2
|
-
import { Command, CommandOptions } from '@teambit/cli';
|
2
|
+
import type { Command, CommandOptions } from '@teambit/cli';
|
3
3
|
import { COMPONENT_PATTERN_HELP } from '@teambit/legacy.constants';
|
4
4
|
import chalk from 'chalk';
|
5
5
|
import type { PreviewMain } from './preview.main.runtime';
|
6
|
-
import { EnvsExecutionResult } from '@teambit/envs';
|
6
|
+
import type { EnvsExecutionResult } from '@teambit/envs';
|
7
7
|
|
8
8
|
type GeneratePreviewArgs = [userPattern: string];
|
9
9
|
type GeneratePreviewFlags = {
|
package/package.json
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "@teambit/preview",
|
3
|
-
"version": "1.0.
|
3
|
+
"version": "1.0.669",
|
4
4
|
"homepage": "https://bit.cloud/teambit/preview/preview",
|
5
5
|
"main": "dist/index.js",
|
6
6
|
"componentId": {
|
7
7
|
"scope": "teambit.preview",
|
8
8
|
"name": "preview",
|
9
|
-
"version": "1.0.
|
9
|
+
"version": "1.0.669"
|
10
10
|
},
|
11
11
|
"dependencies": {
|
12
12
|
"mime": "2.5.2",
|
@@ -26,41 +26,41 @@
|
|
26
26
|
"webpack-manifest-plugin": "5.0.0",
|
27
27
|
"webpack-merge": "5.8.0",
|
28
28
|
"@teambit/ui-foundation.ui.pages.static-error": "0.0.108",
|
29
|
-
"@teambit/preview.ui.component-preview": "1.0.
|
29
|
+
"@teambit/preview.ui.component-preview": "1.0.26",
|
30
30
|
"@teambit/toolbox.path.to-windows-compatible-path": "0.0.500",
|
31
31
|
"@teambit/legacy.constants": "0.0.13",
|
32
32
|
"@teambit/harmony": "0.4.7",
|
33
33
|
"@teambit/toolbox.crypto.sha1": "0.0.7",
|
34
34
|
"@teambit/harmony.modules.harmony-root-generator": "0.0.19",
|
35
|
-
"@teambit/component.sources": "0.0.
|
35
|
+
"@teambit/component.sources": "0.0.110",
|
36
36
|
"@teambit/toolbox.path.path": "0.0.8",
|
37
37
|
"@teambit/preview.modules.preview-modules": "1.0.3",
|
38
38
|
"@teambit/component-id": "1.2.4",
|
39
39
|
"@teambit/bit-error": "0.0.404",
|
40
40
|
"@teambit/harmony.modules.feature-toggle": "0.0.23",
|
41
41
|
"@teambit/preview.cli.dev-server-events-listener": "0.0.1",
|
42
|
-
"@teambit/preview.cli.webpack-events-listener": "0.0.
|
42
|
+
"@teambit/preview.cli.webpack-events-listener": "0.0.178",
|
43
43
|
"@teambit/react.webpack.react-webpack": "1.0.42",
|
44
|
-
"@teambit/express": "0.0.
|
45
|
-
"@teambit/logger": "0.0.
|
46
|
-
"@teambit/builder": "1.0.
|
47
|
-
"@teambit/bundler": "1.0.
|
48
|
-
"@teambit/component": "1.0.
|
49
|
-
"@teambit/aspect-loader": "1.0.
|
50
|
-
"@teambit/cli": "0.0.
|
51
|
-
"@teambit/dependency-resolver": "1.0.
|
52
|
-
"@teambit/envs": "1.0.
|
53
|
-
"@teambit/ui": "1.0.
|
54
|
-
"@teambit/isolator": "1.0.
|
55
|
-
"@teambit/cache": "0.0.
|
56
|
-
"@teambit/graphql": "1.0.
|
57
|
-
"@teambit/pkg": "1.0.
|
58
|
-
"@teambit/pubsub": "1.0.
|
59
|
-
"@teambit/scope": "1.0.
|
60
|
-
"@teambit/watcher": "1.0.
|
61
|
-
"@teambit/workspace": "1.0.
|
62
|
-
"@teambit/compiler": "1.0.
|
63
|
-
"@teambit/webpack": "1.0.
|
44
|
+
"@teambit/express": "0.0.1345",
|
45
|
+
"@teambit/logger": "0.0.1339",
|
46
|
+
"@teambit/builder": "1.0.669",
|
47
|
+
"@teambit/bundler": "1.0.669",
|
48
|
+
"@teambit/component": "1.0.669",
|
49
|
+
"@teambit/aspect-loader": "1.0.669",
|
50
|
+
"@teambit/cli": "0.0.1246",
|
51
|
+
"@teambit/dependency-resolver": "1.0.669",
|
52
|
+
"@teambit/envs": "1.0.669",
|
53
|
+
"@teambit/ui": "1.0.669",
|
54
|
+
"@teambit/isolator": "1.0.669",
|
55
|
+
"@teambit/cache": "0.0.1339",
|
56
|
+
"@teambit/graphql": "1.0.669",
|
57
|
+
"@teambit/pkg": "1.0.669",
|
58
|
+
"@teambit/pubsub": "1.0.669",
|
59
|
+
"@teambit/scope": "1.0.669",
|
60
|
+
"@teambit/watcher": "1.0.669",
|
61
|
+
"@teambit/workspace": "1.0.669",
|
62
|
+
"@teambit/compiler": "1.0.669",
|
63
|
+
"@teambit/webpack": "1.0.669"
|
64
64
|
},
|
65
65
|
"devDependencies": {
|
66
66
|
"@types/mime": "2.0.3",
|
@@ -1,5 +1,7 @@
|
|
1
|
-
import {
|
2
|
-
import {
|
1
|
+
import type { PubsubPreview } from '@teambit/pubsub';
|
2
|
+
import { PubsubAspect } from '@teambit/pubsub';
|
3
|
+
import type { SlotRegistry } from '@teambit/harmony';
|
4
|
+
import { Slot } from '@teambit/harmony';
|
3
5
|
import { ComponentID } from '@teambit/component-id';
|
4
6
|
// Using cross-fetch here instead of @pnpm/node-fetch
|
5
7
|
// which is crucial in this context as preview operates from the frontend where proxy and CA cert handling are not required
|
@@ -9,10 +11,10 @@ import memoize from 'memoizee';
|
|
9
11
|
import { debounce, intersection, isObject } from 'lodash';
|
10
12
|
|
11
13
|
import { PreviewNotFound } from './exceptions';
|
12
|
-
import { PreviewType } from './preview-type';
|
14
|
+
import type { PreviewType } from './preview-type';
|
13
15
|
import { PreviewAspect, PreviewRuntime } from './preview.aspect';
|
14
16
|
import { ClickInsideAnIframeEvent } from './events';
|
15
|
-
import { ModuleFile, PreviewModule } from './types/preview-module';
|
17
|
+
import type { ModuleFile, PreviewModule } from './types/preview-module';
|
16
18
|
import { RenderingContext } from './rendering-context';
|
17
19
|
import { fetchComponentAspects } from './gql/fetch-component-aspects';
|
18
20
|
import { PREVIEW_MODULES } from './preview-modules';
|
package/preview.service.tsx
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
import filenamify from 'filenamify';
|
2
|
-
import { EnvService, ExecutionContext, Env, EnvContext, ServiceTransformationMap } from '@teambit/envs';
|
3
|
-
import { EnvPreviewConfig, PreviewMain } from './preview.main.runtime';
|
2
|
+
import type { EnvService, ExecutionContext, Env, EnvContext, ServiceTransformationMap } from '@teambit/envs';
|
3
|
+
import type { EnvPreviewConfig, PreviewMain } from './preview.main.runtime';
|
4
4
|
import { BitError } from '@teambit/bit-error';
|
5
|
-
import { DependencyResolverMain } from '@teambit/dependency-resolver';
|
6
|
-
import { Logger } from '@teambit/logger';
|
7
|
-
import { Bundler, BundlerContext, BundlerHtmlConfig, Target } from '@teambit/bundler';
|
8
|
-
import { Component, ComponentID } from '@teambit/component';
|
5
|
+
import type { DependencyResolverMain } from '@teambit/dependency-resolver';
|
6
|
+
import type { Logger } from '@teambit/logger';
|
7
|
+
import type { Bundler, BundlerContext, BundlerHtmlConfig, Target } from '@teambit/bundler';
|
8
|
+
import type { Component, ComponentID } from '@teambit/component';
|
9
9
|
import { join, resolve } from 'path';
|
10
10
|
import { outputFileSync, pathExists, readJsonSync } from 'fs-extra';
|
11
|
-
import { ScopeMain } from '@teambit/scope';
|
11
|
+
import type { ScopeMain } from '@teambit/scope';
|
12
12
|
import { html } from './bundler/html-template';
|
13
13
|
|
14
14
|
type PreviewTransformationMap = ServiceTransformationMap & {
|
package/preview.start-plugin.tsx
CHANGED
@@ -1,21 +1,21 @@
|
|
1
1
|
import { flatten } from 'lodash';
|
2
|
+
import type { BundlerMain, ComponentServer } from '@teambit/bundler';
|
2
3
|
import {
|
3
4
|
BundlerAspect,
|
4
|
-
BundlerMain,
|
5
|
-
ComponentServer,
|
6
5
|
ComponentServerStartedEvent,
|
7
6
|
ComponentsServerStartedEvent,
|
8
7
|
NewDevServersCreatedEvent,
|
9
8
|
} from '@teambit/bundler';
|
10
|
-
import { PubsubMain } from '@teambit/pubsub';
|
11
|
-
import { ProxyEntry, StartPlugin, StartPluginOptions, UiMain } from '@teambit/ui';
|
12
|
-
import { Workspace } from '@teambit/workspace';
|
9
|
+
import type { PubsubMain } from '@teambit/pubsub';
|
10
|
+
import type { ProxyEntry, StartPlugin, StartPluginOptions, UiMain } from '@teambit/ui';
|
11
|
+
import type { Workspace } from '@teambit/workspace';
|
13
12
|
import { SubscribeToEvents } from '@teambit/preview.cli.dev-server-events-listener';
|
14
13
|
import { SubscribeToWebpackEvents } from '@teambit/preview.cli.webpack-events-listener';
|
15
14
|
import { CompilationInitiator } from '@teambit/compiler';
|
16
|
-
import { Logger } from '@teambit/logger';
|
17
|
-
import {
|
18
|
-
import {
|
15
|
+
import type { Logger } from '@teambit/logger';
|
16
|
+
import type { WatcherMain } from '@teambit/watcher';
|
17
|
+
import { CheckTypes } from '@teambit/watcher';
|
18
|
+
import type { GraphqlMain } from '@teambit/graphql';
|
19
19
|
import chalk from 'chalk';
|
20
20
|
|
21
21
|
type ServerState = {
|
package/serve-preview.cmd.tsx
CHANGED
@@ -1,17 +1,18 @@
|
|
1
1
|
import { join, resolve, basename, dirname } from 'path';
|
2
2
|
import { existsSync, mkdirpSync } from 'fs-extra';
|
3
|
-
import { Component } from '@teambit/component';
|
4
|
-
import { ComponentID } from '@teambit/component-id';
|
3
|
+
import type { Component } from '@teambit/component';
|
4
|
+
import type { ComponentID } from '@teambit/component-id';
|
5
5
|
import { flatten, isEmpty, chunk } from 'lodash';
|
6
|
-
import { Compiler } from '@teambit/compiler';
|
6
|
+
import type { Compiler } from '@teambit/compiler';
|
7
7
|
import type { AbstractVinyl } from '@teambit/component.sources';
|
8
8
|
import type { Capsule } from '@teambit/isolator';
|
9
|
-
import { ArtifactDefinition,
|
9
|
+
import type { ArtifactDefinition, ComponentResult } from '@teambit/builder';
|
10
|
+
import { CAPSULE_ARTIFACTS_DIR } from '@teambit/builder';
|
10
11
|
import { BitError } from '@teambit/bit-error';
|
11
12
|
import type { DependencyResolverMain } from '@teambit/dependency-resolver';
|
12
|
-
import { Logger } from '@teambit/logger';
|
13
|
+
import type { Logger } from '@teambit/logger';
|
13
14
|
import type { BundlerResult, BundlerContext, Asset, BundlerEntryMap, EntriesAssetsMap, Target } from '@teambit/bundler';
|
14
|
-
import { BundlingStrategy, ComputeTargetsContext } from '../bundling-strategy';
|
15
|
+
import type { BundlingStrategy, ComputeTargetsContext } from '../bundling-strategy';
|
15
16
|
import type { PreviewDefinition } from '../preview-definition';
|
16
17
|
import type { ComponentPreviewMetaData, PreviewMain } from '../preview.main.runtime';
|
17
18
|
import { generateComponentLink } from './generate-component-link';
|
@@ -2,16 +2,16 @@ import { join, resolve } from 'path';
|
|
2
2
|
import { existsSync, mkdirpSync } from 'fs-extra';
|
3
3
|
import { flatten } from 'lodash';
|
4
4
|
import { ComponentMap } from '@teambit/component';
|
5
|
-
import { Compiler } from '@teambit/compiler';
|
6
|
-
import { AbstractVinyl } from '@teambit/component.sources';
|
7
|
-
import { Capsule } from '@teambit/isolator';
|
8
|
-
import { ArtifactDefinition, ComponentResult } from '@teambit/builder';
|
9
|
-
import { BundlerContext, BundlerHtmlConfig, BundlerResult } from '@teambit/bundler';
|
10
|
-
import { DependencyResolverMain } from '@teambit/dependency-resolver';
|
11
|
-
import { PkgMain } from '@teambit/pkg';
|
5
|
+
import type { Compiler } from '@teambit/compiler';
|
6
|
+
import type { AbstractVinyl } from '@teambit/component.sources';
|
7
|
+
import type { Capsule } from '@teambit/isolator';
|
8
|
+
import type { ArtifactDefinition, ComponentResult } from '@teambit/builder';
|
9
|
+
import type { BundlerContext, BundlerHtmlConfig, BundlerResult } from '@teambit/bundler';
|
10
|
+
import type { DependencyResolverMain } from '@teambit/dependency-resolver';
|
11
|
+
import type { PkgMain } from '@teambit/pkg';
|
12
12
|
import type { BundlingStrategy, ComputeTargetsContext } from '../bundling-strategy';
|
13
|
-
import { PreviewDefinition } from '../preview-definition';
|
14
|
-
import { PreviewMain } from '../preview.main.runtime';
|
13
|
+
import type { PreviewDefinition } from '../preview-definition';
|
14
|
+
import type { PreviewMain } from '../preview.main.runtime';
|
15
15
|
import { html } from '../bundler/html-template';
|
16
16
|
|
17
17
|
export const ENV_STRATEGY_ARTIFACT_NAME = 'preview';
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import { configBaseFactory } from '@teambit/react.webpack.react-webpack';
|
2
2
|
|
3
|
-
import { Configuration
|
3
|
+
import type { Configuration } from 'webpack';
|
4
|
+
import { ProvidePlugin } from 'webpack';
|
4
5
|
import { merge } from 'webpack-merge';
|
5
6
|
import { fallbacksProvidePluginConfig, fallbacks } from '@teambit/webpack';
|
6
7
|
import { WebpackManifestPlugin } from 'webpack-manifest-plugin';
|