@teambit/react 0.0.623 → 0.0.630
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/__compositions-1643028743431.js +7 -0
- package/__overview-1643028743431.js +7 -0
- package/__preview-1643028743431.js +2 -0
- package/apps/web/deploy-context.ts +4 -0
- package/apps/web/index.ts +3 -0
- package/apps/web/react-app-options.ts +3 -3
- package/apps/web/react-build-result.ts +9 -0
- package/apps/web/react.application.ts +32 -34
- package/artifacts/env-template/public/141.js +1 -0
- package/artifacts/env-template/public/181.js +1 -0
- package/artifacts/env-template/public/283.js +1 -0
- package/artifacts/env-template/public/664.js +128 -0
- package/artifacts/env-template/public/743.js +1 -0
- package/artifacts/env-template/public/848.js +1 -0
- package/artifacts/env-template/public/assets-manifest.json +74 -0
- package/artifacts/env-template/public/compositions.266a1b82df14e17f5a23.js +1 -0
- package/artifacts/env-template/public/compositions.html +2 -0
- package/artifacts/env-template/public/overview.0f89eba4ac5ae70e0dc7.js +1 -0
- package/artifacts/env-template/public/overview.html +2 -0
- package/artifacts/env-template/public/peers.23d97726152f744ec115.js +1 -0
- package/artifacts/env-template/public/preview-root.b33a2fef3cb8fc3d6479.js +1 -0
- package/artifacts/env-template/public/runtime.js +1 -0
- package/artifacts/env-template/public/service-worker.js +1 -0
- package/artifacts/env-template/public/static/css/664.0a9dfff4.css +1 -0
- package/artifacts/env-template/public/static/css/compositions.cd8be53f.css +1 -0
- package/artifacts/env-template/public/static/css/overview.71e25e30.css +1 -0
- package/artifacts/env-template/public/static/css/previewRoot.5ad41161.css +1 -0
- package/artifacts/env-template/public/workbox-ca45de73.js +1 -0
- package/artifacts/preview/teambit_react_react-preview.js +1 -0
- package/dist/apps/web/deploy-context.d.ts +3 -0
- package/dist/apps/web/deploy-context.js +3 -0
- package/dist/apps/web/deploy-context.js.map +1 -0
- package/dist/apps/web/index.d.ts +3 -0
- package/dist/apps/web/index.js +23 -0
- package/dist/apps/web/index.js.map +1 -0
- package/dist/apps/web/react-app-options.d.ts +2 -3
- package/dist/apps/web/react-app-options.js +0 -10
- package/dist/apps/web/react-app-options.js.map +1 -1
- package/dist/apps/web/react-build-result.d.ts +8 -0
- package/dist/apps/web/react-build-result.js +3 -0
- package/dist/apps/web/react-build-result.js.map +1 -0
- package/dist/apps/web/react.application.d.ts +7 -7
- package/dist/apps/web/react.application.js +41 -29
- package/dist/apps/web/react.application.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js.map +1 -1
- package/dist/react.env.d.ts +10 -1
- package/dist/react.env.js +60 -8
- package/dist/react.env.js.map +1 -1
- package/dist/react.main.runtime.js +11 -11
- package/dist/react.main.runtime.js.map +1 -1
- package/dist/templates/react-app/files/app-root.js +7 -1
- package/dist/templates/react-app/files/app-root.js.map +1 -1
- package/dist/templates/react-app/files/compositions.js +1 -1
- package/dist/templates/react-app/files/compositions.js.map +1 -1
- package/dist/templates/workspace-common/files/workspace-config.js +1 -1
- package/dist/templates/workspace-common/files/workspace-config.js.map +1 -1
- package/dist/webpack/get-exposed-rules.d.ts +2 -0
- package/dist/webpack/get-exposed-rules.js +50 -0
- package/dist/webpack/get-exposed-rules.js.map +1 -0
- package/dist/webpack/get-externals.d.ts +1 -0
- package/dist/webpack/get-externals.js +42 -0
- package/dist/webpack/get-externals.js.map +1 -0
- package/dist/webpack/html.d.ts +2 -0
- package/dist/webpack/html.js +31 -0
- package/dist/webpack/html.js.map +1 -0
- package/dist/webpack/index.d.ts +1 -0
- package/dist/webpack/index.js +23 -0
- package/dist/webpack/index.js.map +1 -0
- package/dist/webpack/transformers.d.ts +2 -0
- package/dist/webpack/transformers.js +19 -0
- package/dist/webpack/transformers.js.map +1 -0
- package/dist/webpack/webpack.config.base.js +3 -5
- package/dist/webpack/webpack.config.base.js.map +1 -1
- package/dist/webpack/webpack.config.base.prod.d.ts +1 -1
- package/dist/webpack/webpack.config.base.prod.js +101 -80
- package/dist/webpack/webpack.config.base.prod.js.map +1 -1
- package/package-tar/teambit-react-0.0.630.tgz +0 -0
- package/package.json +38 -36
- package/templates/react-app/files/app-root.ts +7 -1
- package/templates/react-app/files/compositions.ts +1 -1
- package/templates/workspace-common/files/workspace-config.ts +1 -1
- package/webpack/get-exposed-rules.ts +12 -0
- package/webpack/get-externals.ts +8 -0
- package/webpack/html.ts +22 -0
- package/webpack/index.ts +1 -0
- package/webpack/transformers.ts +12 -0
- package/webpack/webpack.config.base.prod.ts +99 -81
- package/webpack/webpack.config.base.ts +3 -5
- package/package-tar/teambit-react-0.0.623.tgz +0 -0
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Bundler, DevServer } from '@teambit/bundler';
|
|
2
|
-
import { DeployContext } from '@teambit/application';
|
|
3
|
-
import { Capsule } from '@teambit/isolator';
|
|
4
2
|
import { WebpackConfigTransformer } from '@teambit/webpack';
|
|
3
|
+
import { ReactDeployContext } from './deploy-context';
|
|
5
4
|
export declare type ReactAppOptions = {
|
|
6
5
|
/**
|
|
7
6
|
* name of the application.
|
|
@@ -37,7 +36,7 @@ export declare type ReactAppOptions = {
|
|
|
37
36
|
/**
|
|
38
37
|
* deploy function.
|
|
39
38
|
*/
|
|
40
|
-
deploy?: (context:
|
|
39
|
+
deploy?: (context: ReactDeployContext) => Promise<void>;
|
|
41
40
|
/**
|
|
42
41
|
* ranges of ports to use to run the app server.
|
|
43
42
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { AppBuildResult } from '@teambit/application';
|
|
2
|
+
export declare type ReactAppBuildResult = {
|
|
3
|
+
/**
|
|
4
|
+
* the directory which includes the built application public assets.
|
|
5
|
+
* when using ssr, public dir is undefined.
|
|
6
|
+
*/
|
|
7
|
+
publicDir?: string;
|
|
8
|
+
} & AppBuildResult;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Application, AppContext, AppBuildResult, DeployContext } from '@teambit/application';
|
|
3
|
-
import { BuildContext } from '@teambit/builder';
|
|
1
|
+
import { Application, AppContext, AppBuildContext } from '@teambit/application';
|
|
4
2
|
import { Bundler, DevServer } from '@teambit/bundler';
|
|
5
3
|
import { WebpackConfigTransformer } from '@teambit/webpack';
|
|
6
4
|
import { ReactEnv } from '../../react.env';
|
|
5
|
+
import { ReactAppBuildResult } from './react-build-result';
|
|
6
|
+
import { ReactDeployContext } from '.';
|
|
7
7
|
export declare class ReactApp implements Application {
|
|
8
8
|
readonly name: string;
|
|
9
9
|
readonly entry: string[];
|
|
@@ -13,12 +13,12 @@ export declare class ReactApp implements Application {
|
|
|
13
13
|
readonly bundler?: Bundler | undefined;
|
|
14
14
|
readonly devServer?: DevServer | undefined;
|
|
15
15
|
readonly transformers?: WebpackConfigTransformer[] | undefined;
|
|
16
|
-
readonly deploy?: ((context:
|
|
17
|
-
constructor(name: string, entry: string[], portRange: number[], reactEnv: ReactEnv, prerenderRoutes?: string[] | undefined, bundler?: Bundler | undefined, devServer?: DevServer | undefined, transformers?: WebpackConfigTransformer[] | undefined, deploy?: ((context:
|
|
16
|
+
readonly deploy?: ((context: ReactDeployContext) => Promise<void>) | undefined;
|
|
17
|
+
constructor(name: string, entry: string[], portRange: number[], reactEnv: ReactEnv, prerenderRoutes?: string[] | undefined, bundler?: Bundler | undefined, devServer?: DevServer | undefined, transformers?: WebpackConfigTransformer[] | undefined, deploy?: ((context: ReactDeployContext) => Promise<void>) | undefined);
|
|
18
18
|
readonly applicationType = "react-common-js";
|
|
19
|
+
readonly dir = "public";
|
|
19
20
|
run(context: AppContext): Promise<number>;
|
|
20
|
-
build(context:
|
|
21
|
-
private getBlobPatterns;
|
|
21
|
+
build(context: AppBuildContext): Promise<ReactAppBuildResult>;
|
|
22
22
|
private getBundler;
|
|
23
23
|
private getDefaultBundler;
|
|
24
24
|
private getPublicDir;
|
|
@@ -51,6 +51,16 @@ function _plugins() {
|
|
|
51
51
|
return data;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
+
function _webpack() {
|
|
55
|
+
const data = require("../../webpack");
|
|
56
|
+
|
|
57
|
+
_webpack = function () {
|
|
58
|
+
return data;
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
return data;
|
|
62
|
+
}
|
|
63
|
+
|
|
54
64
|
class ReactApp {
|
|
55
65
|
constructor(name, entry, portRange, reactEnv, prerenderRoutes, bundler, devServer, transformers, deploy) {
|
|
56
66
|
this.name = name;
|
|
@@ -63,6 +73,7 @@ class ReactApp {
|
|
|
63
73
|
this.transformers = transformers;
|
|
64
74
|
this.deploy = deploy;
|
|
65
75
|
(0, _defineProperty2().default)(this, "applicationType", 'react-common-js');
|
|
76
|
+
(0, _defineProperty2().default)(this, "dir", 'public');
|
|
66
77
|
}
|
|
67
78
|
|
|
68
79
|
async run(context) {
|
|
@@ -90,34 +101,34 @@ class ReactApp {
|
|
|
90
101
|
return port;
|
|
91
102
|
}
|
|
92
103
|
|
|
93
|
-
async build(context
|
|
94
|
-
const
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
artifacts
|
|
99
|
-
});
|
|
100
|
-
return deployContext;
|
|
101
|
-
}
|
|
104
|
+
async build(context) {
|
|
105
|
+
const htmlConfig = [{
|
|
106
|
+
title: context.name,
|
|
107
|
+
templateContent: (0, _webpack().html)(context.name),
|
|
108
|
+
minify: false // filename: ''.html`,
|
|
102
109
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
return {
|
|
107
|
-
name: 'CommonJS',
|
|
108
|
-
globPatterns: [`${this.getPublicDir()}/**`]
|
|
109
|
-
};
|
|
110
|
+
}];
|
|
111
|
+
Object.assign(context, {
|
|
112
|
+
html: htmlConfig
|
|
110
113
|
});
|
|
111
|
-
|
|
112
|
-
|
|
114
|
+
const bundler = await this.getBundler(context);
|
|
115
|
+
await bundler.run();
|
|
116
|
+
return {
|
|
117
|
+
publicDir: `${this.getPublicDir()}/${this.dir}`
|
|
118
|
+
};
|
|
113
119
|
}
|
|
114
120
|
|
|
115
|
-
getBundler(context
|
|
121
|
+
getBundler(context) {
|
|
116
122
|
if (this.bundler) return this.bundler;
|
|
117
|
-
return this.getDefaultBundler(context
|
|
123
|
+
return this.getDefaultBundler(context);
|
|
118
124
|
}
|
|
119
125
|
|
|
120
|
-
async getDefaultBundler(context
|
|
126
|
+
async getDefaultBundler(context) {
|
|
127
|
+
var _this$transformers;
|
|
128
|
+
|
|
129
|
+
const {
|
|
130
|
+
capsule
|
|
131
|
+
} = context;
|
|
121
132
|
const reactEnv = context.env;
|
|
122
133
|
const publicDir = this.getPublicDir();
|
|
123
134
|
const outputPath = (0, _path().join)(capsule.path, publicDir);
|
|
@@ -125,7 +136,7 @@ class ReactApp {
|
|
|
125
136
|
distDir
|
|
126
137
|
} = reactEnv.getCompiler();
|
|
127
138
|
const entries = this.entry.map(entry => require.resolve(`${capsule.path}/${distDir}/${(0, _path().basename)(entry)}`));
|
|
128
|
-
const staticDir = (0, _path().join)(outputPath,
|
|
139
|
+
const staticDir = (0, _path().join)(outputPath, this.dir);
|
|
129
140
|
const bundlerContext = Object.assign(context, {
|
|
130
141
|
targets: [{
|
|
131
142
|
components: [capsule === null || capsule === void 0 ? void 0 : capsule.component],
|
|
@@ -135,17 +146,18 @@ class ReactApp {
|
|
|
135
146
|
entry: [],
|
|
136
147
|
rootPath: '/'
|
|
137
148
|
});
|
|
138
|
-
const bundler = await reactEnv.getBundler(bundlerContext, [configMutator => {
|
|
139
|
-
var _this$transformers;
|
|
140
149
|
|
|
141
|
-
|
|
142
|
-
configMutator.addTopLevel('output', {
|
|
150
|
+
const defaultTransformer = configMutator => {
|
|
151
|
+
const config = configMutator.addTopLevel('output', {
|
|
143
152
|
path: staticDir,
|
|
144
153
|
publicPath: `/`
|
|
145
154
|
});
|
|
146
|
-
if (this.prerenderRoutes)
|
|
147
|
-
return
|
|
148
|
-
}
|
|
155
|
+
if (this.prerenderRoutes) config.addPlugin((0, _plugins().prerenderSPAPlugin)(this.prerenderRoutes, staticDir));
|
|
156
|
+
return config;
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
const transformers = [defaultTransformer, ...((_this$transformers = this.transformers) !== null && _this$transformers !== void 0 ? _this$transformers : [])];
|
|
160
|
+
const bundler = await reactEnv.getBundler(bundlerContext, transformers);
|
|
149
161
|
return bundler;
|
|
150
162
|
}
|
|
151
163
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["react.application.ts"],"names":["ReactApp","constructor","name","entry","portRange","reactEnv","prerenderRoutes","bundler","devServer","transformers","deploy","run","context","from","to","port","Port","getPort","listen","devServerContext","getDevServerContext","getDevServer","configMutator","addTopLevel","historyApiFallback","index","disableDotRule","raw","output","publicPath","build","
|
|
1
|
+
{"version":3,"sources":["react.application.ts"],"names":["ReactApp","constructor","name","entry","portRange","reactEnv","prerenderRoutes","bundler","devServer","transformers","deploy","run","context","from","to","port","Port","getPort","listen","devServerContext","getDevServerContext","getDevServer","configMutator","addTopLevel","historyApiFallback","index","disableDotRule","raw","output","publicPath","build","htmlConfig","title","templateContent","minify","Object","assign","html","getBundler","publicDir","getPublicDir","dir","getDefaultBundler","capsule","env","outputPath","path","distDir","getCompiler","entries","map","require","resolve","staticDir","bundlerContext","targets","components","component","rootPath","defaultTransformer","config","addPlugin","applicationType"],"mappings":"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","sourcesContent":["import { join, basename } from 'path';\nimport { Application, AppContext, AppBuildContext } from '@teambit/application';\nimport { Bundler, DevServer, BundlerContext, DevServerContext, BundlerHtmlConfig } from '@teambit/bundler';\nimport { Port } from '@teambit/toolbox.network.get-port';\nimport { WebpackConfigTransformer } from '@teambit/webpack';\nimport { ReactEnv } from '../../react.env';\nimport { prerenderSPAPlugin } from './plugins';\nimport { ReactAppBuildResult } from './react-build-result';\nimport { html } from '../../webpack';\nimport { ReactDeployContext } from '.';\n\nexport class ReactApp implements Application {\n constructor(\n readonly name: string,\n readonly entry: string[],\n readonly portRange: number[],\n private reactEnv: ReactEnv,\n readonly prerenderRoutes?: string[],\n readonly bundler?: Bundler,\n readonly devServer?: DevServer,\n readonly transformers?: WebpackConfigTransformer[],\n readonly deploy?: (context: ReactDeployContext) => Promise<void>\n ) {}\n\n readonly applicationType = 'react-common-js';\n readonly dir = 'public';\n async run(context: AppContext): Promise<number> {\n const [from, to] = this.portRange;\n const port = await Port.getPort(from, to);\n if (this.devServer) {\n await this.devServer.listen(port);\n return port;\n }\n const devServerContext = this.getDevServerContext(context);\n const devServer = this.reactEnv.getDevServer(devServerContext, [\n (configMutator) => {\n configMutator.addTopLevel('devServer', {\n historyApiFallback: {\n index: '/index.html',\n disableDotRule: true,\n },\n });\n\n if (!configMutator.raw.output) configMutator.raw.output = {};\n configMutator.raw.output.publicPath = '/';\n\n return configMutator;\n },\n ]);\n await devServer.listen(port);\n return port;\n }\n\n async build(context: AppBuildContext): Promise<ReactAppBuildResult> {\n const htmlConfig: BundlerHtmlConfig[] = [\n {\n title: context.name,\n templateContent: html(context.name),\n minify: false,\n // filename: ''.html`,\n },\n ];\n Object.assign(context, { html: htmlConfig });\n const bundler = await this.getBundler(context);\n await bundler.run();\n return { publicDir: `${this.getPublicDir()}/${this.dir}` };\n }\n\n private getBundler(context: AppBuildContext) {\n if (this.bundler) return this.bundler;\n return this.getDefaultBundler(context);\n }\n private async getDefaultBundler(context: AppBuildContext) {\n const { capsule } = context;\n const reactEnv: ReactEnv = context.env;\n const publicDir = this.getPublicDir();\n const outputPath = join(capsule.path, publicDir);\n const { distDir } = reactEnv.getCompiler();\n const entries = this.entry.map((entry) => require.resolve(`${capsule.path}/${distDir}/${basename(entry)}`));\n const staticDir = join(outputPath, this.dir);\n\n const bundlerContext: BundlerContext = Object.assign(context, {\n targets: [\n {\n components: [capsule?.component],\n entries,\n outputPath,\n },\n ],\n entry: [],\n rootPath: '/',\n });\n\n const defaultTransformer: WebpackConfigTransformer = (configMutator) => {\n const config = configMutator.addTopLevel('output', { path: staticDir, publicPath: `/` });\n if (this.prerenderRoutes) config.addPlugin(prerenderSPAPlugin(this.prerenderRoutes, staticDir));\n return config;\n };\n const transformers = [defaultTransformer, ...(this.transformers ?? [])];\n const bundler: Bundler = await reactEnv.getBundler(bundlerContext, transformers);\n return bundler;\n }\n\n private getPublicDir() {\n return join(this.applicationType, this.name);\n }\n\n private getDevServerContext(context: AppContext): DevServerContext {\n return Object.assign(context, {\n entry: this.entry,\n rootPath: '',\n publicPath: `public/${this.name}`,\n title: this.name,\n });\n }\n}\n"]}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export type { ReactMain, UseWebpackModifiers, UseTypescriptModifiers } from './react.main.runtime';
|
|
2
2
|
export type { ReactPreview } from './react.preview.runtime';
|
|
3
3
|
export type { ReactEnv } from './react.env';
|
|
4
|
-
export type { ReactAppOptions } from './apps/web
|
|
4
|
+
export type { ReactAppOptions, ReactDeployContext } from './apps/web';
|
|
5
5
|
export { ReactAspect, ReactAspect as default } from './react.aspect';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAQA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA","sourcesContent":["export type { ReactMain, UseWebpackModifiers, UseTypescriptModifiers } from './react.main.runtime';\nexport type { ReactPreview } from './react.preview.runtime';\nexport type { ReactEnv } from './react.env';\nexport type { ReactAppOptions } from './apps/web
|
|
1
|
+
{"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAQA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA","sourcesContent":["export type { ReactMain, UseWebpackModifiers, UseTypescriptModifiers } from './react.main.runtime';\nexport type { ReactPreview } from './react.preview.runtime';\nexport type { ReactEnv } from './react.env';\nexport type { ReactAppOptions, ReactDeployContext } from './apps/web';\n// Re-export it to indicate for people that extends the react env that we are using it\n// Commented - make errors in safari - SyntaxError: Invalid regular expression: invalid group specifier name\n// export * as styleRegexps from '@teambit/modules.style-regexps';\n\nexport { ReactAspect, ReactAspect as default } from './react.aspect';\n"]}
|
package/dist/react.env.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ import { Linter, LinterContext } from '@teambit/linter';
|
|
|
15
15
|
import { Formatter, FormatterContext } from '@teambit/formatter';
|
|
16
16
|
import { SchemaExtractor } from '@teambit/schema';
|
|
17
17
|
import { ReactMainConfig } from './react.main.runtime';
|
|
18
|
-
export declare const
|
|
18
|
+
export declare const ReactEnvType = "react";
|
|
19
19
|
declare type GetBuildPipeModifiers = PipeServiceModifiersMap & {
|
|
20
20
|
tsModifier?: PipeServiceModifier;
|
|
21
21
|
};
|
|
@@ -116,6 +116,11 @@ export declare class ReactEnv implements TesterEnv, CompilerEnv, LinterEnv, DevE
|
|
|
116
116
|
*/
|
|
117
117
|
getDevServer(context: DevServerContext, transformers?: WebpackConfigTransformer[]): DevServer;
|
|
118
118
|
getBundler(context: BundlerContext, transformers?: WebpackConfigTransformer[]): Promise<Bundler>;
|
|
119
|
+
/**
|
|
120
|
+
* Get the peers configured by the env on the components + the host deps configured by the env
|
|
121
|
+
*/
|
|
122
|
+
private getAllHostDeps;
|
|
123
|
+
getHostDependencies(): string[];
|
|
119
124
|
/**
|
|
120
125
|
* returns a path to a docs template.
|
|
121
126
|
*/
|
|
@@ -125,10 +130,14 @@ export declare class ReactEnv implements TesterEnv, CompilerEnv, LinterEnv, DevE
|
|
|
125
130
|
* returns a paths to a function which mounts a given component to DOM
|
|
126
131
|
*/
|
|
127
132
|
getMounter(): string;
|
|
133
|
+
getPreviewConfig(): {
|
|
134
|
+
splitComponentBundle: boolean;
|
|
135
|
+
};
|
|
128
136
|
/**
|
|
129
137
|
* define the package json properties to add to each component.
|
|
130
138
|
*/
|
|
131
139
|
getPackageJsonProps(): import("@teambit/pkg").PackageJsonProps;
|
|
140
|
+
getNpmIgnore(): string[];
|
|
132
141
|
/**
|
|
133
142
|
* adds dependencies to all configured components.
|
|
134
143
|
*/
|
package/dist/react.env.js
CHANGED
|
@@ -13,7 +13,7 @@ require("core-js/modules/es.string.replace.js");
|
|
|
13
13
|
Object.defineProperty(exports, "__esModule", {
|
|
14
14
|
value: true
|
|
15
15
|
});
|
|
16
|
-
exports.
|
|
16
|
+
exports.ReactEnvType = exports.ReactEnv = void 0;
|
|
17
17
|
|
|
18
18
|
function _defineProperty2() {
|
|
19
19
|
const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
@@ -55,6 +55,16 @@ function _componentModules() {
|
|
|
55
55
|
return data;
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
+
function _builder() {
|
|
59
|
+
const data = require("@teambit/builder");
|
|
60
|
+
|
|
61
|
+
_builder = function () {
|
|
62
|
+
return data;
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
return data;
|
|
66
|
+
}
|
|
67
|
+
|
|
58
68
|
function _lodash() {
|
|
59
69
|
const data = require("lodash");
|
|
60
70
|
|
|
@@ -155,12 +165,22 @@ function _webpackConfigComponent2() {
|
|
|
155
165
|
return data;
|
|
156
166
|
}
|
|
157
167
|
|
|
168
|
+
function _transformers() {
|
|
169
|
+
const data = require("./webpack/transformers");
|
|
170
|
+
|
|
171
|
+
_transformers = function () {
|
|
172
|
+
return data;
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
return data;
|
|
176
|
+
}
|
|
177
|
+
|
|
158
178
|
// webpack configs for both components and envs
|
|
159
179
|
// webpack configs for envs only
|
|
160
180
|
// import devPreviewConfigFactory from './webpack/webpack.config.preview.dev';
|
|
161
181
|
// webpack configs for components only
|
|
162
|
-
const
|
|
163
|
-
exports.
|
|
182
|
+
const ReactEnvType = 'react';
|
|
183
|
+
exports.ReactEnvType = ReactEnvType;
|
|
164
184
|
|
|
165
185
|
const defaultTsConfig = require('./typescript/tsconfig.json');
|
|
166
186
|
|
|
@@ -331,19 +351,23 @@ class ReactEnv {
|
|
|
331
351
|
const baseConfig = (0, _webpackConfig().default)(false);
|
|
332
352
|
const envDevConfig = (0, _webpackConfigEnv().default)(context.id);
|
|
333
353
|
const componentDevConfig = (0, _webpackConfigComponent2().default)(this.workspace.path, context.id);
|
|
354
|
+
const peers = this.getAllHostDeps();
|
|
355
|
+
const peerAliasesTransformer = (0, _transformers().generateAddAliasesFromPeersTransformer)(peers);
|
|
334
356
|
|
|
335
357
|
const defaultTransformer = configMutator => {
|
|
336
358
|
const merged = configMutator.merge([baseConfig, envDevConfig, componentDevConfig]);
|
|
337
359
|
return merged;
|
|
338
360
|
};
|
|
339
361
|
|
|
340
|
-
return this.webpack.createDevServer(context, [defaultTransformer, ...transformers]);
|
|
362
|
+
return this.webpack.createDevServer(context, [defaultTransformer, peerAliasesTransformer, ...transformers]);
|
|
341
363
|
}
|
|
342
364
|
|
|
343
365
|
async getBundler(context, transformers = []) {
|
|
344
366
|
// const fileMapPath = this.writeFileMap(context.components);
|
|
345
|
-
const
|
|
346
|
-
const
|
|
367
|
+
const peers = this.getAllHostDeps();
|
|
368
|
+
const peerAliasesTransformer = (0, _transformers().generateAddAliasesFromPeersTransformer)(peers);
|
|
369
|
+
const baseConfig = (0, _webpackConfig().default)(!context.development);
|
|
370
|
+
const baseProdConfig = (0, _webpackConfigBase().default)(Boolean(context.externalizePeer), peers, context.development); // const componentProdConfig = componentPreviewProdConfigFactory(fileMapPath);
|
|
347
371
|
|
|
348
372
|
const componentProdConfig = (0, _webpackConfigComponent().default)();
|
|
349
373
|
|
|
@@ -352,7 +376,21 @@ class ReactEnv {
|
|
|
352
376
|
return merged;
|
|
353
377
|
};
|
|
354
378
|
|
|
355
|
-
return this.webpack.
|
|
379
|
+
return this.webpack.createBundler(context, [defaultTransformer, peerAliasesTransformer, ...transformers]);
|
|
380
|
+
}
|
|
381
|
+
/**
|
|
382
|
+
* Get the peers configured by the env on the components + the host deps configured by the env
|
|
383
|
+
*/
|
|
384
|
+
|
|
385
|
+
|
|
386
|
+
getAllHostDeps() {
|
|
387
|
+
const hostDeps = this.getHostDependencies();
|
|
388
|
+
const peers = Object.keys(this.getDependencies().peerDependencies).concat(hostDeps);
|
|
389
|
+
return peers;
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
getHostDependencies() {
|
|
393
|
+
return ['@teambit/mdx.ui.mdx-scope-context', '@mdx-js/react'];
|
|
356
394
|
}
|
|
357
395
|
/**
|
|
358
396
|
* returns a path to a docs template.
|
|
@@ -369,6 +407,13 @@ class ReactEnv {
|
|
|
369
407
|
getMounter() {
|
|
370
408
|
return require.resolve('./mount');
|
|
371
409
|
}
|
|
410
|
+
|
|
411
|
+
getPreviewConfig() {
|
|
412
|
+
return {
|
|
413
|
+
// strategyName: 'component',
|
|
414
|
+
splitComponentBundle: true
|
|
415
|
+
};
|
|
416
|
+
}
|
|
372
417
|
/**
|
|
373
418
|
* define the package json properties to add to each component.
|
|
374
419
|
*/
|
|
@@ -377,6 +422,13 @@ class ReactEnv {
|
|
|
377
422
|
getPackageJsonProps() {
|
|
378
423
|
return this.tsAspect.getPackageJsonProps();
|
|
379
424
|
}
|
|
425
|
+
|
|
426
|
+
getNpmIgnore() {
|
|
427
|
+
// ignores only .ts files in the root directory, so d.ts files inside dists are unaffected.
|
|
428
|
+
// without this change, the package has "index.ts" file in the root, causing typescript to parse it instead of the
|
|
429
|
+
// d.ts files. (changing the "types" prop in the package.json file doesn't help).
|
|
430
|
+
return [`${_builder().CAPSULE_ARTIFACTS_DIR}/`];
|
|
431
|
+
}
|
|
380
432
|
/**
|
|
381
433
|
* adds dependencies to all configured components.
|
|
382
434
|
*/
|
|
@@ -428,7 +480,7 @@ class ReactEnv {
|
|
|
428
480
|
|
|
429
481
|
async __getDescriptor() {
|
|
430
482
|
return {
|
|
431
|
-
type:
|
|
483
|
+
type: ReactEnvType
|
|
432
484
|
};
|
|
433
485
|
}
|
|
434
486
|
|
package/dist/react.env.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["react.env.ts"],"names":["AspectEnvType","defaultTsConfig","require","buildTsConfig","eslintConfig","prettierConfig","ReactEnv","constructor","jestAspect","tsAspect","compiler","webpack","workspace","pkg","tester","config","eslint","prettier","getTsConfig","targetTsConfig","getBuildTsConfig","getTester","jestConfigPath","jestModulePath","resolve","createTester","getTsCompilerOptions","mode","tsconfig","pathToSource","__dirname","replace","compileJs","compileJsx","types","getTsCompiler","transformers","tsModule","ts","tsCompileOptions","createCompiler","getCompiler","getLinter","context","defaultTransformer","configMutator","addExtensionTypes","allTransformers","createLinter","pluginPath","getFormatter","createFormatter","getFileMap","components","local","reduce","index","component","state","filesystem","files","forEach","file","path","id","toString","homepage","fullName","ComponentUrl","toUrl","writeFileMap","fileMap","Math","random","substr","JSON","stringify","getDevEnvId","ReactAspect","getSchemaExtractor","createSchemaExtractor","getDevServer","baseConfig","envDevConfig","componentDevConfig","merged","merge","createDevServer","getBundler","baseProdConfig","componentProdConfig","createPreviewBundler","getDocsTemplate","getMounter","getPackageJsonProps","getDependencies","dependencies","react","devDependencies","peerDependencies","getBuildPipe","modifiers","tsModifier","getCompilerTask","module","task","tsCompiler","createTask","__getDescriptor","type"],"mappings":"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","sourcesContent":["import ts, { TsConfigSourceFile } from 'typescript';\nimport { tmpdir } from 'os';\nimport { Component } from '@teambit/component';\nimport { ComponentUrl } from '@teambit/component.modules.component-url';\nimport { BuildTask } from '@teambit/builder';\nimport { merge } from 'lodash';\nimport { Bundler, BundlerContext, DevServer, DevServerContext } from '@teambit/bundler';\nimport { CompilerMain } from '@teambit/compiler';\nimport {\n BuilderEnv,\n CompilerEnv,\n DependenciesEnv,\n DevEnv,\n LinterEnv,\n PackageEnv,\n TesterEnv,\n FormatterEnv,\n PipeServiceModifier,\n PipeServiceModifiersMap,\n} from '@teambit/envs';\nimport { JestMain } from '@teambit/jest';\nimport { PkgMain } from '@teambit/pkg';\nimport { Tester, TesterMain } from '@teambit/tester';\nimport { TsConfigTransformer, TypescriptMain } from '@teambit/typescript';\nimport type { TypeScriptCompilerOptions } from '@teambit/typescript';\nimport { WebpackConfigTransformer, WebpackMain } from '@teambit/webpack';\nimport { Workspace } from '@teambit/workspace';\nimport { ESLintMain, EslintConfigTransformer } from '@teambit/eslint';\nimport { PrettierConfigTransformer, PrettierMain } from '@teambit/prettier';\nimport { Linter, LinterContext } from '@teambit/linter';\nimport { Formatter, FormatterContext } from '@teambit/formatter';\nimport { pathNormalizeToLinux } from '@teambit/legacy/dist/utils';\nimport type { ComponentMeta } from '@teambit/react.ui.highlighter.component-metadata.bit-component-meta';\nimport { SchemaExtractor } from '@teambit/schema';\nimport { join, resolve } from 'path';\nimport { outputFileSync } from 'fs-extra';\n// Makes sure the @teambit/react.ui.docs-app is a dependency\n// TODO: remove this import once we can set policy from component to component with workspace version. Then set it via the component.json\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport { ReactMainConfig } from './react.main.runtime';\nimport { ReactAspect } from './react.aspect';\n\n// webpack configs for both components and envs\nimport basePreviewConfigFactory from './webpack/webpack.config.base';\nimport basePreviewProdConfigFactory from './webpack/webpack.config.base.prod';\n\n// webpack configs for envs only\n// import devPreviewConfigFactory from './webpack/webpack.config.preview.dev';\nimport envPreviewDevConfigFactory from './webpack/webpack.config.env.dev';\n\n// webpack configs for components only\nimport componentPreviewProdConfigFactory from './webpack/webpack.config.component.prod';\nimport componentPreviewDevConfigFactory from './webpack/webpack.config.component.dev';\n\nexport const AspectEnvType = 'react';\nconst defaultTsConfig = require('./typescript/tsconfig.json');\nconst buildTsConfig = require('./typescript/tsconfig.build.json');\nconst eslintConfig = require('./eslint/eslintrc');\nconst prettierConfig = require('./prettier/prettier.config.js');\n\n// TODO: move to be taken from the key mode of compiler context\ntype CompilerMode = 'build' | 'dev';\n\ntype GetBuildPipeModifiers = PipeServiceModifiersMap & {\n tsModifier?: PipeServiceModifier;\n};\n\n/**\n * a component environment built for [React](https://reactjs.org) .\n */\nexport class ReactEnv\n implements TesterEnv, CompilerEnv, LinterEnv, DevEnv, BuilderEnv, DependenciesEnv, PackageEnv, FormatterEnv\n{\n constructor(\n /**\n * jest extension\n */\n private jestAspect: JestMain,\n\n /**\n * typescript extension.\n */\n private tsAspect: TypescriptMain,\n\n /**\n * compiler extension.\n */\n private compiler: CompilerMain,\n\n /**\n * webpack extension.\n */\n private webpack: WebpackMain,\n\n /**\n * workspace extension.\n */\n private workspace: Workspace,\n\n /**\n * pkg extension.\n */\n private pkg: PkgMain,\n\n /**\n * tester extension\n */\n private tester: TesterMain,\n\n private config: ReactMainConfig,\n\n private eslint: ESLintMain,\n\n private prettier: PrettierMain\n ) {}\n\n getTsConfig(targetTsConfig?: TsConfigSourceFile): TsConfigSourceFile {\n return targetTsConfig ? merge({}, defaultTsConfig, targetTsConfig) : defaultTsConfig;\n }\n\n getBuildTsConfig(targetTsConfig?: TsConfigSourceFile): TsConfigSourceFile {\n return targetTsConfig ? merge({}, buildTsConfig, targetTsConfig) : buildTsConfig;\n }\n\n /**\n * returns a component tester.\n */\n getTester(jestConfigPath: string, jestModulePath?: string): Tester {\n const config = jestConfigPath || require.resolve('./jest/jest.config');\n return this.jestAspect.createTester(config, jestModulePath || require.resolve('jest'));\n }\n\n private getTsCompilerOptions(mode: CompilerMode = 'dev'): TypeScriptCompilerOptions {\n const tsconfig = mode === 'dev' ? defaultTsConfig : buildTsConfig;\n const pathToSource = pathNormalizeToLinux(__dirname).replace('/dist/', '/src/');\n const compileJs = true;\n const compileJsx = true;\n return {\n tsconfig,\n // TODO: @david please remove this line and refactor to be something that makes sense.\n types: [resolve(pathToSource, './typescript/style.d.ts'), resolve(pathToSource, './typescript/asset.d.ts')],\n compileJs,\n compileJsx,\n };\n }\n\n private getTsCompiler(mode: CompilerMode = 'dev', transformers: TsConfigTransformer[] = [], tsModule = ts) {\n const tsCompileOptions = this.getTsCompilerOptions(mode);\n return this.tsAspect.createCompiler(tsCompileOptions, transformers, tsModule);\n }\n\n getCompiler(transformers: TsConfigTransformer[] = [], tsModule = ts) {\n return this.getTsCompiler('dev', transformers, tsModule);\n }\n\n /**\n * returns and configures the component linter.\n */\n getLinter(context: LinterContext, transformers: EslintConfigTransformer[] = []): Linter {\n const defaultTransformer: EslintConfigTransformer = (configMutator) => {\n configMutator.addExtensionTypes(['.md', '.mdx']);\n return configMutator;\n };\n\n const allTransformers = [defaultTransformer, ...transformers];\n\n return this.eslint.createLinter(\n context,\n {\n config: eslintConfig,\n // resolve all plugins from the react environment.\n pluginPath: __dirname,\n },\n allTransformers\n );\n }\n\n /**\n * returns and configures the component formatter.\n */\n getFormatter(context: FormatterContext, transformers: PrettierConfigTransformer[] = []): Formatter {\n return this.prettier.createFormatter(\n context,\n {\n config: prettierConfig,\n },\n transformers\n );\n }\n\n private getFileMap(components: Component[], local = false) {\n return components.reduce<{ [key: string]: ComponentMeta }>((index, component: Component) => {\n component.state.filesystem.files.forEach((file) => {\n index[file.path] = {\n id: component.id.toString(),\n homepage: local ? `/${component.id.fullName}` : ComponentUrl.toUrl(component.id),\n };\n });\n\n return index;\n }, {});\n }\n\n private writeFileMap(components: Component[], local?: boolean) {\n const fileMap = this.getFileMap(components, local);\n const path = join(tmpdir(), `${Math.random().toString(36).substr(2, 9)}.json`);\n outputFileSync(path, JSON.stringify(fileMap));\n return path;\n }\n\n /**\n * required for `bit start`\n */\n getDevEnvId(id?: string) {\n if (typeof id !== 'string') return ReactAspect.id;\n return id || ReactAspect.id;\n }\n\n /**\n * get a schema generator instance configured with the correct tsconfig.\n */\n getSchemaExtractor(tsconfig: TsConfigSourceFile): SchemaExtractor {\n return this.tsAspect.createSchemaExtractor(this.getTsConfig(tsconfig));\n }\n\n /**\n * returns and configures the React component dev server.\n * required for `bit start`\n */\n getDevServer(context: DevServerContext, transformers: WebpackConfigTransformer[] = []): DevServer {\n const baseConfig = basePreviewConfigFactory(false);\n const envDevConfig = envPreviewDevConfigFactory(context.id);\n const componentDevConfig = componentPreviewDevConfigFactory(this.workspace.path, context.id);\n\n const defaultTransformer: WebpackConfigTransformer = (configMutator) => {\n const merged = configMutator.merge([baseConfig, envDevConfig, componentDevConfig]);\n return merged;\n };\n\n return this.webpack.createDevServer(context, [defaultTransformer, ...transformers]);\n }\n\n async getBundler(context: BundlerContext, transformers: WebpackConfigTransformer[] = []): Promise<Bundler> {\n // const fileMapPath = this.writeFileMap(context.components);\n const baseConfig = basePreviewConfigFactory(true);\n const baseProdConfig = basePreviewProdConfigFactory();\n // const componentProdConfig = componentPreviewProdConfigFactory(fileMapPath);\n const componentProdConfig = componentPreviewProdConfigFactory();\n\n const defaultTransformer: WebpackConfigTransformer = (configMutator) => {\n const merged = configMutator.merge([baseConfig, baseProdConfig, componentProdConfig]);\n return merged;\n };\n\n return this.webpack.createPreviewBundler(context, [defaultTransformer, ...transformers]);\n }\n\n /**\n * returns a path to a docs template.\n */\n getDocsTemplate() {\n return require.resolve('@teambit/react.ui.docs-app');\n }\n\n icon = 'https://static.bit.dev/extensions-icons/react.svg';\n\n /**\n * returns a paths to a function which mounts a given component to DOM\n */\n getMounter() {\n return require.resolve('./mount');\n }\n\n /**\n * define the package json properties to add to each component.\n */\n getPackageJsonProps() {\n return this.tsAspect.getPackageJsonProps();\n }\n\n /**\n * adds dependencies to all configured components.\n */\n getDependencies() {\n return {\n dependencies: {\n react: '-',\n 'react-dom': '-',\n 'core-js': '^3.0.0',\n },\n // TODO: add this only if using ts\n devDependencies: {\n react: '-',\n 'react-dom': '-',\n '@types/mocha': '-',\n '@types/node': '12.20.4',\n '@types/react': '^17.0.8',\n '@types/react-dom': '^17.0.5',\n '@types/jest': '^26.0.0',\n // '@types/react-router-dom': '^5.0.0', // TODO - should not be here (!)\n // This is added as dev dep since our jest file transformer uses babel plugins that require this to be installed\n '@babel/runtime': '7.12.18',\n '@types/testing-library__jest-dom': '5.9.5',\n },\n peerDependencies: {\n react: '^16.8.0 || ^17.0.0',\n 'react-dom': '^16.8.0 || ^17.0.0',\n },\n };\n }\n\n /**\n * returns the component build pipeline.\n */\n getBuildPipe(modifiers: GetBuildPipeModifiers = {}): BuildTask[] {\n const transformers: TsConfigTransformer[] =\n (modifiers?.tsModifier?.transformers as any as TsConfigTransformer[]) || [];\n return [this.getCompilerTask(transformers, modifiers?.tsModifier?.module || ts), this.tester.task];\n }\n\n private getCompilerTask(transformers: TsConfigTransformer[] = [], tsModule = ts) {\n const tsCompiler = this.getTsCompiler('build', transformers, tsModule);\n return this.compiler.createTask('TSCompiler', tsCompiler);\n }\n\n async __getDescriptor() {\n return {\n type: AspectEnvType,\n };\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["react.env.ts"],"names":["ReactEnvType","defaultTsConfig","require","buildTsConfig","eslintConfig","prettierConfig","ReactEnv","constructor","jestAspect","tsAspect","compiler","webpack","workspace","pkg","tester","config","eslint","prettier","getTsConfig","targetTsConfig","getBuildTsConfig","getTester","jestConfigPath","jestModulePath","resolve","createTester","getTsCompilerOptions","mode","tsconfig","pathToSource","__dirname","replace","compileJs","compileJsx","types","getTsCompiler","transformers","tsModule","ts","tsCompileOptions","createCompiler","getCompiler","getLinter","context","defaultTransformer","configMutator","addExtensionTypes","allTransformers","createLinter","pluginPath","getFormatter","createFormatter","getFileMap","components","local","reduce","index","component","state","filesystem","files","forEach","file","path","id","toString","homepage","fullName","ComponentUrl","toUrl","writeFileMap","fileMap","Math","random","substr","JSON","stringify","getDevEnvId","ReactAspect","getSchemaExtractor","createSchemaExtractor","getDevServer","baseConfig","envDevConfig","componentDevConfig","peers","getAllHostDeps","peerAliasesTransformer","merged","merge","createDevServer","getBundler","development","baseProdConfig","Boolean","externalizePeer","componentProdConfig","createBundler","hostDeps","getHostDependencies","Object","keys","getDependencies","peerDependencies","concat","getDocsTemplate","getMounter","getPreviewConfig","splitComponentBundle","getPackageJsonProps","getNpmIgnore","CAPSULE_ARTIFACTS_DIR","dependencies","react","devDependencies","getBuildPipe","modifiers","tsModifier","getCompilerTask","module","task","tsCompiler","createTask","__getDescriptor","type"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AA0BA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAKA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAIA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAXA;AAIA;AACA;AAGA;AAKO,MAAMA,YAAY,GAAG,OAArB;;;AACP,MAAMC,eAAe,GAAGC,OAAO,CAAC,4BAAD,CAA/B;;AACA,MAAMC,aAAa,GAAGD,OAAO,CAAC,kCAAD,CAA7B;;AACA,MAAME,YAAY,GAAGF,OAAO,CAAC,mBAAD,CAA5B;;AACA,MAAMG,cAAc,GAAGH,OAAO,CAAC,+BAAD,CAA9B,C,CAEA;;;AAOA;AACA;AACA;AACO,MAAMI,QAAN,CAEP;AACEC,EAAAA,WAAW;AACT;AACJ;AACA;AACYC,EAAAA,UAJC;AAMT;AACJ;AACA;AACYC,EAAAA,QATC;AAWT;AACJ;AACA;AACYC,EAAAA,QAdC;AAgBT;AACJ;AACA;AACYC,EAAAA,OAnBC;AAqBT;AACJ;AACA;AACYC,EAAAA,SAxBC;AA0BT;AACJ;AACA;AACYC,EAAAA,GA7BC;AA+BT;AACJ;AACA;AACYC,EAAAA,MAlCC,EAoCDC,MApCC,EAsCDC,MAtCC,EAwCDC,QAxCC,EAyCT;AAAA,SArCQT,UAqCR,GArCQA,UAqCR;AAAA,SAhCQC,QAgCR,GAhCQA,QAgCR;AAAA,SA3BQC,QA2BR,GA3BQA,QA2BR;AAAA,SAtBQC,OAsBR,GAtBQA,OAsBR;AAAA,SAjBQC,SAiBR,GAjBQA,SAiBR;AAAA,SAZQC,GAYR,GAZQA,GAYR;AAAA,SAPQC,MAOR,GAPQA,MAOR;AAAA,SALQC,MAKR,GALQA,MAKR;AAAA,SAHQC,MAGR,GAHQA,MAGR;AAAA,SADQC,QACR,GADQA,QACR;AAAA,kDAwKK,mDAxKL;AAAE;;AAEJC,EAAAA,WAAW,CAACC,cAAD,EAA0D;AACnE,WAAOA,cAAc,GAAG,qBAAM,EAAN,EAAUlB,eAAV,EAA2BkB,cAA3B,CAAH,GAAgDlB,eAArE;AACD;;AAEDmB,EAAAA,gBAAgB,CAACD,cAAD,EAA0D;AACxE,WAAOA,cAAc,GAAG,qBAAM,EAAN,EAAUhB,aAAV,EAAyBgB,cAAzB,CAAH,GAA8ChB,aAAnE;AACD;AAED;AACF;AACA;;;AACEkB,EAAAA,SAAS,CAACC,cAAD,EAAyBC,cAAzB,EAA0D;AACjE,UAAMR,MAAM,GAAGO,cAAc,IAAIpB,OAAO,CAACsB,OAAR,CAAgB,oBAAhB,CAAjC;;AACA,WAAO,KAAKhB,UAAL,CAAgBiB,YAAhB,CAA6BV,MAA7B,EAAqCQ,cAAc,IAAIrB,OAAO,CAACsB,OAAR,CAAgB,MAAhB,CAAvD,CAAP;AACD;;AAEOE,EAAAA,oBAAoB,CAACC,IAAkB,GAAG,KAAtB,EAAwD;AAClF,UAAMC,QAAQ,GAAGD,IAAI,KAAK,KAAT,GAAiB1B,eAAjB,GAAmCE,aAApD;AACA,UAAM0B,YAAY,GAAG,mCAAqBC,SAArB,EAAgCC,OAAhC,CAAwC,QAAxC,EAAkD,OAAlD,CAArB;AACA,UAAMC,SAAS,GAAG,IAAlB;AACA,UAAMC,UAAU,GAAG,IAAnB;AACA,WAAO;AACLL,MAAAA,QADK;AAEL;AACAM,MAAAA,KAAK,EAAE,CAAC,qBAAQL,YAAR,EAAsB,yBAAtB,CAAD,EAAmD,qBAAQA,YAAR,EAAsB,yBAAtB,CAAnD,CAHF;AAILG,MAAAA,SAJK;AAKLC,MAAAA;AALK,KAAP;AAOD;;AAEOE,EAAAA,aAAa,CAACR,IAAkB,GAAG,KAAtB,EAA6BS,YAAmC,GAAG,EAAnE,EAAuEC,QAAQ,GAAGC,qBAAlF,EAAsF;AACzG,UAAMC,gBAAgB,GAAG,KAAKb,oBAAL,CAA0BC,IAA1B,CAAzB;AACA,WAAO,KAAKlB,QAAL,CAAc+B,cAAd,CAA6BD,gBAA7B,EAA+CH,YAA/C,EAA6DC,QAA7D,CAAP;AACD;;AAEDI,EAAAA,WAAW,CAACL,YAAmC,GAAG,EAAvC,EAA2CC,QAAQ,GAAGC,qBAAtD,EAA0D;AACnE,WAAO,KAAKH,aAAL,CAAmB,KAAnB,EAA0BC,YAA1B,EAAwCC,QAAxC,CAAP;AACD;AAED;AACF;AACA;;;AACEK,EAAAA,SAAS,CAACC,OAAD,EAAyBP,YAAuC,GAAG,EAAnE,EAA+E;AACtF,UAAMQ,kBAA2C,GAAIC,aAAD,IAAmB;AACrEA,MAAAA,aAAa,CAACC,iBAAd,CAAgC,CAAC,KAAD,EAAQ,MAAR,CAAhC;AACA,aAAOD,aAAP;AACD,KAHD;;AAKA,UAAME,eAAe,GAAG,CAACH,kBAAD,EAAqB,GAAGR,YAAxB,CAAxB;AAEA,WAAO,KAAKpB,MAAL,CAAYgC,YAAZ,CACLL,OADK,EAEL;AACE5B,MAAAA,MAAM,EAAEX,YADV;AAEE;AACA6C,MAAAA,UAAU,EAAEnB;AAHd,KAFK,EAOLiB,eAPK,CAAP;AASD;AAED;AACF;AACA;;;AACEG,EAAAA,YAAY,CAACP,OAAD,EAA4BP,YAAyC,GAAG,EAAxE,EAAuF;AACjG,WAAO,KAAKnB,QAAL,CAAckC,eAAd,CACLR,OADK,EAEL;AACE5B,MAAAA,MAAM,EAAEV;AADV,KAFK,EAKL+B,YALK,CAAP;AAOD;;AAEOgB,EAAAA,UAAU,CAACC,UAAD,EAA0BC,KAAK,GAAG,KAAlC,EAAyC;AACzD,WAAOD,UAAU,CAACE,MAAX,CAAoD,CAACC,KAAD,EAAQC,SAAR,KAAiC;AAC1FA,MAAAA,SAAS,CAACC,KAAV,CAAgBC,UAAhB,CAA2BC,KAA3B,CAAiCC,OAAjC,CAA0CC,IAAD,IAAU;AACjDN,QAAAA,KAAK,CAACM,IAAI,CAACC,IAAN,CAAL,GAAmB;AACjBC,UAAAA,EAAE,EAAEP,SAAS,CAACO,EAAV,CAAaC,QAAb,EADa;AAEjBC,UAAAA,QAAQ,EAAEZ,KAAK,GAAI,IAAGG,SAAS,CAACO,EAAV,CAAaG,QAAS,EAA7B,GAAiCC,iCAAaC,KAAb,CAAmBZ,SAAS,CAACO,EAA7B;AAF/B,SAAnB;AAID,OALD;AAOA,aAAOR,KAAP;AACD,KATM,EASJ,EATI,CAAP;AAUD;;AAEOc,EAAAA,YAAY,CAACjB,UAAD,EAA0BC,KAA1B,EAA2C;AAC7D,UAAMiB,OAAO,GAAG,KAAKnB,UAAL,CAAgBC,UAAhB,EAA4BC,KAA5B,CAAhB;AACA,UAAMS,IAAI,GAAG,kBAAK,mBAAL,EAAgB,GAAES,IAAI,CAACC,MAAL,GAAcR,QAAd,CAAuB,EAAvB,EAA2BS,MAA3B,CAAkC,CAAlC,EAAqC,CAArC,CAAwC,OAA1D,CAAb;AACA,mCAAeX,IAAf,EAAqBY,IAAI,CAACC,SAAL,CAAeL,OAAf,CAArB;AACA,WAAOR,IAAP;AACD;AAED;AACF;AACA;;;AACEc,EAAAA,WAAW,CAACb,EAAD,EAAc;AACvB,QAAI,OAAOA,EAAP,KAAc,QAAlB,EAA4B,OAAOc,qBAAYd,EAAnB;AAC5B,WAAOA,EAAE,IAAIc,qBAAYd,EAAzB;AACD;AAED;AACF;AACA;;;AACEe,EAAAA,kBAAkB,CAACnD,QAAD,EAAgD;AAChE,WAAO,KAAKnB,QAAL,CAAcuE,qBAAd,CAAoC,KAAK9D,WAAL,CAAiBU,QAAjB,CAApC,CAAP;AACD;AAED;AACF;AACA;AACA;;;AACEqD,EAAAA,YAAY,CAACtC,OAAD,EAA4BP,YAAwC,GAAG,EAAvE,EAAsF;AAChG,UAAM8C,UAAU,GAAG,8BAAyB,KAAzB,CAAnB;AACA,UAAMC,YAAY,GAAG,iCAA2BxC,OAAO,CAACqB,EAAnC,CAArB;AACA,UAAMoB,kBAAkB,GAAG,wCAAiC,KAAKxE,SAAL,CAAemD,IAAhD,EAAsDpB,OAAO,CAACqB,EAA9D,CAA3B;AACA,UAAMqB,KAAK,GAAG,KAAKC,cAAL,EAAd;AACA,UAAMC,sBAAsB,GAAG,4DAAuCF,KAAvC,CAA/B;;AAEA,UAAMzC,kBAA4C,GAAIC,aAAD,IAAmB;AACtE,YAAM2C,MAAM,GAAG3C,aAAa,CAAC4C,KAAd,CAAoB,CAACP,UAAD,EAAaC,YAAb,EAA2BC,kBAA3B,CAApB,CAAf;AACA,aAAOI,MAAP;AACD,KAHD;;AAKA,WAAO,KAAK7E,OAAL,CAAa+E,eAAb,CAA6B/C,OAA7B,EAAsC,CAACC,kBAAD,EAAqB2C,sBAArB,EAA6C,GAAGnD,YAAhD,CAAtC,CAAP;AACD;;AAEe,QAAVuD,UAAU,CAAChD,OAAD,EAA0BP,YAAwC,GAAG,EAArE,EAA2F;AACzG;AACA,UAAMiD,KAAK,GAAG,KAAKC,cAAL,EAAd;AAEA,UAAMC,sBAAsB,GAAG,4DAAuCF,KAAvC,CAA/B;AACA,UAAMH,UAAU,GAAG,8BAAyB,CAACvC,OAAO,CAACiD,WAAlC,CAAnB;AACA,UAAMC,cAAc,GAAG,kCAA6BC,OAAO,CAACnD,OAAO,CAACoD,eAAT,CAApC,EAA+DV,KAA/D,EAAsE1C,OAAO,CAACiD,WAA9E,CAAvB,CANyG,CAOzG;;AACA,UAAMI,mBAAmB,GAAG,wCAA5B;;AAEA,UAAMpD,kBAA4C,GAAIC,aAAD,IAAmB;AACtE,YAAM2C,MAAM,GAAG3C,aAAa,CAAC4C,KAAd,CAAoB,CAACP,UAAD,EAAaW,cAAb,EAA6BG,mBAA7B,CAApB,CAAf;AACA,aAAOR,MAAP;AACD,KAHD;;AAKA,WAAO,KAAK7E,OAAL,CAAasF,aAAb,CAA2BtD,OAA3B,EAAoC,CAACC,kBAAD,EAAqB2C,sBAArB,EAA6C,GAAGnD,YAAhD,CAApC,CAAP;AACD;AAED;AACF;AACA;;;AACUkD,EAAAA,cAAc,GAAG;AACvB,UAAMY,QAAQ,GAAG,KAAKC,mBAAL,EAAjB;AACA,UAAMd,KAAK,GAAGe,MAAM,CAACC,IAAP,CAAY,KAAKC,eAAL,GAAuBC,gBAAnC,EAAqDC,MAArD,CAA4DN,QAA5D,CAAd;AACA,WAAOb,KAAP;AACD;;AAEDc,EAAAA,mBAAmB,GAAa;AAC9B,WAAO,CAAC,mCAAD,EAAsC,eAAtC,CAAP;AACD;AAED;AACF;AACA;;;AACEM,EAAAA,eAAe,GAAG;AAChB,WAAOvG,OAAO,CAACsB,OAAR,CAAgB,4BAAhB,CAAP;AACD;;AAID;AACF;AACA;AACEkF,EAAAA,UAAU,GAAG;AACX,WAAOxG,OAAO,CAACsB,OAAR,CAAgB,SAAhB,CAAP;AACD;;AAEDmF,EAAAA,gBAAgB,GAAG;AACjB,WAAO;AACL;AACAC,MAAAA,oBAAoB,EAAE;AAFjB,KAAP;AAID;AAED;AACF;AACA;;;AACEC,EAAAA,mBAAmB,GAAG;AACpB,WAAO,KAAKpG,QAAL,CAAcoG,mBAAd,EAAP;AACD;;AAEDC,EAAAA,YAAY,GAAG;AACb;AACA;AACA;AACA,WAAO,CAAE,GAAEC,gCAAsB,GAA1B,CAAP;AACD;AAED;AACF;AACA;;;AACET,EAAAA,eAAe,GAAG;AAChB,WAAO;AACLU,MAAAA,YAAY,EAAE;AACZC,QAAAA,KAAK,EAAE,GADK;AAEZ,qBAAa,GAFD;AAGZ,mBAAW;AAHC,OADT;AAML;AACAC,MAAAA,eAAe,EAAE;AACfD,QAAAA,KAAK,EAAE,GADQ;AAEf,qBAAa,GAFE;AAGf,wBAAgB,GAHD;AAIf,uBAAe,SAJA;AAKf,wBAAgB,SALD;AAMf,4BAAoB,SANL;AAOf,uBAAe,SAPA;AAQf;AACA;AACA,0BAAkB,SAVH;AAWf,4CAAoC;AAXrB,OAPZ;AAoBLV,MAAAA,gBAAgB,EAAE;AAChBU,QAAAA,KAAK,EAAE,oBADS;AAEhB,qBAAa;AAFG;AApBb,KAAP;AAyBD;AAED;AACF;AACA;;;AACEE,EAAAA,YAAY,CAACC,SAAgC,GAAG,EAApC,EAAqD;AAAA;;AAC/D,UAAMhF,YAAmC,GACvC,CAACgF,SAAD,aAACA,SAAD,gDAACA,SAAS,CAAEC,UAAZ,0DAAC,sBAAuBjF,YAAxB,KAAyE,EAD3E;AAEA,WAAO,CAAC,KAAKkF,eAAL,CAAqBlF,YAArB,EAAmC,CAAAgF,SAAS,SAAT,IAAAA,SAAS,WAAT,sCAAAA,SAAS,CAAEC,UAAX,kFAAuBE,MAAvB,KAAiCjF,qBAApE,CAAD,EAA0E,KAAKxB,MAAL,CAAY0G,IAAtF,CAAP;AACD;;AAEOF,EAAAA,eAAe,CAAClF,YAAmC,GAAG,EAAvC,EAA2CC,QAAQ,GAAGC,qBAAtD,EAA0D;AAC/E,UAAMmF,UAAU,GAAG,KAAKtF,aAAL,CAAmB,OAAnB,EAA4BC,YAA5B,EAA0CC,QAA1C,CAAnB;AACA,WAAO,KAAK3B,QAAL,CAAcgH,UAAd,CAAyB,YAAzB,EAAuCD,UAAvC,CAAP;AACD;;AAEoB,QAAfE,eAAe,GAAG;AACtB,WAAO;AACLC,MAAAA,IAAI,EAAE5H;AADD,KAAP;AAGD;;AAjSH","sourcesContent":["import ts, { TsConfigSourceFile } from 'typescript';\nimport { tmpdir } from 'os';\nimport { Component } from '@teambit/component';\nimport { ComponentUrl } from '@teambit/component.modules.component-url';\nimport { BuildTask, CAPSULE_ARTIFACTS_DIR } from '@teambit/builder';\nimport { merge } from 'lodash';\nimport { Bundler, BundlerContext, DevServer, DevServerContext } from '@teambit/bundler';\nimport { CompilerMain } from '@teambit/compiler';\nimport {\n BuilderEnv,\n CompilerEnv,\n DependenciesEnv,\n DevEnv,\n LinterEnv,\n PackageEnv,\n TesterEnv,\n FormatterEnv,\n PipeServiceModifier,\n PipeServiceModifiersMap,\n} from '@teambit/envs';\nimport { JestMain } from '@teambit/jest';\nimport { PkgMain } from '@teambit/pkg';\nimport { Tester, TesterMain } from '@teambit/tester';\nimport { TsConfigTransformer, TypescriptMain } from '@teambit/typescript';\nimport type { TypeScriptCompilerOptions } from '@teambit/typescript';\nimport { WebpackConfigTransformer, WebpackMain } from '@teambit/webpack';\nimport { Workspace } from '@teambit/workspace';\nimport { ESLintMain, EslintConfigTransformer } from '@teambit/eslint';\nimport { PrettierConfigTransformer, PrettierMain } from '@teambit/prettier';\nimport { Linter, LinterContext } from '@teambit/linter';\nimport { Formatter, FormatterContext } from '@teambit/formatter';\nimport { pathNormalizeToLinux } from '@teambit/legacy/dist/utils';\nimport type { ComponentMeta } from '@teambit/react.ui.highlighter.component-metadata.bit-component-meta';\nimport { SchemaExtractor } from '@teambit/schema';\nimport { join, resolve } from 'path';\nimport { outputFileSync } from 'fs-extra';\n// Makes sure the @teambit/react.ui.docs-app is a dependency\n// TODO: remove this import once we can set policy from component to component with workspace version. Then set it via the component.json\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport { ReactMainConfig } from './react.main.runtime';\nimport { ReactAspect } from './react.aspect';\n\n// webpack configs for both components and envs\nimport basePreviewConfigFactory from './webpack/webpack.config.base';\nimport basePreviewProdConfigFactory from './webpack/webpack.config.base.prod';\n\n// webpack configs for envs only\n// import devPreviewConfigFactory from './webpack/webpack.config.preview.dev';\nimport envPreviewDevConfigFactory from './webpack/webpack.config.env.dev';\n\n// webpack configs for components only\nimport componentPreviewProdConfigFactory from './webpack/webpack.config.component.prod';\nimport componentPreviewDevConfigFactory from './webpack/webpack.config.component.dev';\nimport { generateAddAliasesFromPeersTransformer } from './webpack/transformers';\n\nexport const ReactEnvType = 'react';\nconst defaultTsConfig = require('./typescript/tsconfig.json');\nconst buildTsConfig = require('./typescript/tsconfig.build.json');\nconst eslintConfig = require('./eslint/eslintrc');\nconst prettierConfig = require('./prettier/prettier.config.js');\n\n// TODO: move to be taken from the key mode of compiler context\ntype CompilerMode = 'build' | 'dev';\n\ntype GetBuildPipeModifiers = PipeServiceModifiersMap & {\n tsModifier?: PipeServiceModifier;\n};\n\n/**\n * a component environment built for [React](https://reactjs.org) .\n */\nexport class ReactEnv\n implements TesterEnv, CompilerEnv, LinterEnv, DevEnv, BuilderEnv, DependenciesEnv, PackageEnv, FormatterEnv\n{\n constructor(\n /**\n * jest extension\n */\n private jestAspect: JestMain,\n\n /**\n * typescript extension.\n */\n private tsAspect: TypescriptMain,\n\n /**\n * compiler extension.\n */\n private compiler: CompilerMain,\n\n /**\n * webpack extension.\n */\n private webpack: WebpackMain,\n\n /**\n * workspace extension.\n */\n private workspace: Workspace,\n\n /**\n * pkg extension.\n */\n private pkg: PkgMain,\n\n /**\n * tester extension\n */\n private tester: TesterMain,\n\n private config: ReactMainConfig,\n\n private eslint: ESLintMain,\n\n private prettier: PrettierMain\n ) {}\n\n getTsConfig(targetTsConfig?: TsConfigSourceFile): TsConfigSourceFile {\n return targetTsConfig ? merge({}, defaultTsConfig, targetTsConfig) : defaultTsConfig;\n }\n\n getBuildTsConfig(targetTsConfig?: TsConfigSourceFile): TsConfigSourceFile {\n return targetTsConfig ? merge({}, buildTsConfig, targetTsConfig) : buildTsConfig;\n }\n\n /**\n * returns a component tester.\n */\n getTester(jestConfigPath: string, jestModulePath?: string): Tester {\n const config = jestConfigPath || require.resolve('./jest/jest.config');\n return this.jestAspect.createTester(config, jestModulePath || require.resolve('jest'));\n }\n\n private getTsCompilerOptions(mode: CompilerMode = 'dev'): TypeScriptCompilerOptions {\n const tsconfig = mode === 'dev' ? defaultTsConfig : buildTsConfig;\n const pathToSource = pathNormalizeToLinux(__dirname).replace('/dist/', '/src/');\n const compileJs = true;\n const compileJsx = true;\n return {\n tsconfig,\n // TODO: @david please remove this line and refactor to be something that makes sense.\n types: [resolve(pathToSource, './typescript/style.d.ts'), resolve(pathToSource, './typescript/asset.d.ts')],\n compileJs,\n compileJsx,\n };\n }\n\n private getTsCompiler(mode: CompilerMode = 'dev', transformers: TsConfigTransformer[] = [], tsModule = ts) {\n const tsCompileOptions = this.getTsCompilerOptions(mode);\n return this.tsAspect.createCompiler(tsCompileOptions, transformers, tsModule);\n }\n\n getCompiler(transformers: TsConfigTransformer[] = [], tsModule = ts) {\n return this.getTsCompiler('dev', transformers, tsModule);\n }\n\n /**\n * returns and configures the component linter.\n */\n getLinter(context: LinterContext, transformers: EslintConfigTransformer[] = []): Linter {\n const defaultTransformer: EslintConfigTransformer = (configMutator) => {\n configMutator.addExtensionTypes(['.md', '.mdx']);\n return configMutator;\n };\n\n const allTransformers = [defaultTransformer, ...transformers];\n\n return this.eslint.createLinter(\n context,\n {\n config: eslintConfig,\n // resolve all plugins from the react environment.\n pluginPath: __dirname,\n },\n allTransformers\n );\n }\n\n /**\n * returns and configures the component formatter.\n */\n getFormatter(context: FormatterContext, transformers: PrettierConfigTransformer[] = []): Formatter {\n return this.prettier.createFormatter(\n context,\n {\n config: prettierConfig,\n },\n transformers\n );\n }\n\n private getFileMap(components: Component[], local = false) {\n return components.reduce<{ [key: string]: ComponentMeta }>((index, component: Component) => {\n component.state.filesystem.files.forEach((file) => {\n index[file.path] = {\n id: component.id.toString(),\n homepage: local ? `/${component.id.fullName}` : ComponentUrl.toUrl(component.id),\n };\n });\n\n return index;\n }, {});\n }\n\n private writeFileMap(components: Component[], local?: boolean) {\n const fileMap = this.getFileMap(components, local);\n const path = join(tmpdir(), `${Math.random().toString(36).substr(2, 9)}.json`);\n outputFileSync(path, JSON.stringify(fileMap));\n return path;\n }\n\n /**\n * required for `bit start`\n */\n getDevEnvId(id?: string) {\n if (typeof id !== 'string') return ReactAspect.id;\n return id || ReactAspect.id;\n }\n\n /**\n * get a schema generator instance configured with the correct tsconfig.\n */\n getSchemaExtractor(tsconfig: TsConfigSourceFile): SchemaExtractor {\n return this.tsAspect.createSchemaExtractor(this.getTsConfig(tsconfig));\n }\n\n /**\n * returns and configures the React component dev server.\n * required for `bit start`\n */\n getDevServer(context: DevServerContext, transformers: WebpackConfigTransformer[] = []): DevServer {\n const baseConfig = basePreviewConfigFactory(false);\n const envDevConfig = envPreviewDevConfigFactory(context.id);\n const componentDevConfig = componentPreviewDevConfigFactory(this.workspace.path, context.id);\n const peers = this.getAllHostDeps();\n const peerAliasesTransformer = generateAddAliasesFromPeersTransformer(peers);\n\n const defaultTransformer: WebpackConfigTransformer = (configMutator) => {\n const merged = configMutator.merge([baseConfig, envDevConfig, componentDevConfig]);\n return merged;\n };\n\n return this.webpack.createDevServer(context, [defaultTransformer, peerAliasesTransformer, ...transformers]);\n }\n\n async getBundler(context: BundlerContext, transformers: WebpackConfigTransformer[] = []): Promise<Bundler> {\n // const fileMapPath = this.writeFileMap(context.components);\n const peers = this.getAllHostDeps();\n\n const peerAliasesTransformer = generateAddAliasesFromPeersTransformer(peers);\n const baseConfig = basePreviewConfigFactory(!context.development);\n const baseProdConfig = basePreviewProdConfigFactory(Boolean(context.externalizePeer), peers, context.development);\n // const componentProdConfig = componentPreviewProdConfigFactory(fileMapPath);\n const componentProdConfig = componentPreviewProdConfigFactory();\n\n const defaultTransformer: WebpackConfigTransformer = (configMutator) => {\n const merged = configMutator.merge([baseConfig, baseProdConfig, componentProdConfig]);\n return merged;\n };\n\n return this.webpack.createBundler(context, [defaultTransformer, peerAliasesTransformer, ...transformers]);\n }\n\n /**\n * Get the peers configured by the env on the components + the host deps configured by the env\n */\n private getAllHostDeps() {\n const hostDeps = this.getHostDependencies();\n const peers = Object.keys(this.getDependencies().peerDependencies).concat(hostDeps);\n return peers;\n }\n\n getHostDependencies(): string[] {\n return ['@teambit/mdx.ui.mdx-scope-context', '@mdx-js/react'];\n }\n\n /**\n * returns a path to a docs template.\n */\n getDocsTemplate() {\n return require.resolve('@teambit/react.ui.docs-app');\n }\n\n icon = 'https://static.bit.dev/extensions-icons/react.svg';\n\n /**\n * returns a paths to a function which mounts a given component to DOM\n */\n getMounter() {\n return require.resolve('./mount');\n }\n\n getPreviewConfig() {\n return {\n // strategyName: 'component',\n splitComponentBundle: true,\n };\n }\n\n /**\n * define the package json properties to add to each component.\n */\n getPackageJsonProps() {\n return this.tsAspect.getPackageJsonProps();\n }\n\n getNpmIgnore() {\n // ignores only .ts files in the root directory, so d.ts files inside dists are unaffected.\n // without this change, the package has \"index.ts\" file in the root, causing typescript to parse it instead of the\n // d.ts files. (changing the \"types\" prop in the package.json file doesn't help).\n return [`${CAPSULE_ARTIFACTS_DIR}/`];\n }\n\n /**\n * adds dependencies to all configured components.\n */\n getDependencies() {\n return {\n dependencies: {\n react: '-',\n 'react-dom': '-',\n 'core-js': '^3.0.0',\n },\n // TODO: add this only if using ts\n devDependencies: {\n react: '-',\n 'react-dom': '-',\n '@types/mocha': '-',\n '@types/node': '12.20.4',\n '@types/react': '^17.0.8',\n '@types/react-dom': '^17.0.5',\n '@types/jest': '^26.0.0',\n // '@types/react-router-dom': '^5.0.0', // TODO - should not be here (!)\n // This is added as dev dep since our jest file transformer uses babel plugins that require this to be installed\n '@babel/runtime': '7.12.18',\n '@types/testing-library__jest-dom': '5.9.5',\n },\n peerDependencies: {\n react: '^16.8.0 || ^17.0.0',\n 'react-dom': '^16.8.0 || ^17.0.0',\n },\n };\n }\n\n /**\n * returns the component build pipeline.\n */\n getBuildPipe(modifiers: GetBuildPipeModifiers = {}): BuildTask[] {\n const transformers: TsConfigTransformer[] =\n (modifiers?.tsModifier?.transformers as any as TsConfigTransformer[]) || [];\n return [this.getCompilerTask(transformers, modifiers?.tsModifier?.module || ts), this.tester.task];\n }\n\n private getCompilerTask(transformers: TsConfigTransformer[] = [], tsModule = ts) {\n const tsCompiler = this.getTsCompiler('build', transformers, tsModule);\n return this.compiler.createTask('TSCompiler', tsCompiler);\n }\n\n async __getDescriptor() {\n return {\n type: ReactEnvType,\n };\n }\n}\n"]}
|
|
@@ -213,30 +213,30 @@ function _react2() {
|
|
|
213
213
|
return data;
|
|
214
214
|
}
|
|
215
215
|
|
|
216
|
-
function
|
|
217
|
-
const data = require("./apps/web
|
|
216
|
+
function _web() {
|
|
217
|
+
const data = require("./apps/web");
|
|
218
218
|
|
|
219
|
-
|
|
219
|
+
_web = function () {
|
|
220
220
|
return data;
|
|
221
221
|
};
|
|
222
222
|
|
|
223
223
|
return data;
|
|
224
224
|
}
|
|
225
225
|
|
|
226
|
-
function
|
|
226
|
+
function _react3() {
|
|
227
227
|
const data = require("./react.graphql");
|
|
228
228
|
|
|
229
|
-
|
|
229
|
+
_react3 = function () {
|
|
230
230
|
return data;
|
|
231
231
|
};
|
|
232
232
|
|
|
233
233
|
return data;
|
|
234
234
|
}
|
|
235
235
|
|
|
236
|
-
function
|
|
236
|
+
function _react4() {
|
|
237
237
|
const data = require("./react.templates");
|
|
238
238
|
|
|
239
|
-
|
|
239
|
+
_react4 = function () {
|
|
240
240
|
return data;
|
|
241
241
|
};
|
|
242
242
|
|
|
@@ -554,11 +554,11 @@ class ReactMain {
|
|
|
554
554
|
static async provider([envs, jestAspect, tsAspect, compiler, webpack, workspace, graphql, pkg, tester, eslint, prettier, application, generator], config) {
|
|
555
555
|
const reactEnv = new (_react2().ReactEnv)(jestAspect, tsAspect, compiler, webpack, workspace, pkg, tester, config, eslint, prettier);
|
|
556
556
|
const react = new ReactMain(reactEnv, envs, application, workspace);
|
|
557
|
-
graphql.register((0,
|
|
557
|
+
graphql.register((0, _react3().reactSchema)(react));
|
|
558
558
|
envs.registerEnv(reactEnv);
|
|
559
|
-
generator.registerComponentTemplate(
|
|
560
|
-
generator.registerWorkspaceTemplate(
|
|
561
|
-
application.registerAppType(new (
|
|
559
|
+
generator.registerComponentTemplate(_react4().componentTemplates);
|
|
560
|
+
generator.registerWorkspaceTemplate(_react4().workspaceTemplates);
|
|
561
|
+
application.registerAppType(new (_web().ReactAppType)('react-app', reactEnv));
|
|
562
562
|
return react;
|
|
563
563
|
}
|
|
564
564
|
|