@teambit/react 0.0.732 → 0.0.735

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/apps/web/plugins/index.ts +1 -1
  2. package/apps/web/plugins/prerender.ts +5 -13
  3. package/apps/web/react-app-options.ts +44 -3
  4. package/apps/web/react.application.ts +2 -2
  5. package/artifacts/env-template/public/117.js +34 -0
  6. package/artifacts/env-template/public/{283.js → 149.js} +2 -2
  7. package/artifacts/env-template/public/{793.js → 295.js} +63 -67
  8. package/artifacts/env-template/public/677.js +5 -5
  9. package/artifacts/env-template/public/750.js +6 -6
  10. package/artifacts/env-template/public/{764.js → 994.js} +6 -6
  11. package/artifacts/env-template/public/assets-manifest.json +21 -21
  12. package/artifacts/env-template/public/{compositions.3604561f89c7643dae7b.js → compositions.ff40db501672bede5e3f.js} +1 -1
  13. package/artifacts/env-template/public/compositions.html +1 -1
  14. package/artifacts/env-template/public/{overview.87ea5e32ca6eab940eb6.js → overview.9ee03c1e295a357f7aa0.js} +1 -1
  15. package/artifacts/env-template/public/overview.html +1 -1
  16. package/artifacts/env-template/public/peers.edfbd1f8ec8a3331b9ac.js +1 -0
  17. package/artifacts/env-template/public/{preview-root.7e877ecceb7548ad9faa.js → preview-root.7a24e602c0fa0ba9f5f1.js} +1 -1
  18. package/artifacts/env-template/public/service-worker.js +1 -1
  19. package/artifacts/env-template/public/static/css/295.e370e333.css +1 -0
  20. package/artifacts/preview/teambit_react_react-preview.js +2 -2
  21. package/{compositions-1652671504464.js → compositions-1652808661748.js} +0 -0
  22. package/dist/apps/web/plugins/index.d.ts +1 -1
  23. package/dist/apps/web/plugins/index.js +2 -2
  24. package/dist/apps/web/plugins/index.js.map +1 -1
  25. package/dist/apps/web/plugins/prerender.d.ts +1 -1
  26. package/dist/apps/web/plugins/prerender.js +12 -21
  27. package/dist/apps/web/plugins/prerender.js.map +1 -1
  28. package/dist/apps/web/react-app-options.d.ts +32 -2
  29. package/dist/apps/web/react.application.js +1 -1
  30. package/dist/apps/web/react.application.js.map +1 -1
  31. package/dist/react.env.js +2 -1
  32. package/dist/react.env.js.map +1 -1
  33. package/dist/webpack/get-exposed-rules.d.ts +2 -1
  34. package/dist/webpack/get-exposed-rules.js +12 -2
  35. package/dist/webpack/get-exposed-rules.js.map +1 -1
  36. package/dist/webpack/resolve-peer.d.ts +14 -0
  37. package/dist/webpack/resolve-peer.js +108 -0
  38. package/dist/webpack/resolve-peer.js.map +1 -0
  39. package/dist/webpack/transformers.d.ts +8 -1
  40. package/dist/webpack/transformers.js +37 -39
  41. package/dist/webpack/transformers.js.map +1 -1
  42. package/dist/webpack/webpack.config.base.prod.js +0 -15
  43. package/dist/webpack/webpack.config.base.prod.js.map +1 -1
  44. package/{overview-1652671504464.js → overview-1652808661748.js} +0 -0
  45. package/package-tar/teambit-react-0.0.735.tgz +0 -0
  46. package/package.json +35 -33
  47. package/{preview-1652671504464.js → preview-1652808661748.js} +2 -2
  48. package/webpack/get-exposed-rules.ts +4 -2
  49. package/webpack/resolve-peer.ts +60 -0
  50. package/webpack/transformers.ts +24 -33
  51. package/webpack/webpack.config.base.prod.ts +0 -9
  52. package/artifacts/env-template/public/15.js +0 -34
  53. package/artifacts/env-template/public/peers.dbfbae2daf17fd0c329d.js +0 -1
  54. package/artifacts/env-template/public/static/css/793.52d87d5e.css +0 -1
  55. package/package-tar/teambit-react-0.0.732.tgz +0 -0
@@ -1 +1 @@
1
- export { prerenderSPAPlugin } from './prerender';
1
+ export { prerenderPlugin } from './prerender';
@@ -1,18 +1,10 @@
1
- import { join } from 'path';
2
- import PrerenderSPAPlugin from '@dreysolano/prerender-spa-plugin';
1
+ import PrerenderSPAPlugin from 'prerender-spa-plugin-next';
2
+ import { PuppeteerRenderer } from '@teambit/react.modules.prerenderer-puppeteer';
3
3
  import { ReactAppPrerenderOptions } from '../react-app-options';
