@teambit/preview 0.0.770 → 0.0.773

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/bundler/chunks.ts +51 -0
  2. package/bundler/html-plugin.ts +24 -0
  3. package/{webpack/html.ts → bundler/html-template.ts} +0 -0
  4. package/dist/bundler/chunks.d.ts +17 -0
  5. package/dist/bundler/chunks.js +68 -0
  6. package/dist/bundler/chunks.js.map +1 -0
  7. package/dist/bundler/html-plugin.d.ts +5 -0
  8. package/dist/bundler/html-plugin.js +56 -0
  9. package/dist/bundler/html-plugin.js.map +1 -0
  10. package/dist/{webpack/html.d.ts → bundler/html-template.d.ts} +0 -0
  11. package/dist/{webpack/html.js → bundler/html-template.js} +1 -1
  12. package/dist/bundler/html-template.js.map +1 -0
  13. package/dist/env-preview-template.task.d.ts +4 -9
  14. package/dist/env-preview-template.task.js +64 -74
  15. package/dist/env-preview-template.task.js.map +1 -1
  16. package/dist/preview-modules.d.ts +10 -0
  17. package/dist/preview-modules.js +54 -0
  18. package/dist/preview-modules.js.map +1 -0
  19. package/dist/preview.preview.runtime.d.ts +8 -5
  20. package/dist/preview.preview.runtime.js +76 -43
  21. package/dist/preview.preview.runtime.js.map +1 -1
  22. package/dist/strategies/component-strategy.js +6 -4
  23. package/dist/strategies/component-strategy.js.map +1 -1
  24. package/dist/strategies/env-strategy.js +4 -4
  25. package/dist/strategies/env-strategy.js.map +1 -1
  26. package/dist/strategies/generate-component-link.js +27 -3
  27. package/dist/strategies/generate-component-link.js.map +1 -1
  28. package/package-tar/teambit-preview-0.0.773.tgz +0 -0
  29. package/package.json +23 -21
  30. package/preview-1656386921357.js +5 -0
  31. package/preview-modules.tsx +28 -0
  32. package/preview.preview.runtime.tsx +71 -51
  33. package/strategies/component-strategy.ts +3 -3
  34. package/strategies/env-strategy.ts +1 -1
  35. package/strategies/generate-component-link.ts +20 -8
  36. package/dist/webpack/html.js.map +0 -1
  37. package/dist/webpack/index.d.ts +0 -1
  38. package/dist/webpack/index.js +0 -23
  39. package/dist/webpack/index.js.map +0 -1
  40. package/package-tar/teambit-preview-0.0.770.tgz +0 -0
  41. package/preview-1656041300679.js +0 -2
  42. package/webpack/index.ts +0 -1
