@modern-js/prod-server 1.22.1 → 2.0.0-alpha.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/CHANGELOG.md +271 -17
- package/dist/js/modern/constants.js +32 -27
- package/dist/js/modern/index.js +11 -7
- package/dist/js/modern/libs/context/context.js +54 -132
- package/dist/js/modern/libs/context/index.js +5 -2
- package/dist/js/modern/libs/hook-api/index.js +134 -0
- package/dist/js/modern/libs/hook-api/route.js +13 -37
- package/dist/js/modern/libs/hook-api/template.js +41 -32
- package/dist/js/modern/libs/loadConfig.js +46 -32
- package/dist/js/modern/libs/metrics.js +6 -7
- package/dist/js/modern/libs/proxy.js +70 -44
- package/dist/js/modern/libs/render/cache/__tests__/cache.fun.test.js +112 -68
- package/dist/js/modern/libs/render/cache/__tests__/cache.test.js +246 -225
- package/dist/js/modern/libs/render/cache/__tests__/cacheable.js +43 -49
- package/dist/js/modern/libs/render/cache/__tests__/error-configuration.js +36 -34
- package/dist/js/modern/libs/render/cache/__tests__/matched-cache.js +83 -113
- package/dist/js/modern/libs/render/cache/index.js +93 -50
- package/dist/js/modern/libs/render/cache/page-caches/index.js +31 -8
- package/dist/js/modern/libs/render/cache/page-caches/lru.js +6 -16
- package/dist/js/modern/libs/render/cache/spr.js +133 -167
- package/dist/js/modern/libs/render/cache/type.js +0 -1
- package/dist/js/modern/libs/render/cache/util.js +71 -45
- package/dist/js/modern/libs/render/index.js +76 -61
- package/dist/js/modern/libs/render/measure.js +42 -34
- package/dist/js/modern/libs/render/reader.js +68 -76
- package/dist/js/modern/libs/render/ssr.js +63 -33
- package/dist/js/modern/libs/render/static.js +51 -37
- package/dist/js/modern/libs/render/type.js +9 -7
- package/dist/js/modern/libs/route/index.js +12 -30
- package/dist/js/modern/libs/route/matcher.js +28 -50
- package/dist/js/modern/libs/route/route.js +9 -31
- package/dist/js/modern/libs/serve-file.js +40 -20
- package/dist/js/modern/server/index.js +152 -168
- package/dist/js/modern/server/modern-server-split.js +44 -60
- package/dist/js/modern/server/modern-server.js +416 -526
- package/dist/js/modern/type.js +0 -1
- package/dist/js/modern/utils.js +62 -58
- package/dist/js/modern/worker-server.js +54 -0
- package/dist/js/node/constants.js +53 -32
- package/dist/js/node/index.js +37 -67
- package/dist/js/node/libs/context/context.js +84 -150
- package/dist/js/node/libs/context/index.js +28 -16
- package/dist/js/node/libs/hook-api/index.js +164 -0
- package/dist/js/node/libs/hook-api/route.js +35 -45
- package/dist/js/node/libs/hook-api/template.js +64 -40
- package/dist/js/node/libs/loadConfig.js +74 -55
- package/dist/js/node/libs/metrics.js +28 -12
- package/dist/js/node/libs/proxy.js +90 -55
- package/dist/js/node/libs/render/cache/__tests__/cache.fun.test.js +99 -61
- package/dist/js/node/libs/render/cache/__tests__/cache.test.js +147 -140
- package/dist/js/node/libs/render/cache/__tests__/cacheable.js +65 -55
- package/dist/js/node/libs/render/cache/__tests__/error-configuration.js +58 -40
- package/dist/js/node/libs/render/cache/__tests__/matched-cache.js +105 -119
- package/dist/js/node/libs/render/cache/index.js +115 -65
- package/dist/js/node/libs/render/cache/page-caches/index.js +54 -16
- package/dist/js/node/libs/render/cache/page-caches/lru.js +33 -26
- package/dist/js/node/libs/render/cache/spr.js +161 -188
- package/dist/js/node/libs/render/cache/type.js +15 -5
- package/dist/js/node/libs/render/cache/util.js +99 -63
- package/dist/js/node/libs/render/index.js +106 -87
- package/dist/js/node/libs/render/measure.js +61 -44
- package/dist/js/node/libs/render/reader.js +98 -100
- package/dist/js/node/libs/render/ssr.js +92 -58
- package/dist/js/node/libs/render/static.js +80 -53
- package/dist/js/node/libs/render/type.js +31 -13
- package/dist/js/node/libs/route/index.js +35 -44
- package/dist/js/node/libs/route/matcher.js +48 -65
- package/dist/js/node/libs/route/route.js +29 -37
- package/dist/js/node/libs/serve-file.js +74 -37
- package/dist/js/node/server/index.js +170 -203
- package/dist/js/node/server/modern-server-split.js +70 -73
- package/dist/js/node/server/modern-server.js +432 -577
- package/dist/js/node/type.js +15 -3
- package/dist/js/node/utils.js +87 -93
- package/dist/js/node/worker-server.js +77 -0
- package/dist/js/treeshaking/constants.js +29 -0
- package/dist/js/treeshaking/index.js +13 -0
- package/dist/js/treeshaking/libs/context/context.js +274 -0
- package/dist/js/treeshaking/libs/context/index.js +5 -0
- package/dist/js/treeshaking/libs/hook-api/index.js +281 -0
- package/dist/js/treeshaking/libs/hook-api/route.js +68 -0
- package/dist/js/treeshaking/libs/hook-api/template.js +127 -0
- package/dist/js/treeshaking/libs/loadConfig.js +82 -0
- package/dist/js/treeshaking/libs/metrics.js +6 -0
- package/dist/js/treeshaking/libs/proxy.js +244 -0
- package/dist/js/treeshaking/libs/render/cache/__tests__/cache.fun.test.js +291 -0
- package/dist/js/treeshaking/libs/render/cache/__tests__/cache.test.js +781 -0
- package/dist/js/treeshaking/libs/render/cache/__tests__/cacheable.js +67 -0
- package/dist/js/treeshaking/libs/render/cache/__tests__/error-configuration.js +45 -0
- package/dist/js/treeshaking/libs/render/cache/__tests__/matched-cache.js +147 -0
- package/dist/js/treeshaking/libs/render/cache/index.js +346 -0
- package/dist/js/treeshaking/libs/render/cache/page-caches/index.js +154 -0
- package/dist/js/treeshaking/libs/render/cache/page-caches/lru.js +84 -0
- package/dist/js/treeshaking/libs/render/cache/spr.js +492 -0
- package/dist/js/treeshaking/libs/render/cache/type.js +1 -0
- package/dist/js/treeshaking/libs/render/cache/util.js +280 -0
- package/dist/js/treeshaking/libs/render/index.js +233 -0
- package/dist/js/treeshaking/libs/render/measure.js +146 -0
- package/dist/js/treeshaking/libs/render/reader.js +339 -0
- package/dist/js/treeshaking/libs/render/ssr.js +223 -0
- package/dist/js/treeshaking/libs/render/static.js +216 -0
- package/dist/js/treeshaking/libs/render/type.js +7 -0
- package/dist/js/treeshaking/libs/route/index.js +130 -0
- package/dist/js/treeshaking/libs/route/matcher.js +138 -0
- package/dist/js/treeshaking/libs/route/route.js +40 -0
- package/dist/js/treeshaking/libs/serve-file.js +184 -0
- package/dist/js/treeshaking/server/index.js +505 -0
- package/dist/js/treeshaking/server/modern-server-split.js +360 -0
- package/dist/js/treeshaking/server/modern-server.js +1083 -0
- package/dist/js/treeshaking/type.js +1 -0
- package/dist/js/treeshaking/utils.js +147 -0
- package/dist/js/treeshaking/worker-server.js +177 -0
- package/dist/types/libs/context/context.d.ts +1 -1
- package/dist/types/libs/hook-api/index.d.ts +5 -0
- package/dist/types/libs/hook-api/route.d.ts +9 -14
- package/dist/types/libs/hook-api/template.d.ts +19 -9
- package/dist/types/libs/render/cache/index.d.ts +4 -2
- package/dist/types/libs/render/type.d.ts +3 -1
- package/dist/types/libs/route/route.d.ts +0 -1
- package/dist/types/libs/serve-file.d.ts +2 -1
- package/dist/types/server/index.d.ts +2 -0
- package/dist/types/server/modern-server.d.ts +11 -11
- package/dist/types/type.d.ts +8 -10
- package/dist/types/utils.d.ts +3 -4
- package/dist/types/worker-server.d.ts +15 -0
- package/package.json +31 -45
- package/dist/js/modern/libs/render/modern/browser-list.js +0 -7
- package/dist/js/modern/libs/render/modern/index.js +0 -48
- package/dist/js/node/libs/render/modern/browser-list.js +0 -14
- package/dist/js/node/libs/render/modern/index.js +0 -64
- package/dist/types/libs/render/modern/browser-list.d.ts +0 -1
- package/dist/types/libs/render/modern/index.d.ts +0 -3
|
@@ -1,252 +1,219 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.
|
|
4
|
-
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __defProps = Object.defineProperties;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
8
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
9
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
11
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
12
|
+
var __spreadValues = (a, b) => {
|
|
13
|
+
for (var prop in b || (b = {}))
|
|
14
|
+
if (__hasOwnProp.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
if (__getOwnPropSymbols)
|
|
17
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
18
|
+
if (__propIsEnum.call(b, prop))
|
|
19
|
+
__defNormalProp(a, prop, b[prop]);
|
|
20
|
+
}
|
|
21
|
+
return a;
|
|
22
|
+
};
|
|
23
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
24
|
+
var __export = (target, all) => {
|
|
25
|
+
for (var name in all)
|
|
26
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
27
|
+
};
|
|
28
|
+
var __copyProps = (to, from, except, desc) => {
|
|
29
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
30
|
+
for (let key of __getOwnPropNames(from))
|
|
31
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
32
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
33
|
+
}
|
|
34
|
+
return to;
|
|
35
|
+
};
|
|
36
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
37
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
38
|
+
mod
|
|
39
|
+
));
|
|
40
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
41
|
+
var __async = (__this, __arguments, generator) => {
|
|
42
|
+
return new Promise((resolve, reject) => {
|
|
43
|
+
var fulfilled = (value) => {
|
|
44
|
+
try {
|
|
45
|
+
step(generator.next(value));
|
|
46
|
+
} catch (e) {
|
|
47
|
+
reject(e);
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
var rejected = (value) => {
|
|
51
|
+
try {
|
|
52
|
+
step(generator.throw(value));
|
|
53
|
+
} catch (e) {
|
|
54
|
+
reject(e);
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
58
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
59
|
+
});
|
|
60
|
+
};
|
|
61
|
+
var server_exports = {};
|
|
62
|
+
__export(server_exports, {
|
|
63
|
+
Server: () => Server
|
|
5
64
|
});
|
|
6
|
-
exports
|
|
7
|
-
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
var
|
|
11
|
-
|
|
12
|
-
var
|
|
13
|
-
|
|
14
|
-
var
|
|
15
|
-
|
|
16
|
-
var _metrics = require("../libs/metrics");
|
|
17
|
-
|
|
18
|
-
var _loadConfig = require("../libs/loadConfig");
|
|
19
|
-
|
|
20
|
-
var _utils2 = require("../utils");
|
|
21
|
-
|
|
22
|
-
var _modernServerSplit = require("./modern-server-split");
|
|
23
|
-
|
|
24
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
25
|
-
|
|
26
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
27
|
-
|
|
28
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
29
|
-
|
|
30
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
31
|
-
|
|
65
|
+
module.exports = __toCommonJS(server_exports);
|
|
66
|
+
var import_path = __toESM(require("path"));
|
|
67
|
+
var import_fs = __toESM(require("fs"));
|
|
68
|
+
var import_utils = require("@modern-js/utils");
|
|
69
|
+
var import_server_core = require("@modern-js/server-core");
|
|
70
|
+
var import_metrics = require("../libs/metrics");
|
|
71
|
+
var import_loadConfig = require("../libs/loadConfig");
|
|
72
|
+
var import_utils2 = require("../utils");
|
|
73
|
+
var import_modern_server_split = require("./modern-server-split");
|
|
32
74
|
class Server {
|
|
33
75
|
constructor(options) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
_defineProperty(this, "server", void 0);
|
|
39
|
-
|
|
40
|
-
_defineProperty(this, "app", void 0);
|
|
41
|
-
|
|
42
|
-
_defineProperty(this, "runner", void 0);
|
|
43
|
-
|
|
44
|
-
_defineProperty(this, "serverConfig", void 0);
|
|
45
|
-
|
|
46
|
-
options.logger = options.logger || new _utils.Logger({
|
|
47
|
-
level: 'warn'
|
|
76
|
+
this.serverImpl = import_modern_server_split.createProdServer;
|
|
77
|
+
options.logger = options.logger || new import_utils.Logger({
|
|
78
|
+
level: "warn"
|
|
48
79
|
});
|
|
49
|
-
options.metrics = options.metrics ||
|
|
80
|
+
options.metrics = options.metrics || import_metrics.metrics;
|
|
50
81
|
this.options = options;
|
|
51
82
|
this.serverConfig = {};
|
|
52
83
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
async init() {
|
|
70
|
-
const {
|
|
71
|
-
options
|
|
72
|
-
} = this;
|
|
73
|
-
this.loadServerEnv(options);
|
|
74
|
-
this.initServerConfig(options);
|
|
75
|
-
await this.injectContext(this.runner, options); // initialize server runner
|
|
76
|
-
|
|
77
|
-
this.runner = await this.createHookRunner(); // init config and execute config hook
|
|
78
|
-
|
|
79
|
-
await this.initConfig(this.runner, options);
|
|
80
|
-
await this.injectContext(this.runner, options); // initialize server
|
|
81
|
-
|
|
82
|
-
this.server = this.serverImpl(options);
|
|
83
|
-
await this.runPrepareHook(this.runner); // create http-server
|
|
84
|
-
|
|
85
|
-
this.app = await this.server.createHTTPServer(this.getRequestHandler()); // runner can only be used after server init
|
|
86
|
-
|
|
87
|
-
await this.server.onInit(this.runner, this.app);
|
|
88
|
-
return this;
|
|
84
|
+
init() {
|
|
85
|
+
return __async(this, null, function* () {
|
|
86
|
+
const { options } = this;
|
|
87
|
+
this.loadServerEnv(options);
|
|
88
|
+
this.initServerConfig(options);
|
|
89
|
+
yield this.injectContext(this.runner, options);
|
|
90
|
+
this.runner = yield this.createHookRunner();
|
|
91
|
+
yield this.initConfig(this.runner, options);
|
|
92
|
+
yield this.injectContext(this.runner, options);
|
|
93
|
+
this.server = this.serverImpl(options);
|
|
94
|
+
yield this.runPrepareHook(this.runner);
|
|
95
|
+
this.app = yield this.server.createHTTPServer(this.getRequestHandler());
|
|
96
|
+
yield this.server.onInit(this.runner, this.app);
|
|
97
|
+
return this;
|
|
98
|
+
});
|
|
89
99
|
}
|
|
90
|
-
/**
|
|
91
|
-
* Execute config hooks
|
|
92
|
-
* @param runner
|
|
93
|
-
* @param options
|
|
94
|
-
*/
|
|
95
|
-
|
|
96
|
-
|
|
97
100
|
runConfigHook(runner, serverConfig) {
|
|
98
101
|
const newServerConfig = runner.config(serverConfig || {});
|
|
99
102
|
return newServerConfig;
|
|
100
103
|
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
+
runPrepareHook(runner) {
|
|
105
|
+
return __async(this, null, function* () {
|
|
106
|
+
runner.prepare();
|
|
107
|
+
});
|
|
104
108
|
}
|
|
105
|
-
|
|
106
109
|
initServerConfig(options) {
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
const
|
|
110
|
-
|
|
110
|
+
const { pwd, serverConfigFile } = options;
|
|
111
|
+
const distDirectory = import_path.default.join(pwd, options.config.output.path || "dist");
|
|
112
|
+
const serverConfigPath = (0, import_loadConfig.getServerConfigPath)(
|
|
113
|
+
distDirectory,
|
|
111
114
|
serverConfigFile
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
const distDirectory = _path.default.join(pwd, ((_options$config$outpu = options.config.output) === null || _options$config$outpu === void 0 ? void 0 : _options$config$outpu.path) || 'dist');
|
|
115
|
-
|
|
116
|
-
const serverConfigPath = (0, _loadConfig.getServerConfigPath)(distDirectory, serverConfigFile);
|
|
117
|
-
const serverConfig = (0, _loadConfig.requireConfig)(serverConfigPath);
|
|
115
|
+
);
|
|
116
|
+
const serverConfig = (0, import_loadConfig.requireConfig)(serverConfigPath);
|
|
118
117
|
this.serverConfig = serverConfig;
|
|
119
118
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
} = this;
|
|
136
|
-
const finalServerConfig = this.runConfigHook(runner, serverConfig);
|
|
137
|
-
|
|
138
|
-
const resolvedConfigPath = _path.default.join(pwd, (config === null || config === void 0 ? void 0 : (_config$output = config.output) === null || _config$output === void 0 ? void 0 : _config$output.path) || 'dist', _utils.OUTPUT_CONFIG_FILE);
|
|
139
|
-
|
|
140
|
-
options.config = (0, _loadConfig.loadConfig)({
|
|
141
|
-
cliConfig: config,
|
|
142
|
-
serverConfig: finalServerConfig,
|
|
143
|
-
resolvedConfigPath
|
|
119
|
+
initConfig(runner, options) {
|
|
120
|
+
return __async(this, null, function* () {
|
|
121
|
+
const { pwd, config } = options;
|
|
122
|
+
const { serverConfig } = this;
|
|
123
|
+
const finalServerConfig = this.runConfigHook(runner, serverConfig);
|
|
124
|
+
const resolvedConfigPath = import_path.default.join(
|
|
125
|
+
pwd,
|
|
126
|
+
config.output.path || "dist",
|
|
127
|
+
import_utils.OUTPUT_CONFIG_FILE
|
|
128
|
+
);
|
|
129
|
+
options.config = (0, import_loadConfig.loadConfig)({
|
|
130
|
+
cliConfig: config,
|
|
131
|
+
serverConfig: finalServerConfig,
|
|
132
|
+
resolvedConfigPath
|
|
133
|
+
});
|
|
144
134
|
});
|
|
145
135
|
}
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
136
|
+
close() {
|
|
137
|
+
return __async(this, null, function* () {
|
|
138
|
+
this.app.close();
|
|
139
|
+
});
|
|
149
140
|
}
|
|
150
|
-
|
|
151
141
|
listen(options, listener) {
|
|
152
142
|
const callback = () => {
|
|
153
|
-
listener
|
|
143
|
+
listener == null ? void 0 : listener();
|
|
154
144
|
};
|
|
155
|
-
|
|
156
|
-
if (typeof options === 'object') {
|
|
145
|
+
if (typeof options === "object") {
|
|
157
146
|
this.app.listen(options, callback);
|
|
158
147
|
} else {
|
|
159
148
|
this.app.listen(process.env.PORT || options || 8080, callback);
|
|
160
149
|
}
|
|
161
150
|
}
|
|
162
|
-
|
|
163
151
|
getRequestHandler() {
|
|
164
152
|
return (req, res, next) => {
|
|
165
153
|
const requestHandler = this.server.getRequestHandler();
|
|
166
154
|
return requestHandler(req, res, next);
|
|
167
155
|
};
|
|
168
156
|
}
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
const {
|
|
175
|
-
options
|
|
176
|
-
} = this; // TODO: 确认下这里是不是可以不从 options 中取插件,而是从 config 中取和过滤
|
|
177
|
-
|
|
178
|
-
const {
|
|
179
|
-
plugins = [],
|
|
180
|
-
pwd,
|
|
181
|
-
config
|
|
182
|
-
} = options;
|
|
183
|
-
const serverPlugins = this.serverConfig.plugins || []; // server app context for serve plugin
|
|
184
|
-
|
|
185
|
-
const loadedPlugins = (0, _serverCore.loadPlugins)(plugins.concat(serverPlugins), pwd);
|
|
186
|
-
(0, _utils2.debug)('plugins', config.plugins, loadedPlugins);
|
|
187
|
-
loadedPlugins.forEach(p => {
|
|
188
|
-
_serverCore.serverManager.usePlugin(p);
|
|
189
|
-
}); // create runner
|
|
190
|
-
|
|
191
|
-
const hooksRunner = await _serverCore.serverManager.init();
|
|
192
|
-
return hooksRunner;
|
|
157
|
+
render(req, res, url) {
|
|
158
|
+
return __async(this, null, function* () {
|
|
159
|
+
return this.server.render(req, res, url);
|
|
160
|
+
});
|
|
193
161
|
}
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
162
|
+
createHookRunner() {
|
|
163
|
+
return __async(this, null, function* () {
|
|
164
|
+
import_server_core.serverManager.clear();
|
|
165
|
+
const { options } = this;
|
|
166
|
+
const {
|
|
167
|
+
internalPlugins = import_utils.INTERNAL_SERVER_PLUGINS,
|
|
168
|
+
pwd,
|
|
169
|
+
plugins = []
|
|
170
|
+
} = options;
|
|
171
|
+
const serverPlugins = this.serverConfig.plugins || [];
|
|
172
|
+
const loadedPlugins = (0, import_server_core.loadPlugins)(pwd, [...serverPlugins, ...plugins], {
|
|
173
|
+
internalPlugins
|
|
174
|
+
});
|
|
175
|
+
(0, import_utils2.debug)("plugins", loadedPlugins);
|
|
176
|
+
loadedPlugins.forEach((p) => {
|
|
177
|
+
import_server_core.serverManager.usePlugin(p);
|
|
178
|
+
});
|
|
179
|
+
const hooksRunner = yield import_server_core.serverManager.init();
|
|
180
|
+
return hooksRunner;
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
injectContext(runner, options) {
|
|
184
|
+
return __async(this, null, function* () {
|
|
185
|
+
const appContext = this.initAppContext();
|
|
186
|
+
const { config, pwd } = options;
|
|
187
|
+
import_server_core.ConfigContext.set(config);
|
|
188
|
+
import_server_core.AppContext.set(__spreadProps(__spreadValues({}, appContext), {
|
|
189
|
+
distDirectory: import_path.default.join(pwd, config.output.path || "dist")
|
|
190
|
+
}));
|
|
191
|
+
});
|
|
209
192
|
}
|
|
210
|
-
|
|
211
193
|
initAppContext() {
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
const {
|
|
215
|
-
options
|
|
216
|
-
} = this;
|
|
217
|
-
const {
|
|
218
|
-
pwd: appDirectory,
|
|
219
|
-
plugins = [],
|
|
220
|
-
config
|
|
221
|
-
} = options;
|
|
222
|
-
const serverPlugins = plugins.map(p => ({
|
|
194
|
+
const { options } = this;
|
|
195
|
+
const { pwd: appDirectory, plugins = [], config } = options;
|
|
196
|
+
const serverPlugins = plugins.map((p) => ({
|
|
223
197
|
server: p
|
|
224
198
|
}));
|
|
225
199
|
return {
|
|
226
200
|
appDirectory,
|
|
227
|
-
distDirectory:
|
|
228
|
-
sharedDirectory:
|
|
201
|
+
distDirectory: import_path.default.join(appDirectory, config.output.path || "dist"),
|
|
202
|
+
sharedDirectory: import_path.default.resolve(appDirectory, import_utils.SHARED_DIR),
|
|
229
203
|
plugins: serverPlugins
|
|
230
204
|
};
|
|
231
205
|
}
|
|
232
|
-
|
|
233
206
|
loadServerEnv(options) {
|
|
234
|
-
const {
|
|
235
|
-
pwd: appDirectory
|
|
236
|
-
} = options;
|
|
207
|
+
const { pwd: appDirectory } = options;
|
|
237
208
|
const serverEnv = process.env.MODERN_ENV;
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
const envConfig = _utils.dotenv.config({
|
|
243
|
-
path: serverEnvPath
|
|
244
|
-
});
|
|
245
|
-
|
|
246
|
-
(0, _utils.dotenvExpand)(envConfig);
|
|
209
|
+
const serverEnvPath = import_path.default.resolve(appDirectory, `.env.${serverEnv}`);
|
|
210
|
+
if (serverEnv && import_fs.default.existsSync(serverEnvPath) && !import_fs.default.statSync(serverEnvPath).isDirectory()) {
|
|
211
|
+
const envConfig = import_utils.dotenv.config({ path: serverEnvPath });
|
|
212
|
+
(0, import_utils.dotenvExpand)(envConfig);
|
|
247
213
|
}
|
|
248
214
|
}
|
|
249
|
-
|
|
250
215
|
}
|
|
251
|
-
|
|
252
|
-
exports
|
|
216
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
217
|
+
0 && (module.exports = {
|
|
218
|
+
Server
|
|
219
|
+
});
|
|
@@ -1,91 +1,86 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.
|
|
4
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __reflectGet = Reflect.get;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
|
+
var __superGet = (cls, obj, key) => __reflectGet(__getProtoOf(cls), key, obj);
|
|
21
|
+
var __async = (__this, __arguments, generator) => {
|
|
22
|
+
return new Promise((resolve, reject) => {
|
|
23
|
+
var fulfilled = (value) => {
|
|
24
|
+
try {
|
|
25
|
+
step(generator.next(value));
|
|
26
|
+
} catch (e) {
|
|
27
|
+
reject(e);
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
var rejected = (value) => {
|
|
31
|
+
try {
|
|
32
|
+
step(generator.throw(value));
|
|
33
|
+
} catch (e) {
|
|
34
|
+
reject(e);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
38
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
var modern_server_split_exports = {};
|
|
42
|
+
__export(modern_server_split_exports, {
|
|
43
|
+
createProdServer: () => createProdServer
|
|
5
44
|
});
|
|
6
|
-
exports
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
var _modernServer = require("./modern-server");
|
|
11
|
-
|
|
12
|
-
class ModernSSRServer extends _modernServer.ModernServer {
|
|
45
|
+
module.exports = __toCommonJS(modern_server_split_exports);
|
|
46
|
+
var import_modern_server = require("./modern-server");
|
|
47
|
+
class ModernSSRServer extends import_modern_server.ModernServer {
|
|
13
48
|
prepareAPIHandler(_) {
|
|
14
49
|
return null;
|
|
15
50
|
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
async setupBeforeProdMiddleware() {
|
|
22
|
-
if (this.runMode === _constants.RUN_MODE.FULL) {
|
|
23
|
-
await super.setupBeforeProdMiddleware();
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
async emitRouteHook(_, _input) {
|
|
28
|
-
if (this.runMode === _constants.RUN_MODE.FULL) {
|
|
29
|
-
await super.emitRouteHook(_, _input);
|
|
30
|
-
}
|
|
51
|
+
handleAPI(context) {
|
|
52
|
+
return __async(this, null, function* () {
|
|
53
|
+
return this.render404(context);
|
|
54
|
+
});
|
|
31
55
|
}
|
|
32
|
-
|
|
33
56
|
}
|
|
34
|
-
|
|
35
|
-
class ModernAPIServer extends _modernServer.ModernServer {
|
|
57
|
+
class ModernAPIServer extends import_modern_server.ModernServer {
|
|
36
58
|
prepareWebHandler(_) {
|
|
37
59
|
return null;
|
|
38
60
|
}
|
|
39
|
-
|
|
40
61
|
filterRoutes(routes) {
|
|
41
|
-
return routes.filter(route => route.isApi);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
async setupBeforeProdMiddleware() {
|
|
45
|
-
if (this.runMode === _constants.RUN_MODE.FULL) {
|
|
46
|
-
await super.setupBeforeProdMiddleware();
|
|
47
|
-
}
|
|
62
|
+
return routes.filter((route) => route.isApi);
|
|
48
63
|
}
|
|
49
|
-
|
|
50
|
-
async emitRouteHook(_, _input) {// empty
|
|
51
|
-
}
|
|
52
|
-
|
|
53
64
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
65
|
+
class ModernWebServer extends import_modern_server.ModernServer {
|
|
66
|
+
warmupSSRBundle() {
|
|
67
|
+
return __async(this, null, function* () {
|
|
68
|
+
return null;
|
|
69
|
+
});
|
|
58
70
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
const {
|
|
62
|
-
proxyTarget
|
|
63
|
-
} = this;
|
|
64
|
-
|
|
65
|
-
if (proxyTarget !== null && proxyTarget !== void 0 && proxyTarget.api) {
|
|
66
|
-
return this.proxy();
|
|
67
|
-
} else {
|
|
71
|
+
handleAPI(context) {
|
|
72
|
+
return __async(this, null, function* () {
|
|
68
73
|
return this.render404(context);
|
|
69
|
-
}
|
|
74
|
+
});
|
|
70
75
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
const {
|
|
74
|
-
proxyTarget
|
|
75
|
-
} = this;
|
|
76
|
-
|
|
77
|
-
if (route.isSSR && proxyTarget !== null && proxyTarget !== void 0 && proxyTarget.ssr) {
|
|
78
|
-
return this.proxy();
|
|
79
|
-
} else {
|
|
80
|
-
// if no proxyTarget but access web server, degradation to csr
|
|
76
|
+
handleWeb(context, route) {
|
|
77
|
+
return __async(this, null, function* () {
|
|
81
78
|
route.isSSR = false;
|
|
82
|
-
return
|
|
83
|
-
}
|
|
79
|
+
return __superGet(ModernWebServer.prototype, this, "handleWeb").call(this, context, route);
|
|
80
|
+
});
|
|
84
81
|
}
|
|
85
|
-
|
|
86
82
|
}
|
|
87
|
-
|
|
88
|
-
const createProdServer = options => {
|
|
83
|
+
const createProdServer = (options) => {
|
|
89
84
|
if (options.apiOnly) {
|
|
90
85
|
return new ModernAPIServer(options);
|
|
91
86
|
} else if (options.ssrOnly) {
|
|
@@ -93,8 +88,10 @@ const createProdServer = options => {
|
|
|
93
88
|
} else if (options.webOnly) {
|
|
94
89
|
return new ModernWebServer(options);
|
|
95
90
|
} else {
|
|
96
|
-
return new
|
|
91
|
+
return new import_modern_server.ModernServer(options);
|
|
97
92
|
}
|
|
98
93
|
};
|
|
99
|
-
|
|
100
|
-
exports
|
|
94
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
95
|
+
0 && (module.exports = {
|
|
96
|
+
createProdServer
|
|
97
|
+
});
|