4
4
 
5
- export const prerenderSPAPlugin = (prerender: ReactAppPrerenderOptions, staticDir: string) => {
5
+ export const prerenderPlugin = (options: ReactAppPrerenderOptions) => {
6
6
  return new PrerenderSPAPlugin({
7
- staticDir,
8
- routes: prerender?.routes,
9
- postProcess(renderedRoute: any) {
10
- if (prerender.postProcess) return prerender.postProcess(renderedRoute, staticDir);
11
- renderedRoute.outputPath = join(staticDir, `${renderedRoute.originalRoute}.html`);
12
- return renderedRoute;
13
- },
14
- server: {
15
- ...prerender?.server,
16
- },
7
+ renderer: PuppeteerRenderer,
8
+ ...options,
17
9
  });
18
10
  };
@@ -3,21 +3,62 @@ import { WebpackConfigTransformer } from '@teambit/webpack';
3
3
 
4
4
  import { ReactDeployContext } from './deploy-context';
5
5
 
6
+ type prerenderedRoute = {
7
+ /** The prerendered route, after following redirects */
8
+ route: string;
9
+ /** The original route passed, before redirects */
10
+ originalRoute: string;
11
+ /** The resulting HTML for the route */
12
+ html: string;
13
+ /**
14
+ * The path to write the rendered HTML to.
15
+ * This is null (automatically calculated after postProcess)
16
+ * unless explicitly set. */
17
+ outputPath?: string | null;
18
+ };
19
+
20
+ /** https://github.com/Tofandel/prerender-spa-plugin-next */
6
21
  export type ReactAppPrerenderOptions = {
22
+ /**
23
+ * sub folder to output the prerender, inside the webpack output folder
24
+ * @default '/'
25
+ */
26
+ staticDir?: string;
27
+
28
+ /** The index file to fall back on for SPAs. */
29
+ indexPath?: string;
30
+
7
31
  /**
8
32
  * routes to prerender
9
33
  */
10
34
  routes: string[];
35
+
11
36
  /**
12
37
  * the proxy server you want the prerender headless browser to run on
13
38
  */
14
-
15
- server?: { proxy: { [key: string]: { target: 'http://localhost:8000/'; pathRewrite: { [key: string]: string } } } };
39
+ server?: {
40
+ proxy: {
41
+ [key: string]: {
42
+ /** required by HPM.
43
+ * @default 'http://localhost:8000/' */
44
+ target: string;
45
+ pathRewrite: { [key: string]: string };
46
+ };
47
+ };
48
+ };
16
49
 
17
50
  /**
18
51
  * Post processing of the prerendered html. This is useful for adding meta tags to the html or changing the file name.
19
52
  */
20
- postProcess?: (prerenderRoute: string, staticDir: string) => string;
53
+ postProcess?: (prerenderRoute: prerenderedRoute) => prerenderedRoute;
54
+
55
+ /** The renderer you'd like to use to prerender the app.
56
+ * @default new require("@prerenderer/renderer-puppeteer").
57
+ */
58
+ renderer?: any;
59
+
60
+ /** options to pass to the renderer class's constructor */
61
+ rendererOptions?: any;
21
62
  };
22
63
 
23
64
  export type ReactAppOptions = {
@@ -6,7 +6,7 @@ import { remove } from 'lodash';
6
6
  import TerserPlugin from 'terser-webpack-plugin';
7
7
  import { WebpackConfigTransformer } from '@teambit/webpack';
8
8
  import { ReactEnv } from '../../react.env';
9
- import { prerenderSPAPlugin } from './plugins';
9
+ import { prerenderPlugin } from './plugins';
10
10
  import { ReactAppBuildResult } from './react-build-result';
11
11
  import { ReactAppPrerenderOptions } from './react-app-options';
12
12
  import { html } from '../../webpack';
@@ -105,7 +105,7 @@ export class ReactApp implements Application {
105
105
 
106
106
  const defaultTransformer: WebpackConfigTransformer = (configMutator) => {
107
107
  const config = configMutator.addTopLevel('output', { path: staticDir, publicPath: `/` });
108
- if (this.prerender) config.addPlugin(prerenderSPAPlugin(this.prerender, staticDir));
108
+ if (this.prerender) config.addPlugin(prerenderPlugin(this.prerender));
109
109
  if (config.raw.optimization?.minimizer) {
110
110
  remove(config.raw.optimization?.minimizer, (minimizer) => {
111
111
  return minimizer.constructor.name === 'TerserPlugin';