@@ -0,0 +1,51 @@
1
+ import type { BundlerEntryMap } from '@teambit/bundler';
2
+
3
+ // TODO - we can remove the need to depenedOn preview-root, if we output chunks as "jsonp".
4
+ //
5
+ // for example:
6
+ // config.entry.someJsonpChunk = {
7
+ // import: "./xxx",
8
+ // library: { type: "jsonp", name: "foobar" }
9
+ // }
10
+ // will result in this output:
11
+ // foobar(() => { ...; return MODULE })
12
+
13
+ export const CHUNK_NAMES = {
14
+ previewRoot: 'preview-root',
15
+ peers: 'peers',
16
+ };
17
+
18
+ type TemplateEntryOptions = {
19
+ previewRootPath: string;
20
+ peers: string[];
21
+ previewModules: {
22
+ name: string;
23
+ entry: string;
24
+ /** other preview modules to includes */
25
+ include?: string[];
26
+ }[];
27
+ };
28
+
29
+ export function generateTemplateEntries(options: TemplateEntryOptions): BundlerEntryMap {
30
+ const previewChunks = {};
31
+ options.previewModules.forEach(({ name, entry, include = [] }) => {
32
+ previewChunks[name] = {
33
+ filename: `${name}.[chunkhash].js`,
34
+ dependOn: [CHUNK_NAMES.peers, CHUNK_NAMES.previewRoot, ...include],
35
+ import: entry,
36
+ };
37
+ });
38
+
39
+ return {
40
+ [CHUNK_NAMES.peers]: {
41
+ filename: 'peers.[chunkhash].js',
42
+ import: options.peers,
43
+ },
44
+ [CHUNK_NAMES.previewRoot]: {
45
+ filename: 'preview-root.[chunkhash].js',
46
+ dependOn: [CHUNK_NAMES.peers],
47
+ import: options.previewRootPath,
48
+ },
49
+ ...previewChunks,
50
+ };
51
+ }
@@ -0,0 +1,24 @@
1
+ import compact from 'lodash.compact';
2
+ import type { BundlerHtmlConfig } from '@teambit/bundler';
3
+ import { PreviewDefinition } from '../preview-definition';
4
+ import { html } from './html-template';
5
+
6
+ import { CHUNK_NAMES } from './chunks';
7
+
8
+ export function generateHtmlConfig(previewDef: PreviewDefinition, options: { dev?: boolean }) {
9
+ const chunks = compact([
10
+ previewDef.includePeers && CHUNK_NAMES.peers,
11
+ CHUNK_NAMES.previewRoot,
12
+ ...(previewDef.include || []),
13
+ previewDef.prefix,
14
+ ]);
15
+
16
+ const config: BundlerHtmlConfig = {
17
+ title: 'Preview',
18
+ templateContent: html('Preview'),
19
+ minify: options?.dev ?? true,
20
+ chunks,
21
+ filename: `${previewDef.prefix}.html`,
22
+ };
23
+ return config;
24
+ }
File without changes
@@ -0,0 +1,17 @@
1
+ import type { BundlerEntryMap } from '@teambit/bundler';
2
+ export declare const CHUNK_NAMES: {
3
+ previewRoot: string;
4
+ peers: string;
5
+ };
6
+ declare type TemplateEntryOptions = {
7
+ previewRootPath: string;
8
+ peers: string[];
9
+ previewModules: {
10
+ name: string;
11
+ entry: string;
12
+ /** other preview modules to includes */
13
+ include?: string[];
14
+ }[];
15
+ };
16
+ export declare function generateTemplateEntries(options: TemplateEntryOptions): BundlerEntryMap;
17
+ export {};
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ require("core-js/modules/es.array.iterator.js");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.CHUNK_NAMES = void 0;
11
+ exports.generateTemplateEntries = generateTemplateEntries;
12
+
13
+ function _defineProperty2() {
14
+ const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
16
+ _defineProperty2 = function () {
17
+ return data;
18
+ };
19
+
20
+ return data;
21
+ }
22
+
23
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
24
+
25
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2().default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
26
+
27
+ // TODO - we can remove the need to depenedOn preview-root, if we output chunks as "jsonp".
28
+ //
29
+ // for example:
30
+ // config.entry.someJsonpChunk = {
31
+ // import: "./xxx",
32
+ // library: { type: "jsonp", name: "foobar" }
33
+ // }
34
+ // will result in this output:
35
+ // foobar(() => { ...; return MODULE })
36
+ const CHUNK_NAMES = {
37
+ previewRoot: 'preview-root',
38
+ peers: 'peers'
39
+ };
40
+ exports.CHUNK_NAMES = CHUNK_NAMES;
41
+
42
+ function generateTemplateEntries(options) {
43
+ const previewChunks = {};
44
+ options.previewModules.forEach(({
45
+ name,
46
+ entry,
47
+ include = []
48
+ }) => {
49
+ previewChunks[name] = {
50
+ filename: `${name}.[chunkhash].js`,
51
+ dependOn: [CHUNK_NAMES.peers, CHUNK_NAMES.previewRoot, ...include],
52
+ import: entry
53
+ };
54
+ });
55
+ return _objectSpread({
56
+ [CHUNK_NAMES.peers]: {
57
+ filename: 'peers.[chunkhash].js',
58
+ import: options.peers
59
+ },
60
+ [CHUNK_NAMES.previewRoot]: {
61
+ filename: 'preview-root.[chunkhash].js',
62
+ dependOn: [CHUNK_NAMES.peers],
63
+ import: options.previewRootPath
64
+ }
65
+ }, previewChunks);
66
+ }
67
+
68
+ //# sourceMappingURL=chunks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CHUNK_NAMES","previewRoot","peers","generateTemplateEntries","options","previewChunks","previewModules","forEach","name","entry","include","filename","dependOn","import","previewRootPath"],"sources":["chunks.ts"],"sourcesContent":["import type { BundlerEntryMap } from '@teambit/bundler';\n\n// TODO - we can remove the need to depenedOn preview-root, if we output chunks as \"jsonp\".\n//\n// for example:\n// config.entry.someJsonpChunk = {\n// import: \"./xxx\",\n// library: { type: \"jsonp\", name: \"foobar\" }\n// }\n// will result in this output:\n// foobar(() => { ...; return MODULE })\n\nexport const CHUNK_NAMES = {\n previewRoot: 'preview-root',\n peers: 'peers',\n};\n\ntype TemplateEntryOptions = {\n previewRootPath: string;\n peers: string[];\n previewModules: {\n name: string;\n entry: string;\n /** other preview modules to includes */\n include?: string[];\n }[];\n};\n\nexport function generateTemplateEntries(options: TemplateEntryOptions): BundlerEntryMap {\n const previewChunks = {};\n options.previewModules.forEach(({ name, entry, include = [] }) => {\n previewChunks[name] = {\n filename: `${name}.[chunkhash].js`,\n dependOn: [CHUNK_NAMES.peers, CHUNK_NAMES.previewRoot, ...include],\n import: entry,\n };\n });\n\n return {\n [CHUNK_NAMES.peers]: {\n filename: 'peers.[chunkhash].js',\n import: options.peers,\n },\n [CHUNK_NAMES.previewRoot]: {\n filename: 'preview-root.[chunkhash].js',\n dependOn: [CHUNK_NAMES.peers],\n import: options.previewRootPath,\n },\n ...previewChunks,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEO,MAAMA,WAAW,GAAG;EACzBC,WAAW,EAAE,cADY;EAEzBC,KAAK,EAAE;AAFkB,CAApB;;;AAgBA,SAASC,uBAAT,CAAiCC,OAAjC,EAAiF;EACtF,MAAMC,aAAa,GAAG,EAAtB;EACAD,OAAO,CAACE,cAAR,CAAuBC,OAAvB,CAA+B,CAAC;IAAEC,IAAF;IAAQC,KAAR;IAAeC,OAAO,GAAG;EAAzB,CAAD,KAAmC;IAChEL,aAAa,CAACG,IAAD,CAAb,GAAsB;MACpBG,QAAQ,EAAG,GAAEH,IAAK,iBADE;MAEpBI,QAAQ,EAAE,CAACZ,WAAW,CAACE,KAAb,EAAoBF,WAAW,CAACC,WAAhC,EAA6C,GAAGS,OAAhD,CAFU;MAGpBG,MAAM,EAAEJ;IAHY,CAAtB;EAKD,CAND;EAQA;IACE,CAACT,WAAW,CAACE,KAAb,GAAqB;MACnBS,QAAQ,EAAE,sBADS;MAEnBE,MAAM,EAAET,OAAO,CAACF;IAFG,CADvB;IAKE,CAACF,WAAW,CAACC,WAAb,GAA2B;MACzBU,QAAQ,EAAE,6BADe;MAEzBC,QAAQ,EAAE,CAACZ,WAAW,CAACE,KAAb,CAFe;MAGzBW,MAAM,EAAET,OAAO,CAACU;IAHS;EAL7B,GAUKT,aAVL;AAYD"}
@@ -0,0 +1,5 @@
1
+ import type { BundlerHtmlConfig } from '@teambit/bundler';
2
+ import { PreviewDefinition } from '../preview-definition';
3
+ export declare function generateHtmlConfig(previewDef: PreviewDefinition, options: {
4
+ dev?: boolean;
5
+ }): BundlerHtmlConfig;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ require("core-js/modules/es.array.iterator.js");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.generateHtmlConfig = generateHtmlConfig;
11
+
12
+ function _lodash() {
13
+ const data = _interopRequireDefault(require("lodash.compact"));
14
+
15
+ _lodash = function () {
16
+ return data;
17
+ };
18
+
19
+ return data;
20
+ }
21
+
22
+ function _htmlTemplate() {
23
+ const data = require("./html-template");
24
+
25
+ _htmlTemplate = function () {
26
+ return data;
27
+ };
28
+
29
+ return data;
30
+ }
31
+
32
+ function _chunks() {
33
+ const data = require("./chunks");
34
+
35
+ _chunks = function () {
36
+ return data;
37
+ };
38
+
39
+ return data;
40
+ }
41
+
42
+ function generateHtmlConfig(previewDef, options) {
43
+ var _options$dev;
44
+
45
+ const chunks = (0, _lodash().default)([previewDef.includePeers && _chunks().CHUNK_NAMES.peers, _chunks().CHUNK_NAMES.previewRoot, ...(previewDef.include || []), previewDef.prefix]);
46
+ const config = {
47
+ title: 'Preview',
48
+ templateContent: (0, _htmlTemplate().html)('Preview'),
49
+ minify: (_options$dev = options === null || options === void 0 ? void 0 : options.dev) !== null && _options$dev !== void 0 ? _options$dev : true,
50
+ chunks,
51
+ filename: `${previewDef.prefix}.html`
52
+ };
53
+ return config;
54
+ }
55
+
56
+ //# sourceMappingURL=html-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["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;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAGA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEO,SAASA,kBAAT,CAA4BC,UAA5B,EAA2DC,OAA3D,EAAuF;EAAA;;EAC5F,MAAMC,MAAM,GAAG,IAAAC,iBAAA,EAAQ,CACrBH,UAAU,CAACI,YAAX,IAA2BC,qBAAA,CAAYC,KADlB,EAErBD,qBAAA,CAAYE,WAFS,EAGrB,IAAIP,UAAU,CAACQ,OAAX,IAAsB,EAA1B,CAHqB,EAIrBR,UAAU,CAACS,MAJU,CAAR,CAAf;EAOA,MAAMC,MAAyB,GAAG;IAChCC,KAAK,EAAE,SADyB;IAEhCC,eAAe,EAAE,IAAAC,oBAAA,EAAK,SAAL,CAFe;IAGhCC,MAAM,kBAAEb,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEc,GAAX,uDAAkB,IAHQ;IAIhCb,MAJgC;IAKhCc,QAAQ,EAAG,GAAEhB,UAAU,CAACS,MAAO;EALC,CAAlC;EAOA,OAAOC,MAAP;AACD"}
@@ -28,4 +28,4 @@ function html(title) {
28
28
  `;
29
29
  }
30
30
 
31
- //# sourceMappingURL=html.js.map
31
+ //# sourceMappingURL=html-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["html","title"],"sources":["html-template.ts"],"sourcesContent":["/** html template for Previews (docs, compositions, etc) */\nexport function html(title: string) {\n return `\n <!DOCTYPE html>\n <html lang=\"en\">\n <head>\n <meta charset=\"utf-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>${title}</title>\n <script>\n // Allow to use react dev-tools inside the examples\n try { window.__REACT_DEVTOOLS_GLOBAL_HOOK__ = window.parent.__REACT_DEVTOOLS_GLOBAL_HOOK__; } catch {}\n </script>\n <!-- minimal css resets -->\n <style> html { height: 100%; } body { margin: 0; height: 100%; } #root { height: 100%; } </style>\n </head>\n <body>\n <div id=\"root\"></div>\n </body>\n </html>\n `;\n}\n"],"mappings":";;;;;;;AAAA;AACO,SAASA,IAAT,CAAcC,KAAd,EAA6B;EAClC,OAAQ;AACV;AACA;AACA;AACA;AACA;AACA,eAAeA,KAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAlBE;AAmBD"}
@@ -1,8 +1,7 @@
1
1
  import { BuildContext, BuiltTaskResult, BuildTask, TaskLocation, ComponentResult } from '@teambit/builder';
