@teambit/preview 1.0.447 → 1.0.448
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/artifacts/__bit_junit.xml +1 -1
- package/artifacts/preview/teambit_preview_preview-preview.js +1 -1
- package/artifacts/schema.json +3 -3
- package/dist/{preview-1729999303301.js → preview-1730330697064.js} +2 -2
- package/dist/strategies/component-strategy.d.ts +1 -0
- package/dist/strategies/component-strategy.js +7 -1
- package/dist/strategies/component-strategy.js.map +1 -1
- package/dist/strategies/env-strategy.d.ts +1 -0
- package/dist/strategies/env-strategy.js +7 -0
- package/dist/strategies/env-strategy.js.map +1 -1
- package/package.json +23 -23
- package/strategies/component-strategy.ts +7 -1
- package/strategies/env-strategy.ts +7 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
2
|
<testsuites tests="1" failures="0" errors="0" skipped="0">
|
3
|
-
<testsuite name="teambit.preview/preview@1.0.
|
3
|
+
<testsuite name="teambit.preview/preview@1.0.448" tests="1" failures="0" errors="0" skipped="0">
|
4
4
|
<testcase classname="dist/bundler/create-peer-link.spec.js" name="should output snapshot" time="0.005"/>
|
5
5
|
</testsuite>
|
6
6
|
</testsuites>
|
@@ -1 +1 @@
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["teambit.preview/preview-preview"]=t():e["teambit.preview/preview-preview"]=t()}(self,(()=>(()=>{"use strict";var e={64576:(e,t,n)=>{Object.defineProperty(t,"l",{enumerable:!0,get:function(){return o.default}});var o=r(n(65257));function r(e){return e&&e.__esModule?e:{default:e}}r.__bit_component={id:"teambit.preview/aspect-docs/preview@0.0.168",homepage:"https://bit.cloud/teambit/preview/aspect-docs/preview",exported:!0}},65257:(e,t,n)=>{var o={id:"teambit.preview/aspect-docs/preview@0.0.168",homepage:"https://bit.cloud/teambit/preview/aspect-docs/preview",exported:!0};Object.defineProperty(t,"__esModule",{value:!0}),t.default=m,a(n(41594));var r=n(5016),i=["components"];function a(e){return e&&e.__esModule?e:{default:e}}function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)({}).hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},s.apply(null,arguments)}function p(e,t){if(null==e)return{};var n,o,r=l(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o<i.length;o++)n=i[o],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function l(e,t){if(null==e)return{};var n={};for(var o in e)if({}.hasOwnProperty.call(e,o)){if(t.includes(o))continue;n[o]=e[o]}return n}a.__bit_component=o,s.__bit_component=o,p.__bit_component=o,l.__bit_component=o;var d={},c="wrapper";function m(e){var t=e.components,n=p(e,i);return(0,r.mdx)(c,s({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"The Preview aspect handles the bundling and rendering of component compositions and documentation, for the Workspace UI and Scope UI."),(0,r.mdx)("p",null,"Preview is used to display components in development (on ",(0,r.mdx)("inlineCode",{parentName:"p"},"bit start"),") as well as in their released versions (assets for the release version are generated as part of the build process)."),(0,r.mdx)("p",null,"The Preview aspect handles each component according to the configurations set by the environment that is used by that component. That means both the documentation and the component compositions will be bundled and displayed differently for different environments."),(0,r.mdx)("h2",null,"Rational"),(0,r.mdx)("p",null,"In a standard web application, UI components ",(0,r.mdx)("em",{parentName:"p"},"serving the same application")," are bundled together to produce the necessary assets to make them renderable by the browser."),(0,r.mdx)("p",null,"Components in a Bit workspace are not all in the service of the same application. Each component is authored, tagged and exported as an independent component.\nThat means a few things:"),(0,r.mdx)("ol",null,(0,r.mdx)("li",{parentName:"ol"},(0,r.mdx)("p",{parentName:"li"},"Components in a Bit workspace are not consumed ,directly or indirectly, by a single entry file (e.g, the app's ",(0,r.mdx)("inlineCode",{parentName:"p"},"index.js"),"). That makes it impossible for the bundler to follow the files needed to be bundled.")),(0,r.mdx)("li",{parentName:"ol"},(0,r.mdx)("p",{parentName:"li"},"Different components in a single workspace may be implemented using different technologies and bundled using different configurations or even different bundlers."))),(0,r.mdx)("p",null,"Preview solves the above challenges by creating a temporary entry file for each group of components using the same environment.\nIt then serves this file to the Bundler, to be bundled according to the environment and the purpose of bundling. That is, to display components in development or to display the components' release versions (for a \"production-level\" exhibition of the component's documentation and compositions)."),(0,r.mdx)("h2",null,"Usage"),(0,r.mdx)("h3",null,"Extending the Preview aspect"),(0,r.mdx)("p",null,"The preview aspect can be extended to generate other renderable artifacts , either when running Bit's development server or as part of the build pipeline (for a component's tagged version).\nThese artifacts can present additional information that assists in inspecting a component (for example, showing the results of accessibility tests)."))}m.__bit_component=o,m.isMDXComponent=!0},
|
1
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["teambit.preview/preview-preview"]=t():e["teambit.preview/preview-preview"]=t()}(self,(()=>(()=>{"use strict";var e={64576:(e,t,n)=>{Object.defineProperty(t,"l",{enumerable:!0,get:function(){return o.default}});var o=r(n(65257));function r(e){return e&&e.__esModule?e:{default:e}}r.__bit_component={id:"teambit.preview/aspect-docs/preview@0.0.168",homepage:"https://bit.cloud/teambit/preview/aspect-docs/preview",exported:!0}},65257:(e,t,n)=>{var o={id:"teambit.preview/aspect-docs/preview@0.0.168",homepage:"https://bit.cloud/teambit/preview/aspect-docs/preview",exported:!0};Object.defineProperty(t,"__esModule",{value:!0}),t.default=m,a(n(41594));var r=n(5016),i=["components"];function a(e){return e&&e.__esModule?e:{default:e}}function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)({}).hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},s.apply(null,arguments)}function p(e,t){if(null==e)return{};var n,o,r=l(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o<i.length;o++)n=i[o],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function l(e,t){if(null==e)return{};var n={};for(var o in e)if({}.hasOwnProperty.call(e,o)){if(t.includes(o))continue;n[o]=e[o]}return n}a.__bit_component=o,s.__bit_component=o,p.__bit_component=o,l.__bit_component=o;var d={},c="wrapper";function m(e){var t=e.components,n=p(e,i);return(0,r.mdx)(c,s({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"The Preview aspect handles the bundling and rendering of component compositions and documentation, for the Workspace UI and Scope UI."),(0,r.mdx)("p",null,"Preview is used to display components in development (on ",(0,r.mdx)("inlineCode",{parentName:"p"},"bit start"),") as well as in their released versions (assets for the release version are generated as part of the build process)."),(0,r.mdx)("p",null,"The Preview aspect handles each component according to the configurations set by the environment that is used by that component. That means both the documentation and the component compositions will be bundled and displayed differently for different environments."),(0,r.mdx)("h2",null,"Rational"),(0,r.mdx)("p",null,"In a standard web application, UI components ",(0,r.mdx)("em",{parentName:"p"},"serving the same application")," are bundled together to produce the necessary assets to make them renderable by the browser."),(0,r.mdx)("p",null,"Components in a Bit workspace are not all in the service of the same application. Each component is authored, tagged and exported as an independent component.\nThat means a few things:"),(0,r.mdx)("ol",null,(0,r.mdx)("li",{parentName:"ol"},(0,r.mdx)("p",{parentName:"li"},"Components in a Bit workspace are not consumed ,directly or indirectly, by a single entry file (e.g, the app's ",(0,r.mdx)("inlineCode",{parentName:"p"},"index.js"),"). That makes it impossible for the bundler to follow the files needed to be bundled.")),(0,r.mdx)("li",{parentName:"ol"},(0,r.mdx)("p",{parentName:"li"},"Different components in a single workspace may be implemented using different technologies and bundled using different configurations or even different bundlers."))),(0,r.mdx)("p",null,"Preview solves the above challenges by creating a temporary entry file for each group of components using the same environment.\nIt then serves this file to the Bundler, to be bundled according to the environment and the purpose of bundling. That is, to display components in development or to display the components' release versions (for a \"production-level\" exhibition of the component's documentation and compositions)."),(0,r.mdx)("h2",null,"Usage"),(0,r.mdx)("h3",null,"Extending the Preview aspect"),(0,r.mdx)("p",null,"The preview aspect can be extended to generate other renderable artifacts , either when running Bit's development server or as part of the build pipeline (for a component's tagged version).\nThese artifacts can present additional information that assists in inspecting a component (for example, showing the results of accessibility tests)."))}m.__bit_component=o,m.isMDXComponent=!0},79931:(e,t,n)=>{var o={id:"teambit.preview/preview@1.0.448",homepage:"https://bit.cloud/teambit/preview/preview",exported:!0};function r(){const e=i(n(41594));return r=function(){return e},e}function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Logo=void 0,r.__bit_component=o,i.__bit_component=o;const a=()=>r().default.createElement("div",{style:{height:"100%",display:"flex",justifyContent:"center"}},r().default.createElement("img",{style:{width:70},src:"https://static.bit.dev/extensions-icons/preview.svg"}));a.__bit_component=o,t.Logo=a},5016:e=>{e.exports=MdxJsReact},41594:e=>{e.exports=React}},t={};function n(o){var r=t[o];if(void 0!==r)return r.exports;var i=t[o]={exports:{}};return e[o](i,i.exports,n),i.exports}n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var o={};n.r(o),n.d(o,{compositions:()=>f,compositions_metadata:()=>b,overview:()=>v});var r={};n.r(r),n.d(r,{default:()=>u});var i=n(79931),a=(n(41594),n(5016));const s=TeambitMdxUiMdxScopeContext;var p=n(64576),l=["components"];function d(){return d=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)({}).hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},d.apply(null,arguments)}var c={},m="wrapper";function u(e){var t=e.components,n=function(e,t){if(null==e)return{};var n,o,r=function(e,t){if(null==e)return{};var n={};for(var o in e)if({}.hasOwnProperty.call(e,o)){if(t.includes(o))continue;n[o]=e[o]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o<i.length;o++)n=i[o],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}(e,l);return(0,a.mdx)(m,d({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.mdx)(s.MDXScopeProvider,{components:{Preview:p.l},mdxType:"MDXScopeProvider"},(0,a.mdx)(p.l,{mdxType:"Preview"})))}u.isMDXComponent=!0;const f=[i],v=[r],b={compositions:[{displayName:"Logo",identifier:"Logo"}]};return o})()));
|
package/artifacts/schema.json
CHANGED
@@ -249,7 +249,7 @@
|
|
249
249
|
"_legacy": {
|
250
250
|
"scope": "teambit.preview",
|
251
251
|
"name": "preview",
|
252
|
-
"version": "1.0.
|
252
|
+
"version": "1.0.448"
|
253
253
|
},
|
254
254
|
"_scope": "teambit.preview"
|
255
255
|
}
|
@@ -6279,7 +6279,7 @@
|
|
6279
6279
|
"_legacy": {
|
6280
6280
|
"scope": "teambit.preview",
|
6281
6281
|
"name": "preview",
|
6282
|
-
"version": "1.0.
|
6282
|
+
"version": "1.0.448"
|
6283
6283
|
},
|
6284
6284
|
"_scope": "teambit.preview"
|
6285
6285
|
}
|
@@ -12981,7 +12981,7 @@
|
|
12981
12981
|
"componentId": {
|
12982
12982
|
"scope": "teambit.preview",
|
12983
12983
|
"name": "preview",
|
12984
|
-
"version": "1.0.
|
12984
|
+
"version": "1.0.448"
|
12985
12985
|
},
|
12986
12986
|
"taggedModuleExports": []
|
12987
12987
|
}
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.preview_preview@1.0.
|
2
|
-
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.preview_preview@1.0.
|
1
|
+
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.preview_preview@1.0.448/dist/preview.composition.js';
|
2
|
+
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.preview_preview@1.0.448/dist/preview.docs.mdx';
|
3
3
|
|
4
4
|
export const compositions = [compositions_0];
|
5
5
|
export const overview = [overview_0];
|
@@ -95,13 +95,16 @@ class ComponentBundlingStrategy {
|
|
95
95
|
const targets = chunks.map(currentChunk => {
|
96
96
|
const entries = {};
|
97
97
|
const components = [];
|
98
|
+
const componentDirectoryMap = {};
|
98
99
|
currentChunk.forEach(entry => {
|
99
100
|
Object.assign(entries, entry.entries);
|
100
101
|
components.push(entry.component);
|
102
|
+
componentDirectoryMap[entry.component.id.toString()] = entry.componentDir;
|
101
103
|
});
|
102
104
|
return {
|
103
105
|
entries,
|
104
106
|
components,
|
107
|
+
componentDirectoryMap,
|
105
108
|
outputPath,
|
106
109
|
hostRootDir: context.envRuntime.envAspectDefinition.aspectPath,
|
107
110
|
hostDependencies: peers,
|
@@ -142,6 +145,8 @@ class ComponentBundlingStrategy {
|
|
142
145
|
async computeComponentEntry(previewDefs, component, context) {
|
143
146
|
const componentPreviewPath = await this.computePaths(previewDefs, context, component);
|
144
147
|
const [componentPath] = this.getPaths(context, component, [component.mainFile]);
|
148
|
+
const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);
|
149
|
+
const componentDir = capsule?.path || '';
|
145
150
|
const chunks = {
|
146
151
|
componentPreview: this.getComponentChunkId(component.id, 'preview'),
|
147
152
|
component: context.splitComponentBundle ? component.id.toStringWithoutVersion() : undefined
|
@@ -176,7 +181,8 @@ class ComponentBundlingStrategy {
|
|
176
181
|
}
|
177
182
|
return {
|
178
183
|
component,
|
179
|
-
entries
|
184
|
+
entries,
|
185
|
+
componentDir
|
180
186
|
};
|
181
187
|
}
|
182
188
|
getComponentChunkId(componentId, type) {
|
@@ -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_CHUNK_SUFFIX","exports","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","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","forEach","entry","assign","push","hostRootDir","envRuntime","envAspectDefinition","aspectPath","hostDependencies","aliasHostDependencies","externalizeHostDependencies","componentPreviewPath","computePaths","componentPath","getPaths","mainFile","componentPreview","getComponentChunkId","id","splitComponentBundle","toStringWithoutVersion","undefined","filename","getComponentChunkFileName","toString","fsCompatible","ignoreVersion","import","dependOn","library","name","type","componentId","idstr","suffix","getAssetAbsolutePath","asset","path","join","getAssetFilename","split","copyAssetsToCapsules","result","graphCapsules","getCapsule","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","rootDir","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 { 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 { 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_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(\n private preview: PreviewMain,\n private pkg: PkgMain,\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 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 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\n const chunks = {\n componentPreview: this.getComponentChunkId(component.id, 'preview'),\n component: context.splitComponentBundle ? component.id.toStringWithoutVersion() : 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: chunks.componentPreview, type: 'umd' },\n },\n };\n\n if (chunks.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: chunks.component, 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 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() {\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, 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_CHUNK_SUFFIX","exports","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","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","toStringWithoutVersion","undefined","filename","getComponentChunkFileName","fsCompatible","ignoreVersion","import","dependOn","library","name","type","componentId","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","rootDir","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 { 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 { 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_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 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 pkg: PkgMain,\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 ? component.id.toStringWithoutVersion() : 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: chunks.componentPreview, type: 'umd' },\n },\n };\n\n if (chunks.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: chunks.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()\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 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() {\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, 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":[]}
|
@@ -17,6 +17,7 @@ export declare class EnvBundlingStrategy implements BundlingStrategy {
|
|
17
17
|
constructor(preview: PreviewMain, pkg: PkgMain, dependencyResolver: DependencyResolverMain);
|
18
18
|
computeTargets(context: ComputeTargetsContext, previewDefs: PreviewDefinition[]): Promise<{
|
19
19
|
entries: string[];
|
20
|
+
componentDirectoryMap: {};
|
20
21
|
html: BundlerHtmlConfig[];
|
21
22
|
components: import("@teambit/component").Component[];
|
22
23
|
outputPath: string;
|
@@ -61,8 +61,15 @@ class EnvBundlingStrategy {
|
|
61
61
|
dev: context.dev
|
62
62
|
});
|
63
63
|
const peers = await this.dependencyResolver.getPreviewHostDependenciesFromEnv(context.envDefinition.env);
|
64
|
+
const componentDirectoryMap = {};
|
65
|
+
context.components.forEach(component => {
|
66
|
+
const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);
|
67
|
+
if (!capsule) return;
|
68
|
+
componentDirectoryMap[component.id.toString()] = capsule.path;
|
69
|
+
});
|
64
70
|
return [{
|
65
71
|
entries: await this.computePaths(outputPath, previewDefs, context),
|
72
|
+
componentDirectoryMap,
|
66
73
|
html: [htmlConfig],
|
67
74
|
components: context.components,
|
68
75
|
outputPath,
|
@@ -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","entries","computePaths","html","components","hostDependencies","aliasHostDependencies","options","config","title","templateContent","cache","minify","computeResults","results","result","componentsResults","map","component","errors","err","message","warning","warnings","startTime","endTime","artifacts","getArtifactDef","rootDir","getDirName","name","globPatterns","envName","id","replace","resolve","capsuleNetwork","capsulesRootDir","getPaths","files","capsule","compiler","getCompiler","file","join","path","getDistPathBySrcPath","relative","defs","previewMain","writePreviewRuntime","moduleMapsPromise","previewDef","moduleMap","getModuleMap","paths","ComponentMap","as","graphCapsules","getCapsule","maybeFiles","get","compiledPaths","template","renderTemplatePath","link","writeLink","prefix","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 { 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\n return [\n {\n entries: await this.computePaths(outputPath, previewDefs, context),\n html: [htmlConfig],\n components: context.components,\n outputPath,\n /* It's a path to the root of the host component. */\n // hostRootDir, handle this\n hostDependencies: peers,\n aliasHostDependencies: true,\n },\n ];\n }\n\n private generateHtmlConfig(options: { dev?: boolean }): BundlerHtmlConfig {\n const config = {\n title: 'Preview',\n templateContent: html('Preview'),\n cache: false,\n minify: options?.dev ?? true,\n };\n return config;\n }\n\n async computeResults(context: BundlerContext, results: BundlerResult[]) {\n const result = results[0];\n\n const componentsResults: ComponentResult[] = result.components.map((component) => {\n return {\n component,\n errors: result.errors.map((err) => (typeof err === 'string' ? err : err.message)),\n warning: result.warnings,\n startTime: result.startTime,\n endTime: result.endTime,\n };\n });\n\n const artifacts = this.getArtifactDef(context);\n\n return {\n componentsResults,\n artifacts,\n };\n }\n\n private getArtifactDef(context: ComputeTargetsContext) {\n // eslint-disable-next-line @typescript-eslint/prefer-as-const\n const env: 'env' = 'env';\n const rootDir = this.getDirName(context);\n\n return [\n {\n name: ENV_STRATEGY_ARTIFACT_NAME,\n globPatterns: ['public/**'],\n rootDir,\n context: env,\n },\n ];\n }\n\n getDirName(context: ComputeTargetsContext) {\n const envName = context.id.replace('/', '__');\n return `${envName}-preview`;\n }\n\n private getOutputPath(context: ComputeTargetsContext) {\n return resolve(`${context.capsuleNetwork.capsulesRootDir}/${this.getDirName(context)}`);\n }\n\n private getPaths(context: ComputeTargetsContext, files: AbstractVinyl[], capsule: Capsule) {\n const compiler: Compiler = context.env.getCompiler();\n return files.map((file) => join(capsule.path, compiler.getDistPathBySrcPath(file.relative)));\n }\n\n private async computePaths(\n outputPath: string,\n defs: PreviewDefinition[],\n context: ComputeTargetsContext\n ): Promise<string[]> {\n const previewMain = await this.preview.writePreviewRuntime(context);\n const moduleMapsPromise = defs.map(async (previewDef) => {\n const moduleMap = await previewDef.getModuleMap(context.components);\n\n const paths = ComponentMap.as(context.components, (component) => {\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n const maybeFiles = moduleMap.get(component);\n if (!maybeFiles || !capsule) return [];\n const [, files] = maybeFiles;\n const compiledPaths = this.getPaths(context, files, capsule);\n return compiledPaths;\n });\n\n const template = previewDef.renderTemplatePath ? await previewDef.renderTemplatePath(context) : 'undefined';\n\n const link = this.preview.writeLink(\n previewDef.prefix,\n paths,\n { 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","writePreviewRuntime","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 { 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) {\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: ['public/**'],\n rootDir,\n context: env,\n },\n ];\n }\n\n getDirName(context: ComputeTargetsContext) {\n const envName = context.id.replace('/', '__');\n return `${envName}-preview`;\n }\n\n private getOutputPath(context: ComputeTargetsContext) {\n return resolve(`${context.capsuleNetwork.capsulesRootDir}/${this.getDirName(context)}`);\n }\n\n private getPaths(context: ComputeTargetsContext, files: AbstractVinyl[], capsule: Capsule) {\n const compiler: Compiler = context.env.getCompiler();\n return files.map((file) => join(capsule.path, compiler.getDistPathBySrcPath(file.relative)));\n }\n\n private async computePaths(\n outputPath: string,\n defs: PreviewDefinition[],\n context: ComputeTargetsContext\n ): Promise<string[]> {\n const previewMain = await this.preview.writePreviewRuntime(context);\n const moduleMapsPromise = defs.map(async (previewDef) => {\n const moduleMap = await previewDef.getModuleMap(context.components);\n\n const paths = ComponentMap.as(context.components, (component) => {\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n const maybeFiles = moduleMap.get(component);\n if (!maybeFiles || !capsule) return [];\n const [, files] = maybeFiles;\n const compiledPaths = this.getPaths(context, files, capsule);\n return compiledPaths;\n });\n\n const template = previewDef.renderTemplatePath ? await previewDef.renderTemplatePath(context) : 'undefined';\n\n const link = this.preview.writeLink(\n previewDef.prefix,\n paths,\n { 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":[]}
|
package/package.json
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "@teambit/preview",
|
3
|
-
"version": "1.0.
|
3
|
+
"version": "1.0.448",
|
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.448"
|
10
10
|
},
|
11
11
|
"dependencies": {
|
12
12
|
"mime": "2.5.2",
|
@@ -28,35 +28,35 @@
|
|
28
28
|
"@teambit/component-id": "1.2.2",
|
29
29
|
"@teambit/bit-error": "0.0.404",
|
30
30
|
"@teambit/react.webpack.react-webpack": "1.0.37",
|
31
|
-
"@teambit/express": "0.0.
|
32
|
-
"@teambit/logger": "0.0.
|
31
|
+
"@teambit/express": "0.0.1124",
|
32
|
+
"@teambit/logger": "0.0.1118",
|
33
33
|
"@teambit/ui-foundation.ui.pages.static-error": "0.0.105",
|
34
|
-
"@teambit/builder": "1.0.
|
35
|
-
"@teambit/bundler": "1.0.
|
36
|
-
"@teambit/component": "1.0.
|
34
|
+
"@teambit/builder": "1.0.448",
|
35
|
+
"@teambit/bundler": "1.0.448",
|
36
|
+
"@teambit/component": "1.0.448",
|
37
37
|
"@teambit/preview.ui.component-preview": "1.0.16",
|
38
|
-
"@teambit/aspect-loader": "1.0.
|
39
|
-
"@teambit/cli": "0.0.
|
40
|
-
"@teambit/dependency-resolver": "1.0.
|
41
|
-
"@teambit/envs": "1.0.
|
38
|
+
"@teambit/aspect-loader": "1.0.448",
|
39
|
+
"@teambit/cli": "0.0.1025",
|
40
|
+
"@teambit/dependency-resolver": "1.0.448",
|
41
|
+
"@teambit/envs": "1.0.448",
|
42
42
|
"@teambit/toolbox.path.to-windows-compatible-path": "0.0.496",
|
43
43
|
"@teambit/toolbox.crypto.sha1": "0.0.2",
|
44
|
-
"@teambit/ui": "1.0.
|
45
|
-
"@teambit/isolator": "1.0.
|
44
|
+
"@teambit/ui": "1.0.448",
|
45
|
+
"@teambit/isolator": "1.0.448",
|
46
46
|
"@teambit/harmony.modules.harmony-root-generator": "0.0.7",
|
47
|
-
"@teambit/component.sources": "0.0.
|
47
|
+
"@teambit/component.sources": "0.0.41",
|
48
48
|
"@teambit/toolbox.path.path": "0.0.4",
|
49
|
-
"@teambit/cache": "0.0.
|
50
|
-
"@teambit/graphql": "1.0.
|
49
|
+
"@teambit/cache": "0.0.1118",
|
50
|
+
"@teambit/graphql": "1.0.448",
|
51
51
|
"@teambit/harmony.modules.feature-toggle": "0.0.6",
|
52
|
-
"@teambit/pkg": "1.0.
|
53
|
-
"@teambit/pubsub": "1.0.
|
54
|
-
"@teambit/scope": "1.0.
|
55
|
-
"@teambit/watcher": "1.0.
|
56
|
-
"@teambit/workspace": "1.0.
|
57
|
-
"@teambit/compiler": "1.0.
|
52
|
+
"@teambit/pkg": "1.0.448",
|
53
|
+
"@teambit/pubsub": "1.0.448",
|
54
|
+
"@teambit/scope": "1.0.448",
|
55
|
+
"@teambit/watcher": "1.0.448",
|
56
|
+
"@teambit/workspace": "1.0.448",
|
57
|
+
"@teambit/compiler": "1.0.448",
|
58
58
|
"@teambit/preview.cli.webpack-events-listener": "0.0.175",
|
59
|
-
"@teambit/webpack": "1.0.
|
59
|
+
"@teambit/webpack": "1.0.448"
|
60
60
|
},
|
61
61
|
"devDependencies": {
|
62
62
|
"@types/mime": "2.0.3",
|
@@ -29,6 +29,7 @@ export const COMPONENT_STRATEGY_ARTIFACT_NAME = 'preview-component';
|
|
29
29
|
type ComponentEntry = {
|
30
30
|
component: Component;
|
31
31
|
entries: object;
|
32
|
+
componentDir: string;
|
32
33
|
};
|
33
34
|
/**
|
34
35
|
* bundles all components in a given env into the same bundle.
|
@@ -72,14 +73,17 @@ export class ComponentBundlingStrategy implements BundlingStrategy {
|
|
72
73
|
const targets = chunks.map((currentChunk) => {
|
73
74
|
const entries: BundlerEntryMap = {};
|
74
75
|
const components: Component[] = [];
|
76
|
+
const componentDirectoryMap = {};
|
75
77
|
currentChunk.forEach((entry) => {
|
76
78
|
Object.assign(entries, entry.entries);
|
77
79
|
components.push(entry.component);
|
80
|
+
componentDirectoryMap[entry.component.id.toString()] = entry.componentDir;
|
78
81
|
});
|
79
82
|
|
80
83
|
return {
|
81
84
|
entries,
|
82
85
|
components,
|
86
|
+
componentDirectoryMap,
|
83
87
|
outputPath,
|
84
88
|
hostRootDir: context.envRuntime.envAspectDefinition.aspectPath,
|
85
89
|
hostDependencies: peers,
|
@@ -126,6 +130,8 @@ export class ComponentBundlingStrategy implements BundlingStrategy {
|
|
126
130
|
): Promise<ComponentEntry> {
|
127
131
|
const componentPreviewPath = await this.computePaths(previewDefs, context, component);
|
128
132
|
const [componentPath] = this.getPaths(context, component, [component.mainFile]);
|
133
|
+
const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);
|
134
|
+
const componentDir = capsule?.path || '';
|
129
135
|
|
130
136
|
const chunks = {
|
131
137
|
componentPreview: this.getComponentChunkId(component.id, 'preview'),
|
@@ -162,7 +168,7 @@ export class ComponentBundlingStrategy implements BundlingStrategy {
|
|
162
168
|
};
|
163
169
|
}
|
164
170
|
|
165
|
-
return { component, entries };
|
171
|
+
return { component, entries, componentDir };
|
166
172
|
}
|
167
173
|
|
168
174
|
private getComponentChunkId(componentId: ComponentID, type: 'component' | 'preview') {
|
@@ -33,10 +33,17 @@ export class EnvBundlingStrategy implements BundlingStrategy {
|
|
33
33
|
if (!existsSync(outputPath)) mkdirpSync(outputPath);
|
34
34
|
const htmlConfig = this.generateHtmlConfig({ dev: context.dev });
|
35
35
|
const peers = await this.dependencyResolver.getPreviewHostDependenciesFromEnv(context.envDefinition.env);
|
36
|
+
const componentDirectoryMap = {};
|
37
|
+
context.components.forEach((component) => {
|
38
|
+
const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);
|
39
|
+
if (!capsule) return;
|
40
|
+
componentDirectoryMap[component.id.toString()] = capsule.path;
|
41
|
+
});
|
36
42
|
|
37
43
|
return [
|
38
44
|
{
|
39
45
|
entries: await this.computePaths(outputPath, previewDefs, context),
|
46
|
+
componentDirectoryMap,
|
40
47
|
html: [htmlConfig],
|
41
48
|
components: context.components,
|
42
49
|
outputPath,
|