@teambit/react 0.0.1035 → 0.0.1037

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 (27) hide show
  1. package/apps/web/plugins/prerender.ts +22 -7
  2. package/apps/web/react-app-options.ts +3 -57
  3. package/artifacts/__bit_junit.xml +2 -2
  4. package/artifacts/env-template/public/{679.be483e1451a5c221b6b6.js → 679.c7444390b7eee3d080c5.js} +11 -19
  5. package/artifacts/env-template/public/{631.764239fadc03d120423e.js → 737.8a04d8e8120c7667bef0.js} +2 -2
  6. package/artifacts/env-template/public/assets-manifest.json +14 -14
  7. package/artifacts/env-template/public/{compositions.b2f46f3091007b26af1c.js → compositions.995369366bebb3e8895b.js} +1 -1
  8. package/artifacts/env-template/public/compositions.html +1 -1
  9. package/artifacts/env-template/public/{overview.2623bbce93b9b8dba574.js → overview.10473ade53b8ac1c15ac.js} +1 -1
  10. package/artifacts/env-template/public/overview.html +1 -1
  11. package/artifacts/env-template/public/{peers.397f478feac0fb0429f0.js → peers.2071c5e5f864f560ecb2.js} +1 -1
  12. package/artifacts/env-template/public/{preview-root.7bd796280339b38c589e.js → preview-root.befade9bf0bd29975365.js} +1 -1
  13. package/artifacts/env-template/public/static/css/{679.ffe8c3f6.css → 679.b61a7638.css} +1 -1
  14. package/artifacts/preview/teambit_react_react-preview.js +1 -1
  15. package/artifacts/schema.json +163 -767
  16. package/dist/apps/web/plugins/prerender.d.ts +11 -2
  17. package/dist/apps/web/plugins/prerender.js +20 -9
  18. package/dist/apps/web/plugins/prerender.js.map +1 -1
  19. package/dist/apps/web/react-app-options.d.ts +3 -53
  20. package/dist/apps/web/react-app-options.js.map +1 -1
  21. package/dist/apps/web/react.application.d.ts +2 -3
  22. package/dist/{preview-1681356521665.js → preview-1681875190881.js} +2 -2
  23. package/package-tar/teambit-react-0.0.1037.tgz +0 -0
  24. package/package.json +33 -32
  25. package/package-tar/teambit-react-0.0.1035.tgz +0 -0
  26. /package/{compositions-1681356521665.js → compositions-1681875190881.js} +0 -0
  27. /package/{overview-1681356521665.js → overview-1681875190881.js} +0 -0
@@ -1,10 +1,25 @@
1
- import PrerenderSPAPlugin from 'prerender-spa-plugin-next';
2
- import { PuppeteerRenderer } from '@teambit/react.modules.prerenderer-puppeteer';
3
- import { ReactAppPrerenderOptions } from '../react-app-options';
1
+ // we need to disable this eslint rule because the packages from "@prerenderer" doesn't have the "main" field in their package.json (https://github.com/import-js/eslint-plugin-import/issues/2132)
2
+ // eslint-disable-next-line import/no-unresolved
3
+ import type { RenderedRoute, PrerendererOptions } from '@prerenderer/prerenderer';
4
+ // eslint-disable-next-line import/no-unresolved
5
+ import PrerendererWebpackPlugin from '@prerenderer/webpack-plugin';
6
+ // eslint-disable-next-line import/no-unresolved
7
+ import JSdomPrerenderer, { JSDOMRendererOptions } from '@prerenderer/renderer-jsdom';
4
8
 
5
- export const prerenderPlugin = (options: ReactAppPrerenderOptions) => {
6
- return new PrerenderSPAPlugin({
7
- renderer: PuppeteerRenderer,
8
- ...options,
9
+ export interface WebpackPrerenderSPAOptions extends Omit<PrerendererOptions, 'staticDir'> {
10
+ entryPath?: string;
11
+ routes?: Array<string>;
12
+ postProcess?: (renderedRoutes: RenderedRoute) => Promise<void> | void;
13
+ urlModifier?(url: string): string;
14
+ prerenderOptions?: JSDOMRendererOptions;
15
+ }
16
+
17
+ export const prerenderPlugin = (options: WebpackPrerenderSPAOptions) => {
18
+ const { prerenderOptions, ...rest } = options;
19
+ return new PrerendererWebpackPlugin({
20
+ renderer: new JSdomPrerenderer({
21
+ ...prerenderOptions,
22
+ }),
23
+ ...rest,
9
24
  });
10
25
  };
@@ -2,64 +2,10 @@ import { Bundler, DevServer } from '@teambit/bundler';
2
2
  import { WebpackConfigTransformer } from '@teambit/webpack';
3
3
 
4
4
  import { ReactDeployContext } from './deploy-context';
5
+ import { WebpackPrerenderSPAOptions } from './plugins/prerender';
5
6
 
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 */
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
-
31
- /**
32
- * routes to prerender
33
- */
34
- routes: string[];
35
-
36
- /**
37
- * the proxy server you want the prerender headless browser to run on
38
- */
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
- };
49
-
50
- /**
51
- * Post processing of the prerendered html. This is useful for adding meta tags to the html or changing the file name.
52
- */
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;
62
- };
7
+ /** https://github.com/Tofandel/prerenderer */
8
+ export type ReactAppPrerenderOptions = WebpackPrerenderSPAOptions;
63
9
 
64
10
  export type ReactAppOptions = {
65
11
  /**
@@ -1,6 +1,6 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
2
  <testsuites>
3
- <testsuite name="teambit.react/react@0.0.1035" timestamp="2023-04-13T04:05:07.153Z" tests="1" failures="0" errors="0" skipped="0">
4
- <testcase classname="index-file.spec.js" name="should match snapshot" time="0.058"/>
3
+ <testsuite name="teambit.react/react@0.0.1037" timestamp="2023-04-19T04:29:16.848Z" tests="1" failures="0" errors="0" skipped="0">
4
+ <testcase classname="index-file.spec.js" name="should match snapshot" time="0.065"/>
5
5
  </testsuite>
6
6
  </testsuites>