@teambit/react 0.0.520 → 0.0.524
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/dist/index.d.ts +1 -0
- package/dist/index.js.map +1 -1
- package/dist/jest/jest.config.js +2 -1
- package/dist/jest/jest.config.js.map +1 -1
- package/dist/react.app-type.d.ts +10 -0
- package/dist/react.app-type.js +32 -0
- package/dist/react.app-type.js.map +1 -0
- package/dist/react.application.d.ts +1 -2
- package/dist/react.application.js +9 -2
- package/dist/react.application.js.map +1 -1
- package/dist/react.main.runtime.d.ts +2 -1
- package/dist/react.main.runtime.js +29 -8
- package/dist/react.main.runtime.js.map +1 -1
- package/index.ts +1 -0
- package/jest/jest.config.js +1 -0
- package/package-tar/teambit-react-0.0.524.tgz +0 -0
- package/package.json +47 -47
- package/react.app-type.ts +12 -0
- package/react.application.ts +10 -1
- package/react.main.runtime.ts +14 -9
- package/package-tar/teambit-react-0.0.520.tgz +0 -0
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +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';
|
|
4
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 './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"]}
|
package/dist/jest/jest.config.js
CHANGED
|
@@ -18,7 +18,8 @@ module.exports = {
|
|
|
18
18
|
transform: {
|
|
19
19
|
'^.+\\.(js|jsx|ts|tsx)$': require.resolve('./transformer'),
|
|
20
20
|
'^.+\\.css$': require.resolve('./css-transform.js'),
|
|
21
|
-
'^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': require.resolve('./file-transform.js')
|
|
21
|
+
'^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': require.resolve('./file-transform.js') // '^(?!.*\\.(svg|png|jpg|jpeg|gif|webp|woff|ttf|woff2)$)': require.resolve('./file-transform.js'),
|
|
22
|
+
|
|
22
23
|
},
|
|
23
24
|
transformIgnorePatterns: ['[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$', '^.+\\.module\\.(css|sass|scss)$'],
|
|
24
25
|
modulePaths: [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["jest.config.js"],"names":["module","exports","setupFiles","require","resolve","setupFilesAfterEnv","testEnvironment","transform","transformIgnorePatterns","modulePaths","moduleNameMapper","moduleFileExtensions"],"mappings":";;AAAAA,MAAM,CAACC,OAAP,GAAiB;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACAC,EAAAA,UAAU,EAAE,CAACC,OAAO,CAACC,OAAR,CAAgB,0BAAhB,CAAD,CARG;AASfC,EAAAA,kBAAkB,EAAE,CAACF,OAAO,CAACC,OAAR,CAAgB,iBAAhB,CAAD,CATL;AAUf;AACA;AACA;AACA;AACAE,EAAAA,eAAe,EAAEH,OAAO,CAACC,OAAR,CAAgB,wBAAhB,CAdF;AAefG,EAAAA,SAAS,EAAE;AACT,8BAA0BJ,OAAO,CAACC,OAAR,CAAgB,eAAhB,CADjB;AAET,kBAAcD,OAAO,CAACC,OAAR,CAAgB,oBAAhB,CAFL;AAGT,2CAAuCD,OAAO,CAACC,OAAR,CAAgB,qBAAhB
|
|
1
|
+
{"version":3,"sources":["jest.config.js"],"names":["module","exports","setupFiles","require","resolve","setupFilesAfterEnv","testEnvironment","transform","transformIgnorePatterns","modulePaths","moduleNameMapper","moduleFileExtensions"],"mappings":";;AAAAA,MAAM,CAACC,OAAP,GAAiB;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACAC,EAAAA,UAAU,EAAE,CAACC,OAAO,CAACC,OAAR,CAAgB,0BAAhB,CAAD,CARG;AASfC,EAAAA,kBAAkB,EAAE,CAACF,OAAO,CAACC,OAAR,CAAgB,iBAAhB,CAAD,CATL;AAUf;AACA;AACA;AACA;AACAE,EAAAA,eAAe,EAAEH,OAAO,CAACC,OAAR,CAAgB,wBAAhB,CAdF;AAefG,EAAAA,SAAS,EAAE;AACT,8BAA0BJ,OAAO,CAACC,OAAR,CAAgB,eAAhB,CADjB;AAET,kBAAcD,OAAO,CAACC,OAAR,CAAgB,oBAAhB,CAFL;AAGT,2CAAuCD,OAAO,CAACC,OAAR,CAAgB,qBAAhB,CAH9B,CAIT;;AAJS,GAfI;AAqBfI,EAAAA,uBAAuB,EAAE,CAAC,iDAAD,EAAoD,iCAApD,CArBV;AAsBfC,EAAAA,WAAW,EAAE,EAtBE;AAuBfC,EAAAA,gBAAgB,EAAE;AAChB,sBAAkBP,OAAO,CAACC,OAAR,CAAgB,kBAAhB,CADF;AAEhB,uCAAmCD,OAAO,CAACC,OAAR,CAAgB,oBAAhB;AAFnB,GAvBH;AA2BfO,EAAAA,oBAAoB,EAAE,CAAC,QAAD,EAAW,IAAX,EAAiB,QAAjB,EAA2B,IAA3B,EAAiC,SAAjC,EAA4C,KAA5C,EAAmD,MAAnD,EAA2D,SAA3D,EAAsE,KAAtE,EAA6E,MAA7E,CA3BP,CA4Bf;;AA5Be,CAAjB","sourcesContent":["module.exports = {\n // \"roots\": [\n // \"<rootDir>/src\"\n // ],\n // \"collectCoverageFrom\": [\n // \"src/**/*.{js,jsx,ts,tsx}\",\n // \"!src/**/*.d.ts\"\n // ],\n setupFiles: [require.resolve('react-app-polyfill/jsdom')],\n setupFilesAfterEnv: [require.resolve('./setupTests.js')],\n // \"testMatch\": [\n // \"<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}\",\n // \"<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}\"\n // ],\n testEnvironment: require.resolve('jest-environment-jsdom'),\n transform: {\n '^.+\\\\.(js|jsx|ts|tsx)$': require.resolve('./transformer'),\n '^.+\\\\.css$': require.resolve('./css-transform.js'),\n '^(?!.*\\\\.(js|jsx|ts|tsx|css|json)$)': require.resolve('./file-transform.js'),\n // '^(?!.*\\\\.(svg|png|jpg|jpeg|gif|webp|woff|ttf|woff2)$)': require.resolve('./file-transform.js'),\n },\n transformIgnorePatterns: ['[/\\\\\\\\]node_modules[/\\\\\\\\].+\\\\.(js|jsx|ts|tsx)$', '^.+\\\\.module\\\\.(css|sass|scss)$'],\n modulePaths: [],\n moduleNameMapper: {\n '^react-native$': require.resolve('react-native-web'),\n '^.+\\\\.module\\\\.(css|sass|scss)$': require.resolve('identity-obj-proxy'),\n },\n moduleFileExtensions: ['web.js', 'js', 'web.ts', 'ts', 'web.tsx', 'tsx', 'json', 'web.jsx', 'jsx', 'node'],\n // watchPlugins: [require.resolve('jest-watch-typeahead/filename'), require.resolve('jest-watch-typeahead/testname')],\n};\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ApplicationType } from '@teambit/application';
|
|
2
|
+
import { ReactEnv } from './react.env';
|
|
3
|
+
import { ReactAppOptions } from './react-app-options';
|
|
4
|
+
import { ReactApp } from './react.application';
|
|
5
|
+
export declare class ReactAppType implements ApplicationType<ReactAppOptions> {
|
|
6
|
+
readonly name: string;
|
|
7
|
+
private reactEnv;
|
|
8
|
+
constructor(name: string, reactEnv: ReactEnv);
|
|
9
|
+
createApp(options: ReactAppOptions): ReactApp;
|
|
10
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ReactAppType = void 0;
|
|
7
|
+
|
|
8
|
+
function _react() {
|
|
9
|
+
const data = require("./react.application");
|
|
10
|
+
|
|
11
|
+
_react = function () {
|
|
12
|
+
return data;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
return data;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
class ReactAppType {
|
|
19
|
+
constructor(name, reactEnv) {
|
|
20
|
+
this.name = name;
|
|
21
|
+
this.reactEnv = reactEnv;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
createApp(options) {
|
|
25
|
+
return new (_react().ReactApp)(options.name, options.entry, options.portRange || [3000, 4000], this.reactEnv, options.deploy);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
exports.ReactAppType = ReactAppType;
|
|
31
|
+
|
|
32
|
+
//# sourceMappingURL=react.app-type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["react.app-type.ts"],"names":["ReactAppType","constructor","name","reactEnv","createApp","options","ReactApp","entry","portRange","deploy"],"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,EAAaD,OAAO,CAACH,IAArB,EAA2BG,OAAO,CAACE,KAAnC,EAA0CF,OAAO,CAACG,SAAR,IAAqB,CAAC,IAAD,EAAO,IAAP,CAA/D,EAA6E,KAAKL,QAAlF,EAA4FE,OAAO,CAACI,MAApG,CAAP;AACD;;AALmE","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(options.name, options.entry, options.portRange || [3000, 4000], this.reactEnv, options.deploy);\n }\n}\n"]}
|
|
@@ -7,9 +7,8 @@ export declare class ReactApp implements Application {
|
|
|
7
7
|
readonly entry: string[];
|
|
8
8
|
readonly portRange: number[];
|
|
9
9
|
private reactEnv;
|
|
10
|
-
private rootPath;
|
|
11
10
|
readonly deploy?: ((context: DeployContext) => Promise<void>) | undefined;
|
|
12
|
-
constructor(name: string, entry: string[], portRange: number[], reactEnv: ReactEnv,
|
|
11
|
+
constructor(name: string, entry: string[], portRange: number[], reactEnv: ReactEnv, deploy?: ((context: DeployContext) => Promise<void>) | undefined);
|
|
13
12
|
applicationType: string;
|
|
14
13
|
run(context: AppContext): Promise<number>;
|
|
15
14
|
build(context: BuildContext, aspectId: string, appCapsule: Capsule): Promise<DeployContext>;
|
|
@@ -42,12 +42,11 @@ function _toolboxNetwork() {
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
class ReactApp {
|
|
45
|
-
constructor(name, entry, portRange, reactEnv,
|
|
45
|
+
constructor(name, entry, portRange, reactEnv, deploy) {
|
|
46
46
|
this.name = name;
|
|
47
47
|
this.entry = entry;
|
|
48
48
|
this.portRange = portRange;
|
|
49
49
|
this.reactEnv = reactEnv;
|
|
50
|
-
this.rootPath = rootPath;
|
|
51
50
|
this.deploy = deploy;
|
|
52
51
|
(0, _defineProperty2().default)(this, "applicationType", 'react');
|
|
53
52
|
}
|
|
@@ -56,6 +55,14 @@ class ReactApp {
|
|
|
56
55
|
const devServerContext = this.getDevServerContext(context);
|
|
57
56
|
const devServer = this.reactEnv.getDevServer(devServerContext, [configMutator => {
|
|
58
57
|
// configMutator.addTopLevel('output', { publicPath: `/public/${this.name}` });
|
|
58
|
+
configMutator.addTopLevel('devServer', {
|
|
59
|
+
historyApiFallback: {
|
|
60
|
+
index: '/index.html',
|
|
61
|
+
disableDotRule: true
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
if (!configMutator.raw.output) configMutator.raw.output = {};
|
|
65
|
+
configMutator.raw.output.publicPath = '/';
|
|
59
66
|
return configMutator;
|
|
60
67
|
}]);
|
|
61
68
|
const [from, to] = this.portRange;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["react.application.ts"],"names":["ReactApp","constructor","name","entry","portRange","reactEnv","
|
|
1
|
+
{"version":3,"sources":["react.application.ts"],"names":["ReactApp","constructor","name","entry","portRange","reactEnv","deploy","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","deployContext","applicationType","title"],"mappings":"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","sourcesContent":["import { 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';\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: DeployContext) => Promise<void>\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('output', { publicPath: `/public/${this.name}` });\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 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"]}
|
|
@@ -60,8 +60,9 @@ export declare class ReactMain {
|
|
|
60
60
|
readonly env: ReactEnv;
|
|
61
61
|
useTypescript(modifiers?: UseTypescriptModifiers, tsModule?: any): EnvTransformer;
|
|
62
62
|
overrideTsConfig(tsconfig?: Record<string, any>, compilerOptions?: Partial<TsCompilerOptionsWithoutTsConfig>, tsModule?: any): EnvTransformer;
|
|
63
|
+
overrideDocsTemplate(templatePath: string): EnvTransformer;
|
|
63
64
|
overrideBuildTsConfig(tsconfig?: Record<string, any>, compilerOptions?: Partial<TsCompilerOptionsWithoutTsConfig>, tsModule?: any): EnvTransformer;
|
|
64
|
-
registerReactApp(options: ReactAppOptions):
|
|
65
|
+
registerReactApp(options: ReactAppOptions): this;
|
|
65
66
|
useWebpack(modifiers?: UseWebpackModifiers): EnvTransformer;
|
|
66
67
|
useEslint(modifiers?: UseEslintModifiers): EnvTransformer;
|
|
67
68
|
usePrettier(modifiers?: UsePrettierModifiers): EnvTransformer;
|
|
@@ -214,7 +214,7 @@ function _react2() {
|
|
|
214
214
|
}
|
|
215
215
|
|
|
216
216
|
function _react3() {
|
|
217
|
-
const data = require("./react.
|
|
217
|
+
const data = require("./react.app-type");
|
|
218
218
|
|
|
219
219
|
_react3 = function () {
|
|
220
220
|
return data;
|
|
@@ -224,7 +224,7 @@ function _react3() {
|
|
|
224
224
|
}
|
|
225
225
|
|
|
226
226
|
function _react4() {
|
|
227
|
-
const data = require("./react.
|
|
227
|
+
const data = require("./react.graphql");
|
|
228
228
|
|
|
229
229
|
_react4 = function () {
|
|
230
230
|
return data;
|
|
@@ -234,7 +234,7 @@ function _react4() {
|
|
|
234
234
|
}
|
|
235
235
|
|
|
236
236
|
function _react5() {
|
|
237
|
-
const data = require("./react.
|
|
237
|
+
const data = require("./react.application");
|
|
238
238
|
|
|
239
239
|
_react5 = function () {
|
|
240
240
|
return data;
|
|
@@ -243,6 +243,16 @@ function _react5() {
|
|
|
243
243
|
return data;
|
|
244
244
|
}
|
|
245
245
|
|
|
246
|
+
function _react6() {
|
|
247
|
+
const data = require("./react.templates");
|
|
248
|
+
|
|
249
|
+
_react6 = function () {
|
|
250
|
+
return data;
|
|
251
|
+
};
|
|
252
|
+
|
|
253
|
+
return data;
|
|
254
|
+
}
|
|
255
|
+
|
|
246
256
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
247
257
|
|
|
248
258
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2().default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
@@ -318,6 +328,16 @@ class ReactMain {
|
|
|
318
328
|
devConfig: [transformer]
|
|
319
329
|
}, tsModule);
|
|
320
330
|
}
|
|
331
|
+
/**
|
|
332
|
+
* Override the Bit documentation link. See docs: https://bit.dev/docs/docs/doc-templates
|
|
333
|
+
*/
|
|
334
|
+
|
|
335
|
+
|
|
336
|
+
overrideDocsTemplate(templatePath) {
|
|
337
|
+
return this.envs.override({
|
|
338
|
+
getDocsTemplate: () => templatePath
|
|
339
|
+
});
|
|
340
|
+
}
|
|
321
341
|
/**
|
|
322
342
|
* @deprecated use useTypescript()
|
|
323
343
|
* override the build tsconfig.
|
|
@@ -354,8 +374,8 @@ class ReactMain {
|
|
|
354
374
|
|
|
355
375
|
|
|
356
376
|
registerReactApp(options) {
|
|
357
|
-
|
|
358
|
-
|
|
377
|
+
this.application.registerApp(new (_react5().ReactApp)(options.name, options.entry, options.portRange || [3000, 4000], this.reactEnv, options.deploy));
|
|
378
|
+
return this;
|
|
359
379
|
}
|
|
360
380
|
/**
|
|
361
381
|
* override the env's dev server and preview webpack configurations.
|
|
@@ -553,10 +573,11 @@ class ReactMain {
|
|
|
553
573
|
static async provider([envs, jestAspect, tsAspect, compiler, webpack, workspace, graphql, pkg, tester, eslint, prettier, application, generator], config) {
|
|
554
574
|
const reactEnv = new (_react2().ReactEnv)(jestAspect, tsAspect, compiler, webpack, workspace, pkg, tester, config, eslint, prettier);
|
|
555
575
|
const react = new ReactMain(reactEnv, envs, application, workspace);
|
|
556
|
-
graphql.register((0,
|
|
576
|
+
graphql.register((0, _react4().reactSchema)(react));
|
|
557
577
|
envs.registerEnv(reactEnv);
|
|
558
|
-
generator.registerComponentTemplate(
|
|
559
|
-
generator.registerWorkspaceTemplate(
|
|
578
|
+
generator.registerComponentTemplate(_react6().componentTemplates);
|
|
579
|
+
generator.registerWorkspaceTemplate(_react6().workspaceTemplates);
|
|
580
|
+
application.registerAppType(new (_react3().ReactAppType)('react-app', reactEnv));
|
|
560
581
|
return react;
|
|
561
582
|
}
|
|
562
583
|
|
|
@@ -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","overrideBuildTsConfig","registerReactApp","options","registerApp","ReactApp","name","entry","portRange","path","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","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 { 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 * @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 if (!this.workspace) return;\n this.application.registerApp(\n new ReactApp(\n options.name,\n options.entry,\n options.portRange || [3000, 4000],\n this.reactEnv,\n this.workspace.path,\n options.deploy\n )\n );\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 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","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"]}
|
package/index.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
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';
|
|
4
5
|
// Re-export it to indicate for people that extends the react env that we are using it
|
|
5
6
|
// Commented - make errors in safari - SyntaxError: Invalid regular expression: invalid group specifier name
|
|
6
7
|
// export * as styleRegexps from '@teambit/modules.style-regexps';
|
package/jest/jest.config.js
CHANGED
|
@@ -17,6 +17,7 @@ module.exports = {
|
|
|
17
17
|
'^.+\\.(js|jsx|ts|tsx)$': require.resolve('./transformer'),
|
|
18
18
|
'^.+\\.css$': require.resolve('./css-transform.js'),
|
|
19
19
|
'^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': require.resolve('./file-transform.js'),
|
|
20
|
+
// '^(?!.*\\.(svg|png|jpg|jpeg|gif|webp|woff|ttf|woff2)$)': require.resolve('./file-transform.js'),
|
|
20
21
|
},
|
|
21
22
|
transformIgnorePatterns: ['[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$', '^.+\\.module\\.(css|sass|scss)$'],
|
|
22
23
|
modulePaths: [],
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/react",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.524",
|
|
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.524"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"react-error-boundary": "^3.0.0",
|
|
@@ -75,49 +75,49 @@
|
|
|
75
75
|
"@svgr/webpack": "5.5.0",
|
|
76
76
|
"core-js": "^3.0.0",
|
|
77
77
|
"@teambit/base-ui.utils.composer": "1.0.0",
|
|
78
|
-
"@teambit/react.instructions.react.adding-compositions": "0.0.
|
|
79
|
-
"@teambit/react.instructions.react.adding-tests": "0.0.
|
|
80
|
-
"@teambit/design.ui.pages.standalone-not-found-page": "0.0.
|
|
81
|
-
"@teambit/preview": "0.0.
|
|
82
|
-
"@teambit/react.ui.error-fallback": "0.0.
|
|
83
|
-
"@teambit/react.ui.loader-fallback": "0.0.
|
|
84
|
-
"@teambit/compositions.ui.hooks.use-composition": "0.0.
|
|
85
|
-
"@teambit/design.ui.input.option-button": "0.0.
|
|
86
|
-
"@teambit/design.ui.tooltip": "0.0.
|
|
87
|
-
"@teambit/application": "0.0.
|
|
88
|
-
"@teambit/bundler": "0.0.
|
|
89
|
-
"@teambit/builder": "0.0.
|
|
90
|
-
"@teambit/isolator": "0.0.
|
|
91
|
-
"@teambit/toolbox.network.get-port": "0.0.
|
|
92
|
-
"@teambit/compiler": "0.0.
|
|
93
|
-
"@teambit/component.modules.component-url": "0.0.
|
|
94
|
-
"@teambit/component": "0.0.
|
|
95
|
-
"@teambit/envs": "0.0.
|
|
96
|
-
"@teambit/eslint": "0.0.
|
|
97
|
-
"@teambit/formatter": "0.0.
|
|
98
|
-
"@teambit/jest": "0.0.
|
|
99
|
-
"@teambit/linter": "0.0.
|
|
100
|
-
"@teambit/pkg": "0.0.
|
|
101
|
-
"@teambit/prettier": "0.0.
|
|
102
|
-
"@teambit/react.babel.bit-react-transformer": "0.0.
|
|
103
|
-
"@teambit/schema": "0.0.
|
|
104
|
-
"@teambit/tester": "0.0.
|
|
105
|
-
"@teambit/typescript": "0.0.
|
|
106
|
-
"@teambit/webpack": "0.0.
|
|
107
|
-
"@teambit/workspace": "0.0.
|
|
108
|
-
"@teambit/cli": "0.0.
|
|
109
|
-
"@teambit/dependency-resolver": "0.0.
|
|
110
|
-
"@teambit/generator": "0.0.
|
|
111
|
-
"@teambit/graphql": "0.0.
|
|
112
|
-
"@teambit/react.ui.highlighter-provider": "0.0.
|
|
113
|
-
"@teambit/compositions": "0.0.
|
|
114
|
-
"@teambit/ui": "0.0.
|
|
115
|
-
"@teambit/react.eslint-config-bit-react": "0.0.
|
|
116
|
-
"@teambit/mdx.modules.mdx-loader": "0.0.
|
|
117
|
-
"@teambit/webpack.modules.generate-style-loaders": "0.0.
|
|
118
|
-
"@teambit/webpack.modules.style-regexps": "0.0.
|
|
119
|
-
"@teambit/component-id": "0.0.
|
|
120
|
-
"@teambit/config": "0.0.
|
|
78
|
+
"@teambit/react.instructions.react.adding-compositions": "0.0.6",
|
|
79
|
+
"@teambit/react.instructions.react.adding-tests": "0.0.6",
|
|
80
|
+
"@teambit/design.ui.pages.standalone-not-found-page": "0.0.354",
|
|
81
|
+
"@teambit/preview": "0.0.524",
|
|
82
|
+
"@teambit/react.ui.error-fallback": "0.0.69",
|
|
83
|
+
"@teambit/react.ui.loader-fallback": "0.0.48",
|
|
84
|
+
"@teambit/compositions.ui.hooks.use-composition": "0.0.123",
|
|
85
|
+
"@teambit/design.ui.input.option-button": "0.0.26",
|
|
86
|
+
"@teambit/design.ui.tooltip": "0.0.352",
|
|
87
|
+
"@teambit/application": "0.0.166",
|
|
88
|
+
"@teambit/bundler": "0.0.524",
|
|
89
|
+
"@teambit/builder": "0.0.524",
|
|
90
|
+
"@teambit/isolator": "0.0.524",
|
|
91
|
+
"@teambit/toolbox.network.get-port": "0.0.73",
|
|
92
|
+
"@teambit/compiler": "0.0.524",
|
|
93
|
+
"@teambit/component.modules.component-url": "0.0.78",
|
|
94
|
+
"@teambit/component": "0.0.524",
|
|
95
|
+
"@teambit/envs": "0.0.524",
|
|
96
|
+
"@teambit/eslint": "0.0.524",
|
|
97
|
+
"@teambit/formatter": "0.0.75",
|
|
98
|
+
"@teambit/jest": "0.0.524",
|
|
99
|
+
"@teambit/linter": "0.0.524",
|
|
100
|
+
"@teambit/pkg": "0.0.524",
|
|
101
|
+
"@teambit/prettier": "0.0.75",
|
|
102
|
+
"@teambit/react.babel.bit-react-transformer": "0.0.451",
|
|
103
|
+
"@teambit/schema": "0.0.524",
|
|
104
|
+
"@teambit/tester": "0.0.524",
|
|
105
|
+
"@teambit/typescript": "0.0.524",
|
|
106
|
+
"@teambit/webpack": "0.0.524",
|
|
107
|
+
"@teambit/workspace": "0.0.524",
|
|
108
|
+
"@teambit/cli": "0.0.380",
|
|
109
|
+
"@teambit/dependency-resolver": "0.0.524",
|
|
110
|
+
"@teambit/generator": "0.0.524",
|
|
111
|
+
"@teambit/graphql": "0.0.524",
|
|
112
|
+
"@teambit/react.ui.highlighter-provider": "0.0.131",
|
|
113
|
+
"@teambit/compositions": "0.0.524",
|
|
114
|
+
"@teambit/ui": "0.0.524",
|
|
115
|
+
"@teambit/react.eslint-config-bit-react": "0.0.446",
|
|
116
|
+
"@teambit/mdx.modules.mdx-loader": "0.0.446",
|
|
117
|
+
"@teambit/webpack.modules.generate-style-loaders": "0.0.63",
|
|
118
|
+
"@teambit/webpack.modules.style-regexps": "0.0.92",
|
|
119
|
+
"@teambit/component-id": "0.0.370",
|
|
120
|
+
"@teambit/config": "0.0.391"
|
|
121
121
|
},
|
|
122
122
|
"devDependencies": {
|
|
123
123
|
"@types/react": "^17.0.8",
|
|
@@ -132,14 +132,14 @@
|
|
|
132
132
|
"@types/mocha": "5.2.7",
|
|
133
133
|
"@types/testing-library__jest-dom": "5.9.5",
|
|
134
134
|
"@types/jest": "^26.0.0",
|
|
135
|
-
"@teambit/react.aspect-docs.react": "0.0.
|
|
135
|
+
"@teambit/react.aspect-docs.react": "0.0.86"
|
|
136
136
|
},
|
|
137
137
|
"peerDependencies": {
|
|
138
138
|
"@teambit/legacy": "1.0.160",
|
|
139
139
|
"react-dom": "^16.8.0 || ^17.0.0",
|
|
140
140
|
"react": "^16.8.0 || ^17.0.0"
|
|
141
141
|
},
|
|
142
|
-
"license": "
|
|
142
|
+
"license": "Apache-2.0",
|
|
143
143
|
"bit": {
|
|
144
144
|
"bindingPrefix": "@teambit",
|
|
145
145
|
"env": {},
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ApplicationType } from '@teambit/application';
|
|
2
|
+
import { ReactEnv } from './react.env';
|
|
3
|
+
import { ReactAppOptions } from './react-app-options';
|
|
4
|
+
import { ReactApp } from './react.application';
|
|
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(options.name, options.entry, options.portRange || [3000, 4000], this.reactEnv, options.deploy);
|
|
11
|
+
}
|
|
12
|
+
}
|
package/react.application.ts
CHANGED
|
@@ -12,7 +12,6 @@ export class ReactApp implements Application {
|
|
|
12
12
|
readonly entry: string[],
|
|
13
13
|
readonly portRange: number[],
|
|
14
14
|
private reactEnv: ReactEnv,
|
|
15
|
-
private rootPath: string,
|
|
16
15
|
readonly deploy?: (context: DeployContext) => Promise<void>
|
|
17
16
|
) {}
|
|
18
17
|
|
|
@@ -23,6 +22,16 @@ export class ReactApp implements Application {
|
|
|
23
22
|
const devServer = this.reactEnv.getDevServer(devServerContext, [
|
|
24
23
|
(configMutator) => {
|
|
25
24
|
// configMutator.addTopLevel('output', { publicPath: `/public/${this.name}` });
|
|
25
|
+
configMutator.addTopLevel('devServer', {
|
|
26
|
+
historyApiFallback: {
|
|
27
|
+
index: '/index.html',
|
|
28
|
+
disableDotRule: true,
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
if (!configMutator.raw.output) configMutator.raw.output = {};
|
|
33
|
+
configMutator.raw.output.publicPath = '/';
|
|
34
|
+
|
|
26
35
|
return configMutator;
|
|
27
36
|
},
|
|
28
37
|
]);
|
package/react.main.runtime.ts
CHANGED
|
@@ -30,6 +30,7 @@ import { ESLintMain, ESLintAspect, EslintConfigTransformer } from '@teambit/esli
|
|
|
30
30
|
import { PrettierMain, PrettierAspect, PrettierConfigTransformer } from '@teambit/prettier';
|
|
31
31
|
import { ReactAspect } from './react.aspect';
|
|
32
32
|
import { ReactEnv } from './react.env';
|
|
33
|
+
import { ReactAppType } from './react.app-type';
|
|
33
34
|
import { reactSchema } from './react.graphql';
|
|
34
35
|
import { ReactAppOptions } from './react-app-options';
|
|
35
36
|
import { ReactApp } from './react.application';
|
|
@@ -153,6 +154,15 @@ export class ReactMain {
|
|
|
153
154
|
return this.useTypescript({ devConfig: [transformer] }, tsModule);
|
|
154
155
|
}
|
|
155
156
|
|
|
157
|
+
/**
|
|
158
|
+
* Override the Bit documentation link. See docs: https://bit.dev/docs/docs/doc-templates
|
|
159
|
+
*/
|
|
160
|
+
overrideDocsTemplate(templatePath: string) {
|
|
161
|
+
return this.envs.override({
|
|
162
|
+
getDocsTemplate: () => templatePath,
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
|
|
156
166
|
/**
|
|
157
167
|
* @deprecated use useTypescript()
|
|
158
168
|
* override the build tsconfig.
|
|
@@ -183,17 +193,11 @@ export class ReactMain {
|
|
|
183
193
|
* register a new React application.
|
|
184
194
|
*/
|
|
185
195
|
registerReactApp(options: ReactAppOptions) {
|
|
186
|
-
if (!this.workspace) return;
|
|
187
196
|
this.application.registerApp(
|
|
188
|
-
new ReactApp(
|
|
189
|
-
options.name,
|
|
190
|
-
options.entry,
|
|
191
|
-
options.portRange || [3000, 4000],
|
|
192
|
-
this.reactEnv,
|
|
193
|
-
this.workspace.path,
|
|
194
|
-
options.deploy
|
|
195
|
-
)
|
|
197
|
+
new ReactApp(options.name, options.entry, options.portRange || [3000, 4000], this.reactEnv, options.deploy)
|
|
196
198
|
);
|
|
199
|
+
|
|
200
|
+
return this;
|
|
197
201
|
}
|
|
198
202
|
|
|
199
203
|
/**
|
|
@@ -425,6 +429,7 @@ export class ReactMain {
|
|
|
425
429
|
envs.registerEnv(reactEnv);
|
|
426
430
|
generator.registerComponentTemplate(componentTemplates);
|
|
427
431
|
generator.registerWorkspaceTemplate(workspaceTemplates);
|
|
432
|
+
application.registerAppType(new ReactAppType('react-app', reactEnv));
|
|
428
433
|
return react;
|
|
429
434
|
}
|
|
430
435
|
}
|
|
Binary file
|