@bleedingdev/modern-js-prod-server 3.9.0-ultramodern.4 → 3.9.0-ultramodern.5
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/apply.js +12 -5
- package/dist/cjs/index.js +4 -25
- package/dist/esm/apply.mjs +13 -6
- package/dist/esm/index.mjs +4 -4
- package/dist/esm-node/apply.mjs +13 -6
- package/dist/esm-node/index.mjs +4 -4
- package/dist/types/index.d.ts +0 -2
- package/package.json +5 -6
package/dist/cjs/apply.js
CHANGED
|
@@ -32,7 +32,6 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
32
32
|
});
|
|
33
33
|
const server_core_namespaceObject = require("@modern-js/server-core");
|
|
34
34
|
const node_namespaceObject = require("@modern-js/server-core/node");
|
|
35
|
-
const server_runtime_extensions_namespaceObject = require("@modern-js/server-runtime-extensions");
|
|
36
35
|
const utils_namespaceObject = require("@modern-js/utils");
|
|
37
36
|
function getLogger(_) {
|
|
38
37
|
if (process.env.DEBUG || 'production' === process.env.NODE_ENV) return (0, utils_namespaceObject.createLogger)({
|
|
@@ -60,12 +59,23 @@ async function applyPlugins(serverBase, options, nodeServer) {
|
|
|
60
59
|
} catch (configError) {
|
|
61
60
|
utils_namespaceObject.logger.error(`Error in serverConfig.onError handler: ${configError}`);
|
|
62
61
|
}
|
|
62
|
+
try {
|
|
63
|
+
const result = await serverBase.hooks.handleError.call({
|
|
64
|
+
error: err,
|
|
65
|
+
context: c
|
|
66
|
+
});
|
|
67
|
+
if (result.response instanceof Response) return result.response;
|
|
68
|
+
} catch (pluginError) {
|
|
69
|
+
utils_namespaceObject.logger.error('Error in server handleError hook', pluginError);
|
|
70
|
+
}
|
|
63
71
|
const bffPrefix = config.bff?.prefix || '/api';
|
|
64
72
|
const bffPrefixList = Array.isArray(bffPrefix) ? bffPrefix : [
|
|
65
73
|
bffPrefix
|
|
66
74
|
];
|
|
67
75
|
const isApiPath = bffPrefixList.some((prefix)=>c.req.path.startsWith(prefix));
|
|
68
|
-
if (isApiPath) return
|
|
76
|
+
if (isApiPath) return c.json({
|
|
77
|
+
message: '[BFF] Internal Server Error'
|
|
78
|
+
}, 500);
|
|
69
79
|
return c.html((0, server_core_namespaceObject.createErrorHtml)(500), 500);
|
|
70
80
|
});
|
|
71
81
|
const loggerOptions = config.server.logger;
|
|
@@ -81,12 +91,9 @@ async function applyPlugins(serverBase, options, nodeServer) {
|
|
|
81
91
|
staticGenerate: options.staticGenerate,
|
|
82
92
|
logger: false === loggerOptions ? false : optLogger || getLogger(loggerOptions)
|
|
83
93
|
}),
|
|
84
|
-
(0, server_runtime_extensions_namespaceObject.injectTelemetryPlugin)(),
|
|
85
94
|
(0, server_core_namespaceObject.injectConfigMiddlewarePlugin)(middlewares, renderMiddlewares),
|
|
86
95
|
...options.plugins || [],
|
|
87
96
|
(0, node_namespaceObject.injectResourcePlugin)(),
|
|
88
|
-
(0, server_runtime_extensions_namespaceObject.injectModuleFederationCssPlugin)(),
|
|
89
|
-
(0, server_runtime_extensions_namespaceObject.injectMfAssetCacheHeadersPlugin)(),
|
|
90
97
|
(0, node_namespaceObject.injectRscManifestPlugin)(enableRsc),
|
|
91
98
|
(0, node_namespaceObject.serverStaticPlugin)(),
|
|
92
99
|
(0, server_core_namespaceObject.faviconPlugin)(),
|
package/dist/cjs/index.js
CHANGED
|
@@ -28,24 +28,15 @@ var __webpack_require__ = {};
|
|
|
28
28
|
var __webpack_exports__ = {};
|
|
29
29
|
__webpack_require__.r(__webpack_exports__);
|
|
30
30
|
__webpack_require__.d(__webpack_exports__, {
|
|
31
|
-
TelemetryHealthMonitor: ()=>server_runtime_extensions_namespaceObject.TelemetryHealthMonitor,
|
|
32
|
-
TelemetryRegistry: ()=>server_runtime_extensions_namespaceObject.TelemetryRegistry,
|
|
33
|
-
TelemetryStartupHealthError: ()=>server_runtime_extensions_namespaceObject.TelemetryStartupHealthError,
|
|
34
31
|
applyPlugins: ()=>external_apply_js_namespaceObject.applyPlugins,
|
|
35
|
-
createOtlpTelemetryExporter: ()=>server_runtime_extensions_namespaceObject.createOtlpTelemetryExporter,
|
|
36
32
|
createProdServer: ()=>createProdServer,
|
|
37
|
-
createTelemetryAwareMetrics: ()=>server_runtime_extensions_namespaceObject.createTelemetryAwareMetrics,
|
|
38
|
-
createVictoriaMetricsTelemetryExporter: ()=>server_runtime_extensions_namespaceObject.createVictoriaMetricsTelemetryExporter,
|
|
39
33
|
default: ()=>src,
|
|
40
|
-
hasEnabledTelemetryExporters: ()=>server_runtime_extensions_namespaceObject.hasEnabledTelemetryExporters,
|
|
41
34
|
loadServerPlugins: ()=>node_namespaceObject.loadServerPlugins
|
|
42
35
|
});
|
|
43
36
|
const server_core_namespaceObject = require("@modern-js/server-core");
|
|
44
37
|
const node_namespaceObject = require("@modern-js/server-core/node");
|
|
45
|
-
const runtime_lifecycle_namespaceObject = require("@modern-js/server-runtime-extensions/runtime-lifecycle");
|
|
46
38
|
const utils_namespaceObject = require("@modern-js/utils");
|
|
47
39
|
const external_apply_js_namespaceObject = require("./apply.js");
|
|
48
|
-
const server_runtime_extensions_namespaceObject = require("@modern-js/server-runtime-extensions");
|
|
49
40
|
const createProdServer = async (options)=>{
|
|
50
41
|
await (0, node_namespaceObject.loadServerEnv)(options);
|
|
51
42
|
const serverBaseOptions = options;
|
|
@@ -61,41 +52,29 @@ const createProdServer = async (options)=>{
|
|
|
61
52
|
}
|
|
62
53
|
const server = (0, server_core_namespaceObject.createServerBase)(serverBaseOptions);
|
|
63
54
|
const nodeServer = await (0, node_namespaceObject.createNodeServer)(server.handle.bind(server));
|
|
55
|
+
let disposePromise;
|
|
56
|
+
const dispose = ()=>disposePromise ??= server.dispose();
|
|
64
57
|
nodeServer.once('close', ()=>{
|
|
65
|
-
(
|
|
58
|
+
dispose().catch((error)=>utils_namespaceObject.logger.error(error));
|
|
66
59
|
});
|
|
67
60
|
try {
|
|
68
61
|
await (0, external_apply_js_namespaceObject.applyPlugins)(server, options, nodeServer);
|
|
69
62
|
await server.init();
|
|
70
63
|
} catch (error) {
|
|
71
|
-
await (
|
|
64
|
+
await dispose().catch((disposeError)=>utils_namespaceObject.logger.error(disposeError));
|
|
72
65
|
throw error;
|
|
73
66
|
}
|
|
74
67
|
return nodeServer;
|
|
75
68
|
};
|
|
76
69
|
const src = createProdServer;
|
|
77
|
-
exports.TelemetryHealthMonitor = __webpack_exports__.TelemetryHealthMonitor;
|
|
78
|
-
exports.TelemetryRegistry = __webpack_exports__.TelemetryRegistry;
|
|
79
|
-
exports.TelemetryStartupHealthError = __webpack_exports__.TelemetryStartupHealthError;
|
|
80
70
|
exports.applyPlugins = __webpack_exports__.applyPlugins;
|
|
81
|
-
exports.createOtlpTelemetryExporter = __webpack_exports__.createOtlpTelemetryExporter;
|
|
82
71
|
exports.createProdServer = __webpack_exports__.createProdServer;
|
|
83
|
-
exports.createTelemetryAwareMetrics = __webpack_exports__.createTelemetryAwareMetrics;
|
|
84
|
-
exports.createVictoriaMetricsTelemetryExporter = __webpack_exports__.createVictoriaMetricsTelemetryExporter;
|
|
85
72
|
exports["default"] = __webpack_exports__["default"];
|
|
86
|
-
exports.hasEnabledTelemetryExporters = __webpack_exports__.hasEnabledTelemetryExporters;
|
|
87
73
|
exports.loadServerPlugins = __webpack_exports__.loadServerPlugins;
|
|
88
74
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
89
|
-
"TelemetryHealthMonitor",
|
|
90
|
-
"TelemetryRegistry",
|
|
91
|
-
"TelemetryStartupHealthError",
|
|
92
75
|
"applyPlugins",
|
|
93
|
-
"createOtlpTelemetryExporter",
|
|
94
76
|
"createProdServer",
|
|
95
|
-
"createTelemetryAwareMetrics",
|
|
96
|
-
"createVictoriaMetricsTelemetryExporter",
|
|
97
77
|
"default",
|
|
98
|
-
"hasEnabledTelemetryExporters",
|
|
99
78
|
"loadServerPlugins"
|
|
100
79
|
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
101
80
|
Object.defineProperty(exports, '__esModule', {
|
package/dist/esm/apply.mjs
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { ErrorDigest, createDefaultPlugins, createErrorHtml,
|
|
1
|
+
import { ErrorDigest, createDefaultPlugins, createErrorHtml, faviconPlugin, injectConfigMiddlewarePlugin, onError, renderPlugin } from "@modern-js/server-core";
|
|
2
2
|
import { injectNodeSeverPlugin, injectResourcePlugin, injectRscManifestPlugin, loadCacheConfig, serverStaticPlugin } from "@modern-js/server-core/node";
|
|
3
|
-
import { injectMfAssetCacheHeadersPlugin, injectModuleFederationCssPlugin, injectTelemetryPlugin } from "@modern-js/server-runtime-extensions";
|
|
4
3
|
import { createLogger, isProd, logger } from "@modern-js/utils";
|
|
5
4
|
function getLogger(_) {
|
|
6
5
|
if (process.env.DEBUG || 'production' === process.env.NODE_ENV) return createLogger({
|
|
@@ -28,12 +27,23 @@ async function applyPlugins(serverBase, options, nodeServer) {
|
|
|
28
27
|
} catch (configError) {
|
|
29
28
|
logger.error(`Error in serverConfig.onError handler: ${configError}`);
|
|
30
29
|
}
|
|
30
|
+
try {
|
|
31
|
+
const result = await serverBase.hooks.handleError.call({
|
|
32
|
+
error: err,
|
|
33
|
+
context: c
|
|
34
|
+
});
|
|
35
|
+
if (result.response instanceof Response) return result.response;
|
|
36
|
+
} catch (pluginError) {
|
|
37
|
+
logger.error('Error in server handleError hook', pluginError);
|
|
38
|
+
}
|
|
31
39
|
const bffPrefix = config.bff?.prefix || '/api';
|
|
32
40
|
const bffPrefixList = Array.isArray(bffPrefix) ? bffPrefix : [
|
|
33
41
|
bffPrefix
|
|
34
42
|
];
|
|
35
43
|
const isApiPath = bffPrefixList.some((prefix)=>c.req.path.startsWith(prefix));
|
|
36
|
-
if (isApiPath) return
|
|
44
|
+
if (isApiPath) return c.json({
|
|
45
|
+
message: '[BFF] Internal Server Error'
|
|
46
|
+
}, 500);
|
|
37
47
|
return c.html(createErrorHtml(500), 500);
|
|
38
48
|
});
|
|
39
49
|
const loggerOptions = config.server.logger;
|
|
@@ -49,12 +59,9 @@ async function applyPlugins(serverBase, options, nodeServer) {
|
|
|
49
59
|
staticGenerate: options.staticGenerate,
|
|
50
60
|
logger: false === loggerOptions ? false : optLogger || getLogger(loggerOptions)
|
|
51
61
|
}),
|
|
52
|
-
injectTelemetryPlugin(),
|
|
53
62
|
injectConfigMiddlewarePlugin(middlewares, renderMiddlewares),
|
|
54
63
|
...options.plugins || [],
|
|
55
64
|
injectResourcePlugin(),
|
|
56
|
-
injectModuleFederationCssPlugin(),
|
|
57
|
-
injectMfAssetCacheHeadersPlugin(),
|
|
58
65
|
injectRscManifestPlugin(enableRsc),
|
|
59
66
|
serverStaticPlugin(),
|
|
60
67
|
faviconPlugin(),
|
package/dist/esm/index.mjs
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { createServerBase } from "@modern-js/server-core";
|
|
2
2
|
import { createNodeServer, loadServerCliConfig, loadServerEnv, loadServerPlugins, loadServerRuntimeConfig } from "@modern-js/server-core/node";
|
|
3
|
-
import { disposeServerRuntime } from "@modern-js/server-runtime-extensions/runtime-lifecycle";
|
|
4
3
|
import { logger } from "@modern-js/utils";
|
|
5
4
|
import { applyPlugins } from "./apply.mjs";
|
|
6
5
|
const createProdServer = async (options)=>{
|
|
@@ -18,19 +17,20 @@ const createProdServer = async (options)=>{
|
|
|
18
17
|
}
|
|
19
18
|
const server = createServerBase(serverBaseOptions);
|
|
20
19
|
const nodeServer = await createNodeServer(server.handle.bind(server));
|
|
20
|
+
let disposePromise;
|
|
21
|
+
const dispose = ()=>disposePromise ??= server.dispose();
|
|
21
22
|
nodeServer.once('close', ()=>{
|
|
22
|
-
|
|
23
|
+
dispose().catch((error)=>logger.error(error));
|
|
23
24
|
});
|
|
24
25
|
try {
|
|
25
26
|
await applyPlugins(server, options, nodeServer);
|
|
26
27
|
await server.init();
|
|
27
28
|
} catch (error) {
|
|
28
|
-
await
|
|
29
|
+
await dispose().catch((disposeError)=>logger.error(disposeError));
|
|
29
30
|
throw error;
|
|
30
31
|
}
|
|
31
32
|
return nodeServer;
|
|
32
33
|
};
|
|
33
34
|
const src = createProdServer;
|
|
34
|
-
export { TelemetryHealthMonitor, TelemetryRegistry, TelemetryStartupHealthError, createOtlpTelemetryExporter, createTelemetryAwareMetrics, createVictoriaMetricsTelemetryExporter, hasEnabledTelemetryExporters } from "@modern-js/server-runtime-extensions";
|
|
35
35
|
export default src;
|
|
36
36
|
export { applyPlugins, createProdServer, loadServerPlugins };
|
package/dist/esm-node/apply.mjs
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import "node:module";
|
|
2
|
-
import { ErrorDigest, createDefaultPlugins, createErrorHtml,
|
|
2
|
+
import { ErrorDigest, createDefaultPlugins, createErrorHtml, faviconPlugin, injectConfigMiddlewarePlugin, onError, renderPlugin } from "@modern-js/server-core";
|
|
3
3
|
import { injectNodeSeverPlugin, injectResourcePlugin, injectRscManifestPlugin, loadCacheConfig, serverStaticPlugin } from "@modern-js/server-core/node";
|
|
4
|
-
import { injectMfAssetCacheHeadersPlugin, injectModuleFederationCssPlugin, injectTelemetryPlugin } from "@modern-js/server-runtime-extensions";
|
|
5
4
|
import { createLogger, isProd, logger } from "@modern-js/utils";
|
|
6
5
|
function getLogger(_) {
|
|
7
6
|
if (process.env.DEBUG || 'production' === process.env.NODE_ENV) return createLogger({
|
|
@@ -29,12 +28,23 @@ async function applyPlugins(serverBase, options, nodeServer) {
|
|
|
29
28
|
} catch (configError) {
|
|
30
29
|
logger.error(`Error in serverConfig.onError handler: ${configError}`);
|
|
31
30
|
}
|
|
31
|
+
try {
|
|
32
|
+
const result = await serverBase.hooks.handleError.call({
|
|
33
|
+
error: err,
|
|
34
|
+
context: c
|
|
35
|
+
});
|
|
36
|
+
if (result.response instanceof Response) return result.response;
|
|
37
|
+
} catch (pluginError) {
|
|
38
|
+
logger.error('Error in server handleError hook', pluginError);
|
|
39
|
+
}
|
|
32
40
|
const bffPrefix = config.bff?.prefix || '/api';
|
|
33
41
|
const bffPrefixList = Array.isArray(bffPrefix) ? bffPrefix : [
|
|
34
42
|
bffPrefix
|
|
35
43
|
];
|
|
36
44
|
const isApiPath = bffPrefixList.some((prefix)=>c.req.path.startsWith(prefix));
|
|
37
|
-
if (isApiPath) return
|
|
45
|
+
if (isApiPath) return c.json({
|
|
46
|
+
message: '[BFF] Internal Server Error'
|
|
47
|
+
}, 500);
|
|
38
48
|
return c.html(createErrorHtml(500), 500);
|
|
39
49
|
});
|
|
40
50
|
const loggerOptions = config.server.logger;
|
|
@@ -50,12 +60,9 @@ async function applyPlugins(serverBase, options, nodeServer) {
|
|
|
50
60
|
staticGenerate: options.staticGenerate,
|
|
51
61
|
logger: false === loggerOptions ? false : optLogger || getLogger(loggerOptions)
|
|
52
62
|
}),
|
|
53
|
-
injectTelemetryPlugin(),
|
|
54
63
|
injectConfigMiddlewarePlugin(middlewares, renderMiddlewares),
|
|
55
64
|
...options.plugins || [],
|
|
56
65
|
injectResourcePlugin(),
|
|
57
|
-
injectModuleFederationCssPlugin(),
|
|
58
|
-
injectMfAssetCacheHeadersPlugin(),
|
|
59
66
|
injectRscManifestPlugin(enableRsc),
|
|
60
67
|
serverStaticPlugin(),
|
|
61
68
|
faviconPlugin(),
|
package/dist/esm-node/index.mjs
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import "node:module";
|
|
2
2
|
import { createServerBase } from "@modern-js/server-core";
|
|
3
3
|
import { createNodeServer, loadServerCliConfig, loadServerEnv, loadServerPlugins, loadServerRuntimeConfig } from "@modern-js/server-core/node";
|
|
4
|
-
import { disposeServerRuntime } from "@modern-js/server-runtime-extensions/runtime-lifecycle";
|
|
5
4
|
import { logger } from "@modern-js/utils";
|
|
6
5
|
import { applyPlugins } from "./apply.mjs";
|
|
7
6
|
const createProdServer = async (options)=>{
|
|
@@ -19,19 +18,20 @@ const createProdServer = async (options)=>{
|
|
|
19
18
|
}
|
|
20
19
|
const server = createServerBase(serverBaseOptions);
|
|
21
20
|
const nodeServer = await createNodeServer(server.handle.bind(server));
|
|
21
|
+
let disposePromise;
|
|
22
|
+
const dispose = ()=>disposePromise ??= server.dispose();
|
|
22
23
|
nodeServer.once('close', ()=>{
|
|
23
|
-
|
|
24
|
+
dispose().catch((error)=>logger.error(error));
|
|
24
25
|
});
|
|
25
26
|
try {
|
|
26
27
|
await applyPlugins(server, options, nodeServer);
|
|
27
28
|
await server.init();
|
|
28
29
|
} catch (error) {
|
|
29
|
-
await
|
|
30
|
+
await dispose().catch((disposeError)=>logger.error(disposeError));
|
|
30
31
|
throw error;
|
|
31
32
|
}
|
|
32
33
|
return nodeServer;
|
|
33
34
|
};
|
|
34
35
|
const src = createProdServer;
|
|
35
|
-
export { TelemetryHealthMonitor, TelemetryRegistry, TelemetryStartupHealthError, createOtlpTelemetryExporter, createTelemetryAwareMetrics, createVictoriaMetricsTelemetryExporter, hasEnabledTelemetryExporters } from "@modern-js/server-runtime-extensions";
|
|
36
36
|
export default src;
|
|
37
37
|
export { applyPlugins, createProdServer, loadServerPlugins };
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { createNodeServer, loadServerPlugins } from '@modern-js/server-core/node';
|
|
2
2
|
import type { ProdServerOptions } from './types.js';
|
|
3
3
|
export type { ServerPlugin } from '@modern-js/server-core';
|
|
4
|
-
export type { TelemetryHealthEvaluation, TelemetryQueueStats, TelemetrySloAlert, } from '@modern-js/server-runtime-extensions';
|
|
5
|
-
export { createOtlpTelemetryExporter, createTelemetryAwareMetrics, createVictoriaMetricsTelemetryExporter, hasEnabledTelemetryExporters, TelemetryHealthMonitor, TelemetryRegistry, TelemetryStartupHealthError, } from '@modern-js/server-runtime-extensions';
|
|
6
4
|
export { type ApplyPlugins, applyPlugins } from './apply.js';
|
|
7
5
|
export type { BaseEnv, ProdServerOptions } from './types.js';
|
|
8
6
|
export { loadServerPlugins };
|
package/package.json
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"modern",
|
|
18
18
|
"modern.js"
|
|
19
19
|
],
|
|
20
|
-
"version": "3.9.0-ultramodern.
|
|
20
|
+
"version": "3.9.0-ultramodern.5",
|
|
21
21
|
"types": "./dist/types/index.d.ts",
|
|
22
22
|
"main": "./dist/cjs/index.js",
|
|
23
23
|
"exports": {
|
|
@@ -49,14 +49,13 @@
|
|
|
49
49
|
}
|
|
50
50
|
},
|
|
51
51
|
"dependencies": {
|
|
52
|
-
"@modern-js/runtime-utils": "npm:@bleedingdev/modern-js-runtime-utils@3.9.0-ultramodern.
|
|
53
|
-
"@modern-js/server-core": "npm:@bleedingdev/modern-js-server-core@3.9.0-ultramodern.
|
|
54
|
-
"@modern-js/
|
|
55
|
-
"@modern-js/utils": "npm:@bleedingdev/modern-js-utils@3.9.0-ultramodern.4",
|
|
52
|
+
"@modern-js/runtime-utils": "npm:@bleedingdev/modern-js-runtime-utils@3.9.0-ultramodern.5",
|
|
53
|
+
"@modern-js/server-core": "npm:@bleedingdev/modern-js-server-core@3.9.0-ultramodern.5",
|
|
54
|
+
"@modern-js/utils": "npm:@bleedingdev/modern-js-utils@3.9.0-ultramodern.5",
|
|
56
55
|
"@swc/helpers": "^0.5.23"
|
|
57
56
|
},
|
|
58
57
|
"devDependencies": {
|
|
59
|
-
"@modern-js/types": "npm:@bleedingdev/modern-js-types@3.9.0-ultramodern.
|
|
58
|
+
"@modern-js/types": "npm:@bleedingdev/modern-js-types@3.9.0-ultramodern.5",
|
|
60
59
|
"@rslib/core": "1.0.0",
|
|
61
60
|
"@scripts/rstest-config": "2.66.0",
|
|
62
61
|
"@types/merge-deep": "^3.0.3",
|