@cedarjs/prerender 7.0.0-canary.3258 → 7.0.0-rc.123
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/babelPlugins/babel-plugin-redwood-cell.d.ts +5 -0
- package/dist/babelPlugins/babel-plugin-redwood-cell.d.ts.map +1 -0
- package/dist/babelPlugins/babel-plugin-redwood-cell.js +98 -0
- package/dist/babelPlugins/babel-plugin-redwood-prerender-media-imports.d.ts +5 -0
- package/dist/babelPlugins/babel-plugin-redwood-prerender-media-imports.d.ts.map +1 -0
- package/dist/babelPlugins/babel-plugin-redwood-prerender-media-imports.js +77 -0
- package/dist/babelPlugins/utils.d.ts +2 -0
- package/dist/babelPlugins/utils.d.ts.map +1 -0
- package/dist/babelPlugins/utils.js +15 -0
- package/dist/browserUtils/index.d.ts +1 -1
- package/dist/browserUtils/index.d.ts.map +1 -1
- package/dist/build-and-import/buildAndImport.d.ts +1 -1
- package/dist/build-and-import/buildAndImport.d.ts.map +1 -1
- package/dist/build-and-import/buildAndImport.js +9 -2
- package/dist/build-and-import/rollupPlugins/rollup-plugin-cedarjs-routes-auto-loader.d.ts.map +1 -1
- package/dist/cjs/apolloState.d.ts +13 -0
- package/dist/cjs/apolloState.d.ts.map +1 -0
- package/dist/cjs/apolloState.js +30 -0
- package/dist/cjs/babelPlugins/babel-plugin-redwood-cell.d.ts +5 -0
- package/dist/cjs/babelPlugins/babel-plugin-redwood-cell.d.ts.map +1 -0
- package/dist/cjs/babelPlugins/babel-plugin-redwood-cell.js +122 -0
- package/dist/cjs/babelPlugins/babel-plugin-redwood-prerender-media-imports.d.ts +5 -0
- package/dist/cjs/babelPlugins/babel-plugin-redwood-prerender-media-imports.d.ts.map +1 -0
- package/dist/cjs/babelPlugins/babel-plugin-redwood-prerender-media-imports.js +101 -0
- package/dist/cjs/babelPlugins/utils.d.ts +2 -0
- package/dist/cjs/babelPlugins/utils.d.ts.map +1 -0
- package/dist/cjs/babelPlugins/utils.js +49 -0
- package/dist/cjs/browserUtils/index.d.ts +8 -0
- package/dist/cjs/browserUtils/index.d.ts.map +1 -0
- package/dist/cjs/browserUtils/index.js +47 -0
- package/dist/cjs/build-and-import/buildAndImport.js +193 -0
- package/dist/cjs/build-and-import/load-tsconfig.d.js +1 -0
- package/dist/cjs/build-and-import/rollupPlugins/rollup-plugin-cedar-remove-dev-fatal-error-page.js +53 -0
- package/dist/cjs/build-and-import/rollupPlugins/rollup-plugin-cedarjs-cell.js +184 -0
- package/dist/cjs/build-and-import/rollupPlugins/rollup-plugin-cedarjs-directory-named-imports.js +83 -0
- package/dist/cjs/build-and-import/rollupPlugins/rollup-plugin-cedarjs-external.js +125 -0
- package/dist/cjs/build-and-import/rollupPlugins/rollup-plugin-cedarjs-ignore-html-and-css-imports.js +48 -0
- package/dist/cjs/build-and-import/rollupPlugins/rollup-plugin-cedarjs-inject-file-globals.js +66 -0
- package/dist/cjs/build-and-import/rollupPlugins/rollup-plugin-cedarjs-prerender-media-imports.js +118 -0
- package/dist/cjs/build-and-import/rollupPlugins/rollup-plugin-cedarjs-routes-auto-loader.js +146 -0
- package/dist/cjs/build-and-import/rollupPlugins/utils.js +78 -0
- package/dist/cjs/build-and-import/utils.js +68 -0
- package/dist/cjs/detection/detection.d.ts +11 -0
- package/dist/cjs/detection/detection.d.ts.map +1 -0
- package/dist/cjs/detection/detection.js +46 -0
- package/dist/cjs/errors.d.ts +19 -0
- package/dist/cjs/errors.d.ts.map +1 -0
- package/dist/cjs/errors.js +52 -0
- package/dist/cjs/graphql/graphql.d.ts +19 -0
- package/dist/cjs/graphql/graphql.d.ts.map +1 -0
- package/dist/cjs/graphql/graphql.js +152 -0
- package/dist/cjs/graphql/node-runner.js +97 -0
- package/dist/cjs/graphql/vite-plugin-cedar-auto-import.js +107 -0
- package/dist/{index.d.ts.map → cjs/index.d.ts.map} +1 -1
- package/dist/cjs/index.js +22 -0
- package/dist/cjs/internal.d.ts +28 -0
- package/dist/cjs/internal.d.ts.map +1 -0
- package/dist/cjs/internal.js +135 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/runPrerender.d.ts.map +1 -0
- package/dist/cjs/runPrerender.js +311 -0
- package/dist/cjs/runPrerenderEsm.js +308 -0
- package/dist/graphql/graphql.d.ts +2 -17
- package/dist/graphql/graphql.d.ts.map +1 -1
- package/dist/runPrerenderEsm.d.ts +9 -0
- package/dist/runPrerenderEsm.d.ts.map +1 -0
- package/dist/{runPrerender.js → runPrerenderEsm.js} +56 -65
- package/package.json +51 -20
- package/dist/index.js +0 -1
- package/dist/runPrerender.d.ts.map +0 -1
- /package/dist/{index.d.ts → cjs/index.d.ts} +0 -0
- /package/dist/{runPrerender.d.ts → cjs/runPrerender.d.ts} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import fs from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import React from "react";
|
|
4
|
-
import
|
|
4
|
+
import * as apolloClient from "@apollo/client";
|
|
5
5
|
import { load as loadHtml } from "cheerio";
|
|
6
6
|
import ReactDOMServer from "react-dom/server";
|
|
7
7
|
import {
|
|
@@ -21,21 +21,9 @@ import {
|
|
|
21
21
|
import { executeQuery, getGqlHandler } from "./graphql/graphql.js";
|
|
22
22
|
import { NodeRunner } from "./graphql/node-runner.js";
|
|
23
23
|
import { getRootHtmlPath, registerShims, writeToDist } from "./internal.js";
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
});
|
|
28
|
-
async function recursivelyRender(args) {
|
|
29
|
-
const {
|
|
30
|
-
App,
|
|
31
|
-
Routes,
|
|
32
|
-
CellCacheContextProvider,
|
|
33
|
-
LocationProvider,
|
|
34
|
-
renderPath,
|
|
35
|
-
fileImporter,
|
|
36
|
-
gqlHandler,
|
|
37
|
-
queryCache
|
|
38
|
-
} = args;
|
|
24
|
+
const { ApolloClient, InMemoryCache } = apolloClient.default;
|
|
25
|
+
const prerenderApolloClient = new ApolloClient({ cache: new InMemoryCache() });
|
|
26
|
+
async function recursivelyRender(App, Routes, CellCacheContextProvider, LocationProvider, renderPath, fileImporter, gqlHandler, queryCache) {
|
|
39
27
|
const { getOperationName } = await import("@cedarjs/web");
|
|
40
28
|
let shouldShowGraphqlHandlerNotFoundWarn = false;
|
|
41
29
|
await Promise.all(
|
|
@@ -52,13 +40,13 @@ async function recursivelyRender(args) {
|
|
|
52
40
|
);
|
|
53
41
|
let result;
|
|
54
42
|
try {
|
|
55
|
-
result = JSON.parse(resultString
|
|
43
|
+
result = JSON.parse(resultString);
|
|
56
44
|
} catch (e) {
|
|
57
45
|
if (e instanceof SyntaxError) {
|
|
58
46
|
throw new JSONParseError({
|
|
59
47
|
query: value.query,
|
|
60
48
|
variables: value.variables,
|
|
61
|
-
result: resultString
|
|
49
|
+
result: resultString
|
|
62
50
|
});
|
|
63
51
|
}
|
|
64
52
|
}
|
|
@@ -102,7 +90,16 @@ async function recursivelyRender(args) {
|
|
|
102
90
|
/* @__PURE__ */ React.createElement(LocationProvider, { location: new URL(prerenderUrl) }, /* @__PURE__ */ React.createElement(CellCacheContextProvider, { queryCache }, /* @__PURE__ */ React.createElement(App, null, /* @__PURE__ */ React.createElement(Routes, null))))
|
|
103
91
|
);
|
|
104
92
|
if (Object.values(queryCache).some((value) => !value.hasProcessed)) {
|
|
105
|
-
return recursivelyRender(
|
|
93
|
+
return recursivelyRender(
|
|
94
|
+
App,
|
|
95
|
+
Routes,
|
|
96
|
+
CellCacheContextProvider,
|
|
97
|
+
LocationProvider,
|
|
98
|
+
renderPath,
|
|
99
|
+
fileImporter,
|
|
100
|
+
gqlHandler,
|
|
101
|
+
queryCache
|
|
102
|
+
);
|
|
106
103
|
} else {
|
|
107
104
|
if (shouldShowGraphqlHandlerNotFoundWarn) {
|
|
108
105
|
console.warn(
|
|
@@ -184,54 +181,48 @@ const runPrerender = async ({
|
|
|
184
181
|
}) => {
|
|
185
182
|
registerShims(renderPath);
|
|
186
183
|
const nodeRunner = new NodeRunner();
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
});
|
|
200
|
-
const required = await buildAndImport({
|
|
201
|
-
filepath: entryPath,
|
|
202
|
-
preserveTemporaryFile: true
|
|
203
|
-
});
|
|
204
|
-
renderCache.App = required.App;
|
|
205
|
-
renderCache.Routes = required.Routes;
|
|
206
|
-
renderCache.CellCacheContextProvider = required.CellCacheContextProvider;
|
|
207
|
-
renderCache.LocationProvider = required.LocationProvider;
|
|
208
|
-
}
|
|
209
|
-
const { LocationProvider, App, Routes, CellCacheContextProvider } = renderCache;
|
|
210
|
-
if (!App) {
|
|
211
|
-
throw new Error("App not found");
|
|
212
|
-
}
|
|
213
|
-
if (!Routes) {
|
|
214
|
-
throw new Error("Routes not found");
|
|
215
|
-
}
|
|
216
|
-
if (!CellCacheContextProvider) {
|
|
217
|
-
throw new Error("CellCacheContextProvider not found");
|
|
218
|
-
}
|
|
219
|
-
if (!LocationProvider) {
|
|
220
|
-
throw new Error("LocationProvider not found");
|
|
221
|
-
}
|
|
222
|
-
componentAsHtml = await recursivelyRender({
|
|
223
|
-
App,
|
|
224
|
-
Routes,
|
|
225
|
-
CellCacheContextProvider,
|
|
226
|
-
LocationProvider,
|
|
227
|
-
renderPath,
|
|
228
|
-
fileImporter: nodeRunner.importFile.bind(nodeRunner),
|
|
229
|
-
gqlHandler,
|
|
230
|
-
queryCache
|
|
184
|
+
const gqlHandler = await getGqlHandler(nodeRunner.importFile.bind(nodeRunner));
|
|
185
|
+
const prerenderDistPath = path.join(getPaths().web.dist, "__prerender");
|
|
186
|
+
fs.mkdirSync(prerenderDistPath, { recursive: true });
|
|
187
|
+
if (!renderCache.App) {
|
|
188
|
+
const entryPath = await createCombinedEntry({
|
|
189
|
+
appPath: getPaths().web.app,
|
|
190
|
+
routesPath: getPaths().web.routes,
|
|
191
|
+
outDir: prerenderDistPath
|
|
192
|
+
});
|
|
193
|
+
const required = await buildAndImport({
|
|
194
|
+
filepath: entryPath,
|
|
195
|
+
preserveTemporaryFile: true
|
|
231
196
|
});
|
|
232
|
-
|
|
233
|
-
|
|
197
|
+
renderCache.App = required.App;
|
|
198
|
+
renderCache.Routes = required.Routes;
|
|
199
|
+
renderCache.CellCacheContextProvider = required.CellCacheContextProvider;
|
|
200
|
+
renderCache.LocationProvider = required.LocationProvider;
|
|
201
|
+
}
|
|
202
|
+
const { LocationProvider, App, Routes, CellCacheContextProvider } = renderCache;
|
|
203
|
+
if (!App) {
|
|
204
|
+
throw new Error("App not found");
|
|
205
|
+
}
|
|
206
|
+
if (!Routes) {
|
|
207
|
+
throw new Error("Routes not found");
|
|
234
208
|
}
|
|
209
|
+
if (!CellCacheContextProvider) {
|
|
210
|
+
throw new Error("CellCacheContextProvider not found");
|
|
211
|
+
}
|
|
212
|
+
if (!LocationProvider) {
|
|
213
|
+
throw new Error("LocationProvider not found");
|
|
214
|
+
}
|
|
215
|
+
const componentAsHtml = await recursivelyRender(
|
|
216
|
+
App,
|
|
217
|
+
Routes,
|
|
218
|
+
CellCacheContextProvider,
|
|
219
|
+
LocationProvider,
|
|
220
|
+
renderPath,
|
|
221
|
+
nodeRunner.importFile.bind(nodeRunner),
|
|
222
|
+
gqlHandler,
|
|
223
|
+
queryCache
|
|
224
|
+
);
|
|
225
|
+
nodeRunner.close();
|
|
235
226
|
const { helmet } = globalThis.__REDWOOD__HELMET_CONTEXT;
|
|
236
227
|
Object.keys(queryCache).forEach((queryKey) => {
|
|
237
228
|
const { query, variables, data } = queryCache[queryKey];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cedarjs/prerender",
|
|
3
|
-
"version": "7.0.0-
|
|
3
|
+
"version": "7.0.0-rc.123",
|
|
4
4
|
"description": "CedarJS prerender",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -11,18 +11,46 @@
|
|
|
11
11
|
"type": "module",
|
|
12
12
|
"exports": {
|
|
13
13
|
".": {
|
|
14
|
-
"
|
|
15
|
-
|
|
14
|
+
"import": {
|
|
15
|
+
"types": "./dist/runPrerenderEsm.d.ts",
|
|
16
|
+
"default": "./dist/runPrerenderEsm.js"
|
|
17
|
+
},
|
|
18
|
+
"require": {
|
|
19
|
+
"types": "./dist/cjs/runPrerender.d.ts",
|
|
20
|
+
"default": "./dist/cjs/runPrerender.js"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"./cjs": {
|
|
24
|
+
"types": "./dist/cjs/runPrerender.d.ts",
|
|
25
|
+
"default": "./dist/cjs/runPrerender.js"
|
|
16
26
|
},
|
|
17
27
|
"./browserUtils": {
|
|
18
|
-
"
|
|
19
|
-
|
|
28
|
+
"import": {
|
|
29
|
+
"types": "./dist/browserUtils/index.d.ts",
|
|
30
|
+
"default": "./dist/browserUtils/index.js"
|
|
31
|
+
},
|
|
32
|
+
"require": {
|
|
33
|
+
"types": "./dist/cjs/browserUtils/index.d.ts",
|
|
34
|
+
"default": "./dist/cjs/browserUtils/index.js"
|
|
35
|
+
}
|
|
20
36
|
},
|
|
21
37
|
"./detection": {
|
|
22
|
-
"
|
|
23
|
-
|
|
38
|
+
"import": {
|
|
39
|
+
"types": "./dist/detection/detection.d.ts",
|
|
40
|
+
"default": "./dist/detection/detection.js"
|
|
41
|
+
},
|
|
42
|
+
"require": {
|
|
43
|
+
"types": "./dist/cjs/detection/detection.d.ts",
|
|
44
|
+
"default": "./dist/cjs/detection/detection.js"
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
"./cjs/detection": {
|
|
48
|
+
"types": "./dist/cjs/detection/detection.d.ts",
|
|
49
|
+
"default": "./dist/cjs/detection/detection.js"
|
|
24
50
|
}
|
|
25
51
|
},
|
|
52
|
+
"main": "dist/cjs/index.js",
|
|
53
|
+
"types": "./dist/cjs/index.d.ts",
|
|
26
54
|
"files": [
|
|
27
55
|
"dist"
|
|
28
56
|
],
|
|
@@ -30,6 +58,7 @@
|
|
|
30
58
|
"build": "node ./build.mts && yarn build:types",
|
|
31
59
|
"build:pack": "yarn pack -o cedarjs-prerender.tgz",
|
|
32
60
|
"build:types": "tsc --build --verbose ./tsconfig.build.json",
|
|
61
|
+
"build:types-cjs": "tsc --build --verbose ./tsconfig.cjs.json",
|
|
33
62
|
"build:watch": "nodemon --watch src --ext \"js,jsx,ts,tsx,template\" --ignore dist --exec \"yarn build\"",
|
|
34
63
|
"check:attw": "yarn cedar-fwtools-attw",
|
|
35
64
|
"check:package": "concurrently npm:check:attw yarn:publint",
|
|
@@ -41,16 +70,17 @@
|
|
|
41
70
|
"@babel/generator": "7.29.8",
|
|
42
71
|
"@babel/parser": "7.29.9",
|
|
43
72
|
"@babel/traverse": "7.29.8",
|
|
44
|
-
"@babel
|
|
45
|
-
"@cedarjs/project-config": "7.0.0-
|
|
46
|
-
"@cedarjs/structure": "7.0.0-
|
|
47
|
-
"@cedarjs/vite": "7.0.0-
|
|
73
|
+
"@cedarjs/babel-config": "7.0.0-rc.123",
|
|
74
|
+
"@cedarjs/project-config": "7.0.0-rc.123",
|
|
75
|
+
"@cedarjs/structure": "7.0.0-rc.123",
|
|
76
|
+
"@cedarjs/vite": "7.0.0-rc.123",
|
|
48
77
|
"@rollup/plugin-alias": "5.1.1",
|
|
49
78
|
"@rollup/plugin-commonjs": "28.0.9",
|
|
50
79
|
"@rollup/plugin-node-resolve": "16.0.3",
|
|
51
80
|
"@rollup/plugin-replace": "6.0.3",
|
|
52
81
|
"@swc/core": "1.16.2",
|
|
53
|
-
"@whatwg-node/fetch": "0.
|
|
82
|
+
"@whatwg-node/fetch": "0.10.13",
|
|
83
|
+
"babel-plugin-ignore-html-and-css-imports": "0.1.0",
|
|
54
84
|
"cheerio": "1.2.0",
|
|
55
85
|
"graphql": "16.14.2",
|
|
56
86
|
"mime-types": "2.1.35",
|
|
@@ -61,21 +91,22 @@
|
|
|
61
91
|
"vite": "7.3.6"
|
|
62
92
|
},
|
|
63
93
|
"devDependencies": {
|
|
64
|
-
"@cedarjs/framework-tools": "7.0.0-
|
|
65
|
-
"@cedarjs/router": "7.0.0-
|
|
66
|
-
"@cedarjs/web": "7.0.0-
|
|
94
|
+
"@cedarjs/framework-tools": "7.0.0-rc.123",
|
|
95
|
+
"@cedarjs/router": "7.0.0-rc.123",
|
|
96
|
+
"@cedarjs/web": "7.0.0-rc.123",
|
|
67
97
|
"@types/mime-types": "2.1.4",
|
|
68
|
-
"@types/react": "^
|
|
98
|
+
"@types/react": "^18.2.55",
|
|
99
|
+
"babel-plugin-tester": "11.0.4",
|
|
69
100
|
"concurrently": "9.2.4",
|
|
70
101
|
"publint": "0.3.24",
|
|
71
102
|
"typescript": "5.9.3",
|
|
72
103
|
"vitest": "4.1.11"
|
|
73
104
|
},
|
|
74
105
|
"peerDependencies": {
|
|
75
|
-
"@cedarjs/router": "7.0.0-
|
|
76
|
-
"@cedarjs/web": "7.0.0-
|
|
77
|
-
"react": "
|
|
78
|
-
"react-dom": "
|
|
106
|
+
"@cedarjs/router": "7.0.0-rc.123",
|
|
107
|
+
"@cedarjs/web": "7.0.0-rc.123",
|
|
108
|
+
"react": "18.3.1",
|
|
109
|
+
"react-dom": "18.3.1"
|
|
79
110
|
},
|
|
80
111
|
"engines": {
|
|
81
112
|
"node": ">=24"
|
package/dist/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./runPrerender.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runPrerender.d.ts","sourceRoot":"","sources":["../src/runPrerender.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AA8Q7C,UAAU,eAAe;IACvB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACrC,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,eAAO,MAAM,YAAY,GAAU,6BAGhC,eAAe,KAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAqIzC,CAAA;AAGD,eAAO,MAAM,wBAAwB,GACnC,gBAAgB,MAAM,EACtB,SAAS,MAAM,SAchB,CAAA"}
|
|
File without changes
|
|
File without changes
|