@teambit/preview 1.0.107 → 1.0.109
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 +6 -0
- package/artifacts/preview/teambit_preview_preview-preview.js +1 -0
- package/dist/artifact-file-middleware.d.ts +2 -2
- package/dist/artifact-file-middleware.js +2 -2
- package/dist/artifact-file-middleware.js.map +1 -1
- package/dist/bundler/chunks.d.ts +1 -1
- package/dist/bundler/html-plugin.js +1 -1
- package/dist/bundler/html-plugin.js.map +1 -1
- package/dist/bundling-strategy.d.ts +2 -2
- package/dist/env-preview-template.task.d.ts +1 -1
- package/dist/env-preview-template.task.js +1 -1
- package/dist/env-preview-template.task.js.map +1 -1
- package/dist/env-template.route.d.ts +1 -1
- package/dist/execution-ref.d.ts +1 -1
- package/dist/generate-link.d.ts +1 -1
- package/dist/gql/fetch-component-aspects.d.ts +1 -1
- package/dist/{preview-1703590665075.js → preview-1703698405864.js} +2 -2
- package/dist/preview-artifact.d.ts +2 -2
- package/dist/preview-env.d.ts +1 -1
- package/dist/preview-modules.d.ts +1 -1
- package/dist/preview.composition.d.ts +2 -2
- package/dist/preview.main.runtime.d.ts +14 -14
- package/dist/preview.main.runtime.js +17 -24
- package/dist/preview.main.runtime.js.map +1 -1
- package/dist/preview.preview.runtime.d.ts +5 -5
- package/dist/preview.preview.runtime.js +5 -8
- package/dist/preview.preview.runtime.js.map +1 -1
- package/dist/preview.service.d.ts +1 -1
- package/dist/preview.service.js +1 -1
- package/dist/preview.service.js.map +1 -1
- package/dist/preview.start-plugin.d.ts +2 -2
- package/dist/rendering-context.d.ts +3 -3
- package/dist/rendering-context.js +1 -1
- package/dist/rendering-context.js.map +1 -1
- package/dist/size-event.d.ts +1 -1
- package/dist/strategies/component-strategy.d.ts +1 -1
- package/dist/strategies/component-strategy.js +12 -15
- package/dist/strategies/component-strategy.js.map +1 -1
- package/dist/strategies/env-strategy.js +1 -1
- package/dist/strategies/env-strategy.js.map +1 -1
- package/dist/strategies/generate-component-link.d.ts +1 -1
- package/dist/types/preview-module.d.ts +3 -3
- package/package.json +31 -38
- package/tsconfig.json +16 -21
- package/types/asset.d.ts +15 -3
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<testsuites>
|
|
3
|
+
<testsuite name="teambit.preview/preview@1.0.109" timestamp="2023-12-27T17:56:28.158Z" tests="1" failures="0" errors="0" skipped="0">
|
|
4
|
+
<testcase classname="create-peer-link.spec.js" name="should output snapshot" time="0.145"/>
|
|
5
|
+
</testsuite>
|
|
6
|
+
</testsuites>
|
|
@@ -0,0 +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={47289:(e,t,n)=>{var o={id:"teambit.preview/preview@1.0.109",homepage:"https://bit.cloud/teambit/preview/preview",exported:!0};function r(){const e=i(n(87363));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},77634:(e,t,n)=>{Object.defineProperty(t,"M",{enumerable:!0,get:function(){return o.default}});var o=r(n(26795));function r(e){return e&&e.__esModule?e:{default:e}}r.__bit_component={id:"teambit.preview/aspect-docs/preview@0.0.165",homepage:"https://bit.cloud/teambit/preview/aspect-docs/preview",exported:!0}},26795:(e,t,n)=>{var o={id:"teambit.preview/aspect-docs/preview@0.0.165",homepage:"https://bit.cloud/teambit/preview/aspect-docs/preview",exported:!0};Object.defineProperty(t,"__esModule",{value:!0}),t.default=m,a(n(87363));var r=n(40040),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)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},s.apply(this,arguments)}function p(e,t){if(null==e)return{};var n,o,r=d(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o<i.length;o++)n=i[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function d(e,t){if(null==e)return{};var n,o,r={},i=Object.keys(e);for(o=0;o<i.length;o++)n=i[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}a.__bit_component=o,s.__bit_component=o,p.__bit_component=o,d.__bit_component=o;var l={},c="wrapper";function m(e){var t=e.components,n=p(e,i);return(0,r.mdx)(c,s({},l,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},40040:e=>{e.exports=MdxJsReact},87363: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={};return(()=>{n.r(o),n.d(o,{compositions:()=>m,compositions_metadata:()=>f,overview:()=>u});var e={};n.r(e),n.d(e,{default:()=>c});var t=n(47289),r=(n(87363),n(40040));const i=TeambitMdxUiMdxScopeContext;var a=n(77634),s=["components"];function p(){return p=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},p.apply(this,arguments)}var d={},l="wrapper";function c(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,o,r={},i=Object.keys(e);for(o=0;o<i.length;o++)n=i[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o<i.length;o++)n=i[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}(e,s);return(0,r.mdx)(l,p({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.mdx)(i.MDXScopeProvider,{components:{Preview:a.M},mdxType:"MDXScopeProvider"},(0,r.mdx)(a.M,{mdxType:"Preview"})))}c.isMDXComponent=!0;const m=[t],u=[e],f={compositions:[{displayName:"Logo",identifier:"Logo"}]}})(),o})()));
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="express" />
|
|
2
2
|
import type { Request, Response } from '@teambit/express';
|
|
3
3
|
import type { Logger } from '@teambit/logger';
|
|
4
|
-
export
|
|
4
|
+
export type PreviewUrlParams = {
|
|
5
5
|
/**
|
|
6
6
|
* preview name like overview or composition
|
|
7
7
|
*/
|
|
@@ -9,5 +9,5 @@ export declare type PreviewUrlParams = {
|
|
|
9
9
|
/** `/preview/:filePath(*)` */
|
|
10
10
|
filePath?: string;
|
|
11
11
|
};
|
|
12
|
-
export
|
|
12
|
+
export type GetCacheControlFunc = (filePath: string, contents: string, mimeType?: string | null) => string | undefined;
|
|
13
13
|
export declare function getArtifactFileMiddleware(logger: Logger, getCacheControlFunc?: GetCacheControlFunc): (req: Request<PreviewUrlParams>, res: Response) => Promise<import("express").Response<any, Record<string, any>>>;
|
|
@@ -53,7 +53,7 @@ function getArtifactFileMiddleware(logger, getCacheControlFunc) {
|
|
|
53
53
|
function getEnvTemplateFile(artifact, previewName, filePath) {
|
|
54
54
|
const prevName = previewName || 'overview';
|
|
55
55
|
const finalFilePath = filePath || `${prevName}.html`;
|
|
56
|
-
const matchedFile = artifact
|
|
56
|
+
const matchedFile = artifact?.getFileEndsWith(finalFilePath);
|
|
57
57
|
return matchedFile;
|
|
58
58
|
}
|
|
59
59
|
function getPreviewFile(artifact, previewName, filePath) {
|
|
@@ -62,7 +62,7 @@ function getPreviewFile(artifact, previewName, filePath) {
|
|
|
62
62
|
const parts = [previewName, filePath].filter(x => x);
|
|
63
63
|
finalFilePath = parts.join('/');
|
|
64
64
|
}
|
|
65
|
-
const matchedFile = artifact
|
|
65
|
+
const matchedFile = artifact?.getFileEndsWith(finalFilePath);
|
|
66
66
|
return matchedFile;
|
|
67
67
|
}
|
|
68
68
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_mime","data","_interopRequireDefault","require","_uiFoundationUiPages","obj","__esModule","default","getArtifactFileMiddleware","logger","getCacheControlFunc","req","res","artifact","isLegacyPath","file","getEnvTemplateFile","params","previewName","filePath","getPreviewFile","status","send","noPreview","contents","str","cwd","path","contentType","mime","getType","set","cacheControl","e","error","serverError","prevName","finalFilePath","matchedFile","getFileEndsWith","parts","filter","x","join"],"sources":["artifact-file-middleware.ts"],"sourcesContent":["import mime from 'mime';\nimport type { Request, Response } from '@teambit/express';\nimport { noPreview, serverError } from '@teambit/ui-foundation.ui.pages.static-error';\nimport type { Logger } from '@teambit/logger';\nimport type { PreviewArtifact } from './preview-artifact';\n\nexport type PreviewUrlParams = {\n /**\n * preview name like overview or composition\n */\n previewName?: string;\n /** `/preview/:filePath(*)` */\n filePath?: string;\n};\n\nexport type GetCacheControlFunc = (filePath: string, contents: string, mimeType?: string | null) => string | undefined;\n\nexport function getArtifactFileMiddleware(logger: Logger, getCacheControlFunc?: GetCacheControlFunc) {\n return async (req: Request<PreviewUrlParams>, res: Response) => {\n try {\n // @ts-ignore\n const artifact: PreviewArtifact = req.artifact;\n // @ts-ignore\n const isLegacyPath = req.isLegacyPath;\n let file;\n if (!isLegacyPath) {\n file = getEnvTemplateFile(artifact, req.params.previewName, req.params.filePath);\n } else {\n file = getPreviewFile(artifact, req.params.previewName, req.params.filePath);\n }\n if (!file) return res.status(404).send(noPreview());\n\n const contents = file.contents;\n const str = `${file.cwd}/${file.path}`;\n const contentType = mime.getType(str);\n if (contentType) res.set('Content-Type', contentType);\n if (getCacheControlFunc) {\n const cacheControl = getCacheControlFunc(str, contents, contentType);\n if (cacheControl) {\n res.set('Cache-control', cacheControl);\n }\n }\n return res.send(contents);\n } catch (e: any) {\n logger.error('failed getting preview', e);\n return res.status(500).send(serverError());\n }\n };\n}\n\nfunction getEnvTemplateFile(artifact: PreviewArtifact, previewName?: string, filePath?: string) {\n const prevName = previewName || 'overview';\n const finalFilePath = filePath || `${prevName}.html`;\n const matchedFile = artifact?.getFileEndsWith(finalFilePath);\n return matchedFile;\n}\n\nfunction getPreviewFile(artifact: PreviewArtifact, previewName?: string, filePath?: string) {\n let finalFilePath = 'index.html';\n if (previewName || filePath) {\n const parts = [previewName, filePath].filter((x) => x);\n finalFilePath = parts.join('/');\n }\n const matchedFile = artifact?.getFileEndsWith(finalFilePath);\n return matchedFile;\n}\n"],"mappings":";;;;;;AAAA,SAAAA,MAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,KAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAG,qBAAA;EAAA,MAAAH,IAAA,GAAAE,OAAA;EAAAC,oBAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAsF,SAAAC,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAe/E,SAASG,yBAAyBA,CAACC,MAAc,EAAEC,mBAAyC,EAAE;EACnG,OAAO,OAAOC,GAA8B,EAAEC,GAAa,KAAK;IAC9D,IAAI;MACF;MACA,MAAMC,QAAyB,GAAGF,GAAG,CAACE,QAAQ;MAC9C;MACA,MAAMC,YAAY,GAAGH,GAAG,CAACG,YAAY;MACrC,IAAIC,IAAI;MACR,IAAI,CAACD,YAAY,EAAE;QACjBC,IAAI,GAAGC,kBAAkB,CAACH,QAAQ,EAAEF,GAAG,CAACM,MAAM,CAACC,WAAW,EAAEP,GAAG,CAACM,MAAM,CAACE,QAAQ,CAAC;MAClF,CAAC,MAAM;QACLJ,IAAI,GAAGK,cAAc,CAACP,QAAQ,EAAEF,GAAG,CAACM,MAAM,CAACC,WAAW,EAAEP,GAAG,CAACM,MAAM,CAACE,QAAQ,CAAC;MAC9E;MACA,IAAI,CAACJ,IAAI,EAAE,OAAOH,GAAG,CAACS,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,IAAAC,gCAAS,EAAC,CAAC,CAAC;MAEnD,MAAMC,QAAQ,GAAGT,IAAI,CAACS,QAAQ;MAC9B,MAAMC,GAAG,GAAI,GAAEV,IAAI,CAACW,GAAI,IAAGX,IAAI,CAACY,IAAK,EAAC;MACtC,MAAMC,WAAW,GAAGC,eAAI,CAACC,OAAO,CAACL,GAAG,CAAC;MACrC,IAAIG,WAAW,EAAEhB,GAAG,CAACmB,GAAG,CAAC,cAAc,EAAEH,WAAW,CAAC;MACrD,IAAIlB,mBAAmB,EAAE;QACvB,MAAMsB,YAAY,GAAGtB,mBAAmB,CAACe,GAAG,EAAED,QAAQ,EAAEI,WAAW,CAAC;QACpE,IAAII,YAAY,EAAE;UAChBpB,GAAG,CAACmB,GAAG,CAAC,eAAe,EAAEC,YAAY,CAAC;QACxC;MACF;MACA,OAAOpB,GAAG,CAACU,IAAI,CAACE,QAAQ,CAAC;IAC3B,CAAC,CAAC,OAAOS,CAAM,EAAE;MACfxB,MAAM,CAACyB,KAAK,CAAC,wBAAwB,EAAED,CAAC,CAAC;MACzC,OAAOrB,GAAG,CAACS,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,IAAAa,kCAAW,EAAC,CAAC,CAAC;IAC5C;EACF,CAAC;AACH;AAEA,SAASnB,kBAAkBA,CAACH,QAAyB,EAAEK,WAAoB,EAAEC,QAAiB,EAAE;EAC9F,MAAMiB,QAAQ,GAAGlB,WAAW,IAAI,UAAU;EAC1C,MAAMmB,aAAa,GAAGlB,QAAQ,IAAK,GAAEiB,QAAS,OAAM;EACpD,MAAME,WAAW,GAAGzB,QAAQ,
|
|
1
|
+
{"version":3,"names":["_mime","data","_interopRequireDefault","require","_uiFoundationUiPages","obj","__esModule","default","getArtifactFileMiddleware","logger","getCacheControlFunc","req","res","artifact","isLegacyPath","file","getEnvTemplateFile","params","previewName","filePath","getPreviewFile","status","send","noPreview","contents","str","cwd","path","contentType","mime","getType","set","cacheControl","e","error","serverError","prevName","finalFilePath","matchedFile","getFileEndsWith","parts","filter","x","join"],"sources":["artifact-file-middleware.ts"],"sourcesContent":["import mime from 'mime';\nimport type { Request, Response } from '@teambit/express';\nimport { noPreview, serverError } from '@teambit/ui-foundation.ui.pages.static-error';\nimport type { Logger } from '@teambit/logger';\nimport type { PreviewArtifact } from './preview-artifact';\n\nexport type PreviewUrlParams = {\n /**\n * preview name like overview or composition\n */\n previewName?: string;\n /** `/preview/:filePath(*)` */\n filePath?: string;\n};\n\nexport type GetCacheControlFunc = (filePath: string, contents: string, mimeType?: string | null) => string | undefined;\n\nexport function getArtifactFileMiddleware(logger: Logger, getCacheControlFunc?: GetCacheControlFunc) {\n return async (req: Request<PreviewUrlParams>, res: Response) => {\n try {\n // @ts-ignore\n const artifact: PreviewArtifact = req.artifact;\n // @ts-ignore\n const isLegacyPath = req.isLegacyPath;\n let file;\n if (!isLegacyPath) {\n file = getEnvTemplateFile(artifact, req.params.previewName, req.params.filePath);\n } else {\n file = getPreviewFile(artifact, req.params.previewName, req.params.filePath);\n }\n if (!file) return res.status(404).send(noPreview());\n\n const contents = file.contents;\n const str = `${file.cwd}/${file.path}`;\n const contentType = mime.getType(str);\n if (contentType) res.set('Content-Type', contentType);\n if (getCacheControlFunc) {\n const cacheControl = getCacheControlFunc(str, contents, contentType);\n if (cacheControl) {\n res.set('Cache-control', cacheControl);\n }\n }\n return res.send(contents);\n } catch (e: any) {\n logger.error('failed getting preview', e);\n return res.status(500).send(serverError());\n }\n };\n}\n\nfunction getEnvTemplateFile(artifact: PreviewArtifact, previewName?: string, filePath?: string) {\n const prevName = previewName || 'overview';\n const finalFilePath = filePath || `${prevName}.html`;\n const matchedFile = artifact?.getFileEndsWith(finalFilePath);\n return matchedFile;\n}\n\nfunction getPreviewFile(artifact: PreviewArtifact, previewName?: string, filePath?: string) {\n let finalFilePath = 'index.html';\n if (previewName || filePath) {\n const parts = [previewName, filePath].filter((x) => x);\n finalFilePath = parts.join('/');\n }\n const matchedFile = artifact?.getFileEndsWith(finalFilePath);\n return matchedFile;\n}\n"],"mappings":"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"}
|
package/dist/bundler/chunks.d.ts
CHANGED
|
@@ -31,7 +31,7 @@ function generateHtmlConfig(previewDef, options) {
|
|
|
31
31
|
const config = {
|
|
32
32
|
title: 'Preview',
|
|
33
33
|
templateContent: (0, _htmlTemplate().html)('Preview'),
|
|
34
|
-
minify:
|
|
34
|
+
minify: options?.dev ?? true,
|
|
35
35
|
chunks,
|
|
36
36
|
filename: `${previewDef.prefix}.html`
|
|
37
37
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_lodash","data","_interopRequireDefault","require","_htmlTemplate","_chunks","obj","__esModule","default","generateHtmlConfig","previewDef","options","chunks","compact","includePeers","CHUNK_NAMES","peers","previewRoot","include","prefix","config","title","templateContent","html","minify","dev","filename"],"sources":["html-plugin.ts"],"sourcesContent":["import compact from 'lodash.compact';\nimport type { BundlerHtmlConfig } from '@teambit/bundler';\nimport { PreviewDefinition } from '../preview-definition';\nimport { html } from './html-template';\n\nimport { CHUNK_NAMES } from './chunks';\n\nexport function generateHtmlConfig(previewDef: PreviewDefinition, options: { dev?: boolean }) {\n const chunks = compact([\n previewDef.includePeers && CHUNK_NAMES.peers,\n CHUNK_NAMES.previewRoot,\n ...(previewDef.include || []),\n previewDef.prefix,\n ]);\n\n const config: BundlerHtmlConfig = {\n title: 'Preview',\n templateContent: html('Preview'),\n minify: options?.dev ?? true,\n chunks,\n filename: `${previewDef.prefix}.html`,\n };\n return config;\n}\n"],"mappings":";;;;;;AAAA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAG,cAAA;EAAA,MAAAH,IAAA,GAAAE,OAAA;EAAAC,aAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAI,QAAA;EAAA,MAAAJ,IAAA,GAAAE,OAAA;EAAAE,OAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAuC,SAAAC,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEhC,SAASG,kBAAkBA,CAACC,UAA6B,EAAEC,OAA0B,EAAE;EAC5F,MAAMC,MAAM,GAAG,IAAAC,iBAAO,EAAC,CACrBH,UAAU,CAACI,YAAY,IAAIC,qBAAW,CAACC,KAAK,EAC5CD,qBAAW,CAACE,WAAW,EACvB,IAAIP,UAAU,CAACQ,OAAO,IAAI,EAAE,CAAC,EAC7BR,UAAU,CAACS,MAAM,CAClB,CAAC;EAEF,MAAMC,MAAyB,GAAG;IAChCC,KAAK,EAAE,SAAS;IAChBC,eAAe,EAAE,IAAAC,oBAAI,EAAC,SAAS,CAAC;IAChCC,MAAM,
|
|
1
|
+
{"version":3,"names":["_lodash","data","_interopRequireDefault","require","_htmlTemplate","_chunks","obj","__esModule","default","generateHtmlConfig","previewDef","options","chunks","compact","includePeers","CHUNK_NAMES","peers","previewRoot","include","prefix","config","title","templateContent","html","minify","dev","filename"],"sources":["html-plugin.ts"],"sourcesContent":["import compact from 'lodash.compact';\nimport type { BundlerHtmlConfig } from '@teambit/bundler';\nimport { PreviewDefinition } from '../preview-definition';\nimport { html } from './html-template';\n\nimport { CHUNK_NAMES } from './chunks';\n\nexport function generateHtmlConfig(previewDef: PreviewDefinition, options: { dev?: boolean }) {\n const chunks = compact([\n previewDef.includePeers && CHUNK_NAMES.peers,\n CHUNK_NAMES.previewRoot,\n ...(previewDef.include || []),\n previewDef.prefix,\n ]);\n\n const config: BundlerHtmlConfig = {\n title: 'Preview',\n templateContent: html('Preview'),\n minify: options?.dev ?? true,\n chunks,\n filename: `${previewDef.prefix}.html`,\n };\n return config;\n}\n"],"mappings":";;;;;;AAAA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAG,cAAA;EAAA,MAAAH,IAAA,GAAAE,OAAA;EAAAC,aAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAI,QAAA;EAAA,MAAAJ,IAAA,GAAAE,OAAA;EAAAE,OAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAuC,SAAAC,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEhC,SAASG,kBAAkBA,CAACC,UAA6B,EAAEC,OAA0B,EAAE;EAC5F,MAAMC,MAAM,GAAG,IAAAC,iBAAO,EAAC,CACrBH,UAAU,CAACI,YAAY,IAAIC,qBAAW,CAACC,KAAK,EAC5CD,qBAAW,CAACE,WAAW,EACvB,IAAIP,UAAU,CAACQ,OAAO,IAAI,EAAE,CAAC,EAC7BR,UAAU,CAACS,MAAM,CAClB,CAAC;EAEF,MAAMC,MAAyB,GAAG;IAChCC,KAAK,EAAE,SAAS;IAChBC,eAAe,EAAE,IAAAC,oBAAI,EAAC,SAAS,CAAC;IAChCC,MAAM,EAAEb,OAAO,EAAEc,GAAG,IAAI,IAAI;IAC5Bb,MAAM;IACNc,QAAQ,EAAG,GAAEhB,UAAU,CAACS,MAAO;EACjC,CAAC;EACD,OAAOC,MAAM;AACf"}
|
|
@@ -2,10 +2,10 @@ import { BuildContext, BuiltTaskResult } from '@teambit/builder';
|
|
|
2
2
|
import { Target, BundlerResult, BundlerContext } from '@teambit/bundler';
|
|
3
3
|
import { PreviewDefinition } from './preview-definition';
|
|
4
4
|
import { PreviewTask } from './preview.task';
|
|
5
|
-
|
|
5
|
+
type ComputeTargetsExtraContextKeys = {
|
|
6
6
|
splitComponentBundle?: boolean;
|
|
7
7
|
};
|
|
8
|
-
export
|
|
8
|
+
export type ComputeTargetsContext = BuildContext & ComputeTargetsExtraContextKeys;
|
|
9
9
|
export interface BundlingStrategy {
|
|
10
10
|
/**
|
|
11
11
|
* name of the bundling strategy.
|
|
@@ -5,7 +5,7 @@ import type { EnvsMain } from '@teambit/envs';
|
|
|
5
5
|
import { Logger } from '@teambit/logger';
|
|
6
6
|
import { DependencyResolverMain } from '@teambit/dependency-resolver';
|
|
7
7
|
import type { PreviewMain } from './preview.main.runtime';
|
|
8
|
-
export
|
|
8
|
+
export type ModuleExpose = {
|
|
9
9
|
name: string;
|
|
10
10
|
path: string;
|
|
11
11
|
include?: string[];
|
|
@@ -197,7 +197,7 @@ class EnvPreviewTemplateTask {
|
|
|
197
197
|
filterByRuntime: false
|
|
198
198
|
});
|
|
199
199
|
const resolvedEnv = resolvedEnvAspects[0];
|
|
200
|
-
const hostRootDir = resolvedEnv
|
|
200
|
+
const hostRootDir = resolvedEnv?.aspectPath;
|
|
201
201
|
if (!hostRootDir) {
|
|
202
202
|
this.logger.warn(`env preview template task, hostRootDir is not defined, for env ${envComponent.id.toString()}`);
|
|
203
203
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_builder","data","require","_cli","_pMapSeries","_interopRequireDefault","_component","_path","_lodash","_fsExtra","_chunks","_htmlPlugin","_createPeersLink","_excluded","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_objectWithoutProperties","source","excluded","target","_objectWithoutPropertiesLoose","key","i","sourceSymbolKeys","indexOf","prototype","propertyIsEnumerable","call","sourceKeys","value","_toPropertyKey","configurable","writable","_toPrimitive","String","Symbol","toPrimitive","TypeError","Number","GENERATE_ENV_TEMPLATE_TASK_NAME","exports","EnvPreviewTemplateTask","constructor","preview","envs","aspectLoader","dependencyResolver","logger","execute","context","previewDefs","getDefs","htmlConfig","map","previewModule","generateHtmlConfig","dev","originalSeedersIds","capsuleNetwork","originalSeedersCapsules","c","component","id","toString","grouped","mapSeries","components","includes","undefined","envDef","getEnvFromComponent","env","bundlingStrategy","getBundlingStrategy","name","getEnvTargetFromComponent","shouldUseDefaultBundler","envToGetBundler","getEnvsEnvDefinition","groupEnvId","targets","isEmpty","componentsResults","runBundlerForGroups","groups","bundlerContext","assign","entry","development","metaData","initiator","envId","isEnvTemplate","bundlerResults","entries","targetsGroup","bundler","getTemplateBundler","bundlerResult","run","results","computeResults","flatten","isCoreEnv","envComponent","envPreviewConfig","getEnvPreviewConfig","peers","getPreviewHostDependenciesFromEnv","capsule","graphCapsules","getCapsule","Error","previewRoot","writePreviewRuntime","generateEntries","splitComponentBundle","workDir","path","outputPath","computeOutputPath","existsSync","mkdirpSync","resolvedEnvAspects","resolveAspects","MainRuntime","requestedOnly","filterByRuntime","resolvedEnv","hostRootDir","aspectPath","warn","html","chunking","splitChunks","hostDependencies","aliasHostDependencies","previewModules","getPreviewModules","previewEntries","_ref","rest","linkFile","writeLink","ComponentMap","create","peerLink","writePeerLink","generateTemplateEntries","previewRootPath","allResults","result","errors","err","message","warning","warnings","startTime","endTime","artifacts","getArtifactDef","modules","compact","Promise","all","def","renderTemplatePathByEnv","prefix","include","join","getArtifactDirectory","CAPSULE_ARTIFACTS_DIR","globPatterns","rootDir"],"sources":["env-preview-template.task.ts"],"sourcesContent":["import {\n BuildContext,\n BuiltTaskResult,\n BuildTask,\n TaskLocation,\n ComponentResult,\n CAPSULE_ARTIFACTS_DIR,\n} from '@teambit/builder';\nimport { MainRuntime } from '@teambit/cli';\nimport mapSeries from 'p-map-series';\nimport { Component, ComponentMap } from '@teambit/component';\nimport { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { Bundler, BundlerContext, BundlerHtmlConfig, BundlerResult, Target } from '@teambit/bundler';\nimport type { EnvDefinition, Environment, EnvsMain } from '@teambit/envs';\nimport { join } from 'path';\nimport { compact, flatten, isEmpty } from 'lodash';\nimport { Logger } from '@teambit/logger';\nimport { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { existsSync, mkdirpSync } from 'fs-extra';\nimport type { PreviewMain } from './preview.main.runtime';\nimport { generateTemplateEntries } from './bundler/chunks';\nimport { generateHtmlConfig } from './bundler/html-plugin';\nimport { writePeerLink } from './bundler/create-peers-link';\n\nexport type ModuleExpose = {\n name: string;\n path: string;\n include?: string[];\n};\n\ntype TargetsGroup = {\n env: Environment;\n envToGetBundler: Environment;\n targets: Target[];\n};\ntype TargetsGroupMap = {\n [envId: string]: TargetsGroup;\n};\n\nexport const GENERATE_ENV_TEMPLATE_TASK_NAME = 'GenerateEnvTemplate';\n\nexport class EnvPreviewTemplateTask implements BuildTask {\n aspectId = 'teambit.preview/preview';\n name = GENERATE_ENV_TEMPLATE_TASK_NAME;\n location: TaskLocation = 'end';\n // readonly dependencies = [CompilerAspect.id];\n\n constructor(\n private preview: PreviewMain,\n private envs: EnvsMain,\n private aspectLoader: AspectLoaderMain,\n private dependencyResolver: DependencyResolverMain,\n private logger: Logger\n ) {}\n\n async execute(context: BuildContext): Promise<BuiltTaskResult> {\n const previewDefs = this.preview.getDefs();\n const htmlConfig = previewDefs.map((previewModule) => generateHtmlConfig(previewModule, { dev: context.dev }));\n const originalSeedersIds = context.capsuleNetwork.originalSeedersCapsules.map((c) => c.component.id.toString());\n const grouped: TargetsGroupMap = {};\n // avoid running them with `Promise.all` because getEnv methods do import/isolate which can't be in parallel.\n await mapSeries(context.components, async (component) => {\n // Do not run over other components in the graph. it make the process much longer with no need\n if (originalSeedersIds && originalSeedersIds.length && !originalSeedersIds.includes(component.id.toString())) {\n return undefined;\n }\n const envDef = this.envs.getEnvFromComponent(component);\n if (!envDef) return undefined;\n const env = envDef.env;\n const bundlingStrategy = this.preview.getBundlingStrategy(envDef.env);\n if (bundlingStrategy.name === 'env') {\n return undefined;\n }\n const target = await this.getEnvTargetFromComponent(context, component, envDef, htmlConfig);\n if (!target) return undefined;\n const shouldUseDefaultBundler = this.shouldUseDefaultBundler(envDef);\n let envToGetBundler = this.envs.getEnvsEnvDefinition().env;\n let groupEnvId = 'default';\n if (!shouldUseDefaultBundler) {\n envToGetBundler = env;\n groupEnvId = envDef.id;\n }\n if (!grouped[groupEnvId]) {\n grouped[groupEnvId] = {\n env,\n envToGetBundler,\n targets: [target],\n };\n } else {\n grouped[groupEnvId].targets.push(target);\n }\n return undefined;\n });\n if (isEmpty(grouped)) {\n return { componentsResults: [] };\n }\n\n return this.runBundlerForGroups(context, grouped);\n }\n\n private async runBundlerForGroups(context: BuildContext, groups: TargetsGroupMap): Promise<BuiltTaskResult> {\n const bundlerContext: BundlerContext = Object.assign(context, {\n targets: [],\n entry: [],\n development: context.dev,\n metaData: {\n initiator: `${GENERATE_ENV_TEMPLATE_TASK_NAME} task`,\n envId: context.id,\n isEnvTemplate: true,\n },\n });\n\n const bundlerResults = await mapSeries(Object.entries(groups), async ([, targetsGroup]) => {\n bundlerContext.targets = targetsGroup.targets;\n const bundler: Bundler = await targetsGroup.envToGetBundler.getTemplateBundler(bundlerContext);\n const bundlerResult = await bundler.run();\n return bundlerResult;\n });\n\n const results = await this.computeResults(bundlerContext, flatten(bundlerResults));\n return results;\n }\n\n private shouldUseDefaultBundler(envDef: EnvDefinition): boolean {\n if (this.aspectLoader.isCoreEnv(envDef.id) && envDef.id !== 'teambit.react/react-native') return true;\n const env = envDef.env;\n if (env.getTemplateBundler && typeof env.getTemplateBundler === 'function') return false;\n return true;\n }\n\n private async getEnvTargetFromComponent(\n context: BuildContext,\n envComponent: Component,\n envDef: EnvDefinition,\n htmlConfig: BundlerHtmlConfig[]\n ): Promise<Target | undefined> {\n const envPreviewConfig = this.preview.getEnvPreviewConfig(envDef.env);\n\n const peers = await this.dependencyResolver.getPreviewHostDependenciesFromEnv(envDef.env);\n // const module = await this.getPreviewModule(envComponent);\n // const entries = Object.keys(module).map((key) => module.exposes[key]);\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(envComponent.id);\n if (!capsule) throw new Error('no capsule found');\n // Passing here the env itself to make sure it's preview runtime will be part of the preview root file\n // that's needed to make sure the providers register there are running correctly\n const previewRoot = await this.preview.writePreviewRuntime(context, [envComponent.id.toString()]);\n const entries = await this.generateEntries({\n envDef,\n splitComponentBundle: envPreviewConfig.splitComponentBundle ?? false,\n workDir: capsule.path,\n peers,\n previewRoot,\n });\n\n const outputPath = this.computeOutputPath(context, envComponent);\n if (!existsSync(outputPath)) mkdirpSync(outputPath);\n const resolvedEnvAspects = await this.preview.resolveAspects(MainRuntime.name, [envComponent.id], undefined, {\n requestedOnly: true,\n // required to support envs that are plguins (.bit-env files)\n filterByRuntime: false,\n });\n const resolvedEnv = resolvedEnvAspects[0];\n const hostRootDir = resolvedEnv?.aspectPath;\n\n if (!hostRootDir) {\n this.logger.warn(`env preview template task, hostRootDir is not defined, for env ${envComponent.id.toString()}`);\n }\n\n return {\n peers,\n html: htmlConfig,\n entries,\n chunking: { splitChunks: true },\n components: [envComponent],\n outputPath,\n /* It's a path to the root of the host component. */\n hostRootDir,\n hostDependencies: peers,\n aliasHostDependencies: true,\n };\n }\n\n private async generateEntries({\n previewRoot,\n workDir,\n peers,\n envDef,\n splitComponentBundle,\n }: {\n previewRoot: string;\n workDir: string;\n peers: string[];\n envDef: EnvDefinition;\n splitComponentBundle: boolean;\n }) {\n const previewModules = await this.getPreviewModules(envDef);\n const previewEntries = previewModules.map(({ name, path, ...rest }) => {\n const linkFile = this.preview.writeLink(\n name,\n ComponentMap.create([]),\n { default: path },\n workDir,\n splitComponentBundle\n );\n\n return { name, path, ...rest, entry: linkFile };\n });\n const peerLink = await writePeerLink(peers, workDir);\n\n const entries = generateTemplateEntries({\n peers: peerLink,\n previewRootPath: previewRoot,\n previewModules: previewEntries,\n });\n return entries;\n }\n\n async computeResults(context: BundlerContext, results: BundlerResult[]) {\n const allResults = results.map((result) => {\n const componentsResults: ComponentResult[] = result.components.map((component) => {\n return {\n component,\n errors: result.errors.map((err) => (typeof err === 'string' ? err : err.message)),\n warning: result.warnings,\n startTime: result.startTime,\n endTime: result.endTime,\n };\n });\n return componentsResults;\n });\n\n const componentsResults = flatten(allResults);\n\n const artifacts = getArtifactDef();\n\n return {\n componentsResults,\n artifacts,\n };\n }\n\n private async getPreviewModules(envDef: EnvDefinition): Promise<ModuleExpose[]> {\n const previewDefs = this.preview.getDefs();\n\n const modules = compact(\n await Promise.all(\n previewDefs.map(async (def) => {\n if (!def.renderTemplatePathByEnv) return undefined;\n return {\n name: def.prefix,\n path: (await def.renderTemplatePathByEnv(envDef.env)) || '',\n include: def.include,\n };\n })\n )\n );\n\n return modules;\n }\n\n private computeOutputPath(context: BuildContext, component: Component) {\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n if (!capsule) throw new Error('no capsule found');\n return join(capsule.path, getArtifactDirectory());\n }\n}\n\nexport function getArtifactDirectory() {\n return join(CAPSULE_ARTIFACTS_DIR, 'env-template');\n}\n\nexport function getArtifactDef() {\n return [\n {\n name: 'env-template',\n globPatterns: ['**'],\n rootDir: getArtifactDirectory(),\n },\n ];\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_builder","data","require","_cli","_pMapSeries","_interopRequireDefault","_component","_path","_lodash","_fsExtra","_chunks","_htmlPlugin","_createPeersLink","_excluded","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_objectWithoutProperties","source","excluded","target","_objectWithoutPropertiesLoose","key","i","sourceSymbolKeys","indexOf","prototype","propertyIsEnumerable","call","sourceKeys","value","_toPropertyKey","configurable","writable","_toPrimitive","String","Symbol","toPrimitive","TypeError","Number","GENERATE_ENV_TEMPLATE_TASK_NAME","exports","EnvPreviewTemplateTask","constructor","preview","envs","aspectLoader","dependencyResolver","logger","execute","context","previewDefs","getDefs","htmlConfig","map","previewModule","generateHtmlConfig","dev","originalSeedersIds","capsuleNetwork","originalSeedersCapsules","c","component","id","toString","grouped","mapSeries","components","includes","undefined","envDef","getEnvFromComponent","env","bundlingStrategy","getBundlingStrategy","name","getEnvTargetFromComponent","shouldUseDefaultBundler","envToGetBundler","getEnvsEnvDefinition","groupEnvId","targets","isEmpty","componentsResults","runBundlerForGroups","groups","bundlerContext","assign","entry","development","metaData","initiator","envId","isEnvTemplate","bundlerResults","entries","targetsGroup","bundler","getTemplateBundler","bundlerResult","run","results","computeResults","flatten","isCoreEnv","envComponent","envPreviewConfig","getEnvPreviewConfig","peers","getPreviewHostDependenciesFromEnv","capsule","graphCapsules","getCapsule","Error","previewRoot","writePreviewRuntime","generateEntries","splitComponentBundle","workDir","path","outputPath","computeOutputPath","existsSync","mkdirpSync","resolvedEnvAspects","resolveAspects","MainRuntime","requestedOnly","filterByRuntime","resolvedEnv","hostRootDir","aspectPath","warn","html","chunking","splitChunks","hostDependencies","aliasHostDependencies","previewModules","getPreviewModules","previewEntries","_ref","rest","linkFile","writeLink","ComponentMap","create","peerLink","writePeerLink","generateTemplateEntries","previewRootPath","allResults","result","errors","err","message","warning","warnings","startTime","endTime","artifacts","getArtifactDef","modules","compact","Promise","all","def","renderTemplatePathByEnv","prefix","include","join","getArtifactDirectory","CAPSULE_ARTIFACTS_DIR","globPatterns","rootDir"],"sources":["env-preview-template.task.ts"],"sourcesContent":["import {\n BuildContext,\n BuiltTaskResult,\n BuildTask,\n TaskLocation,\n ComponentResult,\n CAPSULE_ARTIFACTS_DIR,\n} from '@teambit/builder';\nimport { MainRuntime } from '@teambit/cli';\nimport mapSeries from 'p-map-series';\nimport { Component, ComponentMap } from '@teambit/component';\nimport { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { Bundler, BundlerContext, BundlerHtmlConfig, BundlerResult, Target } from '@teambit/bundler';\nimport type { EnvDefinition, Environment, EnvsMain } from '@teambit/envs';\nimport { join } from 'path';\nimport { compact, flatten, isEmpty } from 'lodash';\nimport { Logger } from '@teambit/logger';\nimport { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { existsSync, mkdirpSync } from 'fs-extra';\nimport type { PreviewMain } from './preview.main.runtime';\nimport { generateTemplateEntries } from './bundler/chunks';\nimport { generateHtmlConfig } from './bundler/html-plugin';\nimport { writePeerLink } from './bundler/create-peers-link';\n\nexport type ModuleExpose = {\n name: string;\n path: string;\n include?: string[];\n};\n\ntype TargetsGroup = {\n env: Environment;\n envToGetBundler: Environment;\n targets: Target[];\n};\ntype TargetsGroupMap = {\n [envId: string]: TargetsGroup;\n};\n\nexport const GENERATE_ENV_TEMPLATE_TASK_NAME = 'GenerateEnvTemplate';\n\nexport class EnvPreviewTemplateTask implements BuildTask {\n aspectId = 'teambit.preview/preview';\n name = GENERATE_ENV_TEMPLATE_TASK_NAME;\n location: TaskLocation = 'end';\n // readonly dependencies = [CompilerAspect.id];\n\n constructor(\n private preview: PreviewMain,\n private envs: EnvsMain,\n private aspectLoader: AspectLoaderMain,\n private dependencyResolver: DependencyResolverMain,\n private logger: Logger\n ) {}\n\n async execute(context: BuildContext): Promise<BuiltTaskResult> {\n const previewDefs = this.preview.getDefs();\n const htmlConfig = previewDefs.map((previewModule) => generateHtmlConfig(previewModule, { dev: context.dev }));\n const originalSeedersIds = context.capsuleNetwork.originalSeedersCapsules.map((c) => c.component.id.toString());\n const grouped: TargetsGroupMap = {};\n // avoid running them with `Promise.all` because getEnv methods do import/isolate which can't be in parallel.\n await mapSeries(context.components, async (component) => {\n // Do not run over other components in the graph. it make the process much longer with no need\n if (originalSeedersIds && originalSeedersIds.length && !originalSeedersIds.includes(component.id.toString())) {\n return undefined;\n }\n const envDef = this.envs.getEnvFromComponent(component);\n if (!envDef) return undefined;\n const env = envDef.env;\n const bundlingStrategy = this.preview.getBundlingStrategy(envDef.env);\n if (bundlingStrategy.name === 'env') {\n return undefined;\n }\n const target = await this.getEnvTargetFromComponent(context, component, envDef, htmlConfig);\n if (!target) return undefined;\n const shouldUseDefaultBundler = this.shouldUseDefaultBundler(envDef);\n let envToGetBundler = this.envs.getEnvsEnvDefinition().env;\n let groupEnvId = 'default';\n if (!shouldUseDefaultBundler) {\n envToGetBundler = env;\n groupEnvId = envDef.id;\n }\n if (!grouped[groupEnvId]) {\n grouped[groupEnvId] = {\n env,\n envToGetBundler,\n targets: [target],\n };\n } else {\n grouped[groupEnvId].targets.push(target);\n }\n return undefined;\n });\n if (isEmpty(grouped)) {\n return { componentsResults: [] };\n }\n\n return this.runBundlerForGroups(context, grouped);\n }\n\n private async runBundlerForGroups(context: BuildContext, groups: TargetsGroupMap): Promise<BuiltTaskResult> {\n const bundlerContext: BundlerContext = Object.assign(context, {\n targets: [],\n entry: [],\n development: context.dev,\n metaData: {\n initiator: `${GENERATE_ENV_TEMPLATE_TASK_NAME} task`,\n envId: context.id,\n isEnvTemplate: true,\n },\n });\n\n const bundlerResults = await mapSeries(Object.entries(groups), async ([, targetsGroup]) => {\n bundlerContext.targets = targetsGroup.targets;\n const bundler: Bundler = await targetsGroup.envToGetBundler.getTemplateBundler(bundlerContext);\n const bundlerResult = await bundler.run();\n return bundlerResult;\n });\n\n const results = await this.computeResults(bundlerContext, flatten(bundlerResults));\n return results;\n }\n\n private shouldUseDefaultBundler(envDef: EnvDefinition): boolean {\n if (this.aspectLoader.isCoreEnv(envDef.id) && envDef.id !== 'teambit.react/react-native') return true;\n const env = envDef.env;\n if (env.getTemplateBundler && typeof env.getTemplateBundler === 'function') return false;\n return true;\n }\n\n private async getEnvTargetFromComponent(\n context: BuildContext,\n envComponent: Component,\n envDef: EnvDefinition,\n htmlConfig: BundlerHtmlConfig[]\n ): Promise<Target | undefined> {\n const envPreviewConfig = this.preview.getEnvPreviewConfig(envDef.env);\n\n const peers = await this.dependencyResolver.getPreviewHostDependenciesFromEnv(envDef.env);\n // const module = await this.getPreviewModule(envComponent);\n // const entries = Object.keys(module).map((key) => module.exposes[key]);\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(envComponent.id);\n if (!capsule) throw new Error('no capsule found');\n // Passing here the env itself to make sure it's preview runtime will be part of the preview root file\n // that's needed to make sure the providers register there are running correctly\n const previewRoot = await this.preview.writePreviewRuntime(context, [envComponent.id.toString()]);\n const entries = await this.generateEntries({\n envDef,\n splitComponentBundle: envPreviewConfig.splitComponentBundle ?? false,\n workDir: capsule.path,\n peers,\n previewRoot,\n });\n\n const outputPath = this.computeOutputPath(context, envComponent);\n if (!existsSync(outputPath)) mkdirpSync(outputPath);\n const resolvedEnvAspects = await this.preview.resolveAspects(MainRuntime.name, [envComponent.id], undefined, {\n requestedOnly: true,\n // required to support envs that are plguins (.bit-env files)\n filterByRuntime: false,\n });\n const resolvedEnv = resolvedEnvAspects[0];\n const hostRootDir = resolvedEnv?.aspectPath;\n\n if (!hostRootDir) {\n this.logger.warn(`env preview template task, hostRootDir is not defined, for env ${envComponent.id.toString()}`);\n }\n\n return {\n peers,\n html: htmlConfig,\n entries,\n chunking: { splitChunks: true },\n components: [envComponent],\n outputPath,\n /* It's a path to the root of the host component. */\n hostRootDir,\n hostDependencies: peers,\n aliasHostDependencies: true,\n };\n }\n\n private async generateEntries({\n previewRoot,\n workDir,\n peers,\n envDef,\n splitComponentBundle,\n }: {\n previewRoot: string;\n workDir: string;\n peers: string[];\n envDef: EnvDefinition;\n splitComponentBundle: boolean;\n }) {\n const previewModules = await this.getPreviewModules(envDef);\n const previewEntries = previewModules.map(({ name, path, ...rest }) => {\n const linkFile = this.preview.writeLink(\n name,\n ComponentMap.create([]),\n { default: path },\n workDir,\n splitComponentBundle\n );\n\n return { name, path, ...rest, entry: linkFile };\n });\n const peerLink = await writePeerLink(peers, workDir);\n\n const entries = generateTemplateEntries({\n peers: peerLink,\n previewRootPath: previewRoot,\n previewModules: previewEntries,\n });\n return entries;\n }\n\n async computeResults(context: BundlerContext, results: BundlerResult[]) {\n const allResults = results.map((result) => {\n const componentsResults: ComponentResult[] = result.components.map((component) => {\n return {\n component,\n errors: result.errors.map((err) => (typeof err === 'string' ? err : err.message)),\n warning: result.warnings,\n startTime: result.startTime,\n endTime: result.endTime,\n };\n });\n return componentsResults;\n });\n\n const componentsResults = flatten(allResults);\n\n const artifacts = getArtifactDef();\n\n return {\n componentsResults,\n artifacts,\n };\n }\n\n private async getPreviewModules(envDef: EnvDefinition): Promise<ModuleExpose[]> {\n const previewDefs = this.preview.getDefs();\n\n const modules = compact(\n await Promise.all(\n previewDefs.map(async (def) => {\n if (!def.renderTemplatePathByEnv) return undefined;\n return {\n name: def.prefix,\n path: (await def.renderTemplatePathByEnv(envDef.env)) || '',\n include: def.include,\n };\n })\n )\n );\n\n return modules;\n }\n\n private computeOutputPath(context: BuildContext, component: Component) {\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n if (!capsule) throw new Error('no capsule found');\n return join(capsule.path, getArtifactDirectory());\n }\n}\n\nexport function getArtifactDirectory() {\n return join(CAPSULE_ARTIFACTS_DIR, 'env-template');\n}\n\nexport function getArtifactDef() {\n return [\n {\n name: 'env-template',\n globPatterns: ['**'],\n rootDir: getArtifactDirectory(),\n },\n ];\n}\n"],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import type { NextFunction, Request, Response } from '@teambit/express';
|
|
|
4
4
|
import type { ComponentUrlParams, RegisteredComponentRoute } from '@teambit/component';
|
|
5
5
|
import type { Logger } from '@teambit/logger';
|
|
6
6
|
import type { PreviewMain } from './preview.main.runtime';
|
|
7
|
-
|
|
7
|
+
type UrlParams = ComponentUrlParams & {
|
|
8
8
|
filePath?: string;
|
|
9
9
|
};
|
|
10
10
|
export declare class EnvTemplateRoute implements RegisteredComponentRoute {
|
package/dist/execution-ref.d.ts
CHANGED
package/dist/generate-link.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function fetchComponentAspects(componentId: string): Promise<string[]
|
|
1
|
+
export declare function fetchComponentAspects(componentId: string): Promise<string[]>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.preview_preview@1.0.
|
|
2
|
-
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.preview_preview@1.0.
|
|
1
|
+
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.preview_preview@1.0.109/dist/preview.composition.js';
|
|
2
|
+
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.preview_preview@1.0.109/dist/preview.docs.mdx';
|
|
3
3
|
|
|
4
4
|
export const compositions = [compositions_0];
|
|
5
5
|
export const overview = [overview_0];
|
|
@@ -3,6 +3,6 @@ export declare class PreviewArtifact {
|
|
|
3
3
|
private artifacts;
|
|
4
4
|
constructor(artifacts: AbstractVinyl[]);
|
|
5
5
|
getPaths(): string[];
|
|
6
|
-
getFile(path: string): AbstractVinyl
|
|
7
|
-
getFileEndsWith(path: string): AbstractVinyl
|
|
6
|
+
getFile(path: string): AbstractVinyl;
|
|
7
|
+
getFileEndsWith(path: string): AbstractVinyl;
|
|
8
8
|
}
|
package/dist/preview-env.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { PreviewModule, ModuleFile } from './types/preview-module';
|
|
2
|
-
|
|
2
|
+
type ModuleId = string;
|
|
3
3
|
export declare class PreviewModules extends Map<ModuleId, PreviewModule> {
|
|
4
4
|
onSet: Set<() => void>;
|
|
5
5
|
set(id: ModuleId, preview: PreviewModule): this;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const Logo: () =>
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare const Logo: () => JSX.Element;
|
|
@@ -17,14 +17,14 @@ import { MainModulesMap } from './generate-link';
|
|
|
17
17
|
import { PreviewArtifact } from './preview-artifact';
|
|
18
18
|
import { PreviewDefinition } from './preview-definition';
|
|
19
19
|
import { BundlingStrategy } from './bundling-strategy';
|
|
20
|
-
export
|
|
21
|
-
export
|
|
22
|
-
export
|
|
20
|
+
export type PreviewDefinitionRegistry = SlotRegistry<PreviewDefinition>;
|
|
21
|
+
export type PreviewStrategyName = 'env' | 'component';
|
|
22
|
+
export type PreviewFiles = {
|
|
23
23
|
files: string[];
|
|
24
24
|
isBundledWithEnv: boolean;
|
|
25
25
|
};
|
|
26
|
-
export
|
|
27
|
-
export
|
|
26
|
+
export type ComponentPreviewSizedFile = Asset;
|
|
27
|
+
export type ComponentPreviewSize = {
|
|
28
28
|
files: ComponentPreviewSizedFile[];
|
|
29
29
|
assets: ComponentPreviewSizedFile[];
|
|
30
30
|
totalFiles: number;
|
|
@@ -34,20 +34,20 @@ export declare type ComponentPreviewSize = {
|
|
|
34
34
|
total: number;
|
|
35
35
|
compressedTotal?: number;
|
|
36
36
|
};
|
|
37
|
-
export
|
|
37
|
+
export type ComponentPreviewMetaData = {
|
|
38
38
|
size?: ComponentPreviewSize;
|
|
39
39
|
};
|
|
40
|
-
export
|
|
40
|
+
export type PreviewVariantConfig = {
|
|
41
41
|
isScaling?: boolean;
|
|
42
42
|
};
|
|
43
43
|
/**
|
|
44
44
|
* Preview data that stored on the component on load
|
|
45
45
|
*/
|
|
46
|
-
export
|
|
46
|
+
export type PreviewComponentData = PreviewAnyComponentData & PreviewEnvComponentData;
|
|
47
47
|
/**
|
|
48
48
|
* Preview data that stored on the component on load for any component
|
|
49
49
|
*/
|
|
50
|
-
export
|
|
50
|
+
export type PreviewAnyComponentData = {
|
|
51
51
|
doesScaling?: boolean;
|
|
52
52
|
/**
|
|
53
53
|
* The strategy configured by the component's env
|
|
@@ -66,10 +66,10 @@ export declare type PreviewAnyComponentData = {
|
|
|
66
66
|
/**
|
|
67
67
|
* Preview data that stored on the component on load if the component is an env
|
|
68
68
|
*/
|
|
69
|
-
export
|
|
69
|
+
export type PreviewEnvComponentData = {
|
|
70
70
|
isScaling?: boolean;
|
|
71
71
|
};
|
|
72
|
-
export
|
|
72
|
+
export type PreviewConfig = {
|
|
73
73
|
bundlingStrategy?: string;
|
|
74
74
|
disabled: boolean;
|
|
75
75
|
/**
|
|
@@ -79,12 +79,12 @@ export declare type PreviewConfig = {
|
|
|
79
79
|
*/
|
|
80
80
|
maxChunkSize?: number;
|
|
81
81
|
};
|
|
82
|
-
export
|
|
82
|
+
export type EnvPreviewConfig = {
|
|
83
83
|
strategyName?: PreviewStrategyName;
|
|
84
84
|
splitComponentBundle?: boolean;
|
|
85
85
|
};
|
|
86
|
-
export
|
|
87
|
-
export
|
|
86
|
+
export type BundlingStrategySlot = SlotRegistry<BundlingStrategy>;
|
|
87
|
+
export type GenerateLinkFn = (prefix: string, componentMap: ComponentMap<string[]>, defaultModule?: string) => string;
|
|
88
88
|
export declare class PreviewMain {
|
|
89
89
|
/**
|
|
90
90
|
* harmony context.
|
|
@@ -347,8 +347,7 @@ class PreviewMain {
|
|
|
347
347
|
});
|
|
348
348
|
}
|
|
349
349
|
get tempFolder() {
|
|
350
|
-
|
|
351
|
-
return ((_this$workspace = this.workspace) === null || _this$workspace === void 0 ? void 0 : _this$workspace.getTempDir(_preview().PreviewAspect.id)) || DEFAULT_TEMP_DIR;
|
|
350
|
+
return this.workspace?.getTempDir(_preview().PreviewAspect.id) || DEFAULT_TEMP_DIR;
|
|
352
351
|
}
|
|
353
352
|
getComponentBundleSize(component) {
|
|
354
353
|
const data = this.builder.getDataByAspect(component, _preview().PreviewAspect.id);
|
|
@@ -383,8 +382,7 @@ class PreviewMain {
|
|
|
383
382
|
* @returns
|
|
384
383
|
*/
|
|
385
384
|
getPreviewAspectConfig(component) {
|
|
386
|
-
|
|
387
|
-
return (_component$state$aspe = component.state.aspects.get(_preview().PreviewAspect.id)) === null || _component$state$aspe === void 0 ? void 0 : _component$state$aspe.config;
|
|
385
|
+
return component.state.aspects.get(_preview().PreviewAspect.id)?.config;
|
|
388
386
|
}
|
|
389
387
|
|
|
390
388
|
/**
|
|
@@ -394,8 +392,7 @@ class PreviewMain {
|
|
|
394
392
|
* @returns
|
|
395
393
|
*/
|
|
396
394
|
getPreviewData(component) {
|
|
397
|
-
|
|
398
|
-
const previewData = (_component$state$aspe2 = component.state.aspects.get(_preview().PreviewAspect.id)) === null || _component$state$aspe2 === void 0 ? void 0 : _component$state$aspe2.data;
|
|
395
|
+
const previewData = component.state.aspects.get(_preview().PreviewAspect.id)?.data;
|
|
399
396
|
return previewData;
|
|
400
397
|
}
|
|
401
398
|
|
|
@@ -431,8 +428,8 @@ class PreviewMain {
|
|
|
431
428
|
const env = this.envs.getEnv(component).env;
|
|
432
429
|
const envPreviewConfig = this.getEnvPreviewConfig(env);
|
|
433
430
|
const data = {
|
|
434
|
-
strategyName: envPreviewConfig
|
|
435
|
-
splitComponentBundle:
|
|
431
|
+
strategyName: envPreviewConfig?.strategyName,
|
|
432
|
+
splitComponentBundle: envPreviewConfig?.splitComponentBundle ?? false
|
|
436
433
|
};
|
|
437
434
|
return data;
|
|
438
435
|
}
|
|
@@ -449,7 +446,7 @@ class PreviewMain {
|
|
|
449
446
|
const previewAspectConfig = this.getPreviewAspectConfig(envComponent);
|
|
450
447
|
const data = {
|
|
451
448
|
// default to true if the env doesn't have a preview config
|
|
452
|
-
isScaling:
|
|
449
|
+
isScaling: previewAspectConfig?.isScaling ?? true
|
|
453
450
|
// disalbe it for now, we will re-enable it later
|
|
454
451
|
// skipIncludes: true,
|
|
455
452
|
};
|
|
@@ -466,7 +463,7 @@ class PreviewMain {
|
|
|
466
463
|
*/
|
|
467
464
|
async calcIsBundledWithEnv(component) {
|
|
468
465
|
const envPreviewData = await this.calcPreviewDataFromEnv(component);
|
|
469
|
-
return
|
|
466
|
+
return envPreviewData?.strategyName !== 'component';
|
|
470
467
|
}
|
|
471
468
|
|
|
472
469
|
/**
|
|
@@ -525,8 +522,7 @@ class PreviewMain {
|
|
|
525
522
|
* this calculation is based on the env of the component and if the env of the component support it.
|
|
526
523
|
*/
|
|
527
524
|
async doesScaling(component) {
|
|
528
|
-
|
|
529
|
-
const inWorkspace = await ((_this$workspace2 = this.workspace) === null || _this$workspace2 === void 0 ? void 0 : _this$workspace2.hasId(component.id));
|
|
525
|
+
const inWorkspace = await this.workspace?.hasId(component.id);
|
|
530
526
|
// Support case when we have the dev server for the env, in that case we calc the data of the env as we can't rely on the env data from the scope
|
|
531
527
|
// since we bundle it for the dev server again
|
|
532
528
|
if (inWorkspace) {
|
|
@@ -567,14 +563,14 @@ class PreviewMain {
|
|
|
567
563
|
*/
|
|
568
564
|
isEnvSupportScaling(envComponent) {
|
|
569
565
|
const previewData = this.getPreviewData(envComponent);
|
|
570
|
-
return !!
|
|
566
|
+
return !!previewData?.isScaling;
|
|
571
567
|
}
|
|
572
568
|
async isSupportSkipIncludes(component) {
|
|
573
569
|
const isCore = this.envs.isUsingCoreEnv(component);
|
|
574
570
|
if (isCore) return false;
|
|
575
571
|
const envComponent = await this.envs.getEnvComponent(component);
|
|
576
572
|
const previewData = this.getPreviewData(envComponent);
|
|
577
|
-
return !!
|
|
573
|
+
return !!previewData?.skipIncludes;
|
|
578
574
|
}
|
|
579
575
|
|
|
580
576
|
/**
|
|
@@ -592,7 +588,7 @@ class PreviewMain {
|
|
|
592
588
|
if (!isEnv) return undefined;
|
|
593
589
|
const previewAspectConfig = this.getPreviewAspectConfig(envComponent);
|
|
594
590
|
// default to true if the env doesn't have a preview config
|
|
595
|
-
return
|
|
591
|
+
return previewAspectConfig?.isScaling ?? true;
|
|
596
592
|
}
|
|
597
593
|
|
|
598
594
|
/**
|
|
@@ -717,8 +713,7 @@ class PreviewMain {
|
|
|
717
713
|
updateLinkFiles(components = [], context) {
|
|
718
714
|
const previews = this.previewSlot.values();
|
|
719
715
|
const paths = previews.map(async previewDef => {
|
|
720
|
-
|
|
721
|
-
const defaultTemplatePath = await ((_previewDef$renderTem = previewDef.renderTemplatePathByEnv) === null || _previewDef$renderTem === void 0 ? void 0 : _previewDef$renderTem.call(previewDef, context.env));
|
|
716
|
+
const defaultTemplatePath = await previewDef.renderTemplatePathByEnv?.(context.env);
|
|
722
717
|
const visitedEnvs = new Set();
|
|
723
718
|
const mainModulesMap = {
|
|
724
719
|
// @ts-ignore
|
|
@@ -728,20 +723,18 @@ class PreviewMain {
|
|
|
728
723
|
const map = await previewDef.getModuleMap(components);
|
|
729
724
|
const isSplitComponentBundle = this.getEnvPreviewConfig().splitComponentBundle ?? false;
|
|
730
725
|
const withPathsP = map.asyncMap(async (files, component) => {
|
|
731
|
-
var _environment$getCompi, _compilerInstance$get;
|
|
732
726
|
const envDef = this.envs.getEnv(component);
|
|
733
727
|
const environment = envDef.env;
|
|
734
728
|
const envId = envDef.id;
|
|
735
729
|
if (!mainModulesMap[envId] && !visitedEnvs.has(envId)) {
|
|
736
|
-
|
|
737
|
-
const modulePath = await ((_previewDef$renderTem2 = previewDef.renderTemplatePathByEnv) === null || _previewDef$renderTem2 === void 0 ? void 0 : _previewDef$renderTem2.call(previewDef, envDef.env));
|
|
730
|
+
const modulePath = await previewDef.renderTemplatePathByEnv?.(envDef.env);
|
|
738
731
|
if (modulePath) {
|
|
739
732
|
mainModulesMap[envId] = modulePath;
|
|
740
733
|
}
|
|
741
734
|
visitedEnvs.add(envId);
|
|
742
735
|
}
|
|
743
|
-
const compilerInstance =
|
|
744
|
-
const modulePath =
|
|
736
|
+
const compilerInstance = environment.getCompiler?.();
|
|
737
|
+
const modulePath = compilerInstance?.getPreviewComponentRootPath?.(component) || this.pkg.getRuntimeModulePath(component);
|
|
745
738
|
return files.map(file => {
|
|
746
739
|
if (!this.workspace || !compilerInstance) {
|
|
747
740
|
return file.path;
|
|
@@ -807,7 +800,7 @@ class PreviewMain {
|
|
|
807
800
|
return [new (_strategies().EnvBundlingStrategy)(this, this.pkg, this.dependencyResolver), new (_strategies().ComponentBundlingStrategy)(this, this.pkg, this.dependencyResolver)];
|
|
808
801
|
}
|
|
809
802
|
getEnvPreviewConfig(env) {
|
|
810
|
-
const config = env
|
|
803
|
+
const config = env?.getPreviewConfig && typeof env?.getPreviewConfig === 'function' ? env?.getPreviewConfig() : {};
|
|
811
804
|
return config;
|
|
812
805
|
}
|
|
813
806
|
|
|
@@ -817,7 +810,7 @@ class PreviewMain {
|
|
|
817
810
|
getBundlingStrategy(env) {
|
|
818
811
|
const defaultStrategies = this.getDefaultStrategies();
|
|
819
812
|
const envPreviewConfig = this.getEnvPreviewConfig(env);
|
|
820
|
-
const strategyFromEnv = envPreviewConfig
|
|
813
|
+
const strategyFromEnv = envPreviewConfig?.strategyName;
|
|
821
814
|
const strategyName = strategyFromEnv || this.config.bundlingStrategy || 'env';
|
|
822
815
|
const strategies = this.bundlingStrategySlot.values().concat(defaultStrategies);
|
|
823
816
|
const selected = strategies.find(strategy => {
|