@teambit/react 0.0.598 → 0.0.599
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/apps/web/default-bundler.ts +0 -0
- package/apps/web/plugins/index.ts +1 -0
- package/apps/web/plugins/prerender.ts +13 -0
- package/apps/web/react-app-options.ts +54 -0
- package/apps/web/react.app-type.ts +22 -0
- package/apps/web/react.application.ts +118 -0
- package/dist/apps/web/default-bundler.d.ts +0 -0
- package/dist/apps/web/default-bundler.js +3 -0
- package/dist/{react-app-options.js.map → apps/web/default-bundler.js.map} +0 -0
- package/dist/apps/web/plugins/index.d.ts +1 -0
- package/dist/apps/web/plugins/index.js +23 -0
- package/dist/apps/web/plugins/index.js.map +1 -0
- package/dist/apps/web/plugins/prerender.d.ts +1 -0
- package/dist/apps/web/plugins/prerender.js +45 -0
- package/dist/apps/web/plugins/prerender.js.map +1 -0
- package/dist/{react-app-options.d.ts → apps/web/react-app-options.d.ts} +10 -10
- package/dist/apps/web/react-app-options.js +13 -0
- package/dist/apps/web/react-app-options.js.map +1 -0
- package/dist/{react.app-type.d.ts → apps/web/react.app-type.d.ts} +1 -1
- package/dist/{react.app-type.js → apps/web/react.app-type.js} +3 -1
- package/dist/apps/web/react.app-type.js.map +1 -0
- package/dist/apps/web/react.application.d.ts +26 -0
- package/dist/{react.application.js → apps/web/react.application.js} +66 -37
- package/dist/apps/web/react.application.js.map +1 -0
- package/dist/index.d.ts +1 -2
- package/dist/index.js.map +1 -1
- package/dist/react.main.runtime.d.ts +0 -5
- package/dist/react.main.runtime.js +4 -23
- package/dist/react.main.runtime.js.map +1 -1
- package/package-tar/teambit-react-0.0.599.tgz +0 -0
- package/package.json +33 -33
- package/dist/react-app-options.js +0 -3
- package/dist/react.app-type.js.map +0 -1
- package/dist/react.application.d.ts +0 -18
- package/dist/react.application.js.map +0 -1
- package/package-tar/teambit-react-0.0.598.tgz +0 -0
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { prerenderSPAPlugin } from './prerender';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { join } from 'path';
|
|
2
|
+
import PrerenderSPAPlugin from '@dreysolano/prerender-spa-plugin';
|
|
3
|
+
|
|
4
|
+
export const prerenderSPAPlugin = (prerenderRoutes: string[], staticDir: string) => {
|
|
5
|
+
return new PrerenderSPAPlugin({
|
|
6
|
+
staticDir,
|
|
7
|
+
routes: prerenderRoutes,
|
|
8
|
+
postProcess(renderedRoute: any) {
|
|
9
|
+
renderedRoute.outputPath = join(staticDir, `${renderedRoute.originalRoute}.html`);
|
|
10
|
+
return renderedRoute;
|
|
11
|
+
},
|
|
12
|
+
});
|
|
13
|
+
};
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Bundler, DevServer } from '@teambit/bundler';
|
|
2
|
+
import { DeployContext } from '@teambit/application';
|
|
3
|
+
import { Capsule } from '@teambit/isolator';
|
|
4
|
+
import { WebpackConfigTransformer } from '@teambit/webpack';
|
|
5
|
+
|
|
6
|
+
export type ReactAppOptions = {
|
|
7
|
+
/**
|
|
8
|
+
* name of the application.
|
|
9
|
+
*/
|
|
10
|
+
name: string;
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* path to entry files of the application.
|
|
14
|
+
*/
|
|
15
|
+
entry: string[];
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* use server-side rendering for the app.
|
|
19
|
+
*/
|
|
20
|
+
ssr?: boolean;
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* instance of bundler to use. default is Webpack.
|
|
24
|
+
*/
|
|
25
|
+
bundler?: Bundler;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* instance of dev server to use. default is Webpack.
|
|
29
|
+
*/
|
|
30
|
+
devServer?: DevServer;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* set webpack transformers
|
|
34
|
+
*/
|
|
35
|
+
webpackTransformers?: WebpackConfigTransformer[];
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* decide whether to prerender your app. accepts an array of routes. if none, prerender would not apply.
|
|
39
|
+
* e.g ['/plugins', '/learn', '/docs/quick-start]
|
|
40
|
+
*/
|
|
41
|
+
prerender?: {
|
|
42
|
+
routes?: string[];
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* deploy function.
|
|
47
|
+
*/
|
|
48
|
+
deploy?: (context: DeployContext, Capsule: Capsule) => Promise<void>;
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* ranges of ports to use to run the app server.
|
|
52
|
+
*/
|
|
53
|
+
portRange?: number[];
|
|
54
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ApplicationType } from '@teambit/application';
|
|
2
|
+
import { ReactAppOptions } from './react-app-options';
|
|
3
|
+
import { ReactApp } from './react.application';
|
|
4
|
+
import { ReactEnv } from '../../react.env';
|
|
5
|
+
|
|
6
|
+
export class ReactAppType implements ApplicationType<ReactAppOptions> {
|
|
7
|
+
constructor(readonly name: string, private reactEnv: ReactEnv) {}
|
|
8
|
+
|
|
9
|
+
createApp(options: ReactAppOptions) {
|
|
10
|
+
return new ReactApp(
|
|
11
|
+
options.name,
|
|
12
|
+
options.entry,
|
|
13
|
+
options.portRange || [3000, 4000],
|
|
14
|
+
this.reactEnv,
|
|
15
|
+
options.prerender?.routes,
|
|
16
|
+
options.bundler,
|
|
17
|
+
options.devServer,
|
|
18
|
+
options.webpackTransformers,
|
|
19
|
+
options.deploy
|
|
20
|
+
);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { join, basename } from 'path';
|
|
2
|
+
import { Capsule } from '@teambit/isolator';
|
|
3
|
+
import { Application, AppContext, AppBuildResult, DeployContext } from '@teambit/application';
|
|
4
|
+
import { ArtifactDefinition, BuildContext } from '@teambit/builder';
|
|
5
|
+
import { Bundler, DevServer, BundlerResult, BundlerContext, DevServerContext } from '@teambit/bundler';
|
|
6
|
+
import { Port } from '@teambit/toolbox.network.get-port';
|
|
7
|
+
import { WebpackConfigTransformer } from '@teambit/webpack';
|
|
8
|
+
import { ReactEnv } from '../../react.env';
|
|
9
|
+
import { prerenderSPAPlugin } from './plugins';
|
|
10
|
+
|
|
11
|
+
export class ReactApp implements Application {
|
|
12
|
+
constructor(
|
|
13
|
+
readonly name: string,
|
|
14
|
+
readonly entry: string[],
|
|
15
|
+
readonly portRange: number[],
|
|
16
|
+
private reactEnv: ReactEnv,
|
|
17
|
+
readonly prerenderRoutes?: string[],
|
|
18
|
+
readonly bundler?: Bundler,
|
|
19
|
+
readonly devServer?: DevServer,
|
|
20
|
+
readonly transformers?: WebpackConfigTransformer[],
|
|
21
|
+
readonly deploy?: (context: DeployContext, capsule: Capsule) => Promise<void>
|
|
22
|
+
) {}
|
|
23
|
+
|
|
24
|
+
readonly applicationType = 'react-common-js';
|
|
25
|
+
async run(context: AppContext): Promise<number> {
|
|
26
|
+
const [from, to] = this.portRange;
|
|
27
|
+
const port = await Port.getPort(from, to);
|
|
28
|
+
if (this.devServer) {
|
|
29
|
+
await this.devServer.listen(port);
|
|
30
|
+
return port;
|
|
31
|
+
}
|
|
32
|
+
const devServerContext = this.getDevServerContext(context);
|
|
33
|
+
const devServer = this.reactEnv.getDevServer(devServerContext, [
|
|
34
|
+
(configMutator) => {
|
|
35
|
+
configMutator.addTopLevel('devServer', {
|
|
36
|
+
historyApiFallback: {
|
|
37
|
+
index: '/index.html',
|
|
38
|
+
disableDotRule: true,
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
if (!configMutator.raw.output) configMutator.raw.output = {};
|
|
43
|
+
configMutator.raw.output.publicPath = '/';
|
|
44
|
+
|
|
45
|
+
return configMutator;
|
|
46
|
+
},
|
|
47
|
+
]);
|
|
48
|
+
await devServer.listen(port);
|
|
49
|
+
return port;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
async build(context: BuildContext, capsule: Capsule): Promise<AppBuildResult> {
|
|
53
|
+
const bundler = await this.getBundler(context, capsule);
|
|
54
|
+
const bundlerResult = await bundler.run();
|
|
55
|
+
const artifacts: ArtifactDefinition[] = this.getBlobPatterns(bundlerResult);
|
|
56
|
+
const deployContext: AppBuildResult = Object.assign(context, { artifacts });
|
|
57
|
+
return deployContext;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
private getBlobPatterns(bundlerResults: BundlerResult[]) {
|
|
61
|
+
const _globs = bundlerResults.map((result) => {
|
|
62
|
+
if (!result.outputPath) return undefined;
|
|
63
|
+
return {
|
|
64
|
+
name: 'CommonJS',
|
|
65
|
+
globPatterns: [`${this.getPublicDir()}/**`],
|
|
66
|
+
};
|
|
67
|
+
});
|
|
68
|
+
return _globs.filter((glob) => !!glob) as ArtifactDefinition[];
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
private getBundler(context: BuildContext, capsule: Capsule) {
|
|
72
|
+
if (this.bundler) return this.bundler;
|
|
73
|
+
return this.getDefaultBundler(context, capsule);
|
|
74
|
+
}
|
|
75
|
+
private async getDefaultBundler(context: BuildContext, capsule: Capsule) {
|
|
76
|
+
const reactEnv: ReactEnv = context.env;
|
|
77
|
+
const publicDir = this.getPublicDir();
|
|
78
|
+
const outputPath = join(capsule.path, publicDir);
|
|
79
|
+
const { distDir } = reactEnv.getCompiler();
|
|
80
|
+
const entries = this.entry.map((entry) => require.resolve(`${capsule.path}/${distDir}/${basename(entry)}`));
|
|
81
|
+
const staticDir = join(outputPath, 'public');
|
|
82
|
+
|
|
83
|
+
const bundlerContext: BundlerContext = Object.assign(context, {
|
|
84
|
+
targets: [
|
|
85
|
+
{
|
|
86
|
+
components: [capsule?.component],
|
|
87
|
+
entries,
|
|
88
|
+
outputPath,
|
|
89
|
+
},
|
|
90
|
+
],
|
|
91
|
+
entry: [],
|
|
92
|
+
rootPath: '/',
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
const bundler: Bundler = await reactEnv.getBundler(bundlerContext, [
|
|
96
|
+
(configMutator) => {
|
|
97
|
+
if (this.transformers?.length) configMutator.addPlugin(this.transformers);
|
|
98
|
+
configMutator.addTopLevel('output', { path: staticDir, publicPath: `/` });
|
|
99
|
+
if (this.prerenderRoutes) configMutator.addPlugin(prerenderSPAPlugin(this.prerenderRoutes, staticDir));
|
|
100
|
+
return configMutator;
|
|
101
|
+
},
|
|
102
|
+
]);
|
|
103
|
+
return bundler;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
private getPublicDir() {
|
|
107
|
+
return join(this.applicationType, this.name);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
private getDevServerContext(context: AppContext): DevServerContext {
|
|
111
|
+
return Object.assign(context, {
|
|
112
|
+
entry: this.entry,
|
|
113
|
+
rootPath: '',
|
|
114
|
+
publicPath: `public/${this.name}`,
|
|
115
|
+
title: this.name,
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
}
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { prerenderSPAPlugin } from './prerender';
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "prerenderSPAPlugin", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _prerender().prerenderSPAPlugin;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
function _prerender() {
|
|
14
|
+
const data = require("./prerender");
|
|
15
|
+
|
|
16
|
+
_prerender = function () {
|
|
17
|
+
return data;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
return data;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA","sourcesContent":["export { prerenderSPAPlugin } from './prerender';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const prerenderSPAPlugin: (prerenderRoutes: string[], staticDir: string) => any;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.prerenderSPAPlugin = void 0;
|
|
9
|
+
|
|
10
|
+
function _path() {
|
|
11
|
+
const data = require("path");
|
|
12
|
+
|
|
13
|
+
_path = function () {
|
|
14
|
+
return data;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
return data;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function _prerenderSpaPlugin() {
|
|
21
|
+
const data = _interopRequireDefault(require("@dreysolano/prerender-spa-plugin"));
|
|
22
|
+
|
|
23
|
+
_prerenderSpaPlugin = function () {
|
|
24
|
+
return data;
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
return data;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
const prerenderSPAPlugin = (prerenderRoutes, staticDir) => {
|
|
31
|
+
return new (_prerenderSpaPlugin().default)({
|
|
32
|
+
staticDir,
|
|
33
|
+
routes: prerenderRoutes,
|
|
34
|
+
|
|
35
|
+
postProcess(renderedRoute) {
|
|
36
|
+
renderedRoute.outputPath = (0, _path().join)(staticDir, `${renderedRoute.originalRoute}.html`);
|
|
37
|
+
return renderedRoute;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
exports.prerenderSPAPlugin = prerenderSPAPlugin;
|
|
44
|
+
|
|
45
|
+
//# sourceMappingURL=prerender.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["prerender.ts"],"names":["prerenderSPAPlugin","prerenderRoutes","staticDir","PrerenderSPAPlugin","routes","postProcess","renderedRoute","outputPath","originalRoute"],"mappings":";;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEO,MAAMA,kBAAkB,GAAG,CAACC,eAAD,EAA4BC,SAA5B,KAAkD;AAClF,SAAO,KAAIC,6BAAJ,EAAuB;AAC5BD,IAAAA,SAD4B;AAE5BE,IAAAA,MAAM,EAAEH,eAFoB;;AAG5BI,IAAAA,WAAW,CAACC,aAAD,EAAqB;AAC9BA,MAAAA,aAAa,CAACC,UAAd,GAA2B,kBAAKL,SAAL,EAAiB,GAAEI,aAAa,CAACE,aAAc,OAA/C,CAA3B;AACA,aAAOF,aAAP;AACD;;AAN2B,GAAvB,CAAP;AAQD,CATM","sourcesContent":["import { join } from 'path';\nimport PrerenderSPAPlugin from '@dreysolano/prerender-spa-plugin';\n\nexport const prerenderSPAPlugin = (prerenderRoutes: string[], staticDir: string) => {\n return new PrerenderSPAPlugin({\n staticDir,\n routes: prerenderRoutes,\n postProcess(renderedRoute: any) {\n renderedRoute.outputPath = join(staticDir, `${renderedRoute.originalRoute}.html`);\n return renderedRoute;\n },\n });\n};\n"]}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { Bundler, DevServer } from '@teambit/bundler';
|
|
2
2
|
import { DeployContext } from '@teambit/application';
|
|
3
3
|
import { Capsule } from '@teambit/isolator';
|
|
4
|
-
|
|
5
|
-
publicDir: string;
|
|
6
|
-
}
|
|
4
|
+
import { WebpackConfigTransformer } from '@teambit/webpack';
|
|
7
5
|
export declare type ReactAppOptions = {
|
|
8
6
|
/**
|
|
9
7
|
* name of the application.
|
|
@@ -26,18 +24,20 @@ export declare type ReactAppOptions = {
|
|
|
26
24
|
*/
|
|
27
25
|
devServer?: DevServer;
|
|
28
26
|
/**
|
|
29
|
-
*
|
|
27
|
+
* set webpack transformers
|
|
30
28
|
*/
|
|
31
|
-
|
|
29
|
+
webpackTransformers?: WebpackConfigTransformer[];
|
|
32
30
|
/**
|
|
33
|
-
*
|
|
31
|
+
* decide whether to prerender your app. accepts an array of routes. if none, prerender would not apply.
|
|
32
|
+
* e.g ['/plugins', '/learn', '/docs/quick-start]
|
|
34
33
|
*/
|
|
35
|
-
|
|
34
|
+
prerender?: {
|
|
35
|
+
routes?: string[];
|
|
36
|
+
};
|
|
36
37
|
/**
|
|
37
|
-
*
|
|
38
|
-
* e.g ['/plugins', '/learn', '/docs/quick-start]
|
|
38
|
+
* deploy function.
|
|
39
39
|
*/
|
|
40
|
-
|
|
40
|
+
deploy?: (context: DeployContext, Capsule: Capsule) => Promise<void>;
|
|
41
41
|
/**
|
|
42
42
|
* ranges of ports to use to run the app server.
|
|
43
43
|
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["react-app-options.ts"],"names":[],"mappings":";;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA","sourcesContent":["import { Bundler, DevServer } from '@teambit/bundler';\nimport { DeployContext } from '@teambit/application';\nimport { Capsule } from '@teambit/isolator';\nimport { WebpackConfigTransformer } from '@teambit/webpack';\n\nexport type ReactAppOptions = {\n /**\n * name of the application.\n */\n name: string;\n\n /**\n * path to entry files of the application.\n */\n entry: string[];\n\n /**\n * use server-side rendering for the app.\n */\n ssr?: boolean;\n\n /**\n * instance of bundler to use. default is Webpack.\n */\n bundler?: Bundler;\n\n /**\n * instance of dev server to use. default is Webpack.\n */\n devServer?: DevServer;\n\n /**\n * set webpack transformers\n */\n webpackTransformers?: WebpackConfigTransformer[];\n\n /**\n * decide whether to prerender your app. accepts an array of routes. if none, prerender would not apply.\n * e.g ['/plugins', '/learn', '/docs/quick-start]\n */\n prerender?: {\n routes?: string[];\n };\n\n /**\n * deploy function.\n */\n deploy?: (context: DeployContext, Capsule: Capsule) => Promise<void>;\n\n /**\n * ranges of ports to use to run the app server.\n */\n portRange?: number[];\n};\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ApplicationType } from '@teambit/application';
|
|
2
|
-
import { ReactEnv } from './react.env';
|
|
3
2
|
import { ReactAppOptions } from './react-app-options';
|
|
4
3
|
import { ReactApp } from './react.application';
|
|
4
|
+
import { ReactEnv } from '../../react.env';
|
|
5
5
|
export declare class ReactAppType implements ApplicationType<ReactAppOptions> {
|
|
6
6
|
readonly name: string;
|
|
7
7
|
private reactEnv;
|
|
@@ -22,7 +22,9 @@ class ReactAppType {
|
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
createApp(options) {
|
|
25
|
-
|
|
25
|
+
var _options$prerender;
|
|
26
|
+
|
|
27
|
+
return new (_react().ReactApp)(options.name, options.entry, options.portRange || [3000, 4000], this.reactEnv, (_options$prerender = options.prerender) === null || _options$prerender === void 0 ? void 0 : _options$prerender.routes, options.bundler, options.devServer, options.webpackTransformers, options.deploy);
|
|
26
28
|
}
|
|
27
29
|
|
|
28
30
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["react.app-type.ts"],"names":["ReactAppType","constructor","name","reactEnv","createApp","options","ReactApp","entry","portRange","prerender","routes","bundler","devServer","webpackTransformers","deploy"],"mappings":";;;;;;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGO,MAAMA,YAAN,CAA+D;AACpEC,EAAAA,WAAW,CAAUC,IAAV,EAAgCC,QAAhC,EAAoD;AAAA,SAA1CD,IAA0C,GAA1CA,IAA0C;AAAA,SAApBC,QAAoB,GAApBA,QAAoB;AAAE;;AAEjEC,EAAAA,SAAS,CAACC,OAAD,EAA2B;AAAA;;AAClC,WAAO,KAAIC,iBAAJ,EACLD,OAAO,CAACH,IADH,EAELG,OAAO,CAACE,KAFH,EAGLF,OAAO,CAACG,SAAR,IAAqB,CAAC,IAAD,EAAO,IAAP,CAHhB,EAIL,KAAKL,QAJA,wBAKLE,OAAO,CAACI,SALH,uDAKL,mBAAmBC,MALd,EAMLL,OAAO,CAACM,OANH,EAOLN,OAAO,CAACO,SAPH,EAQLP,OAAO,CAACQ,mBARH,EASLR,OAAO,CAACS,MATH,CAAP;AAWD;;AAfmE","sourcesContent":["import { ApplicationType } from '@teambit/application';\nimport { ReactAppOptions } from './react-app-options';\nimport { ReactApp } from './react.application';\nimport { ReactEnv } from '../../react.env';\n\nexport class ReactAppType implements ApplicationType<ReactAppOptions> {\n constructor(readonly name: string, private reactEnv: ReactEnv) {}\n\n createApp(options: ReactAppOptions) {\n return new ReactApp(\n options.name,\n options.entry,\n options.portRange || [3000, 4000],\n this.reactEnv,\n options.prerender?.routes,\n options.bundler,\n options.devServer,\n options.webpackTransformers,\n options.deploy\n );\n }\n}\n"]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Capsule } from '@teambit/isolator';
|
|
2
|
+
import { Application, AppContext, AppBuildResult, DeployContext } from '@teambit/application';
|
|
3
|
+
import { BuildContext } from '@teambit/builder';
|
|
4
|
+
import { Bundler, DevServer } from '@teambit/bundler';
|
|
5
|
+
import { WebpackConfigTransformer } from '@teambit/webpack';
|
|
6
|
+
import { ReactEnv } from '../../react.env';
|
|
7
|
+
export declare class ReactApp implements Application {
|
|
8
|
+
readonly name: string;
|
|
9
|
+
readonly entry: string[];
|
|
10
|
+
readonly portRange: number[];
|
|
11
|
+
private reactEnv;
|
|
12
|
+
readonly prerenderRoutes?: string[] | undefined;
|
|
13
|
+
readonly bundler?: Bundler | undefined;
|
|
14
|
+
readonly devServer?: DevServer | undefined;
|
|
15
|
+
readonly transformers?: WebpackConfigTransformer[] | undefined;
|
|
16
|
+
readonly deploy?: ((context: DeployContext, capsule: Capsule) => 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: DeployContext, capsule: Capsule) => Promise<void>) | undefined);
|
|
18
|
+
readonly applicationType = "react-common-js";
|
|
19
|
+
run(context: AppContext): Promise<number>;
|
|
20
|
+
build(context: BuildContext, capsule: Capsule): Promise<AppBuildResult>;
|
|
21
|
+
private getBlobPatterns;
|
|
22
|
+
private getBundler;
|
|
23
|
+
private getDefaultBundler;
|
|
24
|
+
private getPublicDir;
|
|
25
|
+
private getDevServerContext;
|
|
26
|
+
}
|
|
@@ -21,30 +21,30 @@ function _defineProperty2() {
|
|
|
21
21
|
return data;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
function
|
|
25
|
-
const data =
|
|
24
|
+
function _path() {
|
|
25
|
+
const data = require("path");
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
_path = function () {
|
|
28
28
|
return data;
|
|
29
29
|
};
|
|
30
30
|
|
|
31
31
|
return data;
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
function
|
|
35
|
-
const data = require("
|
|
34
|
+
function _toolboxNetwork() {
|
|
35
|
+
const data = require("@teambit/toolbox.network.get-port");
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
_toolboxNetwork = function () {
|
|
38
38
|
return data;
|
|
39
39
|
};
|
|
40
40
|
|
|
41
41
|
return data;
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
function
|
|
45
|
-
const data = require("
|
|
44
|
+
function _plugins() {
|
|
45
|
+
const data = require("./plugins");
|
|
46
46
|
|
|
47
|
-
|
|
47
|
+
_plugins = function () {
|
|
48
48
|
return data;
|
|
49
49
|
};
|
|
50
50
|
|
|
@@ -52,17 +52,28 @@ function _toolboxNetwork() {
|
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
class ReactApp {
|
|
55
|
-
constructor(name, entry, portRange, reactEnv,
|
|
55
|
+
constructor(name, entry, portRange, reactEnv, prerenderRoutes, bundler, devServer, transformers, deploy) {
|
|
56
56
|
this.name = name;
|
|
57
57
|
this.entry = entry;
|
|
58
58
|
this.portRange = portRange;
|
|
59
59
|
this.reactEnv = reactEnv;
|
|
60
|
-
this.deploy = deploy;
|
|
61
60
|
this.prerenderRoutes = prerenderRoutes;
|
|
62
|
-
|
|
61
|
+
this.bundler = bundler;
|
|
62
|
+
this.devServer = devServer;
|
|
63
|
+
this.transformers = transformers;
|
|
64
|
+
this.deploy = deploy;
|
|
65
|
+
(0, _defineProperty2().default)(this, "applicationType", 'react-common-js');
|
|
63
66
|
}
|
|
64
67
|
|
|
65
68
|
async run(context) {
|
|
69
|
+
const [from, to] = this.portRange;
|
|
70
|
+
const port = await _toolboxNetwork().Port.getPort(from, to);
|
|
71
|
+
|
|
72
|
+
if (this.devServer) {
|
|
73
|
+
await this.devServer.listen(port);
|
|
74
|
+
return port;
|
|
75
|
+
}
|
|
76
|
+
|
|
66
77
|
const devServerContext = this.getDevServerContext(context);
|
|
67
78
|
const devServer = this.reactEnv.getDevServer(devServerContext, [configMutator => {
|
|
68
79
|
configMutator.addTopLevel('devServer', {
|
|
@@ -75,23 +86,49 @@ class ReactApp {
|
|
|
75
86
|
configMutator.raw.output.publicPath = '/';
|
|
76
87
|
return configMutator;
|
|
77
88
|
}]);
|
|
78
|
-
const [from, to] = this.portRange;
|
|
79
|
-
const port = await _toolboxNetwork().Port.getPort(from, to);
|
|
80
89
|
await devServer.listen(port);
|
|
81
90
|
return port;
|
|
82
91
|
}
|
|
83
92
|
|
|
84
|
-
async build(context,
|
|
93
|
+
async build(context, capsule) {
|
|
94
|
+
const bundler = await this.getBundler(context, capsule);
|
|
95
|
+
const bundlerResult = await bundler.run();
|
|
96
|
+
const artifacts = this.getBlobPatterns(bundlerResult);
|
|
97
|
+
const deployContext = Object.assign(context, {
|
|
98
|
+
artifacts
|
|
99
|
+
});
|
|
100
|
+
return deployContext;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
getBlobPatterns(bundlerResults) {
|
|
104
|
+
const _globs = bundlerResults.map(result => {
|
|
105
|
+
if (!result.outputPath) return undefined;
|
|
106
|
+
return {
|
|
107
|
+
name: 'CommonJS',
|
|
108
|
+
globPatterns: [`${this.getPublicDir()}/**`]
|
|
109
|
+
};
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
return _globs.filter(glob => !!glob);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
getBundler(context, capsule) {
|
|
116
|
+
if (this.bundler) return this.bundler;
|
|
117
|
+
return this.getDefaultBundler(context, capsule);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
async getDefaultBundler(context, capsule) {
|
|
85
121
|
const reactEnv = context.env;
|
|
86
|
-
const publicDir =
|
|
87
|
-
const outputPath = (0, _path().join)(
|
|
122
|
+
const publicDir = this.getPublicDir();
|
|
123
|
+
const outputPath = (0, _path().join)(capsule.path, publicDir);
|
|
88
124
|
const {
|
|
89
125
|
distDir
|
|
90
126
|
} = reactEnv.getCompiler();
|
|
91
|
-
const entries = this.entry.map(entry => require.resolve(`${
|
|
127
|
+
const entries = this.entry.map(entry => require.resolve(`${capsule.path}/${distDir}/${(0, _path().basename)(entry)}`));
|
|
128
|
+
const staticDir = (0, _path().join)(outputPath, 'public');
|
|
92
129
|
const bundlerContext = Object.assign(context, {
|
|
93
130
|
targets: [{
|
|
94
|
-
components: [
|
|
131
|
+
components: [capsule === null || capsule === void 0 ? void 0 : capsule.component],
|
|
95
132
|
entries,
|
|
96
133
|
outputPath
|
|
97
134
|
}],
|
|
@@ -99,29 +136,21 @@ class ReactApp {
|
|
|
99
136
|
rootPath: '/'
|
|
100
137
|
});
|
|
101
138
|
const bundler = await reactEnv.getBundler(bundlerContext, [configMutator => {
|
|
139
|
+
var _this$transformers;
|
|
140
|
+
|
|
141
|
+
if ((_this$transformers = this.transformers) !== null && _this$transformers !== void 0 && _this$transformers.length) configMutator.addPlugin(this.transformers);
|
|
102
142
|
configMutator.addTopLevel('output', {
|
|
103
|
-
path:
|
|
143
|
+
path: staticDir,
|
|
104
144
|
publicPath: `/`
|
|
105
145
|
});
|
|
106
|
-
configMutator.addPlugin(
|
|
107
|
-
staticDir: (0, _path().join)(outputPath, 'public'),
|
|
108
|
-
routes: this.prerenderRoutes,
|
|
109
|
-
|
|
110
|
-
postProcess(renderedRoute) {
|
|
111
|
-
renderedRoute.outputPath = (0, _path().join)(outputPath, 'public', `${renderedRoute.originalRoute}.html`);
|
|
112
|
-
return renderedRoute;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
}));
|
|
146
|
+
if (this.prerenderRoutes) configMutator.addPlugin((0, _plugins().prerenderSPAPlugin)(this.prerenderRoutes, staticDir));
|
|
116
147
|
return configMutator;
|
|
117
148
|
}]);
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
});
|
|
124
|
-
return deployContext;
|
|
149
|
+
return bundler;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
getPublicDir() {
|
|
153
|
+
return (0, _path().join)(this.applicationType, this.name);
|
|
125
154
|
}
|
|
126
155
|
|
|
127
156
|
getDevServerContext(context) {
|
|
@@ -0,0 +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","capsule","getBundler","bundlerResult","artifacts","getBlobPatterns","deployContext","Object","assign","bundlerResults","_globs","map","result","outputPath","undefined","globPatterns","getPublicDir","filter","glob","getDefaultBundler","env","publicDir","path","distDir","getCompiler","entries","require","resolve","staticDir","bundlerContext","targets","components","component","rootPath","length","addPlugin","applicationType","title"],"mappings":"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","sourcesContent":["import { join, basename } from 'path';\nimport { Capsule } from '@teambit/isolator';\nimport { Application, AppContext, AppBuildResult, DeployContext } from '@teambit/application';\nimport { ArtifactDefinition, BuildContext } from '@teambit/builder';\nimport { Bundler, DevServer, BundlerResult, BundlerContext, DevServerContext } 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';\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: DeployContext, capsule: Capsule) => Promise<void>\n ) {}\n\n readonly applicationType = 'react-common-js';\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: BuildContext, capsule: Capsule): Promise<AppBuildResult> {\n const bundler = await this.getBundler(context, capsule);\n const bundlerResult = await bundler.run();\n const artifacts: ArtifactDefinition[] = this.getBlobPatterns(bundlerResult);\n const deployContext: AppBuildResult = Object.assign(context, { artifacts });\n return deployContext;\n }\n\n private getBlobPatterns(bundlerResults: BundlerResult[]) {\n const _globs = bundlerResults.map((result) => {\n if (!result.outputPath) return undefined;\n return {\n name: 'CommonJS',\n globPatterns: [`${this.getPublicDir()}/**`],\n };\n });\n return _globs.filter((glob) => !!glob) as ArtifactDefinition[];\n }\n\n private getBundler(context: BuildContext, capsule: Capsule) {\n if (this.bundler) return this.bundler;\n return this.getDefaultBundler(context, capsule);\n }\n private async getDefaultBundler(context: BuildContext, capsule: Capsule) {\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, 'public');\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 bundler: Bundler = await reactEnv.getBundler(bundlerContext, [\n (configMutator) => {\n if (this.transformers?.length) configMutator.addPlugin(this.transformers);\n configMutator.addTopLevel('output', { path: staticDir, publicPath: `/` });\n if (this.prerenderRoutes) configMutator.addPlugin(prerenderSPAPlugin(this.prerenderRoutes, staticDir));\n return configMutator;\n },\n ]);\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,6 +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 './react-app-options';
|
|
5
|
-
export type { ReactAppDeployContext } from './react-app-options';
|
|
4
|
+
export type { ReactAppOptions } from './apps/web/react-app-options';
|
|
6
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":";;;;;;;;;;;;;;;;;;
|
|
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/react-app-options';\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"]}
|
|
@@ -16,7 +16,6 @@ import { ApplicationMain } from '@teambit/application';
|
|
|
16
16
|
import { ESLintMain, EslintConfigTransformer } from '@teambit/eslint';
|
|
17
17
|
import { PrettierMain, PrettierConfigTransformer } from '@teambit/prettier';
|
|
18
18
|
import { ReactEnv } from './react.env';
|
|
19
|
-
import { ReactAppOptions } from './react-app-options';
|
|
20
19
|
declare type ReactDeps = [
|
|
21
20
|
EnvsMain,
|
|
22
21
|
JestMain,
|
|
@@ -96,10 +95,6 @@ export declare class ReactMain {
|
|
|
96
95
|
* override the build tsconfig.
|
|
97
96
|
*/
|
|
98
97
|
overrideBuildTsConfig(tsconfig?: Record<string, any>, compilerOptions?: Partial<TsCompilerOptionsWithoutTsConfig>, tsModule?: any): EnvTransformer;
|
|
99
|
-
/**
|
|
100
|
-
* register a new React application.
|
|
101
|
-
*/
|
|
102
|
-
registerReactApp(options: ReactAppOptions): this;
|
|
103
98
|
/**
|
|
104
99
|
* override the env's dev server and preview webpack configurations.
|
|
105
100
|
* Replaces both overrideDevServerConfig and overridePreviewConfig
|
|
@@ -214,7 +214,7 @@ function _react2() {
|
|
|
214
214
|
}
|
|
215
215
|
|
|
216
216
|
function _react3() {
|
|
217
|
-
const data = require("./react.app-type");
|
|
217
|
+
const data = require("./apps/web/react.app-type");
|
|
218
218
|
|
|
219
219
|
_react3 = function () {
|
|
220
220
|
return data;
|
|
@@ -234,19 +234,9 @@ function _react4() {
|
|
|
234
234
|
}
|
|
235
235
|
|
|
236
236
|
function _react5() {
|
|
237
|
-
const data = require("./react.application");
|
|
238
|
-
|
|
239
|
-
_react5 = function () {
|
|
240
|
-
return data;
|
|
241
|
-
};
|
|
242
|
-
|
|
243
|
-
return data;
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
function _react6() {
|
|
247
237
|
const data = require("./react.templates");
|
|
248
238
|
|
|
249
|
-
|
|
239
|
+
_react5 = function () {
|
|
250
240
|
return data;
|
|
251
241
|
};
|
|
252
242
|
|
|
@@ -368,15 +358,6 @@ class ReactMain {
|
|
|
368
358
|
buildConfig: [transformer]
|
|
369
359
|
}, tsModule);
|
|
370
360
|
}
|
|
371
|
-
/**
|
|
372
|
-
* register a new React application.
|
|
373
|
-
*/
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
registerReactApp(options) {
|
|
377
|
-
this.application.registerApp(new (_react5().ReactApp)(options.name, options.entry, options.portRange || [3000, 4000], this.reactEnv, options.deploy));
|
|
378
|
-
return this;
|
|
379
|
-
}
|
|
380
361
|
/**
|
|
381
362
|
* override the env's dev server and preview webpack configurations.
|
|
382
363
|
* Replaces both overrideDevServerConfig and overridePreviewConfig
|
|
@@ -575,8 +556,8 @@ class ReactMain {
|
|
|
575
556
|
const react = new ReactMain(reactEnv, envs, application, workspace);
|
|
576
557
|
graphql.register((0, _react4().reactSchema)(react));
|
|
577
558
|
envs.registerEnv(reactEnv);
|
|
578
|
-
generator.registerComponentTemplate(
|
|
579
|
-
generator.registerWorkspaceTemplate(
|
|
559
|
+
generator.registerComponentTemplate(_react5().componentTemplates);
|
|
560
|
+
generator.registerWorkspaceTemplate(_react5().workspaceTemplates);
|
|
580
561
|
application.registerAppType(new (_react3().ReactAppType)('react-app', reactEnv));
|
|
581
562
|
return react;
|
|
582
563
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["react.main.runtime.ts"],"names":["ReactMain","constructor","reactEnv","envs","application","workspace","useTypescript","modifiers","tsModule","ts","overrides","devTransformers","devConfig","getCompiler","buildTransformers","buildConfig","buildPipeModifiers","tsModifier","transformers","module","getBuildPipe","override","overrideTsConfig","tsconfig","compilerOptions","transformer","configMutator","mergeTsConfig","raw","compileJs","compileJsx","types","addTypes","genericCompilerOptions","Object","assign","overrideDocsTemplate","templatePath","getDocsTemplate","overrideBuildTsConfig","registerReactApp","options","registerApp","ReactApp","name","entry","portRange","deploy","useWebpack","devServerTransformers","devServerConfig","getDevServer","context","getDevEnvId","envDefinition","id","previewTransformers","previewConfig","getBundler","useEslint","getLinter","usePrettier","getFormatter","overrideDevServerConfig","config","merge","overridePreviewConfig","overrideMounter","mounterPath","getMounter","compose","targetEnv","overrideJestConfig","jestConfigPath","jestModulePath","getTester","overrideBuildPipe","tasks","overrideCompilerTasks","pipeWithoutCompiler","filter","task","aspectId","CompilerAspect","overrideDependencies","dependencyPolicy","getDependencies","reactDeps","overrideCompiler","compiler","overrideEslintConfig","overridePackageJsonProps","props","getPackageJsonProps","getDocs","component","docsArray","state","_consumer","docs","abstract","description","filePath","properties","provider","jestAspect","tsAspect","webpack","graphql","pkg","tester","eslint","prettier","generator","ReactEnv","react","register","registerEnv","registerComponentTemplate","componentTemplates","registerWorkspaceTemplate","workspaceTemplates","registerAppType","ReactAppType","MainRuntime","EnvsAspect","JestAspect","TypescriptAspect","WebpackAspect","WorkspaceAspect","GraphqlAspect","PkgAspect","TesterAspect","ESLintAspect","PrettierAspect","ApplicationAspect","GeneratorAspect","ReactAspect","addRuntime"],"mappings":"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","sourcesContent":["import mergeDeepLeft from 'ramda/src/mergeDeepLeft';\nimport { omit } from 'lodash';\nimport { MainRuntime } from '@teambit/cli';\nimport type { CompilerMain } from '@teambit/compiler';\nimport { CompilerAspect, Compiler } from '@teambit/compiler';\nimport { BuildTask } from '@teambit/builder';\nimport { Component } from '@teambit/component';\nimport { EnvsAspect, EnvsMain, EnvTransformer, Environment } from '@teambit/envs';\nimport type { GraphqlMain } from '@teambit/graphql';\nimport { GraphqlAspect } from '@teambit/graphql';\nimport type { JestMain } from '@teambit/jest';\nimport { JestAspect } from '@teambit/jest';\nimport type { PkgMain, PackageJsonProps } from '@teambit/pkg';\nimport { PkgAspect } from '@teambit/pkg';\nimport type { TesterMain } from '@teambit/tester';\nimport { TesterAspect } from '@teambit/tester';\nimport type { TypescriptMain, TsCompilerOptionsWithoutTsConfig, TsConfigTransformer } from '@teambit/typescript';\nimport { TypescriptAspect } from '@teambit/typescript';\nimport type { WebpackMain, Configuration, WebpackConfigTransformer } from '@teambit/webpack';\nimport { WebpackAspect } from '@teambit/webpack';\nimport { GeneratorAspect, GeneratorMain } from '@teambit/generator';\nimport { Workspace, WorkspaceAspect } from '@teambit/workspace';\nimport { DevServerContext, BundlerContext } from '@teambit/bundler';\nimport { VariantPolicyConfigObject } from '@teambit/dependency-resolver';\nimport ts from 'typescript';\nimport { ApplicationAspect, ApplicationMain } from '@teambit/application';\nimport { FormatterContext } from '@teambit/formatter';\nimport { LinterContext } from '@teambit/linter';\nimport { ESLintMain, ESLintAspect, EslintConfigTransformer } from '@teambit/eslint';\nimport { PrettierMain, PrettierAspect, PrettierConfigTransformer } from '@teambit/prettier';\nimport { ReactAspect } from './react.aspect';\nimport { ReactEnv } from './react.env';\nimport { ReactAppType } from './react.app-type';\nimport { reactSchema } from './react.graphql';\nimport { ReactAppOptions } from './react-app-options';\nimport { ReactApp } from './react.application';\nimport { componentTemplates, workspaceTemplates } from './react.templates';\n\ntype ReactDeps = [\n EnvsMain,\n JestMain,\n TypescriptMain,\n CompilerMain,\n WebpackMain,\n Workspace,\n GraphqlMain,\n PkgMain,\n TesterMain,\n ESLintMain,\n PrettierMain,\n ApplicationMain,\n GeneratorMain\n];\n\nexport type ReactMainConfig = {\n /**\n * configure the react env compiler.\n * can be configured to either TypeScript ('ts') or Babel ('babel').\n */\n compiler: 'babel' | 'ts';\n\n /**\n * configure the component tester.\n * can be either Jest ('jest') or Mocha ('mocha')\n */\n tester: 'jest' | 'mocha';\n\n /**\n * version of React to configure.\n */\n reactVersion: string;\n};\n\nexport type UseWebpackModifiers = {\n previewConfig?: WebpackConfigTransformer[];\n devServerConfig?: WebpackConfigTransformer[];\n};\n\nexport type UseTypescriptModifiers = {\n buildConfig?: TsConfigTransformer[];\n devConfig?: TsConfigTransformer[];\n};\n\nexport type UseEslintModifiers = {\n transformers: EslintConfigTransformer[];\n};\nexport type UsePrettierModifiers = {\n transformers: PrettierConfigTransformer[];\n};\n\nexport class ReactMain {\n constructor(\n /**\n * an instance of the React env.\n */\n readonly reactEnv: ReactEnv,\n\n private envs: EnvsMain,\n\n private application: ApplicationMain,\n\n private workspace: Workspace\n ) {}\n\n readonly env = this.reactEnv;\n\n /**\n * override the env's typescript config for both dev and build time.\n * Replaces both overrideTsConfig (devConfig) and overrideBuildTsConfig (buildConfig)\n */\n useTypescript(modifiers?: UseTypescriptModifiers, tsModule: any = ts) {\n const overrides: any = {};\n const devTransformers = modifiers?.devConfig;\n if (devTransformers) {\n overrides.getCompiler = () => this.reactEnv.getCompiler(devTransformers, tsModule);\n }\n const buildTransformers = modifiers?.buildConfig;\n if (buildTransformers) {\n const buildPipeModifiers = {\n tsModifier: {\n transformers: buildTransformers,\n module: tsModule,\n },\n };\n overrides.getBuildPipe = () => this.reactEnv.getBuildPipe(buildPipeModifiers);\n }\n return this.envs.override(overrides);\n }\n\n /**\n * @deprecated use useTypescript()\n * override the TS config of the React environment.\n * @param tsModule typeof `ts` module instance.\n */\n overrideTsConfig(\n tsconfig: Record<string, any> = {},\n compilerOptions: Partial<TsCompilerOptionsWithoutTsConfig> = {},\n tsModule: any = ts\n ) {\n const transformer: TsConfigTransformer = (configMutator) => {\n configMutator.mergeTsConfig(tsconfig);\n configMutator.raw.compileJs = compilerOptions.compileJs ?? configMutator.raw.compileJs;\n configMutator.raw.compileJsx = compilerOptions.compileJsx ?? configMutator.raw.compileJsx;\n if (compilerOptions.types) {\n configMutator.addTypes(compilerOptions.types);\n }\n const genericCompilerOptions = omit(compilerOptions, ['types', 'compileJs', 'compileJsx']);\n configMutator.raw = Object.assign(configMutator.raw, genericCompilerOptions);\n return configMutator;\n };\n // return this.envs.override({\n // getCompiler: () => this.reactEnv.getCompiler([transformer], tsModule),\n // });\n return this.useTypescript({ devConfig: [transformer] }, tsModule);\n }\n\n /**\n * Override the Bit documentation link. See docs: https://bit.dev/docs/docs/doc-templates\n */\n overrideDocsTemplate(templatePath: string) {\n return this.envs.override({\n getDocsTemplate: () => templatePath,\n });\n }\n\n /**\n * @deprecated use useTypescript()\n * override the build tsconfig.\n */\n overrideBuildTsConfig(\n tsconfig: Record<string, any> = {},\n compilerOptions: Partial<TsCompilerOptionsWithoutTsConfig> = {},\n tsModule: any = ts\n ) {\n const transformer: TsConfigTransformer = (configMutator) => {\n configMutator.mergeTsConfig(tsconfig);\n configMutator.raw.compileJs = compilerOptions.compileJs ?? configMutator.raw.compileJs;\n configMutator.raw.compileJsx = compilerOptions.compileJsx ?? configMutator.raw.compileJsx;\n if (compilerOptions.types) {\n configMutator.addTypes(compilerOptions.types);\n }\n const genericCompilerOptions = omit(compilerOptions, ['types', 'compileJs', 'compileJsx']);\n configMutator.raw = Object.assign(configMutator.raw, genericCompilerOptions);\n return configMutator;\n };\n // return this.envs.override({\n // getBuildPipe: () => this.reactEnv.getBuildPipe([transformer], tsModule),\n // });\n return this.useTypescript({ buildConfig: [transformer] }, tsModule);\n }\n\n /**\n * register a new React application.\n */\n registerReactApp(options: ReactAppOptions) {\n this.application.registerApp(\n new ReactApp(options.name, options.entry, options.portRange || [3000, 4000], this.reactEnv, options.deploy)\n );\n\n return this;\n }\n\n /**\n * override the env's dev server and preview webpack configurations.\n * Replaces both overrideDevServerConfig and overridePreviewConfig\n */\n useWebpack(modifiers?: UseWebpackModifiers): EnvTransformer {\n const overrides: any = {};\n const devServerTransformers = modifiers?.devServerConfig;\n if (devServerTransformers) {\n overrides.getDevServer = (context: DevServerContext) =>\n this.reactEnv.getDevServer(context, devServerTransformers);\n overrides.getDevEnvId = (context: DevServerContext) => this.reactEnv.getDevEnvId(context.envDefinition.id);\n }\n const previewTransformers = modifiers?.previewConfig;\n if (previewTransformers) {\n overrides.getBundler = (context: BundlerContext) => this.reactEnv.getBundler(context, previewTransformers);\n }\n return this.envs.override(overrides);\n }\n\n /**\n * An API to mutate the prettier config\n * @param modifiers\n * @returns\n */\n useEslint(modifiers?: UseEslintModifiers): EnvTransformer {\n const transformers = modifiers?.transformers || [];\n return this.envs.override({\n getLinter: (context: LinterContext) => this.reactEnv.getLinter(context, transformers),\n });\n }\n\n /**\n * An API to mutate the prettier config\n * @param modifiers\n * @returns\n */\n usePrettier(modifiers?: UsePrettierModifiers): EnvTransformer {\n const transformers = modifiers?.transformers || [];\n return this.envs.override({\n getFormatter: (context: FormatterContext) => this.reactEnv.getFormatter(context, transformers),\n });\n }\n\n /**\n * @deprecated use useWebpack()\n * override the dev server webpack config.\n */\n overrideDevServerConfig(config: Configuration) {\n const transformer: WebpackConfigTransformer = (configMutator) => {\n return configMutator.merge([config]);\n };\n\n return this.envs.override({\n getDevServer: (context: DevServerContext) => this.reactEnv.getDevServer(context, [transformer]),\n getDevEnvId: (context: DevServerContext) => this.reactEnv.getDevEnvId(context.envDefinition.id),\n });\n }\n\n /**\n * @deprecated use useWebpack()\n * override the preview webpack config.\n */\n overridePreviewConfig(config: Configuration) {\n const transformer: WebpackConfigTransformer = (configMutator) => {\n return configMutator.merge([config]);\n };\n return this.envs.override({\n getBundler: (context: BundlerContext) => this.reactEnv.getBundler(context, [transformer]),\n });\n }\n\n overrideMounter(mounterPath: string) {\n return this.envs.override({\n getMounter: () => {\n return mounterPath;\n },\n });\n }\n\n /**\n * create a new composition of the react environment.\n */\n compose(transformers: EnvTransformer[], targetEnv: Environment = {}) {\n return this.envs.compose(this.envs.merge(targetEnv, this.reactEnv), transformers);\n }\n\n /**\n * override the jest configuration.\n * @param jestConfigPath {typeof jest} absolute path to jest.config.json.\n * @param jestModulePath absolute path to jest\n */\n overrideJestConfig(jestConfigPath: string, jestModulePath?: string) {\n return this.envs.override({\n getTester: () => this.reactEnv.getTester(jestConfigPath, jestModulePath),\n });\n }\n\n /**\n * override the build pipeline of the component environment.\n */\n overrideBuildPipe(tasks: BuildTask[]) {\n return this.envs.override({\n getBuildPipe: () => tasks,\n });\n }\n\n /**\n * override the compiler tasks inside the build pipeline of the component environment.\n */\n overrideCompilerTasks(tasks: BuildTask[]) {\n const pipeWithoutCompiler = this.reactEnv.getBuildPipe().filter((task) => task.aspectId !== CompilerAspect.id);\n\n return this.envs.override({\n getBuildPipe: () => [...tasks, ...pipeWithoutCompiler],\n });\n }\n\n /**\n * override the dependency configuration of the component environment.\n */\n overrideDependencies(dependencyPolicy: VariantPolicyConfigObject) {\n return this.envs.override({\n getDependencies: async () => {\n const reactDeps = await this.reactEnv.getDependencies();\n return mergeDeepLeft(dependencyPolicy, reactDeps);\n },\n });\n }\n\n /**\n * override the workspace compiler.\n */\n overrideCompiler(compiler: Compiler) {\n return this.envs.override({\n getCompiler: () => {\n return compiler;\n },\n });\n }\n\n /**\n * TODO: @gilad we need to implement this.\n */\n overrideEslintConfig() {}\n\n /**\n * override the package json props of the component environment.\n */\n overridePackageJsonProps(props: PackageJsonProps) {\n return this.envs.override({\n getPackageJsonProps: () => {\n return {\n ...props,\n ...this.reactEnv.getPackageJsonProps(),\n };\n },\n });\n }\n\n /**\n * returns doc adjusted specifically for react components.\n */\n getDocs(component: Component) {\n const docsArray = component.state._consumer.docs;\n if (!docsArray || !docsArray[0]) {\n return null;\n }\n\n const docs = docsArray[0];\n\n return {\n abstract: docs.description,\n filePath: docs.filePath,\n properties: docs.properties,\n };\n }\n\n static runtime = MainRuntime;\n static dependencies = [\n EnvsAspect,\n JestAspect,\n TypescriptAspect,\n CompilerAspect,\n WebpackAspect,\n WorkspaceAspect,\n GraphqlAspect,\n PkgAspect,\n TesterAspect,\n ESLintAspect,\n PrettierAspect,\n ApplicationAspect,\n GeneratorAspect,\n ];\n\n static async provider(\n [\n envs,\n jestAspect,\n tsAspect,\n compiler,\n webpack,\n workspace,\n graphql,\n pkg,\n tester,\n eslint,\n prettier,\n application,\n generator,\n ]: ReactDeps,\n config: ReactMainConfig\n ) {\n const reactEnv = new ReactEnv(\n jestAspect,\n tsAspect,\n compiler,\n webpack,\n workspace,\n pkg,\n tester,\n config,\n eslint,\n prettier\n );\n const react = new ReactMain(reactEnv, envs, application, workspace);\n graphql.register(reactSchema(react));\n envs.registerEnv(reactEnv);\n generator.registerComponentTemplate(componentTemplates);\n generator.registerWorkspaceTemplate(workspaceTemplates);\n application.registerAppType(new ReactAppType('react-app', reactEnv));\n return react;\n }\n}\n\nReactAspect.addRuntime(ReactMain);\n"]}
|
|
1
|
+
{"version":3,"sources":["react.main.runtime.ts"],"names":["ReactMain","constructor","reactEnv","envs","application","workspace","useTypescript","modifiers","tsModule","ts","overrides","devTransformers","devConfig","getCompiler","buildTransformers","buildConfig","buildPipeModifiers","tsModifier","transformers","module","getBuildPipe","override","overrideTsConfig","tsconfig","compilerOptions","transformer","configMutator","mergeTsConfig","raw","compileJs","compileJsx","types","addTypes","genericCompilerOptions","Object","assign","overrideDocsTemplate","templatePath","getDocsTemplate","overrideBuildTsConfig","useWebpack","devServerTransformers","devServerConfig","getDevServer","context","getDevEnvId","envDefinition","id","previewTransformers","previewConfig","getBundler","useEslint","getLinter","usePrettier","getFormatter","overrideDevServerConfig","config","merge","overridePreviewConfig","overrideMounter","mounterPath","getMounter","compose","targetEnv","overrideJestConfig","jestConfigPath","jestModulePath","getTester","overrideBuildPipe","tasks","overrideCompilerTasks","pipeWithoutCompiler","filter","task","aspectId","CompilerAspect","overrideDependencies","dependencyPolicy","getDependencies","reactDeps","overrideCompiler","compiler","overrideEslintConfig","overridePackageJsonProps","props","getPackageJsonProps","getDocs","component","docsArray","state","_consumer","docs","abstract","description","filePath","properties","provider","jestAspect","tsAspect","webpack","graphql","pkg","tester","eslint","prettier","generator","ReactEnv","react","register","registerEnv","registerComponentTemplate","componentTemplates","registerWorkspaceTemplate","workspaceTemplates","registerAppType","ReactAppType","MainRuntime","EnvsAspect","JestAspect","TypescriptAspect","WebpackAspect","WorkspaceAspect","GraphqlAspect","PkgAspect","TesterAspect","ESLintAspect","PrettierAspect","ApplicationAspect","GeneratorAspect","ReactAspect","addRuntime"],"mappings":"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","sourcesContent":["import mergeDeepLeft from 'ramda/src/mergeDeepLeft';\nimport { omit } from 'lodash';\nimport { MainRuntime } from '@teambit/cli';\nimport type { CompilerMain } from '@teambit/compiler';\nimport { CompilerAspect, Compiler } from '@teambit/compiler';\nimport { BuildTask } from '@teambit/builder';\nimport { Component } from '@teambit/component';\nimport { EnvsAspect, EnvsMain, EnvTransformer, Environment } from '@teambit/envs';\nimport type { GraphqlMain } from '@teambit/graphql';\nimport { GraphqlAspect } from '@teambit/graphql';\nimport type { JestMain } from '@teambit/jest';\nimport { JestAspect } from '@teambit/jest';\nimport type { PkgMain, PackageJsonProps } from '@teambit/pkg';\nimport { PkgAspect } from '@teambit/pkg';\nimport type { TesterMain } from '@teambit/tester';\nimport { TesterAspect } from '@teambit/tester';\nimport type { TypescriptMain, TsCompilerOptionsWithoutTsConfig, TsConfigTransformer } from '@teambit/typescript';\nimport { TypescriptAspect } from '@teambit/typescript';\nimport type { WebpackMain, Configuration, WebpackConfigTransformer } from '@teambit/webpack';\nimport { WebpackAspect } from '@teambit/webpack';\nimport { GeneratorAspect, GeneratorMain } from '@teambit/generator';\nimport { Workspace, WorkspaceAspect } from '@teambit/workspace';\nimport { DevServerContext, BundlerContext } from '@teambit/bundler';\nimport { VariantPolicyConfigObject } from '@teambit/dependency-resolver';\nimport ts from 'typescript';\nimport { ApplicationAspect, ApplicationMain } from '@teambit/application';\nimport { FormatterContext } from '@teambit/formatter';\nimport { LinterContext } from '@teambit/linter';\nimport { ESLintMain, ESLintAspect, EslintConfigTransformer } from '@teambit/eslint';\nimport { PrettierMain, PrettierAspect, PrettierConfigTransformer } from '@teambit/prettier';\nimport { ReactAspect } from './react.aspect';\nimport { ReactEnv } from './react.env';\nimport { ReactAppType } from './apps/web/react.app-type';\nimport { reactSchema } from './react.graphql';\nimport { componentTemplates, workspaceTemplates } from './react.templates';\n\ntype ReactDeps = [\n EnvsMain,\n JestMain,\n TypescriptMain,\n CompilerMain,\n WebpackMain,\n Workspace,\n GraphqlMain,\n PkgMain,\n TesterMain,\n ESLintMain,\n PrettierMain,\n ApplicationMain,\n GeneratorMain\n];\n\nexport type ReactMainConfig = {\n /**\n * configure the react env compiler.\n * can be configured to either TypeScript ('ts') or Babel ('babel').\n */\n compiler: 'babel' | 'ts';\n\n /**\n * configure the component tester.\n * can be either Jest ('jest') or Mocha ('mocha')\n */\n tester: 'jest' | 'mocha';\n\n /**\n * version of React to configure.\n */\n reactVersion: string;\n};\n\nexport type UseWebpackModifiers = {\n previewConfig?: WebpackConfigTransformer[];\n devServerConfig?: WebpackConfigTransformer[];\n};\n\nexport type UseTypescriptModifiers = {\n buildConfig?: TsConfigTransformer[];\n devConfig?: TsConfigTransformer[];\n};\n\nexport type UseEslintModifiers = {\n transformers: EslintConfigTransformer[];\n};\nexport type UsePrettierModifiers = {\n transformers: PrettierConfigTransformer[];\n};\n\nexport class ReactMain {\n constructor(\n /**\n * an instance of the React env.\n */\n readonly reactEnv: ReactEnv,\n\n private envs: EnvsMain,\n\n private application: ApplicationMain,\n\n private workspace: Workspace\n ) {}\n\n readonly env = this.reactEnv;\n\n /**\n * override the env's typescript config for both dev and build time.\n * Replaces both overrideTsConfig (devConfig) and overrideBuildTsConfig (buildConfig)\n */\n useTypescript(modifiers?: UseTypescriptModifiers, tsModule: any = ts) {\n const overrides: any = {};\n const devTransformers = modifiers?.devConfig;\n if (devTransformers) {\n overrides.getCompiler = () => this.reactEnv.getCompiler(devTransformers, tsModule);\n }\n const buildTransformers = modifiers?.buildConfig;\n if (buildTransformers) {\n const buildPipeModifiers = {\n tsModifier: {\n transformers: buildTransformers,\n module: tsModule,\n },\n };\n overrides.getBuildPipe = () => this.reactEnv.getBuildPipe(buildPipeModifiers);\n }\n return this.envs.override(overrides);\n }\n\n /**\n * @deprecated use useTypescript()\n * override the TS config of the React environment.\n * @param tsModule typeof `ts` module instance.\n */\n overrideTsConfig(\n tsconfig: Record<string, any> = {},\n compilerOptions: Partial<TsCompilerOptionsWithoutTsConfig> = {},\n tsModule: any = ts\n ) {\n const transformer: TsConfigTransformer = (configMutator) => {\n configMutator.mergeTsConfig(tsconfig);\n configMutator.raw.compileJs = compilerOptions.compileJs ?? configMutator.raw.compileJs;\n configMutator.raw.compileJsx = compilerOptions.compileJsx ?? configMutator.raw.compileJsx;\n if (compilerOptions.types) {\n configMutator.addTypes(compilerOptions.types);\n }\n const genericCompilerOptions = omit(compilerOptions, ['types', 'compileJs', 'compileJsx']);\n configMutator.raw = Object.assign(configMutator.raw, genericCompilerOptions);\n return configMutator;\n };\n // return this.envs.override({\n // getCompiler: () => this.reactEnv.getCompiler([transformer], tsModule),\n // });\n return this.useTypescript({ devConfig: [transformer] }, tsModule);\n }\n\n /**\n * Override the Bit documentation link. See docs: https://bit.dev/docs/docs/doc-templates\n */\n overrideDocsTemplate(templatePath: string) {\n return this.envs.override({\n getDocsTemplate: () => templatePath,\n });\n }\n\n /**\n * @deprecated use useTypescript()\n * override the build tsconfig.\n */\n overrideBuildTsConfig(\n tsconfig: Record<string, any> = {},\n compilerOptions: Partial<TsCompilerOptionsWithoutTsConfig> = {},\n tsModule: any = ts\n ) {\n const transformer: TsConfigTransformer = (configMutator) => {\n configMutator.mergeTsConfig(tsconfig);\n configMutator.raw.compileJs = compilerOptions.compileJs ?? configMutator.raw.compileJs;\n configMutator.raw.compileJsx = compilerOptions.compileJsx ?? configMutator.raw.compileJsx;\n if (compilerOptions.types) {\n configMutator.addTypes(compilerOptions.types);\n }\n const genericCompilerOptions = omit(compilerOptions, ['types', 'compileJs', 'compileJsx']);\n configMutator.raw = Object.assign(configMutator.raw, genericCompilerOptions);\n return configMutator;\n };\n // return this.envs.override({\n // getBuildPipe: () => this.reactEnv.getBuildPipe([transformer], tsModule),\n // });\n return this.useTypescript({ buildConfig: [transformer] }, tsModule);\n }\n\n /**\n * override the env's dev server and preview webpack configurations.\n * Replaces both overrideDevServerConfig and overridePreviewConfig\n */\n useWebpack(modifiers?: UseWebpackModifiers): EnvTransformer {\n const overrides: any = {};\n const devServerTransformers = modifiers?.devServerConfig;\n if (devServerTransformers) {\n overrides.getDevServer = (context: DevServerContext) =>\n this.reactEnv.getDevServer(context, devServerTransformers);\n overrides.getDevEnvId = (context: DevServerContext) => this.reactEnv.getDevEnvId(context.envDefinition.id);\n }\n const previewTransformers = modifiers?.previewConfig;\n if (previewTransformers) {\n overrides.getBundler = (context: BundlerContext) => this.reactEnv.getBundler(context, previewTransformers);\n }\n return this.envs.override(overrides);\n }\n\n /**\n * An API to mutate the prettier config\n * @param modifiers\n * @returns\n */\n useEslint(modifiers?: UseEslintModifiers): EnvTransformer {\n const transformers = modifiers?.transformers || [];\n return this.envs.override({\n getLinter: (context: LinterContext) => this.reactEnv.getLinter(context, transformers),\n });\n }\n\n /**\n * An API to mutate the prettier config\n * @param modifiers\n * @returns\n */\n usePrettier(modifiers?: UsePrettierModifiers): EnvTransformer {\n const transformers = modifiers?.transformers || [];\n return this.envs.override({\n getFormatter: (context: FormatterContext) => this.reactEnv.getFormatter(context, transformers),\n });\n }\n\n /**\n * @deprecated use useWebpack()\n * override the dev server webpack config.\n */\n overrideDevServerConfig(config: Configuration) {\n const transformer: WebpackConfigTransformer = (configMutator) => {\n return configMutator.merge([config]);\n };\n\n return this.envs.override({\n getDevServer: (context: DevServerContext) => this.reactEnv.getDevServer(context, [transformer]),\n getDevEnvId: (context: DevServerContext) => this.reactEnv.getDevEnvId(context.envDefinition.id),\n });\n }\n\n /**\n * @deprecated use useWebpack()\n * override the preview webpack config.\n */\n overridePreviewConfig(config: Configuration) {\n const transformer: WebpackConfigTransformer = (configMutator) => {\n return configMutator.merge([config]);\n };\n return this.envs.override({\n getBundler: (context: BundlerContext) => this.reactEnv.getBundler(context, [transformer]),\n });\n }\n\n overrideMounter(mounterPath: string) {\n return this.envs.override({\n getMounter: () => {\n return mounterPath;\n },\n });\n }\n\n /**\n * create a new composition of the react environment.\n */\n compose(transformers: EnvTransformer[], targetEnv: Environment = {}) {\n return this.envs.compose(this.envs.merge(targetEnv, this.reactEnv), transformers);\n }\n\n /**\n * override the jest configuration.\n * @param jestConfigPath {typeof jest} absolute path to jest.config.json.\n * @param jestModulePath absolute path to jest\n */\n overrideJestConfig(jestConfigPath: string, jestModulePath?: string) {\n return this.envs.override({\n getTester: () => this.reactEnv.getTester(jestConfigPath, jestModulePath),\n });\n }\n\n /**\n * override the build pipeline of the component environment.\n */\n overrideBuildPipe(tasks: BuildTask[]) {\n return this.envs.override({\n getBuildPipe: () => tasks,\n });\n }\n\n /**\n * override the compiler tasks inside the build pipeline of the component environment.\n */\n overrideCompilerTasks(tasks: BuildTask[]) {\n const pipeWithoutCompiler = this.reactEnv.getBuildPipe().filter((task) => task.aspectId !== CompilerAspect.id);\n\n return this.envs.override({\n getBuildPipe: () => [...tasks, ...pipeWithoutCompiler],\n });\n }\n\n /**\n * override the dependency configuration of the component environment.\n */\n overrideDependencies(dependencyPolicy: VariantPolicyConfigObject) {\n return this.envs.override({\n getDependencies: async () => {\n const reactDeps = await this.reactEnv.getDependencies();\n return mergeDeepLeft(dependencyPolicy, reactDeps);\n },\n });\n }\n\n /**\n * override the workspace compiler.\n */\n overrideCompiler(compiler: Compiler) {\n return this.envs.override({\n getCompiler: () => {\n return compiler;\n },\n });\n }\n\n /**\n * TODO: @gilad we need to implement this.\n */\n overrideEslintConfig() {}\n\n /**\n * override the package json props of the component environment.\n */\n overridePackageJsonProps(props: PackageJsonProps) {\n return this.envs.override({\n getPackageJsonProps: () => {\n return {\n ...props,\n ...this.reactEnv.getPackageJsonProps(),\n };\n },\n });\n }\n\n /**\n * returns doc adjusted specifically for react components.\n */\n getDocs(component: Component) {\n const docsArray = component.state._consumer.docs;\n if (!docsArray || !docsArray[0]) {\n return null;\n }\n\n const docs = docsArray[0];\n\n return {\n abstract: docs.description,\n filePath: docs.filePath,\n properties: docs.properties,\n };\n }\n\n static runtime = MainRuntime;\n static dependencies = [\n EnvsAspect,\n JestAspect,\n TypescriptAspect,\n CompilerAspect,\n WebpackAspect,\n WorkspaceAspect,\n GraphqlAspect,\n PkgAspect,\n TesterAspect,\n ESLintAspect,\n PrettierAspect,\n ApplicationAspect,\n GeneratorAspect,\n ];\n\n static async provider(\n [\n envs,\n jestAspect,\n tsAspect,\n compiler,\n webpack,\n workspace,\n graphql,\n pkg,\n tester,\n eslint,\n prettier,\n application,\n generator,\n ]: ReactDeps,\n config: ReactMainConfig\n ) {\n const reactEnv = new ReactEnv(\n jestAspect,\n tsAspect,\n compiler,\n webpack,\n workspace,\n pkg,\n tester,\n config,\n eslint,\n prettier\n );\n const react = new ReactMain(reactEnv, envs, application, workspace);\n graphql.register(reactSchema(react));\n envs.registerEnv(reactEnv);\n generator.registerComponentTemplate(componentTemplates);\n generator.registerWorkspaceTemplate(workspaceTemplates);\n application.registerAppType(new ReactAppType('react-app', reactEnv));\n return react;\n }\n}\n\nReactAspect.addRuntime(ReactMain);\n"]}
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/react",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.599",
|
|
4
4
|
"homepage": "https://bit.dev/teambit/react/react",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.react",
|
|
8
8
|
"name": "react",
|
|
9
|
-
"version": "0.0.
|
|
9
|
+
"version": "0.0.599"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"react-error-boundary": "^3.0.0",
|
|
13
|
-
"@dreysolano/prerender-spa-plugin": "1.0.3",
|
|
14
13
|
"@teambit/harmony": "0.2.11",
|
|
15
14
|
"fs-extra": "10.0.0",
|
|
16
15
|
"lodash": "4.17.21",
|
|
@@ -43,6 +42,7 @@
|
|
|
43
42
|
"react-dev-utils": "11.0.4",
|
|
44
43
|
"style-loader": "^2.0.0",
|
|
45
44
|
"@pmmmwh/react-refresh-webpack-plugin": "0.5.1",
|
|
45
|
+
"@dreysolano/prerender-spa-plugin": "1.0.3",
|
|
46
46
|
"comment-json": "3.0.3",
|
|
47
47
|
"react-refresh": "0.10.0",
|
|
48
48
|
"@babel/runtime": "^7.12.18",
|
|
@@ -79,47 +79,47 @@
|
|
|
79
79
|
"@teambit/react.instructions.react.adding-compositions": "0.0.6",
|
|
80
80
|
"@teambit/react.instructions.react.adding-tests": "0.0.6",
|
|
81
81
|
"@teambit/design.ui.pages.standalone-not-found-page": "0.0.355",
|
|
82
|
-
"@teambit/preview": "0.0.
|
|
82
|
+
"@teambit/preview": "0.0.599",
|
|
83
83
|
"@teambit/react.ui.error-fallback": "0.0.109",
|
|
84
84
|
"@teambit/react.ui.loader-fallback": "0.0.88",
|
|
85
85
|
"@teambit/compositions.ui.hooks.use-composition": "0.0.162",
|
|
86
86
|
"@teambit/design.ui.input.option-button": "0.0.26",
|
|
87
87
|
"@teambit/design.ui.tooltip": "0.0.352",
|
|
88
|
-
"@teambit/
|
|
89
|
-
"@teambit/bundler": "0.0.
|
|
90
|
-
"@teambit/
|
|
91
|
-
"@teambit/builder": "0.0.598",
|
|
92
|
-
"@teambit/toolbox.network.get-port": "0.0.112",
|
|
93
|
-
"@teambit/compiler": "0.0.598",
|
|
88
|
+
"@teambit/builder": "0.0.599",
|
|
89
|
+
"@teambit/bundler": "0.0.599",
|
|
90
|
+
"@teambit/compiler": "0.0.599",
|
|
94
91
|
"@teambit/component.modules.component-url": "0.0.119",
|
|
95
|
-
"@teambit/component": "0.0.
|
|
96
|
-
"@teambit/envs": "0.0.
|
|
97
|
-
"@teambit/eslint": "0.0.
|
|
98
|
-
"@teambit/formatter": "0.0.
|
|
99
|
-
"@teambit/jest": "0.0.
|
|
100
|
-
"@teambit/linter": "0.0.
|
|
101
|
-
"@teambit/pkg": "0.0.
|
|
102
|
-
"@teambit/prettier": "0.0.
|
|
92
|
+
"@teambit/component": "0.0.599",
|
|
93
|
+
"@teambit/envs": "0.0.599",
|
|
94
|
+
"@teambit/eslint": "0.0.599",
|
|
95
|
+
"@teambit/formatter": "0.0.150",
|
|
96
|
+
"@teambit/jest": "0.0.599",
|
|
97
|
+
"@teambit/linter": "0.0.599",
|
|
98
|
+
"@teambit/pkg": "0.0.599",
|
|
99
|
+
"@teambit/prettier": "0.0.150",
|
|
103
100
|
"@teambit/react.ui.highlighter.component-metadata.bit-component-meta": "0.0.20",
|
|
104
|
-
"@teambit/schema": "0.0.
|
|
105
|
-
"@teambit/tester": "0.0.
|
|
106
|
-
"@teambit/typescript": "0.0.
|
|
107
|
-
"@teambit/webpack": "0.0.
|
|
108
|
-
"@teambit/workspace": "0.0.
|
|
109
|
-
"@teambit/
|
|
110
|
-
"@teambit/
|
|
111
|
-
"@teambit/
|
|
112
|
-
"@teambit/
|
|
101
|
+
"@teambit/schema": "0.0.599",
|
|
102
|
+
"@teambit/tester": "0.0.599",
|
|
103
|
+
"@teambit/typescript": "0.0.599",
|
|
104
|
+
"@teambit/webpack": "0.0.599",
|
|
105
|
+
"@teambit/workspace": "0.0.599",
|
|
106
|
+
"@teambit/application": "0.0.241",
|
|
107
|
+
"@teambit/cli": "0.0.411",
|
|
108
|
+
"@teambit/dependency-resolver": "0.0.599",
|
|
109
|
+
"@teambit/generator": "0.0.599",
|
|
110
|
+
"@teambit/graphql": "0.0.599",
|
|
113
111
|
"@teambit/react.ui.highlighter-provider": "0.0.178",
|
|
114
|
-
"@teambit/compositions": "0.0.
|
|
115
|
-
"@teambit/ui": "0.0.
|
|
116
|
-
"@teambit/react.eslint-config-bit-react": "0.0.
|
|
112
|
+
"@teambit/compositions": "0.0.599",
|
|
113
|
+
"@teambit/ui": "0.0.599",
|
|
114
|
+
"@teambit/react.eslint-config-bit-react": "0.0.490",
|
|
117
115
|
"@teambit/mdx.modules.mdx-loader": "0.0.488",
|
|
118
116
|
"@teambit/react.babel.bit-react-transformer": "0.0.494",
|
|
119
117
|
"@teambit/webpack.modules.generate-style-loaders": "0.0.102",
|
|
120
118
|
"@teambit/webpack.modules.style-regexps": "0.0.131",
|
|
121
119
|
"@teambit/component-id": "0.0.398",
|
|
122
|
-
"@teambit/
|
|
120
|
+
"@teambit/isolator": "0.0.599",
|
|
121
|
+
"@teambit/toolbox.network.get-port": "0.0.112",
|
|
122
|
+
"@teambit/config": "0.0.423"
|
|
123
123
|
},
|
|
124
124
|
"devDependencies": {
|
|
125
125
|
"@types/react": "^17.0.8",
|
|
@@ -137,7 +137,7 @@
|
|
|
137
137
|
"@teambit/react.aspect-docs.react": "0.0.131"
|
|
138
138
|
},
|
|
139
139
|
"peerDependencies": {
|
|
140
|
-
"@teambit/legacy": "1.0.
|
|
140
|
+
"@teambit/legacy": "1.0.198",
|
|
141
141
|
"react-dom": "^16.8.0 || ^17.0.0",
|
|
142
142
|
"react": "^16.8.0 || ^17.0.0"
|
|
143
143
|
},
|
|
@@ -199,7 +199,7 @@
|
|
|
199
199
|
"@types/jest": "^26.0.0"
|
|
200
200
|
},
|
|
201
201
|
"peerDependencies": {
|
|
202
|
-
"@teambit/legacy": "1.0.
|
|
202
|
+
"@teambit/legacy": "1.0.198",
|
|
203
203
|
"react-dom": "^16.8.0 || ^17.0.0",
|
|
204
204
|
"react": "^16.8.0 || ^17.0.0"
|
|
205
205
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["react.app-type.ts"],"names":["ReactAppType","constructor","name","reactEnv","createApp","options","ReactApp","entry","portRange","deploy","prerenderRoutes"],"mappings":";;;;;;;AAGA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEO,MAAMA,YAAN,CAA+D;AACpEC,EAAAA,WAAW,CAAUC,IAAV,EAAgCC,QAAhC,EAAoD;AAAA,SAA1CD,IAA0C,GAA1CA,IAA0C;AAAA,SAApBC,QAAoB,GAApBA,QAAoB;AAAE;;AAEjEC,EAAAA,SAAS,CAACC,OAAD,EAA2B;AAClC,WAAO,KAAIC,iBAAJ,EACLD,OAAO,CAACH,IADH,EAELG,OAAO,CAACE,KAFH,EAGLF,OAAO,CAACG,SAAR,IAAqB,CAAC,IAAD,EAAO,IAAP,CAHhB,EAIL,KAAKL,QAJA,EAKLE,OAAO,CAACI,MALH,EAMLJ,OAAO,CAACK,eANH,CAAP;AAQD;;AAZmE","sourcesContent":["import { ApplicationType } from '@teambit/application';\nimport { ReactEnv } from './react.env';\nimport { ReactAppOptions } from './react-app-options';\nimport { ReactApp } from './react.application';\n\nexport class ReactAppType implements ApplicationType<ReactAppOptions> {\n constructor(readonly name: string, private reactEnv: ReactEnv) {}\n\n createApp(options: ReactAppOptions) {\n return new ReactApp(\n options.name,\n options.entry,\n options.portRange || [3000, 4000],\n this.reactEnv,\n options.deploy,\n options.prerenderRoutes\n );\n }\n}\n"]}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { Capsule } from '@teambit/isolator';
|
|
2
|
-
import { Application, AppContext, DeployContext } from '@teambit/application';
|
|
3
|
-
import { BuildContext } from '@teambit/builder';
|
|
4
|
-
import { ReactEnv } from './react.env';
|
|
5
|
-
import { ReactAppDeployContext } from './react-app-options';
|
|
6
|
-
export declare class ReactApp implements Application {
|
|
7
|
-
readonly name: string;
|
|
8
|
-
readonly entry: string[];
|
|
9
|
-
readonly portRange: number[];
|
|
10
|
-
private reactEnv;
|
|
11
|
-
readonly deploy?: ((context: ReactAppDeployContext, capsule: Capsule) => Promise<void>) | undefined;
|
|
12
|
-
readonly prerenderRoutes?: string[] | undefined;
|
|
13
|
-
constructor(name: string, entry: string[], portRange: number[], reactEnv: ReactEnv, deploy?: ((context: ReactAppDeployContext, capsule: Capsule) => Promise<void>) | undefined, prerenderRoutes?: string[] | undefined);
|
|
14
|
-
applicationType: string;
|
|
15
|
-
run(context: AppContext): Promise<number>;
|
|
16
|
-
build(context: BuildContext, aspectId: string, appCapsule: Capsule): Promise<DeployContext>;
|
|
17
|
-
private getDevServerContext;
|
|
18
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["react.application.ts"],"names":["ReactApp","constructor","name","entry","portRange","reactEnv","deploy","prerenderRoutes","run","context","devServerContext","getDevServerContext","devServer","getDevServer","configMutator","addTopLevel","historyApiFallback","index","disableDotRule","raw","output","publicPath","from","to","port","Port","getPort","listen","build","aspectId","appCapsule","env","publicDir","outputPath","path","distDir","getCompiler","entries","map","require","resolve","bundlerContext","Object","assign","targets","components","component","rootPath","bundler","getBundler","addPlugin","PrerenderSPAPlugin","staticDir","routes","postProcess","renderedRoute","originalRoute","deployContext","applicationType","title"],"mappings":"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","sourcesContent":["import PrerenderSPAPlugin from '@dreysolano/prerender-spa-plugin';\nimport { join, basename } from 'path';\nimport { Capsule } from '@teambit/isolator';\nimport { Application, AppContext, DeployContext } from '@teambit/application';\nimport { BuildContext } from '@teambit/builder';\nimport { Bundler, BundlerContext, DevServerContext } from '@teambit/bundler';\nimport { Port } from '@teambit/toolbox.network.get-port';\nimport { ReactEnv } from './react.env';\nimport { ReactAppDeployContext } from './react-app-options';\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 deploy?: (context: ReactAppDeployContext, capsule: Capsule) => Promise<void>,\n readonly prerenderRoutes?: string[]\n ) {}\n\n applicationType = 'react';\n\n async run(context: AppContext): Promise<number> {\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 const [from, to] = this.portRange;\n const port = await Port.getPort(from, to);\n await devServer.listen(port);\n return port;\n }\n\n async build(context: BuildContext, aspectId: string, appCapsule: Capsule): Promise<DeployContext> {\n const reactEnv: ReactEnv = context.env;\n const publicDir = join('applications', this.name, 'build');\n const outputPath = join(appCapsule.path, publicDir);\n const { distDir } = reactEnv.getCompiler();\n const entries = this.entry.map((entry) => require.resolve(`${appCapsule.path}/${distDir}/${basename(entry)}`));\n const bundlerContext: BundlerContext = Object.assign(context, {\n targets: [\n {\n components: [appCapsule?.component],\n entries,\n outputPath,\n },\n ],\n entry: [],\n rootPath: '/',\n });\n const bundler: Bundler = await reactEnv.getBundler(bundlerContext, [\n (configMutator) => {\n configMutator.addTopLevel('output', { path: join(outputPath, 'public'), publicPath: `/` });\n configMutator.addPlugin(\n new PrerenderSPAPlugin({\n staticDir: join(outputPath, 'public'),\n routes: this.prerenderRoutes,\n postProcess(renderedRoute) {\n renderedRoute.outputPath = join(outputPath, 'public', `${renderedRoute.originalRoute}.html`);\n return renderedRoute;\n },\n })\n );\n return configMutator;\n },\n ]);\n await bundler.run();\n const deployContext = Object.assign(context, {\n applicationType: this.applicationType,\n aspectId,\n publicDir: join(appCapsule.path, publicDir, 'public'),\n });\n return deployContext;\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"]}
|
|
Binary file
|