vite-react-ssg 0.8.3 → 0.8.5-beta.1
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/README.md +37 -8
- package/dist/client/single-page.d.mts +4 -4
- package/dist/client/single-page.d.ts +4 -4
- package/dist/client/single-page.mjs +7 -6
- package/dist/index.d.mts +11 -4
- package/dist/index.d.ts +11 -4
- package/dist/index.mjs +11 -9
- package/dist/node/cli.mjs +9 -9
- package/dist/node.d.mts +2 -2
- package/dist/node.d.ts +2 -2
- package/dist/node.mjs +7 -7
- package/dist/shared/{vite-react-ssg.Cm9gBlfg.d.ts → vite-react-ssg.-NlgsPvg.d.mts} +8 -8
- package/dist/shared/{vite-react-ssg.Cm9gBlfg.d.mts → vite-react-ssg.-NlgsPvg.d.ts} +8 -8
- package/dist/shared/{vite-react-ssg.BgawrvuJ.mjs → vite-react-ssg.2P3UhU88.mjs} +216 -212
- package/dist/shared/{vite-react-ssg.C0y5wbxl.mjs → vite-react-ssg.C_MPXL9p.mjs} +1 -1
- package/dist/shared/{vite-react-ssg.CfJcpdWF.mjs → vite-react-ssg.Dx4ca9OM.mjs} +18 -4
- package/dist/tanstack.d.mts +5 -4
- package/dist/tanstack.d.ts +5 -4
- package/dist/tanstack.mjs +9 -7
- package/package.json +32 -33
- package/dist/chunks/jsdomGlobal.cjs +0 -36
- package/dist/client/single-page.cjs +0 -75
- package/dist/client/single-page.d.cts +0 -11
- package/dist/index.cjs +0 -196
- package/dist/index.d.cts +0 -20
- package/dist/node/cli.cjs +0 -89
- package/dist/node/cli.d.cts +0 -2
- package/dist/node.cjs +0 -24
- package/dist/node.d.cts +0 -11
- package/dist/shared/vite-react-ssg.B4jDfvXh.cjs +0 -106
- package/dist/shared/vite-react-ssg.C2GpVZF1.cjs +0 -38
- package/dist/shared/vite-react-ssg.CFQGqC60.cjs +0 -36
- package/dist/shared/vite-react-ssg.CjsEygxB.cjs +0 -37
- package/dist/shared/vite-react-ssg.Cm9gBlfg.d.cts +0 -15
- package/dist/shared/vite-react-ssg.D5xBH08M.cjs +0 -1079
- package/dist/shared/vite-react-ssg.DWHmkjdM.cjs +0 -35
- package/dist/shared/vite-react-ssg.Di0pROyF.d.ts +0 -214
- package/dist/style-collectors/styled-components.cjs +0 -20
- package/dist/style-collectors/styled-components.d.cts +0 -9
- package/dist/tanstack.cjs +0 -144
- package/dist/tanstack.d.cts +0 -30
- package/dist/shared/{vite-react-ssg.Di0pROyF.d.cts → vite-react-ssg.BrImbdZU.d.mts} +1 -1
- package/dist/shared/{vite-react-ssg.Di0pROyF.d.mts → vite-react-ssg.BrImbdZU.d.ts} +1 -1
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vite-react-ssg",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.8.
|
|
5
|
-
"packageManager": "pnpm@
|
|
4
|
+
"version": "0.8.5-beta.1",
|
|
5
|
+
"packageManager": "pnpm@10.4.1",
|
|
6
6
|
"description": "Static-site generation for React on Vite.",
|
|
7
7
|
"author": "Riri <Daydreamerriri@outlook.com>",
|
|
8
8
|
"license": "MIT",
|
|
@@ -23,28 +23,22 @@
|
|
|
23
23
|
"exports": {
|
|
24
24
|
".": {
|
|
25
25
|
"types": "./dist/index.d.ts",
|
|
26
|
-
"import": "./dist/index.mjs"
|
|
27
|
-
"require": "./dist/index.cjs"
|
|
26
|
+
"import": "./dist/index.mjs"
|
|
28
27
|
},
|
|
29
28
|
"./node": {
|
|
30
|
-
"
|
|
31
|
-
"import": "./dist/node.mjs",
|
|
32
|
-
"require": "./dist/node.cjs"
|
|
29
|
+
"import": "./dist/node.mjs"
|
|
33
30
|
},
|
|
34
31
|
"./single-page": {
|
|
35
32
|
"types": "./dist/client/single-page.d.ts",
|
|
36
|
-
"import": "./dist/client/single-page.mjs"
|
|
37
|
-
"require": "./dist/client/single-page.cjs"
|
|
33
|
+
"import": "./dist/client/single-page.mjs"
|
|
38
34
|
},
|
|
39
35
|
"./tanstack": {
|
|
40
36
|
"types": "./dist/tanstack.d.ts",
|
|
41
|
-
"import": "./dist/tanstack.mjs"
|
|
42
|
-
"require": "./dist/tanstack.cjs"
|
|
37
|
+
"import": "./dist/tanstack.mjs"
|
|
43
38
|
},
|
|
44
39
|
"./style-collectors/styled-components": {
|
|
45
40
|
"types": "./dist/style-collectors/styled-components.d.ts",
|
|
46
|
-
"import": "./dist/style-collectors/styled-components.mjs"
|
|
47
|
-
"require": "./dist/style-collectors/styled-components.cjs"
|
|
41
|
+
"import": "./dist/style-collectors/styled-components.mjs"
|
|
48
42
|
}
|
|
49
43
|
},
|
|
50
44
|
"main": "./dist/index.mjs",
|
|
@@ -85,8 +79,8 @@
|
|
|
85
79
|
"beasties": "^0.1.0",
|
|
86
80
|
"critters": "^0.0.24",
|
|
87
81
|
"prettier": "*",
|
|
88
|
-
"react": "^17.0.2
|
|
89
|
-
"react-dom": "^17.0.2
|
|
82
|
+
"react": "^17.0.2 || ^18.0.0 || ^19.0.0",
|
|
83
|
+
"react-dom": "^17.0.2 || ^18.0.0 || ^19.0.0",
|
|
90
84
|
"react-router-dom": "^6.14.1",
|
|
91
85
|
"styled-components": "^6.0.0",
|
|
92
86
|
"vite": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0"
|
|
@@ -116,40 +110,45 @@
|
|
|
116
110
|
},
|
|
117
111
|
"dependencies": {
|
|
118
112
|
"@remix-run/web-fetch": "^4.4.2",
|
|
119
|
-
"fs-extra": "^11.
|
|
113
|
+
"fs-extra": "^11.3.0",
|
|
120
114
|
"html5parser": "^2.0.2",
|
|
121
115
|
"jsdom": "^24.1.3",
|
|
122
116
|
"kolorist": "^1.8.0",
|
|
123
|
-
"p-queue": "^8.0
|
|
117
|
+
"p-queue": "^8.1.0",
|
|
124
118
|
"react-helmet-async": "^1.3.0",
|
|
125
119
|
"yargs": "^17.7.2"
|
|
126
120
|
},
|
|
127
121
|
"devDependencies": {
|
|
128
|
-
"@ririd/eslint-config": "^1.
|
|
122
|
+
"@ririd/eslint-config": "^1.4.0",
|
|
129
123
|
"@tanstack/react-router": "^1.57.15",
|
|
130
124
|
"@tanstack/start": "^1.57.15",
|
|
131
125
|
"@types/fs-extra": "^11.0.4",
|
|
132
126
|
"@types/jsdom": "^21.1.7",
|
|
133
|
-
"@types/node": "^18.19.
|
|
134
|
-
"@types/react": "
|
|
135
|
-
"@types/react-dom": "
|
|
127
|
+
"@types/node": "^18.19.74",
|
|
128
|
+
"@types/react": "catalog:",
|
|
129
|
+
"@types/react-dom": "catalog:",
|
|
136
130
|
"@types/yargs": "^17.0.33",
|
|
137
|
-
"@vitejs/plugin-react-swc": "^3.7.
|
|
138
|
-
"beasties": "^0.
|
|
139
|
-
"bumpp": "^9.
|
|
140
|
-
"critters": "^0.0.
|
|
141
|
-
"eslint": "^9.
|
|
131
|
+
"@vitejs/plugin-react-swc": "^3.7.2",
|
|
132
|
+
"beasties": "^0.2.0",
|
|
133
|
+
"bumpp": "^9.11.1",
|
|
134
|
+
"critters": "^0.0.25",
|
|
135
|
+
"eslint": "^9.21.0",
|
|
142
136
|
"esno": "^4.8.0",
|
|
143
137
|
"fast-glob": "3.3.2",
|
|
144
|
-
"prettier": "^3.
|
|
145
|
-
"react": "
|
|
146
|
-
"react-dom": "
|
|
147
|
-
"react-router-dom": "^6.28.
|
|
138
|
+
"prettier": "^3.5.2",
|
|
139
|
+
"react": "catalog:",
|
|
140
|
+
"react-dom": "catalog:",
|
|
141
|
+
"react-router-dom": "^6.28.2",
|
|
148
142
|
"rimraf": "5.0.1",
|
|
149
143
|
"styled-components": "6.0.5",
|
|
150
|
-
"typescript": "^5.
|
|
151
|
-
"unbuild": "^3.
|
|
144
|
+
"typescript": "^5.7.3",
|
|
145
|
+
"unbuild": "^3.3.1",
|
|
152
146
|
"vite": "catalog:",
|
|
153
|
-
"vitest": "1.6.
|
|
147
|
+
"vitest": "1.6.1"
|
|
148
|
+
},
|
|
149
|
+
"pnpm": {
|
|
150
|
+
"overrides": {
|
|
151
|
+
"@babel/traverse": "^7.26.7"
|
|
152
|
+
}
|
|
154
153
|
}
|
|
155
154
|
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const JSDOM = require('jsdom');
|
|
4
|
-
|
|
5
|
-
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e.default : e; }
|
|
6
|
-
|
|
7
|
-
const JSDOM__default = /*#__PURE__*/_interopDefaultCompat(JSDOM);
|
|
8
|
-
|
|
9
|
-
const defaultHtml = '<!doctype html><html><head><meta charset="utf-8"></head><body></body></html>';
|
|
10
|
-
const KEYS = [];
|
|
11
|
-
function jsdomGlobal(html = defaultHtml, options = {}) {
|
|
12
|
-
if (global.navigator && global.navigator.userAgent && global.navigator.userAgent.includes("Node.js") && global.document && typeof global.document.destroy === "function") {
|
|
13
|
-
return global.document.destroy;
|
|
14
|
-
}
|
|
15
|
-
if (!("url" in options))
|
|
16
|
-
Object.assign(options, { url: "http://localhost:3000" });
|
|
17
|
-
if (!("pretendToBeVisual" in options))
|
|
18
|
-
Object.assign(options, { pretendToBeVisual: true });
|
|
19
|
-
const jsdom = new JSDOM__default.JSDOM(html, options);
|
|
20
|
-
const { window } = jsdom;
|
|
21
|
-
const { document } = window;
|
|
22
|
-
if (KEYS.length === 0) {
|
|
23
|
-
KEYS.push(...Object.getOwnPropertyNames(window).filter((k) => !k.startsWith("_")).filter((k) => !(k in global)));
|
|
24
|
-
KEYS.push("$jsdom");
|
|
25
|
-
}
|
|
26
|
-
KEYS.forEach((key) => global[key] = window[key]);
|
|
27
|
-
global.document = document;
|
|
28
|
-
global.window = window;
|
|
29
|
-
window.console = global.console;
|
|
30
|
-
global.$jsdom = jsdom;
|
|
31
|
-
const cleanup = () => KEYS.forEach((key) => delete global[key]);
|
|
32
|
-
document.destroy = cleanup;
|
|
33
|
-
return cleanup;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
exports.jsdomGlobal = jsdomGlobal;
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const jsxRuntime = require('react/jsx-runtime');
|
|
4
|
-
const reactHelmetAsync = require('react-helmet-async');
|
|
5
|
-
const ClientOnly = require('../shared/vite-react-ssg.B4jDfvXh.cjs');
|
|
6
|
-
const state = require('../shared/vite-react-ssg.CjsEygxB.cjs');
|
|
7
|
-
require('react');
|
|
8
|
-
require('react-dom');
|
|
9
|
-
|
|
10
|
-
function ViteReactSSG(App, fn, options = {}) {
|
|
11
|
-
const {
|
|
12
|
-
transformState,
|
|
13
|
-
rootContainer = "#root",
|
|
14
|
-
ssrWhenDev,
|
|
15
|
-
getStyleCollector = null
|
|
16
|
-
} = options;
|
|
17
|
-
if (process.env.NODE_ENV === "development" && ssrWhenDev !== void 0)
|
|
18
|
-
console.warn("[vite-react-ssg] `ssrWhenDev` option is no longer needed. If you want to use csr, just replace `vite-react-ssg dev` with `vite`.");
|
|
19
|
-
const isClient = typeof window !== "undefined";
|
|
20
|
-
async function createRoot(client = false, routePath) {
|
|
21
|
-
const appRenderCallbacks = [];
|
|
22
|
-
const onSSRAppRendered = client ? () => {
|
|
23
|
-
} : (cb) => appRenderCallbacks.push(cb);
|
|
24
|
-
const triggerOnSSRAppRendered = () => {
|
|
25
|
-
return Promise.all(appRenderCallbacks.map((cb) => cb()));
|
|
26
|
-
};
|
|
27
|
-
const context = {
|
|
28
|
-
isClient,
|
|
29
|
-
onSSRAppRendered,
|
|
30
|
-
triggerOnSSRAppRendered,
|
|
31
|
-
initialState: {},
|
|
32
|
-
transformState,
|
|
33
|
-
routePath,
|
|
34
|
-
getStyleCollector,
|
|
35
|
-
routes: void 0,
|
|
36
|
-
routerOptions: void 0,
|
|
37
|
-
base: "/",
|
|
38
|
-
app: App,
|
|
39
|
-
routerType: "single-page"
|
|
40
|
-
};
|
|
41
|
-
if (client) {
|
|
42
|
-
await ClientOnly.documentReady();
|
|
43
|
-
context.initialState = transformState?.(window.__INITIAL_STATE__ || {}) || state.deserializeState(window.__INITIAL_STATE__);
|
|
44
|
-
}
|
|
45
|
-
await fn?.(context);
|
|
46
|
-
const initialState = context.initialState;
|
|
47
|
-
return {
|
|
48
|
-
...context,
|
|
49
|
-
initialState
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
if (isClient) {
|
|
53
|
-
(async () => {
|
|
54
|
-
const container = typeof rootContainer === "string" ? document.querySelector(rootContainer) : rootContainer;
|
|
55
|
-
if (!container) {
|
|
56
|
-
if (typeof $jsdom === "undefined")
|
|
57
|
-
console.warn("[vite-react-ssg] Root container not found.");
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
60
|
-
await createRoot(true);
|
|
61
|
-
const app = /* @__PURE__ */ jsxRuntime.jsx(reactHelmetAsync.HelmetProvider, { children: App });
|
|
62
|
-
const isSSR = document.querySelector("[data-server-rendered=true]") !== null;
|
|
63
|
-
if (!isSSR && process.env.NODE_ENV === "development") {
|
|
64
|
-
ClientOnly.render(app, container, options);
|
|
65
|
-
} else {
|
|
66
|
-
ClientOnly.hydrate(app, container, options);
|
|
67
|
-
}
|
|
68
|
-
})();
|
|
69
|
-
}
|
|
70
|
-
return createRoot;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
exports.ClientOnly = ClientOnly.ClientOnly;
|
|
74
|
-
exports.Head = ClientOnly.Head;
|
|
75
|
-
exports.ViteReactSSG = ViteReactSSG;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { ReactNode } from 'react';
|
|
2
|
-
import { V as ViteReactSSGContext, a as ViteReactSSGClientOptions } from '../shared/vite-react-ssg.Di0pROyF.cjs';
|
|
3
|
-
export { C as CrittersOptions, I as IndexRouteRecord, N as NonIndexRouteRecord, R as RouteRecord, c as RouterFutureConfig, d as RouterOptions, S as StyleCollector, b as ViteReactSSGOptions } from '../shared/vite-react-ssg.Di0pROyF.cjs';
|
|
4
|
-
export { C as ClientOnly, H as Head } from '../shared/vite-react-ssg.Cm9gBlfg.cjs';
|
|
5
|
-
import 'react-router-dom';
|
|
6
|
-
import 'beasties';
|
|
7
|
-
import 'react-helmet-async';
|
|
8
|
-
|
|
9
|
-
declare function ViteReactSSG(App: ReactNode, fn?: (context: ViteReactSSGContext<false>) => Promise<void> | void, options?: ViteReactSSGClientOptions): (client?: boolean, routePath?: string) => Promise<ViteReactSSGContext<false>>;
|
|
10
|
-
|
|
11
|
-
export { ViteReactSSG, ViteReactSSGClientOptions, ViteReactSSGContext };
|
package/dist/index.cjs
DELETED
|
@@ -1,196 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const jsxRuntime = require('react/jsx-runtime');
|
|
4
|
-
const reactHelmetAsync = require('react-helmet-async');
|
|
5
|
-
const reactRouterDom = require('react-router-dom');
|
|
6
|
-
const ClientOnly = require('./shared/vite-react-ssg.B4jDfvXh.cjs');
|
|
7
|
-
const state = require('./shared/vite-react-ssg.CjsEygxB.cjs');
|
|
8
|
-
const path = require('./shared/vite-react-ssg.CFQGqC60.cjs');
|
|
9
|
-
const remixRouter = require('./shared/vite-react-ssg.C2GpVZF1.cjs');
|
|
10
|
-
const React = require('react');
|
|
11
|
-
require('react-dom');
|
|
12
|
-
|
|
13
|
-
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e.default : e; }
|
|
14
|
-
|
|
15
|
-
const React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
16
|
-
|
|
17
|
-
const Link = React.forwardRef((props, ref) => {
|
|
18
|
-
const {
|
|
19
|
-
replace,
|
|
20
|
-
state,
|
|
21
|
-
target,
|
|
22
|
-
preventScrollReset,
|
|
23
|
-
relative,
|
|
24
|
-
to,
|
|
25
|
-
onClick
|
|
26
|
-
} = props;
|
|
27
|
-
const internalOnClick = reactRouterDom.useLinkClickHandler(to, {
|
|
28
|
-
replace,
|
|
29
|
-
state,
|
|
30
|
-
target,
|
|
31
|
-
preventScrollReset,
|
|
32
|
-
relative
|
|
33
|
-
});
|
|
34
|
-
function handleClick(event) {
|
|
35
|
-
if (onClick)
|
|
36
|
-
onClick(event);
|
|
37
|
-
if (!event.defaultPrevented) {
|
|
38
|
-
React__default.startTransition(() => {
|
|
39
|
-
internalOnClick(event);
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
event.defaultPrevented = true;
|
|
43
|
-
event.preventDefault();
|
|
44
|
-
}
|
|
45
|
-
return /* @__PURE__ */ jsxRuntime.jsx(reactRouterDom.Link, { ...props, ref, onClick: handleClick });
|
|
46
|
-
});
|
|
47
|
-
Link.displayName = "Link";
|
|
48
|
-
const NavLink = React.forwardRef((props, ref) => {
|
|
49
|
-
const {
|
|
50
|
-
replace,
|
|
51
|
-
state,
|
|
52
|
-
target,
|
|
53
|
-
preventScrollReset,
|
|
54
|
-
relative,
|
|
55
|
-
to,
|
|
56
|
-
onClick
|
|
57
|
-
} = props;
|
|
58
|
-
const internalOnClick = reactRouterDom.useLinkClickHandler(to, {
|
|
59
|
-
replace,
|
|
60
|
-
state,
|
|
61
|
-
target,
|
|
62
|
-
preventScrollReset,
|
|
63
|
-
relative
|
|
64
|
-
});
|
|
65
|
-
function handleClick(event) {
|
|
66
|
-
if (onClick)
|
|
67
|
-
onClick(event);
|
|
68
|
-
if (!event.defaultPrevented) {
|
|
69
|
-
React__default.startTransition(() => {
|
|
70
|
-
internalOnClick(event);
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
event.defaultPrevented = true;
|
|
74
|
-
event.preventDefault();
|
|
75
|
-
}
|
|
76
|
-
return /* @__PURE__ */ jsxRuntime.jsx(reactRouterDom.NavLink, { ...props, ref, onClick: handleClick });
|
|
77
|
-
});
|
|
78
|
-
NavLink.displayName = "NavLink";
|
|
79
|
-
|
|
80
|
-
function ViteReactSSG(routerOptions, fn, options = {}) {
|
|
81
|
-
const {
|
|
82
|
-
transformState,
|
|
83
|
-
rootContainer = "#root",
|
|
84
|
-
ssrWhenDev,
|
|
85
|
-
getStyleCollector = null
|
|
86
|
-
} = options;
|
|
87
|
-
if (process.env.NODE_ENV === "development" && ssrWhenDev !== void 0)
|
|
88
|
-
console.warn("[vite-react-ssg] `ssrWhenDev` option is no longer needed. If you want to use csr, just replace `vite-react-ssg dev` with `vite`.");
|
|
89
|
-
const isClient = typeof window !== "undefined";
|
|
90
|
-
const BASE_URL = routerOptions.basename ?? "/";
|
|
91
|
-
const { v7_startTransition, ...routerFeature } = routerOptions.future ?? {};
|
|
92
|
-
async function createRoot(client = false, routePath) {
|
|
93
|
-
const browserRouter = client ? reactRouterDom.createBrowserRouter(
|
|
94
|
-
remixRouter.convertRoutesToDataRoutes(routerOptions.routes, transformStaticLoaderRoute),
|
|
95
|
-
{ basename: BASE_URL, future: routerFeature }
|
|
96
|
-
) : void 0;
|
|
97
|
-
const appRenderCallbacks = [];
|
|
98
|
-
const onSSRAppRendered = client ? () => {
|
|
99
|
-
} : (cb) => appRenderCallbacks.push(cb);
|
|
100
|
-
const triggerOnSSRAppRendered = () => {
|
|
101
|
-
return Promise.all(appRenderCallbacks.map((cb) => cb()));
|
|
102
|
-
};
|
|
103
|
-
const context = {
|
|
104
|
-
isClient,
|
|
105
|
-
routes: routerOptions.routes,
|
|
106
|
-
router: browserRouter,
|
|
107
|
-
routerOptions,
|
|
108
|
-
onSSRAppRendered,
|
|
109
|
-
triggerOnSSRAppRendered,
|
|
110
|
-
initialState: {},
|
|
111
|
-
transformState,
|
|
112
|
-
routePath,
|
|
113
|
-
base: BASE_URL,
|
|
114
|
-
getStyleCollector,
|
|
115
|
-
routerType: "remix"
|
|
116
|
-
};
|
|
117
|
-
if (client) {
|
|
118
|
-
await ClientOnly.documentReady();
|
|
119
|
-
context.initialState = transformState?.(window.__INITIAL_STATE__ || {}) || state.deserializeState(window.__INITIAL_STATE__);
|
|
120
|
-
}
|
|
121
|
-
await fn?.(context);
|
|
122
|
-
const initialState = context.initialState;
|
|
123
|
-
return {
|
|
124
|
-
...context,
|
|
125
|
-
initialState
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
if (isClient) {
|
|
129
|
-
(async () => {
|
|
130
|
-
const container = typeof rootContainer === "string" ? document.querySelector(rootContainer) : rootContainer;
|
|
131
|
-
if (!container) {
|
|
132
|
-
if (typeof $jsdom === "undefined")
|
|
133
|
-
console.warn("[vite-react-ssg] Root container not found.");
|
|
134
|
-
return;
|
|
135
|
-
}
|
|
136
|
-
const lazeMatches = reactRouterDom.matchRoutes(routerOptions.routes, window.location, BASE_URL)?.filter(
|
|
137
|
-
(m) => m.route.lazy
|
|
138
|
-
);
|
|
139
|
-
if (lazeMatches && lazeMatches?.length > 0) {
|
|
140
|
-
await Promise.all(
|
|
141
|
-
lazeMatches.map(async (m) => {
|
|
142
|
-
const routeModule = await m.route.lazy();
|
|
143
|
-
Object.assign(m.route, { ...routeModule, lazy: void 0 });
|
|
144
|
-
})
|
|
145
|
-
);
|
|
146
|
-
}
|
|
147
|
-
const { router } = await createRoot(true);
|
|
148
|
-
const app = /* @__PURE__ */ jsxRuntime.jsx(reactHelmetAsync.HelmetProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(reactRouterDom.RouterProvider, { router, future: { v7_startTransition } }) });
|
|
149
|
-
const isSSR = document.querySelector("[data-server-rendered=true]") !== null;
|
|
150
|
-
if (!isSSR && process.env.NODE_ENV === "development") {
|
|
151
|
-
ClientOnly.render(app, container, options);
|
|
152
|
-
} else {
|
|
153
|
-
ClientOnly.hydrate(app, container, options);
|
|
154
|
-
}
|
|
155
|
-
})();
|
|
156
|
-
}
|
|
157
|
-
return createRoot;
|
|
158
|
-
function transformStaticLoaderRoute(route) {
|
|
159
|
-
const isSSR = document.querySelector("[data-server-rendered=true]") !== null;
|
|
160
|
-
if (!isSSR) {
|
|
161
|
-
return route;
|
|
162
|
-
}
|
|
163
|
-
const loader = async ({ request }) => {
|
|
164
|
-
if (process.env.NODE_ENV === "development") {
|
|
165
|
-
const routeId = encodeURIComponent(route.id);
|
|
166
|
-
const dataQuery = `_data=${routeId}`;
|
|
167
|
-
const url = request.url.includes("?") ? `${request.url}&${dataQuery}` : `${request.url}?${dataQuery}`;
|
|
168
|
-
return fetch(url);
|
|
169
|
-
} else {
|
|
170
|
-
let staticLoadData;
|
|
171
|
-
if (window.__VITE_REACT_SSG_STATIC_LOADER_DATA__) {
|
|
172
|
-
staticLoadData = window.__VITE_REACT_SSG_STATIC_LOADER_DATA__;
|
|
173
|
-
} else {
|
|
174
|
-
const manifestUrl = path.joinUrlSegments(BASE_URL, `static-loader-data-manifest-${window.__VITE_REACT_SSG_HASH__}.json`);
|
|
175
|
-
staticLoadData = await (await fetch(path.withLeadingSlash(manifestUrl))).json();
|
|
176
|
-
window.__VITE_REACT_SSG_STATIC_LOADER_DATA__ = staticLoadData;
|
|
177
|
-
}
|
|
178
|
-
const { url } = request;
|
|
179
|
-
let { pathname } = new URL(url);
|
|
180
|
-
if (BASE_URL !== "/") {
|
|
181
|
-
pathname = path.stripBase(pathname, BASE_URL);
|
|
182
|
-
}
|
|
183
|
-
const routeData = staticLoadData?.[pathname]?.[route.id];
|
|
184
|
-
return routeData ?? null;
|
|
185
|
-
}
|
|
186
|
-
};
|
|
187
|
-
route.loader = loader;
|
|
188
|
-
return route;
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
exports.ClientOnly = ClientOnly.ClientOnly;
|
|
193
|
-
exports.Head = ClientOnly.Head;
|
|
194
|
-
exports.Link = Link;
|
|
195
|
-
exports.NavLink = NavLink;
|
|
196
|
-
exports.ViteReactSSG = ViteReactSSG;
|
package/dist/index.d.cts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { d as RouterOptions, V as ViteReactSSGContext, a as ViteReactSSGClientOptions } from './shared/vite-react-ssg.Di0pROyF.cjs';
|
|
2
|
-
export { C as CrittersOptions, I as IndexRouteRecord, N as NonIndexRouteRecord, R as RouteRecord, c as RouterFutureConfig, S as StyleCollector, b as ViteReactSSGOptions } from './shared/vite-react-ssg.Di0pROyF.cjs';
|
|
3
|
-
export { C as ClientOnly, H as Head } from './shared/vite-react-ssg.Cm9gBlfg.cjs';
|
|
4
|
-
import React from 'react';
|
|
5
|
-
import { LinkProps, NavLinkProps } from 'react-router-dom';
|
|
6
|
-
import 'beasties';
|
|
7
|
-
import 'react-helmet-async';
|
|
8
|
-
|
|
9
|
-
declare const Link: React.ForwardRefExoticComponent<LinkProps & React.RefAttributes<HTMLAnchorElement>>;
|
|
10
|
-
declare const NavLink: React.ForwardRefExoticComponent<NavLinkProps & React.RefAttributes<HTMLAnchorElement>>;
|
|
11
|
-
|
|
12
|
-
declare function ViteReactSSG(routerOptions: RouterOptions, fn?: (context: ViteReactSSGContext<true>) => Promise<void> | void, options?: ViteReactSSGClientOptions): (client?: boolean, routePath?: string) => Promise<ViteReactSSGContext<true>>;
|
|
13
|
-
declare global {
|
|
14
|
-
interface Window {
|
|
15
|
-
__VITE_REACT_SSG_STATIC_LOADER_DATA__: any;
|
|
16
|
-
__VITE_REACT_SSG_HASH__: string;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export { Link, NavLink, RouterOptions, ViteReactSSG, ViteReactSSGClientOptions, ViteReactSSGContext };
|
package/dist/node/cli.cjs
DELETED
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const kolorist = require('kolorist');
|
|
4
|
-
const yargs = require('yargs');
|
|
5
|
-
const helpers = require('yargs/helpers');
|
|
6
|
-
const dev = require('../shared/vite-react-ssg.D5xBH08M.cjs');
|
|
7
|
-
const webFetch = require('@remix-run/web-fetch');
|
|
8
|
-
require('node:path');
|
|
9
|
-
require('node:module');
|
|
10
|
-
require('p-queue');
|
|
11
|
-
require('fs-extra');
|
|
12
|
-
require('vite');
|
|
13
|
-
require('jsdom');
|
|
14
|
-
require('../shared/vite-react-ssg.CjsEygxB.cjs');
|
|
15
|
-
require('../shared/vite-react-ssg.CFQGqC60.cjs');
|
|
16
|
-
require('react/jsx-runtime');
|
|
17
|
-
require('react-helmet-async');
|
|
18
|
-
require('node:stream');
|
|
19
|
-
require('react-dom/server');
|
|
20
|
-
require('node:events');
|
|
21
|
-
require('../shared/vite-react-ssg.C2GpVZF1.cjs');
|
|
22
|
-
require('../shared/vite-react-ssg.DWHmkjdM.cjs');
|
|
23
|
-
|
|
24
|
-
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e.default : e; }
|
|
25
|
-
|
|
26
|
-
const yargs__default = /*#__PURE__*/_interopDefaultCompat(yargs);
|
|
27
|
-
|
|
28
|
-
function installGlobals() {
|
|
29
|
-
global.Headers = webFetch.Headers;
|
|
30
|
-
global.Request = webFetch.Request;
|
|
31
|
-
global.Response = webFetch.Response;
|
|
32
|
-
global.fetch = webFetch.fetch;
|
|
33
|
-
global.FormData = webFetch.FormData;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
installGlobals();
|
|
37
|
-
yargs__default(helpers.hideBin(process.argv)).scriptName("vite-react-ssg").usage("$0 [args]").command(
|
|
38
|
-
"build",
|
|
39
|
-
"Build SSG",
|
|
40
|
-
(args) => args.option("script", {
|
|
41
|
-
choices: ["sync", "async", "defer", "async defer"],
|
|
42
|
-
describe: "Rewrites script loading timing"
|
|
43
|
-
}).option("mock", {
|
|
44
|
-
type: "boolean",
|
|
45
|
-
describe: "Mock browser globals (window, document, etc.) for SSG"
|
|
46
|
-
}).option("config", {
|
|
47
|
-
alias: "c",
|
|
48
|
-
type: "string",
|
|
49
|
-
describe: "The vite config file to use"
|
|
50
|
-
}).option("base", {
|
|
51
|
-
alias: "b",
|
|
52
|
-
type: "string",
|
|
53
|
-
describe: "The base path to render"
|
|
54
|
-
}),
|
|
55
|
-
async (args) => {
|
|
56
|
-
const { config: configFile = void 0, ...ssgOptions } = args;
|
|
57
|
-
await dev.build(ssgOptions, { configFile });
|
|
58
|
-
}
|
|
59
|
-
).command(
|
|
60
|
-
"dev",
|
|
61
|
-
"Dev SSG",
|
|
62
|
-
(args) => args.option("script", {
|
|
63
|
-
choices: ["sync", "async", "defer", "async defer"],
|
|
64
|
-
describe: "Rewrites script loading timing"
|
|
65
|
-
}).option("mock", {
|
|
66
|
-
type: "boolean",
|
|
67
|
-
describe: "Mock browser globals (window, document, etc.) for SSG"
|
|
68
|
-
}).option("config", {
|
|
69
|
-
alias: "c",
|
|
70
|
-
type: "string",
|
|
71
|
-
describe: "The vite config file to use"
|
|
72
|
-
}).option("base", {
|
|
73
|
-
alias: "b",
|
|
74
|
-
type: "string",
|
|
75
|
-
describe: "The base path to render"
|
|
76
|
-
}).option("host", {
|
|
77
|
-
type: "boolean",
|
|
78
|
-
describe: "The host to expose"
|
|
79
|
-
}),
|
|
80
|
-
async (args) => {
|
|
81
|
-
const { config: configFile = void 0, host, ...ssgOptions } = args;
|
|
82
|
-
await dev.dev(ssgOptions, { configFile, server: { host } });
|
|
83
|
-
}
|
|
84
|
-
).fail((msg, err, yargs2) => {
|
|
85
|
-
console.error(`
|
|
86
|
-
${kolorist.gray("[vite-react-ssg]")} ${kolorist.bold(kolorist.red("An internal error occurred."))}`);
|
|
87
|
-
console.error(`${kolorist.gray("[vite-react-ssg]")} ${kolorist.reset(`Please report an issue, if none already exists: ${kolorist.underline("https://github.com/daydreamer-riri/vite-react-ssg/issues")}`)}`);
|
|
88
|
-
yargs2.exit(1, err);
|
|
89
|
-
}).showHelpOnFail(false).help().argv;
|
package/dist/node/cli.d.cts
DELETED
package/dist/node.cjs
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const dev = require('./shared/vite-react-ssg.D5xBH08M.cjs');
|
|
4
|
-
require('node:path');
|
|
5
|
-
require('node:module');
|
|
6
|
-
require('kolorist');
|
|
7
|
-
require('p-queue');
|
|
8
|
-
require('fs-extra');
|
|
9
|
-
require('vite');
|
|
10
|
-
require('jsdom');
|
|
11
|
-
require('./shared/vite-react-ssg.CjsEygxB.cjs');
|
|
12
|
-
require('./shared/vite-react-ssg.CFQGqC60.cjs');
|
|
13
|
-
require('react/jsx-runtime');
|
|
14
|
-
require('react-helmet-async');
|
|
15
|
-
require('node:stream');
|
|
16
|
-
require('react-dom/server');
|
|
17
|
-
require('node:events');
|
|
18
|
-
require('./shared/vite-react-ssg.C2GpVZF1.cjs');
|
|
19
|
-
require('./shared/vite-react-ssg.DWHmkjdM.cjs');
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
exports.build = dev.build;
|
|
24
|
-
exports.dev = dev.dev;
|
package/dist/node.d.cts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { InlineConfig } from 'vite';
|
|
2
|
-
import { b as ViteReactSSGOptions } from './shared/vite-react-ssg.Di0pROyF.cjs';
|
|
3
|
-
import 'react';
|
|
4
|
-
import 'react-router-dom';
|
|
5
|
-
import 'beasties';
|
|
6
|
-
|
|
7
|
-
declare function build(ssgOptions?: Partial<ViteReactSSGOptions>, viteConfig?: InlineConfig): Promise<void>;
|
|
8
|
-
|
|
9
|
-
declare function dev(ssgOptions?: Partial<ViteReactSSGOptions>, viteConfig?: InlineConfig, customOptions?: unknown): Promise<void>;
|
|
10
|
-
|
|
11
|
-
export { build, dev };
|