@modern-js/plugin-server 2.0.0-beta.3 → 2.0.0-beta.4
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 +38 -0
- package/dist/js/modern/cli.js +67 -48
- package/dist/js/modern/modern-app-env.d.js +0 -0
- package/dist/js/modern/server.js +64 -57
- package/dist/js/node/cli.js +90 -54
- package/dist/js/node/modern-app-env.d.js +0 -0
- package/dist/js/node/server.js +85 -66
- package/dist/js/treeshaking/cli.js +186 -59
- package/dist/js/treeshaking/modern-app-env.d.js +1 -0
- package/dist/js/treeshaking/server.js +186 -131
- package/dist/types/cli.d.ts +2 -0
- package/dist/types/server.d.ts +2 -0
- package/package.json +9 -9
@@ -1,138 +1,193 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
5
|
-
var _excluded = ["default", "middleware"];
|
6
|
-
import path from 'path';
|
7
|
-
import { isProd, logger, requireExistModule, SERVER_DIR } from '@modern-js/utils';
|
8
|
-
var WEB_APP_NAME = 'index';
|
9
|
-
var HOOKS;
|
10
|
-
(function (HOOKS) {
|
11
|
-
HOOKS["AFTER_MATCH"] = "afterMatch";
|
12
|
-
HOOKS["AFTER_RENDER"] = "afterRender";
|
13
|
-
})(HOOKS || (HOOKS = {}));
|
14
|
-
var Storage = /*#__PURE__*/function () {
|
15
|
-
function Storage() {
|
16
|
-
_classCallCheck(this, Storage);
|
17
|
-
_defineProperty(this, "middlewares", []);
|
18
|
-
_defineProperty(this, "hooks", {});
|
19
|
-
}
|
20
|
-
_createClass(Storage, [{
|
21
|
-
key: "reset",
|
22
|
-
value: function reset() {
|
23
|
-
this.middlewares = [];
|
24
|
-
this.hooks = {};
|
1
|
+
function _classCallCheck(instance, Constructor) {
|
2
|
+
if (!(instance instanceof Constructor)) {
|
3
|
+
throw new TypeError("Cannot call a class as a function");
|
25
4
|
}
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
var
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
return storage.middlewares.push(fn);
|
35
|
-
};
|
36
|
-
}
|
37
|
-
return function (fn) {
|
38
|
-
logger.warn('declare hook in default export is to be deprecated, use named export instead');
|
39
|
-
storage.hooks[name] = fn;
|
40
|
-
};
|
5
|
+
}
|
6
|
+
function _defineProperties(target, props) {
|
7
|
+
for(var i = 0; i < props.length; i++){
|
8
|
+
var descriptor = props[i];
|
9
|
+
descriptor.enumerable = descriptor.enumerable || false;
|
10
|
+
descriptor.configurable = true;
|
11
|
+
if ("value" in descriptor) descriptor.writable = true;
|
12
|
+
Object.defineProperty(target, descriptor.key, descriptor);
|
41
13
|
}
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
return dispatch;
|
56
|
-
};
|
57
|
-
};
|
58
|
-
export default (function () {
|
59
|
-
return {
|
60
|
-
name: '@modern-js/plugin-server',
|
61
|
-
setup: function setup(api) {
|
62
|
-
var _api$useAppContext = api.useAppContext(),
|
63
|
-
appDirectory = _api$useAppContext.appDirectory,
|
64
|
-
distDirectory = _api$useAppContext.distDirectory;
|
65
|
-
var storage = new Storage();
|
66
|
-
var transformAPI = createTransformAPI(storage);
|
67
|
-
var pwd = isProd() ? distDirectory : appDirectory;
|
68
|
-
var webAppPath = path.resolve(pwd, SERVER_DIR, WEB_APP_NAME);
|
69
|
-
var loadMod = function loadMod() {
|
70
|
-
var mod = requireExistModule(webAppPath, {
|
71
|
-
interop: false
|
14
|
+
}
|
15
|
+
function _createClass(Constructor, protoProps, staticProps) {
|
16
|
+
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
17
|
+
if (staticProps) _defineProperties(Constructor, staticProps);
|
18
|
+
return Constructor;
|
19
|
+
}
|
20
|
+
function _defineProperty(obj, key, value) {
|
21
|
+
if (key in obj) {
|
22
|
+
Object.defineProperty(obj, key, {
|
23
|
+
value: value,
|
24
|
+
enumerable: true,
|
25
|
+
configurable: true,
|
26
|
+
writable: true
|
72
27
|
});
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
28
|
+
} else {
|
29
|
+
obj[key] = value;
|
30
|
+
}
|
31
|
+
return obj;
|
32
|
+
}
|
33
|
+
function _objectWithoutProperties(source, excluded) {
|
34
|
+
if (source == null) return {};
|
35
|
+
var target = _objectWithoutPropertiesLoose(source, excluded);
|
36
|
+
var key, i;
|
37
|
+
if (Object.getOwnPropertySymbols) {
|
38
|
+
var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
|
39
|
+
for(i = 0; i < sourceSymbolKeys.length; i++){
|
40
|
+
key = sourceSymbolKeys[i];
|
41
|
+
if (excluded.indexOf(key) >= 0) continue;
|
42
|
+
if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
|
43
|
+
target[key] = source[key];
|
78
44
|
}
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
45
|
+
}
|
46
|
+
return target;
|
47
|
+
}
|
48
|
+
function _objectWithoutPropertiesLoose(source, excluded) {
|
49
|
+
if (source == null) return {};
|
50
|
+
var target = {};
|
51
|
+
var sourceKeys = Object.keys(source);
|
52
|
+
var key, i;
|
53
|
+
for(i = 0; i < sourceKeys.length; i++){
|
54
|
+
key = sourceKeys[i];
|
55
|
+
if (excluded.indexOf(key) >= 0) continue;
|
56
|
+
target[key] = source[key];
|
57
|
+
}
|
58
|
+
return target;
|
59
|
+
}
|
60
|
+
import path from "path";
|
61
|
+
import { isProd, logger, requireExistModule, SERVER_DIR } from "@modern-js/utils";
|
62
|
+
var WEB_APP_NAME = "index";
|
63
|
+
var HOOKS = /* @__PURE__ */ function(HOOKS2) {
|
64
|
+
HOOKS2["AFTER_MATCH"] = "afterMatch";
|
65
|
+
HOOKS2["AFTER_RENDER"] = "afterRender";
|
66
|
+
return HOOKS2;
|
67
|
+
}(HOOKS || {});
|
68
|
+
var Storage = /*#__PURE__*/ function() {
|
69
|
+
"use strict";
|
70
|
+
function Storage() {
|
71
|
+
_classCallCheck(this, Storage);
|
72
|
+
_defineProperty(this, "middlewares", []);
|
73
|
+
_defineProperty(this, "hooks", {});
|
74
|
+
}
|
75
|
+
_createClass(Storage, [
|
76
|
+
{
|
77
|
+
key: "reset",
|
78
|
+
value: function reset() {
|
79
|
+
this.middlewares = [];
|
80
|
+
this.hooks = {};
|
81
|
+
}
|
89
82
|
}
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
return storage.hooks.afterRender(context, next);
|
116
|
-
},
|
117
|
-
prepareWebServer: function prepareWebServer(_ref2) {
|
118
|
-
var config = _ref2.config;
|
119
|
-
var middleware = config.middleware;
|
120
|
-
var factory = compose(middleware);
|
121
|
-
return function (ctx) {
|
122
|
-
var res = ctx.source.res;
|
123
|
-
return new Promise(function (resolve, reject) {
|
124
|
-
res.on('finish', function (err) {
|
125
|
-
if (err) {
|
126
|
-
return reject(err);
|
127
|
-
}
|
83
|
+
]);
|
84
|
+
return Storage;
|
85
|
+
}();
|
86
|
+
var createTransformAPI = function(storage) {
|
87
|
+
return new Proxy({}, {
|
88
|
+
get: function get(target, name) {
|
89
|
+
if (name === "addMiddleware") {
|
90
|
+
return function(fn) {
|
91
|
+
return storage.middlewares.push(fn);
|
92
|
+
};
|
93
|
+
}
|
94
|
+
return function(fn) {
|
95
|
+
logger.warn("declare hook in default export is to be deprecated, use named export instead");
|
96
|
+
storage.hooks[name] = fn;
|
97
|
+
};
|
98
|
+
}
|
99
|
+
});
|
100
|
+
};
|
101
|
+
var compose = function(middlewares) {
|
102
|
+
return function(ctx, resolve, reject) {
|
103
|
+
var i = 0;
|
104
|
+
var dispatch = function() {
|
105
|
+
var ref, ref1;
|
106
|
+
var handler = middlewares[i++];
|
107
|
+
if (!handler) {
|
128
108
|
return resolve();
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
109
|
+
}
|
110
|
+
return (ref = handler(ctx, dispatch)) === null || ref === void 0 ? void 0 : (ref1 = ref.catch) === null || ref1 === void 0 ? void 0 : ref1.call(ref, reject);
|
111
|
+
};
|
112
|
+
return dispatch;
|
113
|
+
};
|
114
|
+
};
|
115
|
+
var server_default = function() {
|
116
|
+
return {
|
117
|
+
name: "@modern-js/plugin-server",
|
118
|
+
setup: function(api) {
|
119
|
+
var ref = api.useAppContext(), appDirectory = ref.appDirectory, distDirectory = ref.distDirectory;
|
120
|
+
var storage = new Storage();
|
121
|
+
var transformAPI = createTransformAPI(storage);
|
122
|
+
var pwd = isProd() ? distDirectory : appDirectory;
|
123
|
+
var webAppPath = path.resolve(pwd, SERVER_DIR, WEB_APP_NAME);
|
124
|
+
var loadMod = function() {
|
125
|
+
var mod = requireExistModule(webAppPath, {
|
126
|
+
interop: false
|
127
|
+
});
|
128
|
+
var defaultExports = mod.default, middleware = mod.middleware, hooks = _objectWithoutProperties(mod, [
|
129
|
+
"default",
|
130
|
+
"middleware"
|
131
|
+
]);
|
132
|
+
if (defaultExports) {
|
133
|
+
defaultExports(transformAPI);
|
134
|
+
}
|
135
|
+
Object.values(HOOKS).forEach(function(key) {
|
136
|
+
var fn = hooks[key];
|
137
|
+
if (fn) {
|
138
|
+
storage.hooks[key] = fn;
|
139
|
+
}
|
140
|
+
});
|
141
|
+
if (middleware) {
|
142
|
+
storage.middlewares = [].concat(middleware);
|
143
|
+
}
|
144
|
+
};
|
145
|
+
return {
|
146
|
+
prepare: function prepare() {
|
147
|
+
loadMod();
|
148
|
+
},
|
149
|
+
reset: function reset() {
|
150
|
+
storage.reset();
|
151
|
+
loadMod();
|
152
|
+
},
|
153
|
+
gather: function gather(param) {
|
154
|
+
var addWebMiddleware = param.addWebMiddleware;
|
155
|
+
storage.middlewares.forEach(function(mid) {
|
156
|
+
addWebMiddleware(mid);
|
157
|
+
});
|
158
|
+
},
|
159
|
+
afterMatch: function afterMatch(context, next) {
|
160
|
+
if (!storage.hooks.afterMatch) {
|
161
|
+
return next();
|
162
|
+
}
|
163
|
+
return storage.hooks.afterMatch(context, next);
|
164
|
+
},
|
165
|
+
afterRender: function afterRender(context, next) {
|
166
|
+
if (!storage.hooks.afterRender) {
|
167
|
+
return next();
|
168
|
+
}
|
169
|
+
return storage.hooks.afterRender(context, next);
|
170
|
+
},
|
171
|
+
prepareWebServer: function prepareWebServer(param) {
|
172
|
+
var config = param.config;
|
173
|
+
var middleware = config.middleware;
|
174
|
+
var factory = compose(middleware);
|
175
|
+
return function(ctx) {
|
176
|
+
var res = ctx.source.res;
|
177
|
+
return new Promise(function(resolve, reject) {
|
178
|
+
res.on("finish", function(err) {
|
179
|
+
if (err) {
|
180
|
+
return reject(err);
|
181
|
+
}
|
182
|
+
return resolve();
|
183
|
+
});
|
184
|
+
var dispatch = factory(ctx, resolve, reject);
|
185
|
+
dispatch();
|
186
|
+
});
|
187
|
+
};
|
188
|
+
}
|
189
|
+
};
|
134
190
|
}
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
});
|
191
|
+
};
|
192
|
+
};
|
193
|
+
export { server_default as default };
|
package/dist/types/cli.d.ts
CHANGED
package/dist/types/server.d.ts
CHANGED
package/package.json
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
"modern",
|
12
12
|
"modern.js"
|
13
13
|
],
|
14
|
-
"version": "2.0.0-beta.
|
14
|
+
"version": "2.0.0-beta.4",
|
15
15
|
"types": "./dist/types/server.d.ts",
|
16
16
|
"jsnext:source": "./src/server.ts",
|
17
17
|
"main": "./dist/js/node/server.js",
|
@@ -48,20 +48,20 @@
|
|
48
48
|
},
|
49
49
|
"dependencies": {
|
50
50
|
"@babel/runtime": "^7.18.0",
|
51
|
-
"@modern-js/babel-compiler": "2.0.0-beta.
|
52
|
-
"@modern-js/server-utils": "2.0.0-beta.
|
53
|
-
"@modern-js/utils": "2.0.0-beta.
|
51
|
+
"@modern-js/babel-compiler": "2.0.0-beta.4",
|
52
|
+
"@modern-js/server-utils": "2.0.0-beta.4",
|
53
|
+
"@modern-js/utils": "2.0.0-beta.4"
|
54
54
|
},
|
55
55
|
"devDependencies": {
|
56
56
|
"typescript": "^4",
|
57
57
|
"@types/jest": "^27",
|
58
58
|
"@types/node": "^14",
|
59
59
|
"jest": "^27",
|
60
|
-
"@modern-js/server-core": "2.0.0-beta.
|
61
|
-
"@modern-js/core": "2.0.0-beta.
|
62
|
-
"@scripts/build": "2.0.0-beta.
|
63
|
-
"@modern-js/types": "2.0.0-beta.
|
64
|
-
"@scripts/jest-config": "2.0.0-beta.
|
60
|
+
"@modern-js/server-core": "2.0.0-beta.4",
|
61
|
+
"@modern-js/core": "2.0.0-beta.4",
|
62
|
+
"@scripts/build": "2.0.0-beta.4",
|
63
|
+
"@modern-js/types": "2.0.0-beta.4",
|
64
|
+
"@scripts/jest-config": "2.0.0-beta.4"
|
65
65
|
},
|
66
66
|
"sideEffects": [
|
67
67
|
"*.css",
|