@modern-js/server-core 2.52.1-alpha.0 → 2.54.0
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/cjs/adapters/node/helper/index.js +37 -0
- package/dist/cjs/{base/adapters/node/middlewares/templates.js → adapters/node/helper/loadCache.js} +19 -33
- package/dist/cjs/{base/utils/serverConfig.js → adapters/node/helper/loadConfig.js} +26 -31
- package/dist/cjs/{base/adapters/node/loadServer.js → adapters/node/helper/loadEnv.js} +3 -3
- package/dist/cjs/{base/utils/debug.js → adapters/node/helper/loadPlugin.js} +16 -6
- package/dist/cjs/{base/adapters → adapters}/node/index.js +17 -16
- package/dist/cjs/{core → adapters/node/plugins}/index.js +8 -4
- package/dist/cjs/{base/middlewares/frameworkHeader.js → adapters/node/plugins/nodeServer.js} +16 -9
- package/dist/cjs/{base/adapters/node/middlewares/serverManifest.js → adapters/node/plugins/resource.js} +56 -5
- package/dist/cjs/{base/adapters/node/middlewares/serverStatic.js → adapters/node/plugins/static.js} +61 -7
- package/dist/cjs/{base/constants.js → constants.js} +3 -0
- package/dist/cjs/index.js +28 -6
- package/dist/cjs/pluginManager.js +106 -0
- package/dist/cjs/{base/middlewares → plugins}/customServer/index.js +13 -11
- package/dist/cjs/plugins/favicon.js +44 -0
- package/dist/cjs/{base/middlewares → plugins}/index.js +21 -15
- package/dist/cjs/{base/middlewares/logger.js → plugins/log.js} +23 -5
- package/dist/cjs/{base/middlewares → plugins}/monitor.js +30 -33
- package/dist/cjs/plugins/processedBy.js +44 -0
- package/dist/cjs/plugins/render/index.js +136 -0
- package/dist/cjs/{base/middlewares/renderHandler → plugins/render}/render.js +20 -5
- package/dist/cjs/plugins/render/ssrCache.js +178 -0
- package/dist/cjs/{base/middlewares/renderHandler → plugins/render}/ssrRender.js +13 -13
- package/dist/cjs/serverBase.js +178 -0
- package/dist/cjs/{base/adapters/node/middlewares → types}/index.js +10 -10
- package/dist/cjs/types/plugin.js +16 -0
- package/dist/cjs/{base/utils → utils}/index.js +3 -1
- package/dist/cjs/{base/middlewares/faviconFallback.js → utils/serverConfig.js} +12 -11
- package/dist/esm/adapters/node/helper/index.js +10 -0
- package/dist/esm/adapters/node/helper/loadCache.js +19 -0
- package/dist/esm/adapters/node/helper/loadConfig.js +32 -0
- package/dist/esm/adapters/node/helper/loadPlugin.js +17 -0
- package/dist/{esm-node/base → esm}/adapters/node/index.js +8 -8
- package/dist/esm/adapters/node/plugins/index.js +3 -0
- package/dist/esm/adapters/node/plugins/nodeServer.js +18 -0
- package/dist/esm/{base/adapters/node/middlewares/serverManifest.js → adapters/node/plugins/resource.js} +139 -1
- package/dist/esm/{base/adapters/node/middlewares/serverStatic.js → adapters/node/plugins/static.js} +108 -2
- package/dist/esm/{base/constants.js → constants.js} +2 -0
- package/dist/esm/index.js +15 -3
- package/dist/esm/pluginManager.js +140 -0
- package/dist/esm/{base/middlewares → plugins}/customServer/index.js +12 -11
- package/dist/esm/plugins/favicon.js +34 -0
- package/dist/esm/plugins/index.js +15 -0
- package/dist/esm/{base/middlewares/logger.js → plugins/log.js} +33 -2
- package/dist/esm/plugins/monitor.js +120 -0
- package/dist/esm/plugins/processedBy.js +42 -0
- package/dist/esm/plugins/render/index.js +229 -0
- package/dist/esm/{base/middlewares/renderHandler → plugins/render}/render.js +20 -7
- package/dist/esm/plugins/render/ssrCache.js +266 -0
- package/dist/esm/{base/middlewares/renderHandler → plugins/render}/ssrRender.js +26 -45
- package/dist/esm/serverBase.js +250 -0
- package/dist/esm/types/index.js +4 -0
- package/dist/esm/types/render.js +0 -0
- package/dist/esm/types/server.js +0 -0
- package/dist/esm/{base/utils → utils}/index.js +1 -0
- package/dist/esm/utils/serverConfig.js +13 -0
- package/dist/esm-node/adapters/node/helper/index.js +10 -0
- package/dist/esm-node/adapters/node/helper/loadCache.js +19 -0
- package/dist/esm-node/adapters/node/helper/loadConfig.js +31 -0
- package/dist/esm-node/adapters/node/helper/loadPlugin.js +15 -0
- package/dist/{esm/base → esm-node}/adapters/node/index.js +8 -8
- package/dist/esm-node/adapters/node/plugins/index.js +3 -0
- package/dist/esm-node/adapters/node/plugins/nodeServer.js +14 -0
- package/dist/esm-node/{base/adapters/node/middlewares/serverManifest.js → adapters/node/plugins/resource.js} +49 -1
- package/dist/esm-node/{base/adapters/node/middlewares/serverStatic.js → adapters/node/plugins/static.js} +54 -2
- package/dist/esm-node/{base/constants.js → constants.js} +2 -0
- package/dist/esm-node/index.js +15 -3
- package/dist/esm-node/pluginManager.js +82 -0
- package/dist/esm-node/{base/middlewares → plugins}/customServer/index.js +11 -10
- package/dist/esm-node/plugins/favicon.js +20 -0
- package/dist/esm-node/plugins/index.js +15 -0
- package/dist/esm-node/{base/middlewares/logger.js → plugins/log.js} +19 -1
- package/dist/esm-node/plugins/monitor.js +62 -0
- package/dist/esm-node/plugins/processedBy.js +20 -0
- package/dist/esm-node/plugins/render/index.js +111 -0
- package/dist/esm-node/{base/middlewares/renderHandler → plugins/render}/render.js +20 -5
- package/dist/esm-node/plugins/render/ssrCache.js +143 -0
- package/dist/esm-node/{base/middlewares/renderHandler → plugins/render}/ssrRender.js +14 -14
- package/dist/esm-node/serverBase.js +153 -0
- package/dist/esm-node/types/index.js +4 -0
- package/dist/esm-node/{base/utils → utils}/index.js +1 -0
- package/dist/esm-node/utils/serverConfig.js +11 -0
- package/dist/types/adapters/node/helper/index.d.ts +4 -0
- package/dist/types/adapters/node/helper/loadCache.d.ts +2 -0
- package/dist/types/adapters/node/helper/loadConfig.d.ts +2 -0
- package/dist/types/{base/adapters/node/loadServer.d.ts → adapters/node/helper/loadEnv.d.ts} +1 -1
- package/dist/types/adapters/node/helper/loadPlugin.d.ts +3 -0
- package/dist/types/{base/adapters → adapters}/node/hono.d.ts +1 -2
- package/dist/types/{base/adapters → adapters}/node/index.d.ts +2 -3
- package/dist/types/{base/adapters → adapters}/node/node.d.ts +1 -2
- package/dist/types/adapters/node/plugins/index.d.ts +3 -0
- package/dist/types/adapters/node/plugins/nodeServer.d.ts +4 -0
- package/dist/types/adapters/node/plugins/resource.d.ts +7 -0
- package/dist/types/adapters/node/plugins/static.d.ts +15 -0
- package/dist/types/{base/constants.d.ts → constants.d.ts} +1 -0
- package/dist/types/index.d.ts +9 -3
- package/dist/types/pluginManager.d.ts +31 -0
- package/dist/types/{base/middlewares → plugins}/customServer/base.d.ts +1 -1
- package/dist/types/{base/middlewares → plugins}/customServer/context.d.ts +1 -1
- package/dist/types/{base/middlewares → plugins}/customServer/index.d.ts +3 -3
- package/dist/types/{base/middlewares → plugins}/customServer/loader.d.ts +1 -1
- package/dist/types/plugins/favicon.d.ts +2 -0
- package/dist/types/plugins/index.d.ts +6 -0
- package/dist/types/plugins/log.d.ts +2 -0
- package/dist/types/plugins/monitor.d.ts +9 -0
- package/dist/types/plugins/processedBy.d.ts +2 -0
- package/dist/types/plugins/render/index.d.ts +16 -0
- package/dist/types/{base/middlewares/renderHandler → plugins/render}/render.d.ts +5 -4
- package/dist/types/plugins/render/ssrCache.d.ts +19 -0
- package/dist/types/{base/middlewares/renderHandler → plugins/render}/ssrRender.d.ts +3 -2
- package/dist/types/{base/serverBase.d.ts → serverBase.d.ts} +13 -30
- package/dist/types/types/config/index.d.ts +1 -0
- package/dist/types/types/config/server.d.ts +1 -0
- package/dist/types/types/index.d.ts +4 -0
- package/dist/types/types/plugin.d.ts +134 -0
- package/dist/types/{base/utils → utils}/index.d.ts +1 -0
- package/dist/types/utils/serverConfig.d.ts +8 -0
- package/package.json +15 -31
- package/dist/cjs/base/adapters/node/bff.js +0 -70
- package/dist/cjs/base/adapters/node/middlewares/mock.js +0 -113
- package/dist/cjs/base/adapters/node/middlewares/serverPublic.js +0 -70
- package/dist/cjs/base/index.js +0 -55
- package/dist/cjs/base/middlewares/renderHandler/index.js +0 -129
- package/dist/cjs/base/middlewares/renderHandler/ssrCache.js +0 -207
- package/dist/cjs/base/serverBase.js +0 -203
- package/dist/cjs/core/loadPlugins.js +0 -50
- package/dist/cjs/core/plugin.js +0 -84
- package/dist/esm/base/adapters/node/bff.js +0 -128
- package/dist/esm/base/adapters/node/middlewares/index.js +0 -4
- package/dist/esm/base/adapters/node/middlewares/mock.js +0 -198
- package/dist/esm/base/adapters/node/middlewares/serverPublic.js +0 -90
- package/dist/esm/base/adapters/node/middlewares/templates.js +0 -114
- package/dist/esm/base/index.js +0 -19
- package/dist/esm/base/middlewares/faviconFallback.js +0 -28
- package/dist/esm/base/middlewares/frameworkHeader.js +0 -27
- package/dist/esm/base/middlewares/index.js +0 -9
- package/dist/esm/base/middlewares/monitor.js +0 -157
- package/dist/esm/base/middlewares/renderHandler/index.js +0 -246
- package/dist/esm/base/middlewares/renderHandler/ssrCache.js +0 -317
- package/dist/esm/base/serverBase.js +0 -383
- package/dist/esm/base/utils/debug.js +0 -5
- package/dist/esm/base/utils/serverConfig.js +0 -58
- package/dist/esm/core/index.js +0 -1
- package/dist/esm/core/loadPlugins.js +0 -26
- package/dist/esm/core/plugin.js +0 -61
- package/dist/esm-node/base/adapters/node/bff.js +0 -46
- package/dist/esm-node/base/adapters/node/middlewares/index.js +0 -4
- package/dist/esm-node/base/adapters/node/middlewares/mock.js +0 -79
- package/dist/esm-node/base/adapters/node/middlewares/serverPublic.js +0 -36
- package/dist/esm-node/base/adapters/node/middlewares/templates.js +0 -32
- package/dist/esm-node/base/index.js +0 -19
- package/dist/esm-node/base/middlewares/faviconFallback.js +0 -10
- package/dist/esm-node/base/middlewares/frameworkHeader.js +0 -7
- package/dist/esm-node/base/middlewares/index.js +0 -9
- package/dist/esm-node/base/middlewares/monitor.js +0 -63
- package/dist/esm-node/base/middlewares/renderHandler/index.js +0 -94
- package/dist/esm-node/base/middlewares/renderHandler/ssrCache.js +0 -172
- package/dist/esm-node/base/serverBase.js +0 -168
- package/dist/esm-node/base/utils/debug.js +0 -5
- package/dist/esm-node/base/utils/serverConfig.js +0 -34
- package/dist/esm-node/core/index.js +0 -1
- package/dist/esm-node/core/loadPlugins.js +0 -26
- package/dist/esm-node/core/plugin.js +0 -53
- package/dist/types/base/adapters/node/bff.d.ts +0 -3
- package/dist/types/base/adapters/node/middlewares/index.d.ts +0 -4
- package/dist/types/base/adapters/node/middlewares/mock.d.ts +0 -5
- package/dist/types/base/adapters/node/middlewares/serverManifest.d.ts +0 -4
- package/dist/types/base/adapters/node/middlewares/serverPublic.d.ts +0 -7
- package/dist/types/base/adapters/node/middlewares/serverStatic.d.ts +0 -11
- package/dist/types/base/adapters/node/middlewares/templates.d.ts +0 -4
- package/dist/types/base/index.d.ts +0 -7
- package/dist/types/base/middlewares/faviconFallback.d.ts +0 -2
- package/dist/types/base/middlewares/frameworkHeader.d.ts +0 -2
- package/dist/types/base/middlewares/index.d.ts +0 -6
- package/dist/types/base/middlewares/logger.d.ts +0 -2
- package/dist/types/base/middlewares/monitor.d.ts +0 -6
- package/dist/types/base/middlewares/renderHandler/index.d.ts +0 -9
- package/dist/types/base/middlewares/renderHandler/ssrCache.d.ts +0 -28
- package/dist/types/base/utils/debug.d.ts +0 -1
- package/dist/types/base/utils/serverConfig.d.ts +0 -14
- package/dist/types/core/index.d.ts +0 -1
- package/dist/types/core/loadPlugins.d.ts +0 -3
- package/dist/types/core/plugin.d.ts +0 -251
- package/dist/cjs/{base/adapters → adapters}/node/hono.js +0 -0
- package/dist/cjs/{base/adapters → adapters}/node/node.js +0 -0
- package/dist/cjs/{base/adapters → adapters}/node/polyfills/index.js +0 -0
- package/dist/cjs/{base/adapters → adapters}/node/polyfills/install.js +0 -0
- package/dist/cjs/{base/adapters → adapters}/node/polyfills/stream.js +0 -0
- package/dist/cjs/{base/middlewares → plugins}/customServer/base.js +0 -0
- package/dist/cjs/{base/middlewares → plugins}/customServer/context.js +0 -0
- package/dist/cjs/{base/middlewares → plugins}/customServer/loader.js +0 -0
- package/dist/cjs/{base/middlewares → plugins}/customServer/routerApi.js +0 -0
- package/dist/cjs/{base/middlewares → plugins}/customServer/template.js +0 -0
- package/dist/cjs/{base/middlewares/renderHandler → plugins/render}/dataHandler.js +0 -0
- package/dist/cjs/{base/middlewares/renderHandler → plugins/render}/serverTiming.js +0 -0
- package/dist/cjs/{core → types}/render.js +0 -0
- package/dist/cjs/{core → types}/server.js +0 -0
- package/dist/cjs/{base/utils → utils}/entry.js +0 -0
- package/dist/cjs/{base/utils → utils}/env.js +0 -0
- package/dist/cjs/{base/utils → utils}/error.js +0 -0
- package/dist/cjs/{base/utils → utils}/middlewareCollector.js +0 -0
- package/dist/cjs/{base/utils → utils}/request.js +0 -0
- package/dist/cjs/{base/utils → utils}/transformStream.js +0 -0
- package/dist/cjs/{base/utils → utils}/warmup.js +0 -0
- package/dist/esm/{base/adapters/node/loadServer.js → adapters/node/helper/loadEnv.js} +0 -0
- package/dist/esm/{base/adapters → adapters}/node/hono.js +0 -0
- package/dist/esm/{base/adapters → adapters}/node/node.js +0 -0
- package/dist/esm/{base/adapters → adapters}/node/polyfills/index.js +0 -0
- package/dist/esm/{base/adapters → adapters}/node/polyfills/install.js +0 -0
- package/dist/esm/{base/adapters → adapters}/node/polyfills/stream.js +0 -0
- package/dist/esm/{base/middlewares → plugins}/customServer/base.js +0 -0
- package/dist/esm/{base/middlewares → plugins}/customServer/context.js +0 -0
- package/dist/esm/{base/middlewares → plugins}/customServer/loader.js +0 -0
- package/dist/esm/{base/middlewares → plugins}/customServer/routerApi.js +0 -0
- package/dist/esm/{base/middlewares → plugins}/customServer/template.js +0 -0
- package/dist/esm/{base/middlewares/renderHandler → plugins/render}/dataHandler.js +0 -0
- package/dist/esm/{base/middlewares/renderHandler → plugins/render}/serverTiming.js +0 -0
- package/dist/esm/{core/server.js → types/plugin.js} +0 -0
- package/dist/esm/{base/utils → utils}/entry.js +0 -0
- package/dist/esm/{base/utils → utils}/env.js +0 -0
- package/dist/esm/{base/utils → utils}/error.js +0 -0
- package/dist/esm/{base/utils → utils}/middlewareCollector.js +0 -0
- package/dist/esm/{base/utils → utils}/request.js +0 -0
- package/dist/esm/{base/utils → utils}/transformStream.js +0 -0
- package/dist/esm/{base/utils → utils}/warmup.js +0 -0
- package/dist/esm-node/{base/adapters/node/loadServer.js → adapters/node/helper/loadEnv.js} +0 -0
- package/dist/esm-node/{base/adapters → adapters}/node/hono.js +0 -0
- package/dist/esm-node/{base/adapters → adapters}/node/node.js +0 -0
- package/dist/esm-node/{base/adapters → adapters}/node/polyfills/index.js +0 -0
- package/dist/esm-node/{base/adapters → adapters}/node/polyfills/install.js +0 -0
- package/dist/esm-node/{base/adapters → adapters}/node/polyfills/stream.js +0 -0
- package/dist/esm-node/{base/middlewares → plugins}/customServer/base.js +0 -0
- package/dist/esm-node/{base/middlewares → plugins}/customServer/context.js +0 -0
- package/dist/esm-node/{base/middlewares → plugins}/customServer/loader.js +0 -0
- package/dist/esm-node/{base/middlewares → plugins}/customServer/routerApi.js +0 -0
- package/dist/esm-node/{base/middlewares → plugins}/customServer/template.js +0 -0
- package/dist/esm-node/{base/middlewares/renderHandler → plugins/render}/dataHandler.js +0 -0
- package/dist/esm-node/{base/middlewares/renderHandler → plugins/render}/serverTiming.js +0 -0
- package/dist/esm-node/{core/render.js → types/plugin.js} +0 -0
- package/dist/{esm/core → esm-node/types}/render.js +0 -0
- package/dist/esm-node/{core → types}/server.js +0 -0
- package/dist/esm-node/{base/utils → utils}/entry.js +0 -0
- package/dist/esm-node/{base/utils → utils}/env.js +0 -0
- package/dist/esm-node/{base/utils → utils}/error.js +0 -0
- package/dist/esm-node/{base/utils → utils}/middlewareCollector.js +0 -0
- package/dist/esm-node/{base/utils → utils}/request.js +0 -0
- package/dist/esm-node/{base/utils → utils}/transformStream.js +0 -0
- package/dist/esm-node/{base/utils → utils}/warmup.js +0 -0
- package/dist/types/{base/adapters → adapters}/node/polyfills/index.d.ts +0 -0
- package/dist/types/{base/adapters → adapters}/node/polyfills/install.d.ts +0 -0
- package/dist/types/{base/adapters → adapters}/node/polyfills/stream.d.ts +0 -0
- package/dist/types/{base/middlewares → plugins}/customServer/routerApi.d.ts +0 -0
- package/dist/types/{base/middlewares → plugins}/customServer/template.d.ts +0 -0
- package/dist/types/{base/middlewares/renderHandler → plugins/render}/dataHandler.d.ts +0 -0
- package/dist/types/{base/middlewares/renderHandler → plugins/render}/serverTiming.d.ts +0 -0
- package/dist/types/{core → types}/render.d.ts +0 -0
- package/dist/types/{core → types}/server.d.ts +1 -1
- /package/dist/types/{base/utils → utils}/entry.d.ts +0 -0
- /package/dist/types/{base/utils → utils}/env.d.ts +0 -0
- /package/dist/types/{base/utils → utils}/error.d.ts +0 -0
- /package/dist/types/{base/utils → utils}/middlewareCollector.d.ts +0 -0
- /package/dist/types/{base/utils → utils}/request.d.ts +0 -0
- /package/dist/types/{base/utils → utils}/transformStream.d.ts +0 -0
- /package/dist/types/{base/utils → utils}/warmup.d.ts +0 -0
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
import { Readable } from "stream";
|
|
2
|
-
import { SERVER_DIR, requireExistModule } from "@modern-js/utils";
|
|
3
|
-
import { createMemoryStorage } from "@modern-js/runtime-utils/storer";
|
|
4
|
-
import { createTransformStream, getPathname } from "../../utils";
|
|
5
|
-
import { createReadableStreamFromReadable } from "../../adapters/node/polyfills/stream";
|
|
6
|
-
class CacheManager {
|
|
7
|
-
async getCacheResult(req, cacheControl, render, ssrContext) {
|
|
8
|
-
const key = this.computedKey(req, cacheControl);
|
|
9
|
-
const value = await this.container.get(key);
|
|
10
|
-
const { maxAge, staleWhileRevalidate } = cacheControl;
|
|
11
|
-
const ttl = maxAge + staleWhileRevalidate;
|
|
12
|
-
if (value) {
|
|
13
|
-
const cache = JSON.parse(value);
|
|
14
|
-
const interval = Date.now() - cache.cursor;
|
|
15
|
-
if (interval <= maxAge) {
|
|
16
|
-
return {
|
|
17
|
-
data: cache.val,
|
|
18
|
-
status: "hit"
|
|
19
|
-
};
|
|
20
|
-
} else if (interval <= staleWhileRevalidate + maxAge) {
|
|
21
|
-
this.processCache(key, render, ssrContext, ttl);
|
|
22
|
-
return {
|
|
23
|
-
data: cache.val,
|
|
24
|
-
status: "stale"
|
|
25
|
-
};
|
|
26
|
-
} else {
|
|
27
|
-
return this.processCache(key, render, ssrContext, ttl, "expired");
|
|
28
|
-
}
|
|
29
|
-
} else {
|
|
30
|
-
return this.processCache(key, render, ssrContext, ttl, "miss");
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
async processCache(key, render, ssrContext, ttl, status) {
|
|
34
|
-
const renderResult = await render(ssrContext);
|
|
35
|
-
if (!renderResult) {
|
|
36
|
-
return {
|
|
37
|
-
data: ""
|
|
38
|
-
};
|
|
39
|
-
} else if (typeof renderResult === "string") {
|
|
40
|
-
const current = Date.now();
|
|
41
|
-
const cache = {
|
|
42
|
-
val: renderResult,
|
|
43
|
-
cursor: current
|
|
44
|
-
};
|
|
45
|
-
await this.container.set(key, JSON.stringify(cache), {
|
|
46
|
-
ttl
|
|
47
|
-
});
|
|
48
|
-
return {
|
|
49
|
-
data: renderResult,
|
|
50
|
-
status
|
|
51
|
-
};
|
|
52
|
-
} else {
|
|
53
|
-
const body = (
|
|
54
|
-
// TODO: remove node:stream, move it to ssr entry.
|
|
55
|
-
renderResult instanceof Readable ? createReadableStreamFromReadable(renderResult) : renderResult
|
|
56
|
-
);
|
|
57
|
-
let html = "";
|
|
58
|
-
const stream = createTransformStream((chunk) => {
|
|
59
|
-
html += chunk;
|
|
60
|
-
return chunk;
|
|
61
|
-
});
|
|
62
|
-
const reader = body.getReader();
|
|
63
|
-
const writer = stream.writable.getWriter();
|
|
64
|
-
const push = () => {
|
|
65
|
-
reader.read().then(({ done, value }) => {
|
|
66
|
-
if (done) {
|
|
67
|
-
const current = Date.now();
|
|
68
|
-
const cache = {
|
|
69
|
-
val: html,
|
|
70
|
-
cursor: current
|
|
71
|
-
};
|
|
72
|
-
this.container.set(key, JSON.stringify(cache), {
|
|
73
|
-
ttl
|
|
74
|
-
});
|
|
75
|
-
writer.close();
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
writer.write(value);
|
|
79
|
-
push();
|
|
80
|
-
});
|
|
81
|
-
};
|
|
82
|
-
push();
|
|
83
|
-
return {
|
|
84
|
-
data: stream.readable,
|
|
85
|
-
status
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
computedKey(req, cacheControl) {
|
|
90
|
-
const pathname = getPathname(req);
|
|
91
|
-
const { customKey } = cacheControl;
|
|
92
|
-
const defaultKey = pathname.replace(/.+\/+$/, "");
|
|
93
|
-
if (customKey) {
|
|
94
|
-
if (typeof customKey === "string") {
|
|
95
|
-
return customKey;
|
|
96
|
-
} else {
|
|
97
|
-
return customKey(defaultKey);
|
|
98
|
-
}
|
|
99
|
-
} else {
|
|
100
|
-
return defaultKey;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
constructor(container) {
|
|
104
|
-
this.container = container;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
const CACHE_FILENAME = "cache";
|
|
108
|
-
class ServerCache {
|
|
109
|
-
async loadCacheMod(pwd = process.cwd()) {
|
|
110
|
-
const path = await import("path").catch(() => {
|
|
111
|
-
return {};
|
|
112
|
-
});
|
|
113
|
-
const serverCacheFilepath = path.resolve(pwd, SERVER_DIR, CACHE_FILENAME);
|
|
114
|
-
const mod = requireExistModule(serverCacheFilepath, {
|
|
115
|
-
interop: false
|
|
116
|
-
});
|
|
117
|
-
this.cacheOption = mod === null || mod === void 0 ? void 0 : mod.cacheOption;
|
|
118
|
-
if (this.cacheOption && !(mod === null || mod === void 0 ? void 0 : mod.customContainer)) {
|
|
119
|
-
const cacheStorage = createMemoryStorage("__ssr__cache");
|
|
120
|
-
this.customContainer = cacheStorage;
|
|
121
|
-
} else {
|
|
122
|
-
this.customContainer = mod === null || mod === void 0 ? void 0 : mod.customContainer;
|
|
123
|
-
}
|
|
124
|
-
if (this.customContainer) {
|
|
125
|
-
this.cacheManger = new CacheManager(this.customContainer);
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
matchCacheControl(req) {
|
|
129
|
-
const { cacheOption } = this;
|
|
130
|
-
if (!cacheOption || !req) {
|
|
131
|
-
return void 0;
|
|
132
|
-
} else if (isCacheControl(cacheOption)) {
|
|
133
|
-
return cacheOption;
|
|
134
|
-
} else if (isCacheOptionProvider(cacheOption)) {
|
|
135
|
-
return cacheOption(req);
|
|
136
|
-
} else {
|
|
137
|
-
const url = req.url;
|
|
138
|
-
const options = Object.entries(cacheOption);
|
|
139
|
-
for (const [key, option] of options) {
|
|
140
|
-
if (key === "*" || new RegExp(key).test(url)) {
|
|
141
|
-
if (typeof option === "function") {
|
|
142
|
-
return option(req);
|
|
143
|
-
} else {
|
|
144
|
-
return option;
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
return void 0;
|
|
149
|
-
}
|
|
150
|
-
function isCacheOptionProvider(option) {
|
|
151
|
-
return typeof option === "function";
|
|
152
|
-
}
|
|
153
|
-
function isCacheControl(option) {
|
|
154
|
-
return typeof option === "object" && option !== null && "maxAge" in option;
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
async getCache(req, cacheControl, render, ssrContext) {
|
|
158
|
-
if (this.cacheManger) {
|
|
159
|
-
return this.cacheManger.getCacheResult(req, cacheControl, render, ssrContext);
|
|
160
|
-
} else {
|
|
161
|
-
const renderResult = await render(ssrContext);
|
|
162
|
-
return {
|
|
163
|
-
data: renderResult
|
|
164
|
-
};
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
const ssrCache = new ServerCache();
|
|
169
|
-
export {
|
|
170
|
-
CacheManager,
|
|
171
|
-
ssrCache
|
|
172
|
-
};
|
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
import { INTERNAL_SERVER_PLUGINS } from "@modern-js/utils/universal/constants";
|
|
2
|
-
import { Hono } from "hono";
|
|
3
|
-
import { AppContext, ConfigContext, serverManager, createPlugin } from "../core";
|
|
4
|
-
import { getRuntimeEnv } from "./utils";
|
|
5
|
-
class ServerBase {
|
|
6
|
-
/**
|
|
7
|
-
* 初始化顺序
|
|
8
|
-
* - 获取 server runtime config
|
|
9
|
-
* - 设置 context
|
|
10
|
-
* - 创建 hooksRunner
|
|
11
|
-
* - 合并插件,内置插件和 serverConfig 中配置的插件
|
|
12
|
-
* - 执行 config hook
|
|
13
|
-
* - 获取最终的配置
|
|
14
|
-
* - 设置配置到 context
|
|
15
|
-
* - 执行 prepare hook
|
|
16
|
-
*/
|
|
17
|
-
async init() {
|
|
18
|
-
const { options } = this;
|
|
19
|
-
const runtimeEnv = getRuntimeEnv();
|
|
20
|
-
runtimeEnv === "node" && await this.initServerConfig(options);
|
|
21
|
-
await this.injectContext(options);
|
|
22
|
-
this.runner = await this.createHookRunner();
|
|
23
|
-
runtimeEnv === "node" && await this.initConfig(this.runner, options);
|
|
24
|
-
await this.injectContext(options);
|
|
25
|
-
await this.runner.prepare();
|
|
26
|
-
return this;
|
|
27
|
-
}
|
|
28
|
-
async createHookRunner() {
|
|
29
|
-
serverManager.clear();
|
|
30
|
-
const runtimeEnv = getRuntimeEnv();
|
|
31
|
-
const internalPlugins = runtimeEnv === "node" ? await this.loadInternalPlugins() : [];
|
|
32
|
-
const externalPlugins = this.loadExternalPlugins();
|
|
33
|
-
const loadedPlugins = [
|
|
34
|
-
...internalPlugins,
|
|
35
|
-
...externalPlugins
|
|
36
|
-
];
|
|
37
|
-
loadedPlugins.forEach((p) => {
|
|
38
|
-
serverManager.usePlugin(p);
|
|
39
|
-
});
|
|
40
|
-
const hooksRunner = await serverManager.init();
|
|
41
|
-
return hooksRunner;
|
|
42
|
-
}
|
|
43
|
-
async loadInternalPlugins() {
|
|
44
|
-
const { internalPlugins: plugins = INTERNAL_SERVER_PLUGINS, appContext, pwd } = this.options;
|
|
45
|
-
const loadPluginsModule = "../core/loadPlugins";
|
|
46
|
-
const { loadPlugins } = await import(loadPluginsModule);
|
|
47
|
-
const internalPlugins = loadPlugins(appContext.appDirectory || pwd, plugins);
|
|
48
|
-
return internalPlugins;
|
|
49
|
-
}
|
|
50
|
-
loadExternalPlugins() {
|
|
51
|
-
const { plugins = [] } = this.options;
|
|
52
|
-
const configPlugins = this.serverConfig.plugins || [];
|
|
53
|
-
const externalPlugins = [
|
|
54
|
-
...plugins,
|
|
55
|
-
...configPlugins
|
|
56
|
-
];
|
|
57
|
-
return externalPlugins.map((plugin) => createPlugin(plugin.setup, plugin));
|
|
58
|
-
}
|
|
59
|
-
async initServerConfig(options) {
|
|
60
|
-
const { pwd, serverConfigFile } = options;
|
|
61
|
-
const utilsModuleName = "./utils/serverConfig";
|
|
62
|
-
const { getServerConfigPath, requireConfig } = await import(utilsModuleName);
|
|
63
|
-
const serverConfigPath = await getServerConfigPath(pwd, serverConfigFile);
|
|
64
|
-
const serverConfig = requireConfig(serverConfigPath);
|
|
65
|
-
this.serverConfig = serverConfig;
|
|
66
|
-
}
|
|
67
|
-
async injectContext(options) {
|
|
68
|
-
const appContext = await this.initAppContext();
|
|
69
|
-
const { config, pwd } = options;
|
|
70
|
-
ConfigContext.set(config);
|
|
71
|
-
AppContext.set({
|
|
72
|
-
...appContext,
|
|
73
|
-
serverBase: this,
|
|
74
|
-
distDirectory: pwd
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
async initAppContext() {
|
|
78
|
-
const { options } = this;
|
|
79
|
-
const { pwd, plugins = [], appContext } = options;
|
|
80
|
-
const serverPlugins = plugins.map((p) => ({
|
|
81
|
-
server: p
|
|
82
|
-
}));
|
|
83
|
-
return {
|
|
84
|
-
appDirectory: (appContext === null || appContext === void 0 ? void 0 : appContext.appDirectory) || "",
|
|
85
|
-
apiDirectory: appContext === null || appContext === void 0 ? void 0 : appContext.apiDirectory,
|
|
86
|
-
lambdaDirectory: appContext === null || appContext === void 0 ? void 0 : appContext.lambdaDirectory,
|
|
87
|
-
sharedDirectory: appContext.sharedDirectory || "",
|
|
88
|
-
distDirectory: pwd,
|
|
89
|
-
plugins: serverPlugins
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Execute config hooks
|
|
94
|
-
* @param runner
|
|
95
|
-
* @param options
|
|
96
|
-
*/
|
|
97
|
-
runConfigHook(runner, serverConfig) {
|
|
98
|
-
const newServerConfig = runner.config(serverConfig || {});
|
|
99
|
-
return newServerConfig;
|
|
100
|
-
}
|
|
101
|
-
async initConfig(runner, options) {
|
|
102
|
-
const path = await import("path").catch((_) => {
|
|
103
|
-
return {};
|
|
104
|
-
});
|
|
105
|
-
const utilsModuleName = "@modern-js/utils";
|
|
106
|
-
const { ensureAbsolutePath, OUTPUT_CONFIG_FILE } = await import(utilsModuleName);
|
|
107
|
-
const configModuleName = "./utils/serverConfig";
|
|
108
|
-
const { loadConfig } = await import(configModuleName);
|
|
109
|
-
const { pwd, config } = options;
|
|
110
|
-
const { serverConfig } = this;
|
|
111
|
-
const finalServerConfig = this.runConfigHook(runner, serverConfig);
|
|
112
|
-
const resolvedConfigPath = ensureAbsolutePath(pwd, path.join(config.output.path || "dist", OUTPUT_CONFIG_FILE));
|
|
113
|
-
options.config = loadConfig({
|
|
114
|
-
cliConfig: config,
|
|
115
|
-
serverConfig: finalServerConfig,
|
|
116
|
-
resolvedConfigPath
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
get all() {
|
|
120
|
-
return this.app.all.bind(this.app);
|
|
121
|
-
}
|
|
122
|
-
get use() {
|
|
123
|
-
return this.app.use.bind(this.app);
|
|
124
|
-
}
|
|
125
|
-
get get() {
|
|
126
|
-
return this.app.get.bind(this.app);
|
|
127
|
-
}
|
|
128
|
-
get post() {
|
|
129
|
-
return this.app.post.bind(this.app);
|
|
130
|
-
}
|
|
131
|
-
get put() {
|
|
132
|
-
return this.app.put.bind(this.app);
|
|
133
|
-
}
|
|
134
|
-
get delete() {
|
|
135
|
-
return this.app.delete.bind(this.app);
|
|
136
|
-
}
|
|
137
|
-
get patch() {
|
|
138
|
-
return this.app.patch.bind(this.app);
|
|
139
|
-
}
|
|
140
|
-
get handle() {
|
|
141
|
-
return this.app.fetch.bind(this.app);
|
|
142
|
-
}
|
|
143
|
-
get request() {
|
|
144
|
-
return this.app.request.bind(this.app);
|
|
145
|
-
}
|
|
146
|
-
get notFound() {
|
|
147
|
-
return this.app.notFound.bind(this.app);
|
|
148
|
-
}
|
|
149
|
-
get onError() {
|
|
150
|
-
return this.app.onError.bind(this.app);
|
|
151
|
-
}
|
|
152
|
-
constructor(options) {
|
|
153
|
-
this.serverConfig = {};
|
|
154
|
-
this.options = options;
|
|
155
|
-
this.app = new Hono();
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
function createServerBase(options) {
|
|
159
|
-
if (options == null) {
|
|
160
|
-
throw new Error("can not start server without options");
|
|
161
|
-
}
|
|
162
|
-
const server = new ServerBase(options);
|
|
163
|
-
return server;
|
|
164
|
-
}
|
|
165
|
-
export {
|
|
166
|
-
ServerBase,
|
|
167
|
-
createServerBase
|
|
168
|
-
};
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { compatRequire, fs, DEFAULT_SERVER_CONFIG } from "@modern-js/utils";
|
|
2
|
-
import mergeDeep from "merge-deep";
|
|
3
|
-
const getServerConfigPath = async (distDirectory, serverConfigFile = DEFAULT_SERVER_CONFIG) => {
|
|
4
|
-
const path = await import("path");
|
|
5
|
-
const serverConfigPath = path.join(distDirectory, serverConfigFile);
|
|
6
|
-
return `${serverConfigPath}.js`;
|
|
7
|
-
};
|
|
8
|
-
const requireConfig = (serverConfigPath) => {
|
|
9
|
-
if (fs.pathExistsSync(serverConfigPath)) {
|
|
10
|
-
return compatRequire(serverConfigPath);
|
|
11
|
-
}
|
|
12
|
-
return {};
|
|
13
|
-
};
|
|
14
|
-
const loadConfig = ({ cliConfig, serverConfig, resolvedConfigPath }) => {
|
|
15
|
-
let config = null;
|
|
16
|
-
if (process.env.NODE_ENV === "production") {
|
|
17
|
-
const resolvedConfig = requireConfig(resolvedConfigPath);
|
|
18
|
-
config = mergeDeep({
|
|
19
|
-
...resolvedConfig,
|
|
20
|
-
plugins: []
|
|
21
|
-
}, serverConfig, cliConfig);
|
|
22
|
-
} else {
|
|
23
|
-
config = mergeDeep({
|
|
24
|
-
...cliConfig,
|
|
25
|
-
plugins: []
|
|
26
|
-
}, serverConfig);
|
|
27
|
-
}
|
|
28
|
-
return config;
|
|
29
|
-
};
|
|
30
|
-
export {
|
|
31
|
-
getServerConfigPath,
|
|
32
|
-
loadConfig,
|
|
33
|
-
requireConfig
|
|
34
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./plugin";
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { compatRequire, getInternalPlugins, tryResolve } from "@modern-js/utils";
|
|
2
|
-
import { createPlugin } from "../core/plugin";
|
|
3
|
-
const resolvePlugin = (p, appDirectory) => {
|
|
4
|
-
const isPluginInstance = typeof p !== "string";
|
|
5
|
-
if (isPluginInstance) {
|
|
6
|
-
return {
|
|
7
|
-
module: createPlugin(p.setup, p)
|
|
8
|
-
};
|
|
9
|
-
}
|
|
10
|
-
const pluginPath = tryResolve(p, appDirectory);
|
|
11
|
-
const module = compatRequire(pluginPath);
|
|
12
|
-
const pluginInstance = module();
|
|
13
|
-
return {
|
|
14
|
-
module: createPlugin(pluginInstance.setup, pluginInstance)
|
|
15
|
-
};
|
|
16
|
-
};
|
|
17
|
-
const loadPlugins = (appDirectory, internalPlugins) => {
|
|
18
|
-
const loadedPlugins = getInternalPlugins(appDirectory, internalPlugins);
|
|
19
|
-
return loadedPlugins.map((plugin) => {
|
|
20
|
-
const { module } = resolvePlugin(plugin, appDirectory);
|
|
21
|
-
return module;
|
|
22
|
-
});
|
|
23
|
-
};
|
|
24
|
-
export {
|
|
25
|
-
loadPlugins
|
|
26
|
-
};
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { createContext, createAsyncManager, createAsyncPipeline, createAsyncWaterfall, createParallelWorkflow, createWaterfall } from "@modern-js/plugin";
|
|
2
|
-
const gather = createParallelWorkflow();
|
|
3
|
-
const config = createWaterfall();
|
|
4
|
-
const prepare = createWaterfall();
|
|
5
|
-
const prepareWebServer = createAsyncPipeline();
|
|
6
|
-
const fallback = createParallelWorkflow();
|
|
7
|
-
const prepareApiServer = createAsyncPipeline();
|
|
8
|
-
const onApiChange = createAsyncWaterfall();
|
|
9
|
-
const repack = createWaterfall();
|
|
10
|
-
const beforeServerInit = createAsyncWaterfall();
|
|
11
|
-
const afterMatch = createAsyncPipeline();
|
|
12
|
-
const afterRender = createAsyncPipeline();
|
|
13
|
-
const afterStreamingRender = createAsyncPipeline();
|
|
14
|
-
const reset = createParallelWorkflow();
|
|
15
|
-
const AppContext = createContext({});
|
|
16
|
-
const setAppContext = (value) => AppContext.set(value);
|
|
17
|
-
const ConfigContext = createContext({});
|
|
18
|
-
const useConfigContext = () => ConfigContext.use().value;
|
|
19
|
-
const useAppContext = () => AppContext.use().value;
|
|
20
|
-
const pluginAPI = {
|
|
21
|
-
useAppContext,
|
|
22
|
-
useConfigContext,
|
|
23
|
-
setAppContext
|
|
24
|
-
};
|
|
25
|
-
const serverHooks = {
|
|
26
|
-
// server hook
|
|
27
|
-
gather,
|
|
28
|
-
config,
|
|
29
|
-
prepare,
|
|
30
|
-
fallback,
|
|
31
|
-
prepareWebServer,
|
|
32
|
-
prepareApiServer,
|
|
33
|
-
repack,
|
|
34
|
-
onApiChange,
|
|
35
|
-
beforeServerInit,
|
|
36
|
-
afterMatch,
|
|
37
|
-
afterRender,
|
|
38
|
-
afterStreamingRender,
|
|
39
|
-
reset
|
|
40
|
-
};
|
|
41
|
-
const createServerManager = () => createAsyncManager(serverHooks, pluginAPI);
|
|
42
|
-
const serverManager = createServerManager();
|
|
43
|
-
const { createPlugin } = serverManager;
|
|
44
|
-
export {
|
|
45
|
-
AppContext,
|
|
46
|
-
ConfigContext,
|
|
47
|
-
createPlugin,
|
|
48
|
-
createServerManager,
|
|
49
|
-
serverManager,
|
|
50
|
-
setAppContext,
|
|
51
|
-
useAppContext,
|
|
52
|
-
useConfigContext
|
|
53
|
-
};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { ServerRoute, Logger } from '@modern-js/types';
|
|
2
|
-
import { Middleware, ServerEnv, ServerManifest } from '../../../../core/server';
|
|
3
|
-
export declare function getServerManifest(pwd: string, routes: ServerRoute[], logger: Logger): Promise<ServerManifest>;
|
|
4
|
-
export declare function injectServerManifest(pwd: string, routes?: ServerRoute[]): Middleware<ServerEnv>;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { ServerRoute } from '@modern-js/types';
|
|
2
|
-
import { Middleware } from '../../../../core/server';
|
|
3
|
-
export type PublicMiddlwareOptions = {
|
|
4
|
-
pwd: string;
|
|
5
|
-
routes: ServerRoute[];
|
|
6
|
-
};
|
|
7
|
-
export declare function createPublicMiddleware({ pwd, routes, }: PublicMiddlwareOptions): Middleware;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { ServerRoute } from '@modern-js/types';
|
|
2
|
-
import type { OutputNormalizedConfig, HtmlNormalizedConfig } from '../../../../types/config';
|
|
3
|
-
import { Middleware } from '../../../../core/server';
|
|
4
|
-
interface ServerStaticOptions {
|
|
5
|
-
pwd: string;
|
|
6
|
-
output: OutputNormalizedConfig;
|
|
7
|
-
html: HtmlNormalizedConfig;
|
|
8
|
-
routes?: ServerRoute[];
|
|
9
|
-
}
|
|
10
|
-
export declare function createStaticMiddleware(options: ServerStaticOptions): Middleware;
|
|
11
|
-
export {};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { ServerRoute } from '@modern-js/types';
|
|
2
|
-
import { Middleware, ServerEnv } from '../../../../core/server';
|
|
3
|
-
export declare function getHtmlTemplates(pwd: string, routes: ServerRoute[]): Promise<Record<string, string>>;
|
|
4
|
-
export declare function injectTemplates(pwd: string, routes?: ServerRoute[]): Middleware<ServerEnv>;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export { createErrorHtml, onError, ErrorDigest } from './utils';
|
|
2
|
-
export { AGGRED_DIR } from './constants';
|
|
3
|
-
export { favionFallbackMiddleware, injectReporter, injectLogger, getRenderHandler, bindRenderHandler, logHandler, processedBy, getLoaderCtx, } from './middlewares';
|
|
4
|
-
export type { BindRenderHandleOptions } from './middlewares';
|
|
5
|
-
export type { ServerBase, ServerBaseOptions } from './serverBase';
|
|
6
|
-
export { createServerBase } from './serverBase';
|
|
7
|
-
export type { Middleware, Context, Next, HonoRequest, ServerEnv, ServerManifest, } from '../core/server';
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { Logger, Metrics } from '@modern-js/types';
|
|
2
|
-
import type { Context, Next, ServerEnv } from '../../core/server';
|
|
3
|
-
export declare function injectReporter(): (c: Context<ServerEnv>, next: Next) => Promise<void>;
|
|
4
|
-
export declare function initReporter(entryName: string): (c: Context<ServerEnv>, next: Next) => Promise<void>;
|
|
5
|
-
export declare function injectLogger(inputLogger: Logger): (c: Context<ServerEnv>, next: Next) => Promise<void>;
|
|
6
|
-
export declare function injectMetrics(inputMetrics: Metrics): (c: Context<ServerEnv>, next: Next) => Promise<void>;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { Render } from '../../../core/render';
|
|
2
|
-
import { ServerBase, type ServerBaseOptions } from '../../serverBase';
|
|
3
|
-
export type BindRenderHandleOptions = {
|
|
4
|
-
metaName?: string;
|
|
5
|
-
staticGenerate?: boolean;
|
|
6
|
-
disableCustomHook?: boolean;
|
|
7
|
-
};
|
|
8
|
-
export declare function getRenderHandler(options: ServerBaseOptions & BindRenderHandleOptions, serverBase?: ServerBase): Promise<Render | null>;
|
|
9
|
-
export declare function bindRenderHandler(server: ServerBase, options: ServerBaseOptions & BindRenderHandleOptions): Promise<void>;
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
/// <reference types="node" />
|
|
3
|
-
import type { IncomingMessage } from 'http';
|
|
4
|
-
import { Readable } from 'stream';
|
|
5
|
-
import type { CacheControl, CacheOption, Container } from '@modern-js/types';
|
|
6
|
-
import type { SSRServerContext, ServerRender } from '../../../core/server';
|
|
7
|
-
export type CacheStatus = 'hit' | 'stale' | 'expired' | 'miss';
|
|
8
|
-
export type CacheResult = {
|
|
9
|
-
data: string | Readable | ReadableStream;
|
|
10
|
-
status?: CacheStatus;
|
|
11
|
-
};
|
|
12
|
-
export declare class CacheManager {
|
|
13
|
-
private container;
|
|
14
|
-
constructor(container: Container<string, string>);
|
|
15
|
-
getCacheResult(req: Request, cacheControl: CacheControl, render: ServerRender, ssrContext: SSRServerContext): Promise<CacheResult>;
|
|
16
|
-
private processCache;
|
|
17
|
-
private computedKey;
|
|
18
|
-
}
|
|
19
|
-
declare class ServerCache {
|
|
20
|
-
customContainer?: Container;
|
|
21
|
-
cacheOption?: CacheOption;
|
|
22
|
-
private cacheManger?;
|
|
23
|
-
loadCacheMod(pwd?: string): Promise<void>;
|
|
24
|
-
matchCacheControl(req?: IncomingMessage): CacheControl | Promise<CacheControl> | undefined;
|
|
25
|
-
getCache(req: Request, cacheControl: CacheControl, render: ServerRender, ssrContext: SSRServerContext): Promise<CacheResult>;
|
|
26
|
-
}
|
|
27
|
-
export declare const ssrCache: ServerCache;
|
|
28
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const debug: import("@modern-js/utils/compiled/debug").Debugger;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { ServerConfig } from '../../core/plugin';
|
|
2
|
-
import { ServerOptions } from '../../types/config';
|
|
3
|
-
export declare const getServerConfigPath: (distDirectory: string, serverConfigFile?: string) => Promise<string>;
|
|
4
|
-
export declare const requireConfig: (serverConfigPath: string) => any;
|
|
5
|
-
/**
|
|
6
|
-
* 对配置进行合并,开发环境下,cliConfig 与 serverConfig 进行深合并
|
|
7
|
-
* 生产环境下,resolvedConfig 与 serverConfig 进行深合并
|
|
8
|
-
* resolvedConfigPath: 构建序列化后的 modern.config.js 文件路径
|
|
9
|
-
*/
|
|
10
|
-
export declare const loadConfig: ({ cliConfig, serverConfig, resolvedConfigPath, }: {
|
|
11
|
-
cliConfig: ServerOptions;
|
|
12
|
-
serverConfig: ServerConfig;
|
|
13
|
-
resolvedConfigPath: string;
|
|
14
|
-
}) => any;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './plugin';
|