@teambit/preview 0.0.769 → 0.0.772
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundler/chunks.ts +51 -0
- package/bundler/html-plugin.ts +24 -0
- package/{webpack/html.ts → bundler/html-template.ts} +0 -0
- package/dist/bundler/chunks.d.ts +17 -0
- package/dist/bundler/chunks.js +68 -0
- package/dist/bundler/chunks.js.map +1 -0
- package/dist/bundler/html-plugin.d.ts +5 -0
- package/dist/bundler/html-plugin.js +56 -0
- package/dist/bundler/html-plugin.js.map +1 -0
- package/dist/{webpack/html.d.ts → bundler/html-template.d.ts} +0 -0
- package/dist/{webpack/html.js → bundler/html-template.js} +1 -1
- package/dist/bundler/html-template.js.map +1 -0
- package/dist/env-preview-template.task.d.ts +4 -9
- package/dist/env-preview-template.task.js +64 -74
- package/dist/env-preview-template.task.js.map +1 -1
- package/dist/preview-modules.d.ts +10 -0
- package/dist/preview-modules.js +54 -0
- package/dist/preview-modules.js.map +1 -0
- package/dist/preview.preview.runtime.d.ts +8 -5
- package/dist/preview.preview.runtime.js +76 -43
- package/dist/preview.preview.runtime.js.map +1 -1
- package/dist/strategies/component-strategy.js +6 -4
- package/dist/strategies/component-strategy.js.map +1 -1
- package/dist/strategies/env-strategy.js +4 -4
- package/dist/strategies/env-strategy.js.map +1 -1
- package/dist/strategies/generate-component-link.js +27 -3
- package/dist/strategies/generate-component-link.js.map +1 -1
- package/package-tar/teambit-preview-0.0.772.tgz +0 -0
- package/package.json +23 -21
- package/preview-1656362028747.js +5 -0
- package/preview-modules.tsx +28 -0
- package/preview.preview.runtime.tsx +71 -51
- package/strategies/component-strategy.ts +3 -3
- package/strategies/env-strategy.ts +1 -1
- package/strategies/generate-component-link.ts +20 -8
- package/dist/webpack/html.js.map +0 -1
- package/dist/webpack/index.d.ts +0 -1
- package/dist/webpack/index.js +0 -23
- package/dist/webpack/index.js.map +0 -1
- package/package-tar/teambit-preview-0.0.769.tgz +0 -0
- package/preview-1655954795354.js +0 -2
- 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,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"}
|
|
File without changes
|
|
@@ -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 {
|
|
4
|
-
import {
|
|
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
|
|
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
|
|
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.
|
|
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
|
|
87
|
-
const data = require("./
|
|
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
|
-
|
|
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 =
|
|
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
|
|
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
|
|
214
|
-
|
|
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
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
const
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
};
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
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":"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"}
|
|
@@ -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 {};
|