vitrify 0.6.16 → 0.6.17
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/bin/cli.js
CHANGED
|
@@ -16,6 +16,7 @@ cli
|
|
|
16
16
|
const { build } = await import('./build.js');
|
|
17
17
|
let appDir;
|
|
18
18
|
let prerender;
|
|
19
|
+
let onRendered;
|
|
19
20
|
if (options.appDir) {
|
|
20
21
|
if (options.appDir.slice(-1) !== '/')
|
|
21
22
|
options.appDir += '/';
|
|
@@ -68,14 +69,16 @@ cli
|
|
|
68
69
|
...args,
|
|
69
70
|
outDir: new URL('ssr/server/', baseOutDir).pathname
|
|
70
71
|
});
|
|
71
|
-
({ prerender } = await import(new URL('ssr/server/prerender.mjs', baseOutDir).pathname));
|
|
72
|
+
({ prerender, onRendered } = await import(new URL('ssr/server/prerender.mjs', baseOutDir).pathname));
|
|
73
|
+
console.log(onRendered);
|
|
72
74
|
prerender({
|
|
73
75
|
outDir: new URL('static/', baseOutDir).pathname,
|
|
74
76
|
templatePath: new URL('static/index.html', baseOutDir).pathname,
|
|
75
77
|
manifestPath: new URL('static/ssr-manifest.json', baseOutDir)
|
|
76
78
|
.pathname,
|
|
77
79
|
entryServerPath: new URL('ssr/server/entry-server.mjs', baseOutDir)
|
|
78
|
-
.pathname
|
|
80
|
+
.pathname,
|
|
81
|
+
onRendered
|
|
79
82
|
});
|
|
80
83
|
break;
|
|
81
84
|
default:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { promises as fs } from 'fs';
|
|
2
2
|
import { routesToPaths } from '../../helpers/routes.js';
|
|
3
|
-
export const prerender = async ({ outDir, templatePath, manifestPath, entryServerPath }) => {
|
|
3
|
+
export const prerender = async ({ outDir, templatePath, manifestPath, entryServerPath, onRendered }) => {
|
|
4
4
|
const promises = [];
|
|
5
5
|
const template = (await fs.readFile(templatePath)).toString();
|
|
6
6
|
const manifest = await fs.readFile(manifestPath);
|
|
@@ -25,6 +25,11 @@ export const prerender = async ({ outDir, templatePath, manifestPath, entryServe
|
|
|
25
25
|
let html = template
|
|
26
26
|
.replace(`<!--preload-links-->`, preloadLinks)
|
|
27
27
|
.replace(`<!--app-html-->`, appHtml);
|
|
28
|
+
if (onRendered?.length) {
|
|
29
|
+
for (const ssrFunction of onRendered) {
|
|
30
|
+
html = ssrFunction(html, ssrContext);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
28
33
|
html = await critters.process(html);
|
|
29
34
|
promises.push(fs.writeFile(outDir + filename, html, 'utf-8'));
|
|
30
35
|
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
import type { OnRenderedHook } from 'src/node/vitrify-config.js';
|
|
2
|
+
export declare const prerender: ({ outDir, templatePath, manifestPath, entryServerPath, onRendered }: {
|
|
2
3
|
outDir: string;
|
|
3
4
|
templatePath: string;
|
|
4
5
|
manifestPath: string;
|
|
5
6
|
entryServerPath: string;
|
|
7
|
+
onRendered: OnRenderedHook[];
|
|
6
8
|
}) => Promise<void[]>;
|
package/package.json
CHANGED
package/src/node/bin/cli.ts
CHANGED
|
@@ -25,6 +25,7 @@ cli
|
|
|
25
25
|
const { build } = await import('./build.js')
|
|
26
26
|
let appDir: URL
|
|
27
27
|
let prerender
|
|
28
|
+
let onRendered
|
|
28
29
|
if (options.appDir) {
|
|
29
30
|
if (options.appDir.slice(-1) !== '/') options.appDir += '/'
|
|
30
31
|
appDir = new URL(`file://${options.appDir}`)
|
|
@@ -84,16 +85,18 @@ cli
|
|
|
84
85
|
...args,
|
|
85
86
|
outDir: new URL('ssr/server/', baseOutDir).pathname
|
|
86
87
|
})
|
|
87
|
-
;({ prerender } = await import(
|
|
88
|
+
;({ prerender, onRendered } = await import(
|
|
88
89
|
new URL('ssr/server/prerender.mjs', baseOutDir).pathname
|
|
89
90
|
))
|
|
91
|
+
console.log(onRendered)
|
|
90
92
|
prerender({
|
|
91
93
|
outDir: new URL('static/', baseOutDir).pathname,
|
|
92
94
|
templatePath: new URL('static/index.html', baseOutDir).pathname,
|
|
93
95
|
manifestPath: new URL('static/ssr-manifest.json', baseOutDir)
|
|
94
96
|
.pathname,
|
|
95
97
|
entryServerPath: new URL('ssr/server/entry-server.mjs', baseOutDir)
|
|
96
|
-
.pathname
|
|
98
|
+
.pathname,
|
|
99
|
+
onRendered
|
|
97
100
|
})
|
|
98
101
|
break
|
|
99
102
|
default:
|
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
import { promises as fs } from 'fs'
|
|
2
|
+
import type { OnRenderedHook } from 'src/node/vitrify-config.js'
|
|
2
3
|
import { routesToPaths } from '../../helpers/routes.js'
|
|
3
4
|
|
|
4
5
|
export const prerender = async ({
|
|
5
6
|
outDir,
|
|
6
7
|
templatePath,
|
|
7
8
|
manifestPath,
|
|
8
|
-
entryServerPath
|
|
9
|
+
entryServerPath,
|
|
10
|
+
onRendered
|
|
9
11
|
}: {
|
|
10
12
|
outDir: string
|
|
11
13
|
templatePath: string
|
|
12
14
|
manifestPath: string
|
|
13
15
|
entryServerPath: string
|
|
16
|
+
onRendered: OnRenderedHook[]
|
|
14
17
|
}) => {
|
|
15
18
|
const promises = []
|
|
16
19
|
const template = (await fs.readFile(templatePath)).toString()
|
|
@@ -41,6 +44,12 @@ export const prerender = async ({
|
|
|
41
44
|
.replace(`<!--preload-links-->`, preloadLinks)
|
|
42
45
|
.replace(`<!--app-html-->`, appHtml)
|
|
43
46
|
|
|
47
|
+
if (onRendered?.length) {
|
|
48
|
+
for (const ssrFunction of onRendered) {
|
|
49
|
+
html = ssrFunction(html, ssrContext)
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
44
53
|
html = await critters.process(html)
|
|
45
54
|
|
|
46
55
|
promises.push(fs.writeFile(outDir + filename, html, 'utf-8'))
|