@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
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { loadServerEnv } from "./loadEnv";
|
|
2
|
+
import { loadServerPlugins } from "./loadPlugin";
|
|
3
|
+
import { loadServerConfig } from "./loadConfig";
|
|
4
|
+
import { loadCacheConfig } from "./loadCache";
|
|
5
|
+
export {
|
|
6
|
+
loadCacheConfig,
|
|
7
|
+
loadServerConfig,
|
|
8
|
+
loadServerEnv,
|
|
9
|
+
loadServerPlugins
|
|
10
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import path from "path";
|
|
2
|
+
import { SERVER_DIR, requireExistModule } from "@modern-js/utils";
|
|
3
|
+
const CACHE_FILENAME = "cache";
|
|
4
|
+
function loadCacheConfig(pwd) {
|
|
5
|
+
const serverCacheFilepath = path.resolve(pwd, SERVER_DIR, CACHE_FILENAME);
|
|
6
|
+
const mod = requireExistModule(serverCacheFilepath, {
|
|
7
|
+
interop: false
|
|
8
|
+
});
|
|
9
|
+
if (mod === null || mod === void 0 ? void 0 : mod.cacheOption) {
|
|
10
|
+
return {
|
|
11
|
+
strategy: mod.cacheOption,
|
|
12
|
+
container: mod.customContainer
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
return void 0;
|
|
16
|
+
}
|
|
17
|
+
export {
|
|
18
|
+
loadCacheConfig
|
|
19
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import path from "path";
|
|
2
|
+
import { compatRequire, fs, DEFAULT_SERVER_CONFIG, requireExistModule } from "@modern-js/utils";
|
|
3
|
+
const requireConfig = (serverConfigPath) => {
|
|
4
|
+
if (fs.pathExistsSync(serverConfigPath)) {
|
|
5
|
+
return compatRequire(serverConfigPath);
|
|
6
|
+
}
|
|
7
|
+
return void 0;
|
|
8
|
+
};
|
|
9
|
+
function loadServerConfigNew(serverConfigPath) {
|
|
10
|
+
const mod = requireExistModule(serverConfigPath);
|
|
11
|
+
if (mod) {
|
|
12
|
+
return mod;
|
|
13
|
+
}
|
|
14
|
+
return void 0;
|
|
15
|
+
}
|
|
16
|
+
function loadServerConfigOld(pwd, configFile) {
|
|
17
|
+
const serverConfigPath = path.join(pwd, `${configFile}.js`);
|
|
18
|
+
const serverConfig = requireConfig(serverConfigPath);
|
|
19
|
+
return serverConfig;
|
|
20
|
+
}
|
|
21
|
+
function loadServerConfig(pwd, oldServerFile = DEFAULT_SERVER_CONFIG, newServerConfigPath) {
|
|
22
|
+
const newServerConfig = newServerConfigPath && loadServerConfigNew(newServerConfigPath);
|
|
23
|
+
if (newServerConfig) {
|
|
24
|
+
return newServerConfig;
|
|
25
|
+
}
|
|
26
|
+
const oldServerConfig = loadServerConfigOld(pwd, oldServerFile);
|
|
27
|
+
return oldServerConfig;
|
|
28
|
+
}
|
|
29
|
+
export {
|
|
30
|
+
loadServerConfig
|
|
31
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { compatRequire, tryResolve } from "@modern-js/utils";
|
|
2
|
+
function resolveServerPlugin(plugin, appDirectory) {
|
|
3
|
+
const { name, options } = plugin;
|
|
4
|
+
const pluginPath = tryResolve(name, appDirectory);
|
|
5
|
+
const module = compatRequire(pluginPath);
|
|
6
|
+
const pluginInstance = module(options);
|
|
7
|
+
return pluginInstance;
|
|
8
|
+
}
|
|
9
|
+
function loadServerPlugins(serverPlugins, appDirectory) {
|
|
10
|
+
const instances = serverPlugins.map((plugin) => resolveServerPlugin(plugin, appDirectory));
|
|
11
|
+
return instances;
|
|
12
|
+
}
|
|
13
|
+
export {
|
|
14
|
+
loadServerPlugins
|
|
15
|
+
};
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { loadServerEnv } from "./loadServer";
|
|
2
1
|
import { httpCallBack2HonoMid, connectMid2HonoMid } from "./hono";
|
|
3
2
|
import { createNodeServer, sendResponse, createWebRequest, writeReadableStreamToWritable } from "./node";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import { serverStaticPlugin, injectResourcePlugin, getHtmlTemplates, getServerManifest, injectNodeSeverPlugin } from "./plugins";
|
|
4
|
+
import { loadServerPlugins, loadServerEnv, loadServerConfig, loadCacheConfig } from "./helper";
|
|
6
5
|
export {
|
|
7
|
-
bindBFFHandler,
|
|
8
6
|
connectMid2HonoMid,
|
|
9
7
|
createNodeServer,
|
|
10
|
-
createStaticMiddleware,
|
|
11
8
|
createWebRequest,
|
|
12
9
|
getHtmlTemplates,
|
|
13
10
|
getServerManifest,
|
|
14
11
|
httpCallBack2HonoMid,
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
injectNodeSeverPlugin,
|
|
13
|
+
injectResourcePlugin,
|
|
14
|
+
loadCacheConfig,
|
|
15
|
+
loadServerConfig,
|
|
17
16
|
loadServerEnv,
|
|
18
|
-
|
|
17
|
+
loadServerPlugins,
|
|
19
18
|
sendResponse,
|
|
19
|
+
serverStaticPlugin,
|
|
20
20
|
writeReadableStreamToWritable
|
|
21
21
|
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
const injectNodeSeverPlugin = ({ nodeServer }) => ({
|
|
2
|
+
name: "@modern-js/plugin-inject-node-server",
|
|
3
|
+
setup(api) {
|
|
4
|
+
const appContext = api.useAppContext();
|
|
5
|
+
api.setAppContext({
|
|
6
|
+
...appContext,
|
|
7
|
+
nodeServer
|
|
8
|
+
});
|
|
9
|
+
return {};
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
export {
|
|
13
|
+
injectNodeSeverPlugin
|
|
14
|
+
};
|
|
@@ -1,5 +1,32 @@
|
|
|
1
1
|
import path from "path";
|
|
2
|
+
import { fileReader } from "@modern-js/runtime-utils/fileReader";
|
|
2
3
|
import { LOADABLE_STATS_FILE, MAIN_ENTRY_NAME, ROUTE_MANIFEST_FILE, SERVER_BUNDLE_DIRECTORY, fs } from "@modern-js/utils";
|
|
4
|
+
async function getHtmlTemplates(pwd, routes) {
|
|
5
|
+
const htmls = await Promise.all(routes.map(async (route) => {
|
|
6
|
+
let html;
|
|
7
|
+
try {
|
|
8
|
+
var _this;
|
|
9
|
+
const htmlPath = path.join(pwd, route.entryPath);
|
|
10
|
+
html = (_this = await fileReader.readFile(htmlPath, "utf-8")) === null || _this === void 0 ? void 0 : _this.toString();
|
|
11
|
+
} catch (e) {
|
|
12
|
+
}
|
|
13
|
+
return [
|
|
14
|
+
route.entryName,
|
|
15
|
+
html
|
|
16
|
+
];
|
|
17
|
+
}) || []);
|
|
18
|
+
const templates = Object.fromEntries(htmls);
|
|
19
|
+
return templates;
|
|
20
|
+
}
|
|
21
|
+
function injectTemplates(pwd, routes) {
|
|
22
|
+
return async (c, next) => {
|
|
23
|
+
if (routes && !c.get("templates")) {
|
|
24
|
+
const templates = await getHtmlTemplates(pwd, routes);
|
|
25
|
+
c.set("templates", templates);
|
|
26
|
+
}
|
|
27
|
+
await next();
|
|
28
|
+
};
|
|
29
|
+
}
|
|
3
30
|
const dynamicImport = (filePath) => {
|
|
4
31
|
try {
|
|
5
32
|
const module = require(filePath);
|
|
@@ -50,7 +77,28 @@ function injectServerManifest(pwd, routes) {
|
|
|
50
77
|
await next();
|
|
51
78
|
};
|
|
52
79
|
}
|
|
80
|
+
const injectResourcePlugin = () => ({
|
|
81
|
+
name: "@modern-js/plugin-inject-resource",
|
|
82
|
+
setup(api) {
|
|
83
|
+
return {
|
|
84
|
+
async prepare() {
|
|
85
|
+
const { middlewares, routes, distDirectory: pwd } = api.useAppContext();
|
|
86
|
+
middlewares.push({
|
|
87
|
+
name: "inject-server-manifest",
|
|
88
|
+
handler: injectServerManifest(pwd, routes)
|
|
89
|
+
});
|
|
90
|
+
middlewares.push({
|
|
91
|
+
name: "inject-html",
|
|
92
|
+
handler: injectTemplates(pwd, routes)
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
});
|
|
53
98
|
export {
|
|
99
|
+
getHtmlTemplates,
|
|
54
100
|
getServerManifest,
|
|
55
|
-
|
|
101
|
+
injectResourcePlugin,
|
|
102
|
+
injectServerManifest,
|
|
103
|
+
injectTemplates
|
|
56
104
|
};
|
|
@@ -2,7 +2,57 @@ import path from "path";
|
|
|
2
2
|
import { fs } from "@modern-js/utils";
|
|
3
3
|
import { getMimeType } from "hono/utils/mime";
|
|
4
4
|
import { fileReader } from "@modern-js/runtime-utils/fileReader";
|
|
5
|
-
import {
|
|
5
|
+
import { sortRoutes } from "../../../utils";
|
|
6
|
+
const serverStaticPlugin = () => ({
|
|
7
|
+
name: "@modern-js/plugin-server-static",
|
|
8
|
+
setup(api) {
|
|
9
|
+
return {
|
|
10
|
+
prepare() {
|
|
11
|
+
const { middlewares, distDirectory: pwd, routes } = api.useAppContext();
|
|
12
|
+
const config = api.useConfigContext();
|
|
13
|
+
const serverStaticMiddleware = createStaticMiddleware({
|
|
14
|
+
pwd,
|
|
15
|
+
routes,
|
|
16
|
+
output: config.output || {},
|
|
17
|
+
html: config.html || {}
|
|
18
|
+
});
|
|
19
|
+
middlewares.push({
|
|
20
|
+
name: "server-static",
|
|
21
|
+
handler: serverStaticMiddleware
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
function createPublicMiddleware({ pwd, routes }) {
|
|
28
|
+
return async (c, next) => {
|
|
29
|
+
const route = matchRoute(c.req, routes);
|
|
30
|
+
if (route) {
|
|
31
|
+
const { entryPath } = route;
|
|
32
|
+
const filename = path.join(pwd, entryPath);
|
|
33
|
+
const data = await fileReader.readFile(filename, "buffer");
|
|
34
|
+
const mimeType = getMimeType(filename);
|
|
35
|
+
if (data !== null) {
|
|
36
|
+
if (mimeType) {
|
|
37
|
+
c.header("Content-Type", mimeType);
|
|
38
|
+
}
|
|
39
|
+
Object.entries(route.responseHeaders || {}).forEach(([k, v]) => {
|
|
40
|
+
c.header(k, v);
|
|
41
|
+
});
|
|
42
|
+
return c.body(data, 200);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return await next();
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
function matchRoute(req, routes) {
|
|
49
|
+
for (const route of routes.sort(sortRoutes)) {
|
|
50
|
+
if (!route.isSSR && route.entryPath.startsWith("public") && req.path.startsWith(route.urlPath)) {
|
|
51
|
+
return route;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return void 0;
|
|
55
|
+
}
|
|
6
56
|
function createStaticMiddleware(options) {
|
|
7
57
|
const { pwd, routes } = options;
|
|
8
58
|
const prefix = options.output.assetPrefix || "/";
|
|
@@ -70,5 +120,7 @@ const prepareFavicons = (favicon, faviconByEntries) => {
|
|
|
70
120
|
return faviconNames;
|
|
71
121
|
};
|
|
72
122
|
export {
|
|
73
|
-
|
|
123
|
+
createPublicMiddleware,
|
|
124
|
+
createStaticMiddleware,
|
|
125
|
+
serverStaticPlugin
|
|
74
126
|
};
|
|
@@ -23,9 +23,11 @@ var ServerReportTimings;
|
|
|
23
23
|
ServerReportTimings2["SERVER_HOOK_AFTER_MATCH"] = "server-hook-after-match";
|
|
24
24
|
})(ServerReportTimings || (ServerReportTimings = {}));
|
|
25
25
|
const X_RENDER_CACHE = "x-render-cache";
|
|
26
|
+
const X_MODERNJS_RENDER = "x-modernjs-render";
|
|
26
27
|
export {
|
|
27
28
|
AGGRED_DIR,
|
|
28
29
|
REPLACE_REG,
|
|
29
30
|
ServerReportTimings,
|
|
31
|
+
X_MODERNJS_RENDER,
|
|
30
32
|
X_RENDER_CACHE
|
|
31
33
|
};
|
package/dist/esm-node/index.js
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { createErrorHtml, onError, ErrorDigest } from "./utils";
|
|
2
|
+
import { AGGRED_DIR } from "./constants";
|
|
3
|
+
import { createServerBase } from "./serverBase";
|
|
4
|
+
import { PluginManager } from "./pluginManager";
|
|
5
|
+
export * from "./plugins";
|
|
6
|
+
export * from "./types/plugin";
|
|
7
|
+
export * from "./types/render";
|
|
3
8
|
export * from "@modern-js/plugin";
|
|
4
|
-
export * from "./core/loadPlugins";
|
|
5
9
|
export * from "./types/config";
|
|
10
|
+
export {
|
|
11
|
+
AGGRED_DIR,
|
|
12
|
+
ErrorDigest,
|
|
13
|
+
PluginManager,
|
|
14
|
+
createErrorHtml,
|
|
15
|
+
createServerBase,
|
|
16
|
+
onError
|
|
17
|
+
};
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { _ as _class_private_field_get } from "@swc/helpers/_/_class_private_field_get";
|
|
2
|
+
import { _ as _class_private_field_init } from "@swc/helpers/_/_class_private_field_init";
|
|
3
|
+
import { _ as _class_private_field_set } from "@swc/helpers/_/_class_private_field_set";
|
|
4
|
+
import { _ as _class_private_method_get } from "@swc/helpers/_/_class_private_method_get";
|
|
5
|
+
import { _ as _class_private_method_init } from "@swc/helpers/_/_class_private_method_init";
|
|
6
|
+
import { createAsyncManager, createAsyncPipeline, createAsyncWaterfall, createContext, createParallelWorkflow } from "@modern-js/plugin";
|
|
7
|
+
import { loadConfig } from "./utils";
|
|
8
|
+
var _appContext = /* @__PURE__ */ new WeakMap(), _plugins = /* @__PURE__ */ new WeakMap(), _options = /* @__PURE__ */ new WeakMap(), _configContext = /* @__PURE__ */ new WeakMap(), _createCoreManager = /* @__PURE__ */ new WeakSet(), _initConfigContext = /* @__PURE__ */ new WeakSet();
|
|
9
|
+
class PluginManager {
|
|
10
|
+
async init() {
|
|
11
|
+
const coreManager = _class_private_method_get(this, _createCoreManager, createCoreManager).call(this);
|
|
12
|
+
const runner = await coreManager.init();
|
|
13
|
+
await _class_private_method_get(this, _initConfigContext, initConfigContext).call(this, runner);
|
|
14
|
+
return runner;
|
|
15
|
+
}
|
|
16
|
+
addPlugins(plugins) {
|
|
17
|
+
_class_private_field_get(this, _plugins).push(...plugins);
|
|
18
|
+
}
|
|
19
|
+
constructor(options) {
|
|
20
|
+
_class_private_method_init(this, _createCoreManager);
|
|
21
|
+
_class_private_method_init(this, _initConfigContext);
|
|
22
|
+
_class_private_field_init(this, _appContext, {
|
|
23
|
+
writable: true,
|
|
24
|
+
value: void 0
|
|
25
|
+
});
|
|
26
|
+
_class_private_field_init(this, _plugins, {
|
|
27
|
+
writable: true,
|
|
28
|
+
value: void 0
|
|
29
|
+
});
|
|
30
|
+
_class_private_field_init(this, _options, {
|
|
31
|
+
writable: true,
|
|
32
|
+
value: void 0
|
|
33
|
+
});
|
|
34
|
+
_class_private_field_init(this, _configContext, {
|
|
35
|
+
writable: true,
|
|
36
|
+
value: void 0
|
|
37
|
+
});
|
|
38
|
+
_class_private_field_set(this, _plugins, []);
|
|
39
|
+
_class_private_field_set(this, _configContext, createContext({}));
|
|
40
|
+
_class_private_field_set(this, _appContext, options.appContext);
|
|
41
|
+
_class_private_field_set(this, _configContext, createContext(options.serverConfig || {}));
|
|
42
|
+
_class_private_field_set(this, _options, options);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
function createCoreManager() {
|
|
46
|
+
var _class_private_field_get_serverConfig;
|
|
47
|
+
const hooks = {
|
|
48
|
+
config: createAsyncWaterfall(),
|
|
49
|
+
prepare: createAsyncWaterfall(),
|
|
50
|
+
reset: createParallelWorkflow(),
|
|
51
|
+
prepareWebServer: createAsyncPipeline(),
|
|
52
|
+
fallback: createParallelWorkflow(),
|
|
53
|
+
prepareApiServer: createAsyncPipeline(),
|
|
54
|
+
afterMatch: createAsyncPipeline(),
|
|
55
|
+
afterRender: createAsyncPipeline(),
|
|
56
|
+
afterStreamingRender: createAsyncPipeline()
|
|
57
|
+
};
|
|
58
|
+
const pluginApi = {
|
|
59
|
+
useConfigContext: () => _class_private_field_get(this, _configContext).use().value,
|
|
60
|
+
useAppContext: () => _class_private_field_get(this, _appContext).use().value,
|
|
61
|
+
setAppContext: (c) => _class_private_field_get(this, _appContext).set(c)
|
|
62
|
+
};
|
|
63
|
+
const coreManager = createAsyncManager(hooks, pluginApi);
|
|
64
|
+
this.addPlugins(((_class_private_field_get_serverConfig = _class_private_field_get(this, _options).serverConfig) === null || _class_private_field_get_serverConfig === void 0 ? void 0 : _class_private_field_get_serverConfig.plugins) || []);
|
|
65
|
+
_class_private_field_get(this, _plugins).forEach((p) => {
|
|
66
|
+
const plugin = coreManager.createPlugin(p.setup, p);
|
|
67
|
+
coreManager.usePlugin(plugin);
|
|
68
|
+
});
|
|
69
|
+
return coreManager;
|
|
70
|
+
}
|
|
71
|
+
async function initConfigContext(runner) {
|
|
72
|
+
const { serverConfig, cliConfig } = _class_private_field_get(this, _options);
|
|
73
|
+
const mergedConfig = loadConfig({
|
|
74
|
+
cliConfig,
|
|
75
|
+
serverConfig: serverConfig || {}
|
|
76
|
+
});
|
|
77
|
+
const finalServerConfig = await runner.config(mergedConfig);
|
|
78
|
+
_class_private_field_get(this, _configContext).set(finalServerConfig);
|
|
79
|
+
}
|
|
80
|
+
export {
|
|
81
|
+
PluginManager
|
|
82
|
+
};
|
|
@@ -78,7 +78,7 @@ class CustomServer {
|
|
|
78
78
|
return;
|
|
79
79
|
}
|
|
80
80
|
if (Array.isArray(serverMiddleware)) {
|
|
81
|
-
return
|
|
81
|
+
return getServerMidFromUnstableMid(serverMiddleware);
|
|
82
82
|
}
|
|
83
83
|
return async (c, next) => {
|
|
84
84
|
var _c_env_node_res, _c_env_node, _c_env;
|
|
@@ -118,6 +118,14 @@ class CustomServer {
|
|
|
118
118
|
});
|
|
119
119
|
}
|
|
120
120
|
}
|
|
121
|
+
function getServerMidFromUnstableMid(serverMiddleware) {
|
|
122
|
+
return serverMiddleware.map((middleware) => {
|
|
123
|
+
return async (c, next) => {
|
|
124
|
+
const context = createMiddlewareContextFromHono(c);
|
|
125
|
+
return middleware(context, next);
|
|
126
|
+
};
|
|
127
|
+
});
|
|
128
|
+
}
|
|
121
129
|
function isRedirect(headers, code) {
|
|
122
130
|
return [
|
|
123
131
|
301,
|
|
@@ -126,14 +134,6 @@ function isRedirect(headers, code) {
|
|
|
126
134
|
308
|
|
127
135
|
].includes(code || 0) || headers.get("Location");
|
|
128
136
|
}
|
|
129
|
-
function getUnstableMiddlewares(serverMiddleware) {
|
|
130
|
-
return serverMiddleware.map((middleware) => {
|
|
131
|
-
return async (c, next) => {
|
|
132
|
-
const context = createMiddlewareContextFromHono(c);
|
|
133
|
-
return middleware(context, next);
|
|
134
|
-
};
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
137
|
function createMiddlewareContextFromHono(c) {
|
|
138
138
|
const loaderContext = getLoaderCtx(c);
|
|
139
139
|
return {
|
|
@@ -161,5 +161,6 @@ function createMiddlewareContextFromHono(c) {
|
|
|
161
161
|
}
|
|
162
162
|
export {
|
|
163
163
|
CustomServer,
|
|
164
|
-
getLoaderCtx2 as getLoaderCtx
|
|
164
|
+
getLoaderCtx2 as getLoaderCtx,
|
|
165
|
+
getServerMidFromUnstableMid
|
|
165
166
|
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
const faviconPlugin = () => ({
|
|
2
|
+
name: "@modern-js/plugin-favicon",
|
|
3
|
+
setup(api) {
|
|
4
|
+
return {
|
|
5
|
+
prepare() {
|
|
6
|
+
const { middlewares } = api.useAppContext();
|
|
7
|
+
middlewares.push({
|
|
8
|
+
name: "favicon-fallback",
|
|
9
|
+
path: "/favicon.ico",
|
|
10
|
+
handler: async (c, _next) => {
|
|
11
|
+
return c.body(null, 204);
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
export {
|
|
19
|
+
faviconPlugin
|
|
20
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { renderPlugin, getRenderHandler } from "./render";
|
|
2
|
+
import { faviconPlugin } from "./favicon";
|
|
3
|
+
import { processedByPlugin } from "./processedBy";
|
|
4
|
+
import { getLoaderCtx } from "./customServer";
|
|
5
|
+
import { logPlugin } from "./log";
|
|
6
|
+
import { monitorPlugin } from "./monitor";
|
|
7
|
+
export {
|
|
8
|
+
faviconPlugin,
|
|
9
|
+
getLoaderCtx,
|
|
10
|
+
getRenderHandler,
|
|
11
|
+
logPlugin,
|
|
12
|
+
monitorPlugin,
|
|
13
|
+
processedByPlugin,
|
|
14
|
+
renderPlugin
|
|
15
|
+
};
|
|
@@ -40,6 +40,10 @@ function logHandler() {
|
|
|
40
40
|
return async function logger(c, next) {
|
|
41
41
|
const { method } = c.req;
|
|
42
42
|
const logger2 = c.get("logger");
|
|
43
|
+
if (!logger2) {
|
|
44
|
+
await next();
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
43
47
|
const path = getPathname(c.req.raw);
|
|
44
48
|
const logFn = logger2.debug;
|
|
45
49
|
log(logFn, "<--", method, path);
|
|
@@ -48,6 +52,20 @@ function logHandler() {
|
|
|
48
52
|
log(logFn, "-->", method, path, c.res.status, time(start));
|
|
49
53
|
};
|
|
50
54
|
}
|
|
55
|
+
const logPlugin = () => ({
|
|
56
|
+
name: "@modern-js/plugin-log",
|
|
57
|
+
setup(api) {
|
|
58
|
+
return {
|
|
59
|
+
prepare() {
|
|
60
|
+
const { middlewares } = api.useAppContext();
|
|
61
|
+
middlewares.push({
|
|
62
|
+
name: "print_log",
|
|
63
|
+
handler: logHandler()
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
});
|
|
51
69
|
export {
|
|
52
|
-
|
|
70
|
+
logPlugin
|
|
53
71
|
};
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { time } from "@modern-js/runtime-utils/time";
|
|
2
|
+
import { ServerReportTimings } from "../constants";
|
|
3
|
+
const defaultReporter = {
|
|
4
|
+
init() {
|
|
5
|
+
},
|
|
6
|
+
reportError() {
|
|
7
|
+
},
|
|
8
|
+
reportTiming() {
|
|
9
|
+
},
|
|
10
|
+
reportInfo() {
|
|
11
|
+
},
|
|
12
|
+
reportWarn() {
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
function initReporter(entryName) {
|
|
16
|
+
return async (c, next) => {
|
|
17
|
+
const reporter = c.get("reporter");
|
|
18
|
+
if (!reporter) {
|
|
19
|
+
await next();
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
await reporter.init({
|
|
23
|
+
entryName
|
|
24
|
+
});
|
|
25
|
+
const getCost = time();
|
|
26
|
+
await next();
|
|
27
|
+
const cost = getCost();
|
|
28
|
+
reporter.reportTiming(ServerReportTimings.SERVER_HANDLE_REQUEST, cost);
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
const monitorPlugin = (options) => ({
|
|
32
|
+
name: "@modern-js/plugin-monitor",
|
|
33
|
+
setup(api) {
|
|
34
|
+
return {
|
|
35
|
+
prepare() {
|
|
36
|
+
const { middlewares } = api.useAppContext();
|
|
37
|
+
middlewares.push({
|
|
38
|
+
name: "monitor",
|
|
39
|
+
handler: async (c, next) => {
|
|
40
|
+
const logger = c.get("logger");
|
|
41
|
+
if (!logger && options.logger) {
|
|
42
|
+
c.set("logger", options.logger);
|
|
43
|
+
}
|
|
44
|
+
const metrics = c.get("metrics");
|
|
45
|
+
if (!metrics && options.metrics) {
|
|
46
|
+
c.set("metrics", metrics);
|
|
47
|
+
}
|
|
48
|
+
const reporter = c.get("reporter");
|
|
49
|
+
if (!reporter) {
|
|
50
|
+
c.set("reporter", reporter || defaultReporter);
|
|
51
|
+
}
|
|
52
|
+
await next();
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
export {
|
|
60
|
+
initReporter,
|
|
61
|
+
monitorPlugin
|
|
62
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
const processedByPlugin = () => ({
|
|
2
|
+
name: "@modern-js/plugin-processed",
|
|
3
|
+
setup(api) {
|
|
4
|
+
return {
|
|
5
|
+
prepare() {
|
|
6
|
+
const { middlewares } = api.useAppContext();
|
|
7
|
+
middlewares.push({
|
|
8
|
+
name: "processed-by",
|
|
9
|
+
handler: async (c, next) => {
|
|
10
|
+
await next();
|
|
11
|
+
c.header("X-Processed-By", "Modern.js");
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
export {
|
|
19
|
+
processedByPlugin
|
|
20
|
+
};
|