2
2
  import { AspectLoaderMain } from '@teambit/aspect-loader';
3
- import { Capsule } from '@teambit/isolator';
4
- import { BundlerContext, BundlerEntryMap, BundlerResult } from '@teambit/bundler';
5
- import type { EnvDefinition, EnvsMain } from '@teambit/envs';
3
+ import { BundlerContext, BundlerResult } from '@teambit/bundler';
4
+ import type { EnvsMain } from '@teambit/envs';
6
5
  import { Logger } from '@teambit/logger';
7
6
  import { DependencyResolverMain } from '@teambit/dependency-resolver';
8
7
  import type { PreviewMain } from './preview.main.runtime';
@@ -12,8 +11,6 @@ export declare type ModuleExpose = {
12
11
  include?: string[];
13
12
  };
14
13
  export declare const GENERATE_ENV_TEMPLATE_TASK_NAME = "GenerateEnvTemplate";
15
- export declare const PREVIEW_ROOT_CHUNK_NAME = "previewRoot";
16
- export declare const PEERS_CHUNK_NAME = "peers";
17
14
  export declare class EnvPreviewTemplateTask implements BuildTask {
18
15
  private preview;
19
16
  private envs;
@@ -28,9 +25,7 @@ export declare class EnvPreviewTemplateTask implements BuildTask {
28
25
  private runBundlerForGroups;
29
26
  private shouldUseDefaultBundler;
30
27
  private getEnvTargetFromComponent;
31
- private generateHtmlConfig;
32
- private generateHtmlConfigForPreviewDef;
33
- getEntries(previewModules: ModuleExpose[], capsule: Capsule, previewRoot: string, isSplitComponentBundle?: boolean, peers?: string[]): BundlerEntryMap;
28
+ private generateEntries;
34
29
  computeResults(context: BundlerContext, results: BundlerResult[]): Promise<{
35
30
  componentsResults: ComponentResult[];
36
31
  artifacts: {
@@ -39,7 +34,7 @@ export declare class EnvPreviewTemplateTask implements BuildTask {
39
34
  rootDir: string;
40
35
  }[];
41
36
  }>;
42
- getPreviewModules(envDef: EnvDefinition): Promise<ModuleExpose[]>;
37
+ private getPreviewModules;
43
38
  private computeOutputPath;
44
39
  }
45
40
  export declare function getArtifactDirectory(): string;
@@ -9,10 +9,20 @@ require("core-js/modules/es.promise.js");
9
9
  Object.defineProperty(exports, "__esModule", {
10
10
  value: true
11
11
  });
12
- exports.PREVIEW_ROOT_CHUNK_NAME = exports.PEERS_CHUNK_NAME = exports.GENERATE_ENV_TEMPLATE_TASK_NAME = exports.EnvPreviewTemplateTask = void 0;
12
+ exports.GENERATE_ENV_TEMPLATE_TASK_NAME = exports.EnvPreviewTemplateTask = void 0;
13
13
  exports.getArtifactDef = getArtifactDef;
14
14
  exports.getArtifactDirectory = getArtifactDirectory;
15
15
 
16
+ function _objectWithoutProperties2() {
17
+ const data = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
18
+
19
+ _objectWithoutProperties2 = function () {
20
+ return data;
21
+ };
22
+
23
+ return data;
24
+ }
25
+
16
26
  function _defineProperty2() {
17
27
  const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
18
28
 
@@ -83,22 +93,32 @@ function _fsExtra() {
83
93
  return data;
84
94
  }
85
95
 
86
- function _webpack() {
87
- const data = require("./webpack");
96
+ function _chunks() {
97
+ const data = require("./bundler/chunks");
98
+
99
+ _chunks = function () {
100
+ return data;
101
+ };
102
+
103
+ return data;
104
+ }
105
+
106
+ function _htmlPlugin() {
107
+ const data = require("./bundler/html-plugin");
88
108
 
89
- _webpack = function () {
109
+ _htmlPlugin = function () {
90
110
  return data;
91
111
  };
92
112
 
93
113
  return data;
94
114
  }
95
115
 
116
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
117
+
118
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2().default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
119
+
96
120
  const GENERATE_ENV_TEMPLATE_TASK_NAME = 'GenerateEnvTemplate';
97
121
  exports.GENERATE_ENV_TEMPLATE_TASK_NAME = GENERATE_ENV_TEMPLATE_TASK_NAME;
98
- const PREVIEW_ROOT_CHUNK_NAME = 'previewRoot';
99
- exports.PREVIEW_ROOT_CHUNK_NAME = PREVIEW_ROOT_CHUNK_NAME;
100
- const PEERS_CHUNK_NAME = 'peers';
101
- exports.PEERS_CHUNK_NAME = PEERS_CHUNK_NAME;
102
122
 
103
123
  class EnvPreviewTemplateTask {
104
124
  // readonly dependencies = [CompilerAspect.id];
@@ -115,9 +135,9 @@ class EnvPreviewTemplateTask {
115
135
 
116
136
  async execute(context) {
117
137
  const previewDefs = this.preview.getDefs();
118
- const htmlConfig = this.generateHtmlConfig(previewDefs, PREVIEW_ROOT_CHUNK_NAME, PEERS_CHUNK_NAME, {
138
+ const htmlConfig = previewDefs.map(previewModule => (0, _htmlPlugin().generateHtmlConfig)(previewModule, {
119
139
  dev: context.dev
120
- });
140
+ }));
121
141
  const originalSeedersIds = context.capsuleNetwork.originalSeedersCapsules.map(c => c.component.id.toString());
122
142
  const grouped = {};
123
143
  await Promise.all(context.components.map(async component => {
@@ -200,9 +220,7 @@ class EnvPreviewTemplateTask {
200
220
 
201
221
  const env = envDef.env;
202
222
  const envPreviewConfig = this.preview.getEnvPreviewConfig(envDef.env);
203
- const isSplitComponentBundle = (_envPreviewConfig$spl = envPreviewConfig.splitComponentBundle) !== null && _envPreviewConfig$spl !== void 0 ? _envPreviewConfig$spl : false;
204
- const peers = await this.dependencyResolver.getPeerDependenciesListFromEnv(env); // console.log('envid22', env.__getDescriptor(), 'peers', peers)
205
- // const module = await this.getPreviewModule(envComponent);
223
+ const peers = await this.dependencyResolver.getPeerDependenciesListFromEnv(env); // const module = await this.getPreviewModule(envComponent);
206
224
  // const entries = Object.keys(module).map((key) => module.exposes[key]);
207
225
 
208
226
  const capsule = context.capsuleNetwork.graphCapsules.getCapsule(envComponent.id);
@@ -210,16 +228,17 @@ class EnvPreviewTemplateTask {
210
228
  // that's needed to make sure the providers register there are running correctly
211
229
 
212
230
  const previewRoot = await this.preview.writePreviewRuntime(context, [envComponent.id.toString()]);
213
- const previewModules = await this.getPreviewModules(envDef); // const templatesFile = previewModules.map((template) => {
214
- // return this.preview.writeLink(template.name, ComponentMap.create([]), template.path, capsule.path);
215
- // });
216
-
231
+ const entries = await this.generateEntries({
232
+ envDef,
233
+ splitComponentBundle: (_envPreviewConfig$spl = envPreviewConfig.splitComponentBundle) !== null && _envPreviewConfig$spl !== void 0 ? _envPreviewConfig$spl : false,
234
+ workDir: capsule.path,
235
+ peers,
236
+ previewRoot
237
+ });
217
238
  const outputPath = this.computeOutputPath(context, envComponent);
218
239
  if (!(0, _fsExtra().existsSync)(outputPath)) (0, _fsExtra().mkdirpSync)(outputPath);
219
- const entries = this.getEntries(previewModules, capsule, previewRoot, isSplitComponentBundle, peers);
220
240
  return {
221
241
  peers,
222
- runtimeChunkName: 'runtime',
223
242
  html: htmlConfig,
224
243
  entries,
225
244
  chunking: {
@@ -236,61 +255,32 @@ class EnvPreviewTemplateTask {
236
255
  };
237
256
  }
238
257
 
239
- generateHtmlConfig(previewDefs, previewRootChunkName, peersChunkName, options) {
240
- const htmlConfigs = previewDefs.map(previewModule => this.generateHtmlConfigForPreviewDef(previewModule, previewRootChunkName, peersChunkName, options));
241
- return htmlConfigs;
242
- }
243
-
244
- generateHtmlConfigForPreviewDef(previewDef, previewRootChunkName, peersChunkName, options) {
245
- var _options$dev;
246
-
247
- const previewDeps = previewDef.include || [];
248
- const chunks = [...previewDeps, previewDef.prefix, previewRootChunkName];
249
-
250
- if (previewDef.includePeers) {
251
- chunks.unshift(peersChunkName);
252
- }
253
-
254
- const config = {
255
- title: 'Preview',
256
- templateContent: (0, _webpack().html)('Preview'),
257
- minify: (_options$dev = options === null || options === void 0 ? void 0 : options.dev) !== null && _options$dev !== void 0 ? _options$dev : true,
258
- chunks,
259
- filename: `${previewDef.prefix}.html`
260
- };
261
- return config;
262
- }
263
-
264
- getEntries(previewModules, capsule, previewRoot, isSplitComponentBundle = false, peers = []) {
265
- const previewRootEntry = {
266
- filename: 'preview-root.[chunkhash].js',
267
- import: previewRoot
268
- };
269
- const peersRootEntry = {
270
- filename: 'peers.[chunkhash].js',
271
- import: peers
272
- };
273
- const entries = previewModules.reduce((acc, module) => {
274
- const linkFile = this.preview.writeLink(module.name, _component().ComponentMap.create([]), module.path, capsule.path, isSplitComponentBundle);
275
- acc[module.name] = {
276
- // filename: `${module.name}.[contenthash].js`,
277
- filename: `${module.name}.[chunkhash].js`,
278
- // filename: `${module.name}.js`,
279
- import: linkFile // library: {
280
- // name: module.name,
281
- // type: 'umd',
282
- // },
283
-
284
- };
285
-
286
- if (module.include) {
287
- acc[module.name].dependOn = module.include;
288
- }
289
-
290
- return acc;
291
- }, {
292
- [PREVIEW_ROOT_CHUNK_NAME]: previewRootEntry,
293
- [PEERS_CHUNK_NAME]: peersRootEntry
258
+ async generateEntries({
259
+ previewRoot,
260
+ workDir,
261
+ peers,
262
+ envDef,
263
+ splitComponentBundle
264
+ }) {
265
+ const previewModules = await this.getPreviewModules(envDef);
266
+ const previewEntries = previewModules.map(_ref => {
267
+ let {
268
+ name,
269
+ path
270
+ } = _ref,
271
+ rest = (0, _objectWithoutProperties2().default)(_ref, ["name", "path"]);
272
+ const linkFile = this.preview.writeLink(name, _component().ComponentMap.create([]), path, workDir, splitComponentBundle);
273
+ return _objectSpread(_objectSpread({
274
+ name,
275
+ path
276
+ }, rest), {}, {
277
+ entry: linkFile
278
+ });
279
+ });
280
+ const entries = (0, _chunks().generateTemplateEntries)({
281
+ peers,
282
+ previewRootPath: previewRoot,
283
+ previewModules: previewEntries
294
284
  });
295
285
  return entries;
296
286
  }
@@ -1 +1 @@
1
- {"version":3,"names":["GENERATE_ENV_TEMPLATE_TASK_NAME","PREVIEW_ROOT_CHUNK_NAME","PEERS_CHUNK_NAME","EnvPreviewTemplateTask","constructor","preview","envs","aspectLoader","dependencyResolver","logger","execute","context","previewDefs","getDefs","htmlConfig","generateHtmlConfig","dev","originalSeedersIds","capsuleNetwork","originalSeedersCapsules","map","c","component","id","toString","grouped","Promise","all","components","length","includes","undefined","envDef","getEnvFromComponent","env","bundlingStrategy","getBundlingStrategy","name","target","getEnvTargetFromComponent","shouldUseDefaultBundler","envToGetBundler","getEnvsEnvDefinition","groupEnvId","targets","push","isEmpty","componentsResults","runBundlerForGroups","groups","bundlerContext","Object","assign","entry","development","metaData","initiator","envId","bundlerResults","mapSeries","entries","targetsGroup","bundler","getTemplateBundler","bundlerResult","run","results","computeResults","flatten","isCoreEnv","envComponent","envPreviewConfig","getEnvPreviewConfig","isSplitComponentBundle","splitComponentBundle","peers","getPeerDependenciesListFromEnv","capsule","graphCapsules","getCapsule","Error","previewRoot","writePreviewRuntime","previewModules","getPreviewModules","outputPath","computeOutputPath","existsSync","mkdirpSync","getEntries","runtimeChunkName","html","chunking","splitChunks","hostDependencies","aliasHostDependencies","exposeHostDependencies","previewRootChunkName","peersChunkName","options","htmlConfigs","previewModule","generateHtmlConfigForPreviewDef","previewDef","previewDeps","include","chunks","prefix","includePeers","unshift","config","title","templateContent","minify","filename","previewRootEntry","import","peersRootEntry","reduce","acc","module","linkFile","writeLink","ComponentMap","create","path","dependOn","allResults","result","errors","err","message","warning","warnings","startTime","endTime","artifacts","getArtifactDef","modules","compact","def","renderTemplatePathByEnv","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 mapSeries from 'p-map-series';\nimport { Component, ComponentMap } from '@teambit/component';\nimport { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { Capsule } from '@teambit/isolator';\nimport { Bundler, BundlerContext, BundlerEntryMap, 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 { PreviewDefinition } from '.';\nimport { html } from './webpack';\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';\nexport const PREVIEW_ROOT_CHUNK_NAME = 'previewRoot';\nexport const PEERS_CHUNK_NAME = 'peers';\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 = this.generateHtmlConfig(previewDefs, PREVIEW_ROOT_CHUNK_NAME, PEERS_CHUNK_NAME, {\n dev: context.dev,\n });\n const originalSeedersIds = context.capsuleNetwork.originalSeedersCapsules.map((c) => c.component.id.toString());\n const grouped: TargetsGroupMap = {};\n await Promise.all(\n context.components.map(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 );\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 },\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 env = envDef.env;\n const envPreviewConfig = this.preview.getEnvPreviewConfig(envDef.env);\n const isSplitComponentBundle = envPreviewConfig.splitComponentBundle ?? false;\n const peers = await this.dependencyResolver.getPeerDependenciesListFromEnv(env);\n // console.log('envid22', env.__getDescriptor(), 'peers', peers)\n\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 previewModules = await this.getPreviewModules(envDef);\n // const templatesFile = previewModules.map((template) => {\n // return this.preview.writeLink(template.name, ComponentMap.create([]), template.path, capsule.path);\n // });\n const outputPath = this.computeOutputPath(context, envComponent);\n if (!existsSync(outputPath)) mkdirpSync(outputPath);\n const entries = this.getEntries(previewModules, capsule, previewRoot, isSplitComponentBundle, peers);\n\n return {\n peers,\n runtimeChunkName: 'runtime',\n html: htmlConfig,\n entries,\n chunking: {\n splitChunks: true,\n },\n components: [envComponent],\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 exposeHostDependencies: true,\n };\n }\n\n private generateHtmlConfig(\n previewDefs: PreviewDefinition[],\n previewRootChunkName: string,\n peersChunkName: string,\n options: { dev?: boolean }\n ): BundlerHtmlConfig[] {\n const htmlConfigs = previewDefs.map((previewModule) =>\n this.generateHtmlConfigForPreviewDef(previewModule, previewRootChunkName, peersChunkName, options)\n );\n return htmlConfigs;\n }\n\n private generateHtmlConfigForPreviewDef(\n previewDef: PreviewDefinition,\n previewRootChunkName: string,\n peersChunkName: string,\n options: { dev?: boolean }\n ): BundlerHtmlConfig {\n const previewDeps = previewDef.include || [];\n const chunks = [...previewDeps, previewDef.prefix, previewRootChunkName];\n if (previewDef.includePeers) {\n chunks.unshift(peersChunkName);\n }\n\n const config = {\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\n getEntries(\n previewModules: ModuleExpose[],\n capsule: Capsule,\n previewRoot: string,\n isSplitComponentBundle = false,\n peers: string[] = []\n ): BundlerEntryMap {\n const previewRootEntry = {\n filename: 'preview-root.[chunkhash].js',\n import: previewRoot,\n };\n\n const peersRootEntry = {\n filename: 'peers.[chunkhash].js',\n import: peers,\n };\n\n const entries = previewModules.reduce(\n (acc, module) => {\n const linkFile = this.preview.writeLink(\n module.name,\n ComponentMap.create([]),\n module.path,\n capsule.path,\n isSplitComponentBundle\n );\n acc[module.name] = {\n // filename: `${module.name}.[contenthash].js`,\n filename: `${module.name}.[chunkhash].js`,\n // filename: `${module.name}.js`,\n import: linkFile,\n // library: {\n // name: module.name,\n // type: 'umd',\n // },\n };\n if (module.include) {\n acc[module.name].dependOn = module.include;\n }\n return acc;\n },\n { [PREVIEW_ROOT_CHUNK_NAME]: previewRootEntry, [PEERS_CHUNK_NAME]: peersRootEntry }\n );\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 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":["GENERATE_ENV_TEMPLATE_TASK_NAME","EnvPreviewTemplateTask","constructor","preview","envs","aspectLoader","dependencyResolver","logger","execute","context","previewDefs","getDefs","htmlConfig","map","previewModule","generateHtmlConfig","dev","originalSeedersIds","capsuleNetwork","originalSeedersCapsules","c","component","id","toString","grouped","Promise","all","components","length","includes","undefined","envDef","getEnvFromComponent","env","bundlingStrategy","getBundlingStrategy","name","target","getEnvTargetFromComponent","shouldUseDefaultBundler","envToGetBundler","getEnvsEnvDefinition","groupEnvId","targets","push","isEmpty","componentsResults","runBundlerForGroups","groups","bundlerContext","Object","assign","entry","development","metaData","initiator","envId","bundlerResults","mapSeries","entries","targetsGroup","bundler","getTemplateBundler","bundlerResult","run","results","computeResults","flatten","isCoreEnv","envComponent","envPreviewConfig","getEnvPreviewConfig","peers","getPeerDependenciesListFromEnv","capsule","graphCapsules","getCapsule","Error","previewRoot","writePreviewRuntime","generateEntries","splitComponentBundle","workDir","path","outputPath","computeOutputPath","existsSync","mkdirpSync","html","chunking","splitChunks","hostDependencies","aliasHostDependencies","exposeHostDependencies","previewModules","getPreviewModules","previewEntries","rest","linkFile","writeLink","ComponentMap","create","generateTemplateEntries","previewRootPath","allResults","result","errors","err","message","warning","warnings","startTime","endTime","artifacts","getArtifactDef","modules","compact","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 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';\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 await Promise.all(\n context.components.map(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 );\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 },\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 env = envDef.env;\n const envPreviewConfig = this.preview.getEnvPreviewConfig(envDef.env);\n\n const peers = await this.dependencyResolver.getPeerDependenciesListFromEnv(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\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, handle this\n hostDependencies: peers,\n aliasHostDependencies: true,\n exposeHostDependencies: 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(name, ComponentMap.create([]), path, workDir, splitComponentBundle);\n\n return { name, path, ...rest, entry: linkFile };\n });\n\n const entries = generateTemplateEntries({ peers, previewRootPath: previewRoot, previewModules: previewEntries });\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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAQA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAIA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAGA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;;;;;AAiBO,MAAMA,+BAA+B,GAAG,qBAAxC;;;AAEA,MAAMC,sBAAN,CAAkD;EAIvD;EAEAC,WAAW,CACDC,OADC,EAEDC,IAFC,EAGDC,YAHC,EAIDC,kBAJC,EAKDC,MALC,EAMT;IAAA,KALQJ,OAKR,GALQA,OAKR;IAAA,KAJQC,IAIR,GAJQA,IAIR;IAAA,KAHQC,YAGR,GAHQA,YAGR;IAAA,KAFQC,kBAER,GAFQA,kBAER;IAAA,KADQC,MACR,GADQA,MACR;IAAA,kDAXS,yBAWT;IAAA,8CAVKP,+BAUL;IAAA,kDATuB,KASvB;EAAE;;EAES,MAAPQ,OAAO,CAACC,OAAD,EAAkD;IAC7D,MAAMC,WAAW,GAAG,KAAKP,OAAL,CAAaQ,OAAb,EAApB;IACA,MAAMC,UAAU,GAAGF,WAAW,CAACG,GAAZ,CAAiBC,aAAD,IAAmB,IAAAC,gCAAA,EAAmBD,aAAnB,EAAkC;MAAEE,GAAG,EAAEP,OAAO,CAACO;IAAf,CAAlC,CAAnC,CAAnB;IACA,MAAMC,kBAAkB,GAAGR,OAAO,CAACS,cAAR,CAAuBC,uBAAvB,CAA+CN,GAA/C,CAAoDO,CAAD,IAAOA,CAAC,CAACC,SAAF,CAAYC,EAAZ,CAAeC,QAAf,EAA1D,CAA3B;IACA,MAAMC,OAAwB,GAAG,EAAjC;IACA,MAAMC,OAAO,CAACC,GAAR,CACJjB,OAAO,CAACkB,UAAR,CAAmBd,GAAnB,CAAuB,MAAOQ,SAAP,IAAqB;MAC1C;MACA,IAAIJ,kBAAkB,IAAIA,kBAAkB,CAACW,MAAzC,IAAmD,CAACX,kBAAkB,CAACY,QAAnB,CAA4BR,SAAS,CAACC,EAAV,CAAaC,QAAb,EAA5B,CAAxD,EAA8G;QAC5G,OAAOO,SAAP;MACD;;MACD,MAAMC,MAAM,GAAG,KAAK3B,IAAL,CAAU4B,mBAAV,CAA8BX,SAA9B,CAAf;MACA,IAAI,CAACU,MAAL,EAAa,OAAOD,SAAP;MACb,MAAMG,GAAG,GAAGF,MAAM,CAACE,GAAnB;MACA,MAAMC,gBAAgB,GAAG,KAAK/B,OAAL,CAAagC,mBAAb,CAAiCJ,MAAM,CAACE,GAAxC,CAAzB;;MACA,IAAIC,gBAAgB,CAACE,IAAjB,KAA0B,KAA9B,EAAqC;QACnC,OAAON,SAAP;MACD;;MACD,MAAMO,MAAM,GAAG,MAAM,KAAKC,yBAAL,CAA+B7B,OAA/B,EAAwCY,SAAxC,EAAmDU,MAAnD,EAA2DnB,UAA3D,CAArB;MACA,IAAI,CAACyB,MAAL,EAAa,OAAOP,SAAP;MACb,MAAMS,uBAAuB,GAAG,KAAKA,uBAAL,CAA6BR,MAA7B,CAAhC;MACA,IAAIS,eAAe,GAAG,KAAKpC,IAAL,CAAUqC,oBAAV,GAAiCR,GAAvD;MACA,IAAIS,UAAU,GAAG,SAAjB;;MACA,IAAI,CAACH,uBAAL,EAA8B;QAC5BC,eAAe,GAAGP,GAAlB;QACAS,UAAU,GAAGX,MAAM,CAACT,EAApB;MACD;;MACD,IAAI,CAACE,OAAO,CAACkB,UAAD,CAAZ,EAA0B;QACxBlB,OAAO,CAACkB,UAAD,CAAP,GAAsB;UACpBT,GADoB;UAEpBO,eAFoB;UAGpBG,OAAO,EAAE,CAACN,MAAD;QAHW,CAAtB;MAKD,CAND,MAMO;QACLb,OAAO,CAACkB,UAAD,CAAP,CAAoBC,OAApB,CAA4BC,IAA5B,CAAiCP,MAAjC;MACD;;MACD,OAAOP,SAAP;IACD,CA/BD,CADI,CAAN;;IAkCA,IAAI,IAAAe,iBAAA,EAAQrB,OAAR,CAAJ,EAAsB;MACpB,OAAO;QAAEsB,iBAAiB,EAAE;MAArB,CAAP;IACD;;IAED,OAAO,KAAKC,mBAAL,CAAyBtC,OAAzB,EAAkCe,OAAlC,CAAP;EACD;;EAEgC,MAAnBuB,mBAAmB,CAACtC,OAAD,EAAwBuC,MAAxB,EAA2E;IAC1G,MAAMC,cAA8B,GAAGC,MAAM,CAACC,MAAP,CAAc1C,OAAd,EAAuB;MAC5DkC,OAAO,EAAE,EADmD;MAE5DS,KAAK,EAAE,EAFqD;MAG5DC,WAAW,EAAE5C,OAAO,CAACO,GAHuC;MAI5DsC,QAAQ,EAAE;QACRC,SAAS,EAAG,GAAEvD,+BAAgC,OADtC;QAERwD,KAAK,EAAE/C,OAAO,CAACa;MAFP;IAJkD,CAAvB,CAAvC;IASA,MAAMmC,cAAc,GAAG,MAAM,IAAAC,qBAAA,EAAUR,MAAM,CAACS,OAAP,CAAeX,MAAf,CAAV,EAAkC,OAAO,GAAGY,YAAH,CAAP,KAA4B;MACzFX,cAAc,CAACN,OAAf,GAAyBiB,YAAY,CAACjB,OAAtC;MACA,MAAMkB,OAAgB,GAAG,MAAMD,YAAY,CAACpB,eAAb,CAA6BsB,kBAA7B,CAAgDb,cAAhD,CAA/B;MACA,MAAMc,aAAa,GAAG,MAAMF,OAAO,CAACG,GAAR,EAA5B;MACA,OAAOD,aAAP;IACD,CAL4B,CAA7B;IAOA,MAAME,OAAO,GAAG,MAAM,KAAKC,cAAL,CAAoBjB,cAApB,EAAoC,IAAAkB,iBAAA,EAAQV,cAAR,CAApC,CAAtB;IACA,OAAOQ,OAAP;EACD;;EAEO1B,uBAAuB,CAACR,MAAD,EAAiC;IAC9D,IAAI,KAAK1B,YAAL,CAAkB+D,SAAlB,CAA4BrC,MAAM,CAACT,EAAnC,KAA0CS,MAAM,CAACT,EAAP,KAAc,4BAA5D,EAA0F,OAAO,IAAP;IAC1F,MAAMW,GAAG,GAAGF,MAAM,CAACE,GAAnB;IACA,IAAIA,GAAG,CAAC6B,kBAAJ,IAA0B,OAAO7B,GAAG,CAAC6B,kBAAX,KAAkC,UAAhE,EAA4E,OAAO,KAAP;IAC5E,OAAO,IAAP;EACD;;EAEsC,MAAzBxB,yBAAyB,CACrC7B,OADqC,EAErC4D,YAFqC,EAGrCtC,MAHqC,EAIrCnB,UAJqC,EAKR;IAAA;;IAC7B,MAAMqB,GAAG,GAAGF,MAAM,CAACE,GAAnB;IACA,MAAMqC,gBAAgB,GAAG,KAAKnE,OAAL,CAAaoE,mBAAb,CAAiCxC,MAAM,CAACE,GAAxC,CAAzB;IAEA,MAAMuC,KAAK,GAAG,MAAM,KAAKlE,kBAAL,CAAwBmE,8BAAxB,CAAuDxC,GAAvD,CAApB,CAJ6B,CAK7B;IACA;;IACA,MAAMyC,OAAO,GAAGjE,OAAO,CAACS,cAAR,CAAuByD,aAAvB,CAAqCC,UAArC,CAAgDP,YAAY,CAAC/C,EAA7D,CAAhB;IACA,IAAI,CAACoD,OAAL,EAAc,MAAM,IAAIG,KAAJ,CAAU,kBAAV,CAAN,CARe,CAS7B;IACA;;IACA,MAAMC,WAAW,GAAG,MAAM,KAAK3E,OAAL,CAAa4E,mBAAb,CAAiCtE,OAAjC,EAA0C,CAAC4D,YAAY,CAAC/C,EAAb,CAAgBC,QAAhB,EAAD,CAA1C,CAA1B;IACA,MAAMoC,OAAO,GAAG,MAAM,KAAKqB,eAAL,CAAqB;MACzCjD,MADyC;MAEzCkD,oBAAoB,2BAAEX,gBAAgB,CAACW,oBAAnB,yEAA2C,KAFtB;MAGzCC,OAAO,EAAER,OAAO,CAACS,IAHwB;MAIzCX,KAJyC;MAKzCM;IALyC,CAArB,CAAtB;IAQA,MAAMM,UAAU,GAAG,KAAKC,iBAAL,CAAuB5E,OAAvB,EAAgC4D,YAAhC,CAAnB;IACA,IAAI,CAAC,IAAAiB,qBAAA,EAAWF,UAAX,CAAL,EAA6B,IAAAG,qBAAA,EAAWH,UAAX;IAE7B,OAAO;MACLZ,KADK;MAELgB,IAAI,EAAE5E,UAFD;MAGL+C,OAHK;MAIL8B,QAAQ,EAAE;QAAEC,WAAW,EAAE;MAAf,CAJL;MAKL/D,UAAU,EAAE,CAAC0C,YAAD,CALP;MAMLe,UANK;;MAOL;MACA;MACAO,gBAAgB,EAAEnB,KATb;MAULoB,qBAAqB,EAAE,IAVlB;MAWLC,sBAAsB,EAAE;IAXnB,CAAP;EAaD;;EAE4B,MAAfb,eAAe,CAAC;IAC5BF,WAD4B;IAE5BI,OAF4B;IAG5BV,KAH4B;IAI5BzC,MAJ4B;IAK5BkD;EAL4B,CAAD,EAY1B;IACD,MAAMa,cAAc,GAAG,MAAM,KAAKC,iBAAL,CAAuBhE,MAAvB,CAA7B;IACA,MAAMiE,cAAc,GAAGF,cAAc,CAACjF,GAAf,CAAmB,QAA6B;MAAA,IAA5B;QAAEuB,IAAF;QAAQ+C;MAAR,CAA4B;MAAA,IAAXc,IAAW;MACrE,MAAMC,QAAQ,GAAG,KAAK/F,OAAL,CAAagG,SAAb,CAAuB/D,IAAvB,EAA6BgE,yBAAA,CAAaC,MAAb,CAAoB,EAApB,CAA7B,EAAsDlB,IAAtD,EAA4DD,OAA5D,EAAqED,oBAArE,CAAjB;MAEA;QAAS7C,IAAT;QAAe+C;MAAf,GAAwBc,IAAxB;QAA8B7C,KAAK,EAAE8C;MAArC;IACD,CAJsB,CAAvB;IAMA,MAAMvC,OAAO,GAAG,IAAA2C,iCAAA,EAAwB;MAAE9B,KAAF;MAAS+B,eAAe,EAAEzB,WAA1B;MAAuCgB,cAAc,EAAEE;IAAvD,CAAxB,CAAhB;IACA,OAAOrC,OAAP;EACD;;EAEmB,MAAdO,cAAc,CAACzD,OAAD,EAA0BwD,OAA1B,EAAoD;IACtE,MAAMuC,UAAU,GAAGvC,OAAO,CAACpD,GAAR,CAAa4F,MAAD,IAAY;MACzC,MAAM3D,iBAAoC,GAAG2D,MAAM,CAAC9E,UAAP,CAAkBd,GAAlB,CAAuBQ,SAAD,IAAe;QAChF,OAAO;UACLA,SADK;UAELqF,MAAM,EAAED,MAAM,CAACC,MAAP,CAAc7F,GAAd,CAAmB8F,GAAD,IAAU,OAAOA,GAAP,KAAe,QAAf,GAA0BA,GAA1B,GAAgCA,GAAG,CAACC,OAAhE,CAFH;UAGLC,OAAO,EAAEJ,MAAM,CAACK,QAHX;UAILC,SAAS,EAAEN,MAAM,CAACM,SAJb;UAKLC,OAAO,EAAEP,MAAM,CAACO;QALX,CAAP;MAOD,CAR4C,CAA7C;MASA,OAAOlE,iBAAP;IACD,CAXkB,CAAnB;IAaA,MAAMA,iBAAiB,GAAG,IAAAqB,iBAAA,EAAQqC,UAAR,CAA1B;IAEA,MAAMS,SAAS,GAAGC,cAAc,EAAhC;IAEA,OAAO;MACLpE,iBADK;MAELmE;IAFK,CAAP;EAID;;EAE8B,MAAjBlB,iBAAiB,CAAChE,MAAD,EAAiD;IAC9E,MAAMrB,WAAW,GAAG,KAAKP,OAAL,CAAaQ,OAAb,EAApB;IAEA,MAAMwG,OAAO,GAAG,IAAAC,iBAAA,EACd,MAAM3F,OAAO,CAACC,GAAR,CACJhB,WAAW,CAACG,GAAZ,CAAgB,MAAOwG,GAAP,IAAe;MAC7B,IAAI,CAACA,GAAG,CAACC,uBAAT,EAAkC,OAAOxF,SAAP;MAClC,OAAO;QACLM,IAAI,EAAEiF,GAAG,CAACE,MADL;QAELpC,IAAI,EAAE,MAAMkC,GAAG,CAACC,uBAAJ,CAA4BvF,MAAM,CAACE,GAAnC,CAFP;QAGLuF,OAAO,EAAEH,GAAG,CAACG;MAHR,CAAP;IAKD,CAPD,CADI,CADQ,CAAhB;IAaA,OAAOL,OAAP;EACD;;EAEO9B,iBAAiB,CAAC5E,OAAD,EAAwBY,SAAxB,EAA8C;IACrE,MAAMqD,OAAO,GAAGjE,OAAO,CAACS,cAAR,CAAuByD,aAAvB,CAAqCC,UAArC,CAAgDvD,SAAS,CAACC,EAA1D,CAAhB;IACA,IAAI,CAACoD,OAAL,EAAc,MAAM,IAAIG,KAAJ,CAAU,kBAAV,CAAN;IACd,OAAO,IAAA4C,YAAA,EAAK/C,OAAO,CAACS,IAAb,EAAmBuC,oBAAoB,EAAvC,CAAP;EACD;;AA1MsD;;;;AA6MlD,SAASA,oBAAT,GAAgC;EACrC,OAAO,IAAAD,YAAA,EAAKE,gCAAL,EAA4B,cAA5B,CAAP;AACD;;AAEM,SAAST,cAAT,GAA0B;EAC/B,OAAO,CACL;IACE9E,IAAI,EAAE,cADR;IAEEwF,YAAY,EAAE,CAAC,IAAD,CAFhB;IAGEC,OAAO,EAAEH,oBAAoB;EAH/B,CADK,CAAP;AAOD"}
@@ -0,0 +1,10 @@
1
+ import type { PreviewModule, ModuleFile } from './types/preview-module';
2
+ declare type ModuleId = string;
3
+ export declare class PreviewModules extends Map<ModuleId, PreviewModule> {
4
+ onSet: Set<() => void>;
5
+ set(id: ModuleId, preview: PreviewModule): this;
6
+ loadComponentPreviews(compId: string, previews: Record<string, ModuleFile[]>): void;
7
+ }
8
+ export declare const PREVIEW_MODULES: PreviewModules;
9
+ export declare function linkModules(previewName: string, previewModule: PreviewModule): void;
10
+ export {};