@modern-js/server 2.14.0 → 2.15.1-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 +9 -0
- package/dist/cjs/server/devServer.js +2 -2
- package/dist/esm/server/devServer.js +68 -24
- package/dist/esm-node/server/devServer.js +2 -2
- package/dist/js/modern/constants.js +19 -0
- package/dist/js/modern/dev-tools/dev-middleware/hmr-client/createSocketUrl.js +41 -0
- package/dist/js/modern/dev-tools/dev-middleware/hmr-client/index.js +143 -0
- package/dist/js/modern/dev-tools/dev-middleware/index.js +94 -0
- package/dist/js/modern/dev-tools/dev-middleware/socket-server.js +132 -0
- package/dist/js/modern/dev-tools/https/index.js +49 -0
- package/dist/js/modern/dev-tools/mock/getMockData.js +114 -0
- package/dist/js/modern/dev-tools/mock/index.js +54 -0
- package/dist/js/modern/dev-tools/register/index.js +111 -0
- package/dist/js/modern/dev-tools/watcher/dependency-tree.js +59 -0
- package/dist/js/modern/dev-tools/watcher/index.js +106 -0
- package/dist/js/modern/dev-tools/watcher/stats-cache.js +58 -0
- package/dist/js/modern/index.js +12 -0
- package/dist/js/modern/server/dev-server.js +293 -0
- package/dist/js/modern/server/index.js +16 -0
- package/dist/js/modern/types.js +0 -0
- package/dist/js/node/constants.js +42 -0
- package/dist/js/node/dev-tools/dev-middleware/hmr-client/createSocketUrl.js +65 -0
- package/dist/js/node/dev-tools/dev-middleware/hmr-client/index.js +152 -0
- package/dist/js/node/dev-tools/dev-middleware/index.js +119 -0
- package/dist/js/node/dev-tools/dev-middleware/socket-server.js +159 -0
- package/dist/js/node/dev-tools/https/index.js +72 -0
- package/dist/js/node/dev-tools/mock/getMockData.js +135 -0
- package/dist/js/node/dev-tools/mock/index.js +83 -0
- package/dist/js/node/dev-tools/register/index.js +138 -0
- package/dist/js/node/dev-tools/watcher/dependency-tree.js +89 -0
- package/dist/js/node/dev-tools/watcher/index.js +135 -0
- package/dist/js/node/dev-tools/watcher/stats-cache.js +87 -0
- package/dist/js/node/index.js +35 -0
- package/dist/js/node/server/dev-server.js +310 -0
- package/dist/js/node/server/index.js +39 -0
- package/dist/js/node/types.js +15 -0
- package/dist/js/treeshaking/constants.js +21 -0
- package/dist/js/treeshaking/dev-tools/dev-middleware/hmr-client/createSocketUrl.js +51 -0
- package/dist/js/treeshaking/dev-tools/dev-middleware/hmr-client/index.js +157 -0
- package/dist/js/treeshaking/dev-tools/dev-middleware/index.js +322 -0
- package/dist/js/treeshaking/dev-tools/dev-middleware/socket-server.js +209 -0
- package/dist/js/treeshaking/dev-tools/https/index.js +193 -0
- package/dist/js/treeshaking/dev-tools/mock/getMockData.js +327 -0
- package/dist/js/treeshaking/dev-tools/mock/index.js +191 -0
- package/dist/js/treeshaking/dev-tools/register/index.js +153 -0
- package/dist/js/treeshaking/dev-tools/watcher/dependency-tree.js +150 -0
- package/dist/js/treeshaking/dev-tools/watcher/index.js +200 -0
- package/dist/js/treeshaking/dev-tools/watcher/stats-cache.js +128 -0
- package/dist/js/treeshaking/index.js +9 -0
- package/dist/js/treeshaking/server/dev-server.js +799 -0
- package/dist/js/treeshaking/server/index.js +92 -0
- package/dist/js/treeshaking/types.js +1 -0
- package/dist/types/server/devServer.d.ts +1 -1
- package/package.json +8 -8
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
2
|
+
try {
|
|
3
|
+
var info = gen[key](arg);
|
|
4
|
+
var value = info.value;
|
|
5
|
+
} catch (error) {
|
|
6
|
+
reject(error);
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
if (info.done) {
|
|
10
|
+
resolve(value);
|
|
11
|
+
} else {
|
|
12
|
+
Promise.resolve(value).then(_next, _throw);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
function _asyncToGenerator(fn) {
|
|
16
|
+
return function() {
|
|
17
|
+
var self = this, args = arguments;
|
|
18
|
+
return new Promise(function(resolve, reject) {
|
|
19
|
+
var gen = fn.apply(self, args);
|
|
20
|
+
function _next(value) {
|
|
21
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
22
|
+
}
|
|
23
|
+
function _throw(err) {
|
|
24
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
25
|
+
}
|
|
26
|
+
_next(undefined);
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
var __generator = this && this.__generator || function(thisArg, body) {
|
|
31
|
+
var f, y, t, g, _ = {
|
|
32
|
+
label: 0,
|
|
33
|
+
sent: function() {
|
|
34
|
+
if (t[0] & 1) throw t[1];
|
|
35
|
+
return t[1];
|
|
36
|
+
},
|
|
37
|
+
trys: [],
|
|
38
|
+
ops: []
|
|
39
|
+
};
|
|
40
|
+
return(g = {
|
|
41
|
+
next: verb(0),
|
|
42
|
+
"throw": verb(1),
|
|
43
|
+
"return": verb(2)
|
|
44
|
+
}, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
|
|
45
|
+
return this;
|
|
46
|
+
}), g);
|
|
47
|
+
function verb(n) {
|
|
48
|
+
return function(v) {
|
|
49
|
+
return step([
|
|
50
|
+
n,
|
|
51
|
+
v
|
|
52
|
+
]);
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
function step(op) {
|
|
56
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
57
|
+
while(_)try {
|
|
58
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
59
|
+
if (y = 0, t) op = [
|
|
60
|
+
op[0] & 2,
|
|
61
|
+
t.value
|
|
62
|
+
];
|
|
63
|
+
switch(op[0]){
|
|
64
|
+
case 0:
|
|
65
|
+
case 1:
|
|
66
|
+
t = op;
|
|
67
|
+
break;
|
|
68
|
+
case 4:
|
|
69
|
+
_.label++;
|
|
70
|
+
return {
|
|
71
|
+
value: op[1],
|
|
72
|
+
done: false
|
|
73
|
+
};
|
|
74
|
+
case 5:
|
|
75
|
+
_.label++;
|
|
76
|
+
y = op[1];
|
|
77
|
+
op = [
|
|
78
|
+
0
|
|
79
|
+
];
|
|
80
|
+
continue;
|
|
81
|
+
case 7:
|
|
82
|
+
op = _.ops.pop();
|
|
83
|
+
_.trys.pop();
|
|
84
|
+
continue;
|
|
85
|
+
default:
|
|
86
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
87
|
+
_ = 0;
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
91
|
+
_.label = op[1];
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
94
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
95
|
+
_.label = t[1];
|
|
96
|
+
t = op;
|
|
97
|
+
break;
|
|
98
|
+
}
|
|
99
|
+
if (t && _.label < t[2]) {
|
|
100
|
+
_.label = t[2];
|
|
101
|
+
_.ops.push(op);
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
if (t[2]) _.ops.pop();
|
|
105
|
+
_.trys.pop();
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
op = body.call(thisArg, _);
|
|
109
|
+
} catch (e) {
|
|
110
|
+
op = [
|
|
111
|
+
6,
|
|
112
|
+
e
|
|
113
|
+
];
|
|
114
|
+
y = 0;
|
|
115
|
+
} finally{
|
|
116
|
+
f = t = 0;
|
|
117
|
+
}
|
|
118
|
+
if (op[0] & 5) throw op[1];
|
|
119
|
+
return {
|
|
120
|
+
value: op[0] ? op[1] : void 0,
|
|
121
|
+
done: true
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
import { chalk, getPackageManager, logger } from "@modern-js/utils";
|
|
126
|
+
var genHttpsOptions = function() {
|
|
127
|
+
var _ref = _asyncToGenerator(function(userOptions, pwd) {
|
|
128
|
+
var httpsOptions, devcertPath, err, packageManager, command, devcert, selfsign;
|
|
129
|
+
return __generator(this, function(_state) {
|
|
130
|
+
switch(_state.label){
|
|
131
|
+
case 0:
|
|
132
|
+
httpsOptions = typeof userOptions === "boolean" ? {} : userOptions;
|
|
133
|
+
if (!(!httpsOptions.key || !httpsOptions.cert)) return [
|
|
134
|
+
3,
|
|
135
|
+
6
|
|
136
|
+
];
|
|
137
|
+
_state.label = 1;
|
|
138
|
+
case 1:
|
|
139
|
+
_state.trys.push([
|
|
140
|
+
1,
|
|
141
|
+
2,
|
|
142
|
+
,
|
|
143
|
+
4
|
|
144
|
+
]);
|
|
145
|
+
devcertPath = require.resolve("devcert", {
|
|
146
|
+
paths: [
|
|
147
|
+
pwd,
|
|
148
|
+
__dirname
|
|
149
|
+
]
|
|
150
|
+
});
|
|
151
|
+
return [
|
|
152
|
+
3,
|
|
153
|
+
4
|
|
154
|
+
];
|
|
155
|
+
case 2:
|
|
156
|
+
err = _state.sent();
|
|
157
|
+
return [
|
|
158
|
+
4,
|
|
159
|
+
getPackageManager(pwd)
|
|
160
|
+
];
|
|
161
|
+
case 3:
|
|
162
|
+
packageManager = _state.sent();
|
|
163
|
+
command = chalk.yellow.bold("".concat(packageManager, " install devcert@1.2.2 -D"));
|
|
164
|
+
logger.error('You have enabled "dev.https" option, but the "devcert" package is not installed.');
|
|
165
|
+
logger.error("Please run ".concat(command, " to install manually, otherwise the https can not work."));
|
|
166
|
+
throw new Error('[https] "devcert" is not found.');
|
|
167
|
+
case 4:
|
|
168
|
+
devcert = require(devcertPath);
|
|
169
|
+
return [
|
|
170
|
+
4,
|
|
171
|
+
devcert.certificateFor([
|
|
172
|
+
"localhost"
|
|
173
|
+
])
|
|
174
|
+
];
|
|
175
|
+
case 5:
|
|
176
|
+
selfsign = _state.sent();
|
|
177
|
+
return [
|
|
178
|
+
2,
|
|
179
|
+
selfsign
|
|
180
|
+
];
|
|
181
|
+
case 6:
|
|
182
|
+
return [
|
|
183
|
+
2,
|
|
184
|
+
httpsOptions
|
|
185
|
+
];
|
|
186
|
+
}
|
|
187
|
+
});
|
|
188
|
+
});
|
|
189
|
+
return function genHttpsOptions(userOptions, pwd) {
|
|
190
|
+
return _ref.apply(this, arguments);
|
|
191
|
+
};
|
|
192
|
+
}();
|
|
193
|
+
export { genHttpsOptions };
|
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
function _arrayLikeToArray(arr, len) {
|
|
2
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
3
|
+
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
4
|
+
return arr2;
|
|
5
|
+
}
|
|
6
|
+
function _arrayWithHoles(arr) {
|
|
7
|
+
if (Array.isArray(arr)) return arr;
|
|
8
|
+
}
|
|
9
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
10
|
+
try {
|
|
11
|
+
var info = gen[key](arg);
|
|
12
|
+
var value = info.value;
|
|
13
|
+
} catch (error) {
|
|
14
|
+
reject(error);
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
if (info.done) {
|
|
18
|
+
resolve(value);
|
|
19
|
+
} else {
|
|
20
|
+
Promise.resolve(value).then(_next, _throw);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
function _asyncToGenerator(fn) {
|
|
24
|
+
return function() {
|
|
25
|
+
var self = this, args = arguments;
|
|
26
|
+
return new Promise(function(resolve, reject) {
|
|
27
|
+
var gen = fn.apply(self, args);
|
|
28
|
+
function _next(value) {
|
|
29
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
30
|
+
}
|
|
31
|
+
function _throw(err) {
|
|
32
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
33
|
+
}
|
|
34
|
+
_next(undefined);
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
function _defineProperty(obj, key, value) {
|
|
39
|
+
if (key in obj) {
|
|
40
|
+
Object.defineProperty(obj, key, {
|
|
41
|
+
value: value,
|
|
42
|
+
enumerable: true,
|
|
43
|
+
configurable: true,
|
|
44
|
+
writable: true
|
|
45
|
+
});
|
|
46
|
+
} else {
|
|
47
|
+
obj[key] = value;
|
|
48
|
+
}
|
|
49
|
+
return obj;
|
|
50
|
+
}
|
|
51
|
+
function _iterableToArrayLimit(arr, i) {
|
|
52
|
+
var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
|
|
53
|
+
if (_i == null) return;
|
|
54
|
+
var _arr = [];
|
|
55
|
+
var _n = true;
|
|
56
|
+
var _d = false;
|
|
57
|
+
var _s, _e;
|
|
58
|
+
try {
|
|
59
|
+
for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
|
|
60
|
+
_arr.push(_s.value);
|
|
61
|
+
if (i && _arr.length === i) break;
|
|
62
|
+
}
|
|
63
|
+
} catch (err) {
|
|
64
|
+
_d = true;
|
|
65
|
+
_e = err;
|
|
66
|
+
} finally{
|
|
67
|
+
try {
|
|
68
|
+
if (!_n && _i["return"] != null) _i["return"]();
|
|
69
|
+
} finally{
|
|
70
|
+
if (_d) throw _e;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return _arr;
|
|
74
|
+
}
|
|
75
|
+
function _nonIterableRest() {
|
|
76
|
+
throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
77
|
+
}
|
|
78
|
+
function _objectSpread(target) {
|
|
79
|
+
for(var i = 1; i < arguments.length; i++){
|
|
80
|
+
var source = arguments[i] != null ? arguments[i] : {};
|
|
81
|
+
var ownKeys = Object.keys(source);
|
|
82
|
+
if (typeof Object.getOwnPropertySymbols === "function") {
|
|
83
|
+
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
|
84
|
+
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
85
|
+
}));
|
|
86
|
+
}
|
|
87
|
+
ownKeys.forEach(function(key) {
|
|
88
|
+
_defineProperty(target, key, source[key]);
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
return target;
|
|
92
|
+
}
|
|
93
|
+
function ownKeys(object, enumerableOnly) {
|
|
94
|
+
var keys = Object.keys(object);
|
|
95
|
+
if (Object.getOwnPropertySymbols) {
|
|
96
|
+
var symbols = Object.getOwnPropertySymbols(object);
|
|
97
|
+
if (enumerableOnly) {
|
|
98
|
+
symbols = symbols.filter(function(sym) {
|
|
99
|
+
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
keys.push.apply(keys, symbols);
|
|
103
|
+
}
|
|
104
|
+
return keys;
|
|
105
|
+
}
|
|
106
|
+
function _objectSpreadProps(target, source) {
|
|
107
|
+
source = source != null ? source : {};
|
|
108
|
+
if (Object.getOwnPropertyDescriptors) {
|
|
109
|
+
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
|
110
|
+
} else {
|
|
111
|
+
ownKeys(Object(source)).forEach(function(key) {
|
|
112
|
+
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
return target;
|
|
116
|
+
}
|
|
117
|
+
function _slicedToArray(arr, i) {
|
|
118
|
+
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
|
|
119
|
+
}
|
|
120
|
+
var _typeof = function(obj) {
|
|
121
|
+
"@swc/helpers - typeof";
|
|
122
|
+
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
123
|
+
};
|
|
124
|
+
function _unsupportedIterableToArray(o, minLen) {
|
|
125
|
+
if (!o) return;
|
|
126
|
+
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
|
127
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
128
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
129
|
+
if (n === "Map" || n === "Set") return Array.from(n);
|
|
130
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
131
|
+
}
|
|
132
|
+
var __generator = this && this.__generator || function(thisArg, body) {
|
|
133
|
+
var f, y, t, g, _ = {
|
|
134
|
+
label: 0,
|
|
135
|
+
sent: function() {
|
|
136
|
+
if (t[0] & 1) throw t[1];
|
|
137
|
+
return t[1];
|
|
138
|
+
},
|
|
139
|
+
trys: [],
|
|
140
|
+
ops: []
|
|
141
|
+
};
|
|
142
|
+
return(g = {
|
|
143
|
+
next: verb(0),
|
|
144
|
+
"throw": verb(1),
|
|
145
|
+
"return": verb(2)
|
|
146
|
+
}, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
|
|
147
|
+
return this;
|
|
148
|
+
}), g);
|
|
149
|
+
function verb(n) {
|
|
150
|
+
return function(v) {
|
|
151
|
+
return step([
|
|
152
|
+
n,
|
|
153
|
+
v
|
|
154
|
+
]);
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
function step(op) {
|
|
158
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
159
|
+
while(_)try {
|
|
160
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
161
|
+
if (y = 0, t) op = [
|
|
162
|
+
op[0] & 2,
|
|
163
|
+
t.value
|
|
164
|
+
];
|
|
165
|
+
switch(op[0]){
|
|
166
|
+
case 0:
|
|
167
|
+
case 1:
|
|
168
|
+
t = op;
|
|
169
|
+
break;
|
|
170
|
+
case 4:
|
|
171
|
+
_.label++;
|
|
172
|
+
return {
|
|
173
|
+
value: op[1],
|
|
174
|
+
done: false
|
|
175
|
+
};
|
|
176
|
+
case 5:
|
|
177
|
+
_.label++;
|
|
178
|
+
y = op[1];
|
|
179
|
+
op = [
|
|
180
|
+
0
|
|
181
|
+
];
|
|
182
|
+
continue;
|
|
183
|
+
case 7:
|
|
184
|
+
op = _.ops.pop();
|
|
185
|
+
_.trys.pop();
|
|
186
|
+
continue;
|
|
187
|
+
default:
|
|
188
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
189
|
+
_ = 0;
|
|
190
|
+
continue;
|
|
191
|
+
}
|
|
192
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
193
|
+
_.label = op[1];
|
|
194
|
+
break;
|
|
195
|
+
}
|
|
196
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
197
|
+
_.label = t[1];
|
|
198
|
+
t = op;
|
|
199
|
+
break;
|
|
200
|
+
}
|
|
201
|
+
if (t && _.label < t[2]) {
|
|
202
|
+
_.label = t[2];
|
|
203
|
+
_.ops.push(op);
|
|
204
|
+
break;
|
|
205
|
+
}
|
|
206
|
+
if (t[2]) _.ops.pop();
|
|
207
|
+
_.trys.pop();
|
|
208
|
+
continue;
|
|
209
|
+
}
|
|
210
|
+
op = body.call(thisArg, _);
|
|
211
|
+
} catch (e) {
|
|
212
|
+
op = [
|
|
213
|
+
6,
|
|
214
|
+
e
|
|
215
|
+
];
|
|
216
|
+
y = 0;
|
|
217
|
+
} finally{
|
|
218
|
+
f = t = 0;
|
|
219
|
+
}
|
|
220
|
+
if (op[0] & 5) throw op[1];
|
|
221
|
+
return {
|
|
222
|
+
value: op[0] ? op[1] : void 0,
|
|
223
|
+
done: true
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
};
|
|
227
|
+
import { compatRequire } from "@modern-js/utils";
|
|
228
|
+
import { match } from "path-to-regexp";
|
|
229
|
+
var VALID_METHODS = [
|
|
230
|
+
"get",
|
|
231
|
+
"post",
|
|
232
|
+
"put",
|
|
233
|
+
"delete",
|
|
234
|
+
"patch"
|
|
235
|
+
];
|
|
236
|
+
var BODY_PARSED_METHODS = [
|
|
237
|
+
"post",
|
|
238
|
+
"put",
|
|
239
|
+
"delete",
|
|
240
|
+
"patch"
|
|
241
|
+
];
|
|
242
|
+
var createFunctionDataHandler = function(method, handler) {
|
|
243
|
+
return function() {
|
|
244
|
+
var _ref = _asyncToGenerator(function(context, next) {
|
|
245
|
+
var req, res;
|
|
246
|
+
return __generator(this, function(_state) {
|
|
247
|
+
req = context.req, res = context.res;
|
|
248
|
+
return [
|
|
249
|
+
2,
|
|
250
|
+
handler(req, res, next)
|
|
251
|
+
];
|
|
252
|
+
});
|
|
253
|
+
});
|
|
254
|
+
return function(context, next) {
|
|
255
|
+
return _ref.apply(this, arguments);
|
|
256
|
+
};
|
|
257
|
+
}();
|
|
258
|
+
};
|
|
259
|
+
var createStaticDataHandler = function(method, handler) {
|
|
260
|
+
return function(context) {
|
|
261
|
+
var res = context.res;
|
|
262
|
+
res.setHeader("Content-Type", "application/json");
|
|
263
|
+
res.end(JSON.stringify(handler));
|
|
264
|
+
};
|
|
265
|
+
};
|
|
266
|
+
var allowTypes = [
|
|
267
|
+
"object",
|
|
268
|
+
"function"
|
|
269
|
+
];
|
|
270
|
+
var normalizeConfig = function(mockConfig) {
|
|
271
|
+
return Object.keys(mockConfig).reduce(function(acc, key) {
|
|
272
|
+
var handler = mockConfig[key];
|
|
273
|
+
var type = typeof handler === "undefined" ? "undefined" : _typeof(handler);
|
|
274
|
+
if (!allowTypes.includes(type)) {
|
|
275
|
+
throw new Error("mock value of ".concat(key, " should be object or function, but got ").concat(type));
|
|
276
|
+
}
|
|
277
|
+
var meta = parseKey(key);
|
|
278
|
+
if (type === "object") {
|
|
279
|
+
acc.push(_objectSpreadProps(_objectSpread({}, meta), {
|
|
280
|
+
handler: createStaticDataHandler(meta.method, handler)
|
|
281
|
+
}));
|
|
282
|
+
} else {
|
|
283
|
+
acc.push(_objectSpreadProps(_objectSpread({}, meta), {
|
|
284
|
+
handler: createFunctionDataHandler(meta.method, handler)
|
|
285
|
+
}));
|
|
286
|
+
}
|
|
287
|
+
return acc;
|
|
288
|
+
}, []);
|
|
289
|
+
};
|
|
290
|
+
var _blank = " ";
|
|
291
|
+
var parseKey = function(key) {
|
|
292
|
+
var splitted = key.split(_blank).filter(Boolean);
|
|
293
|
+
if (splitted.length > 1) {
|
|
294
|
+
var _splitted = _slicedToArray(splitted, 2), method = _splitted[0], pathname = _splitted[1];
|
|
295
|
+
return {
|
|
296
|
+
method: method.toLowerCase(),
|
|
297
|
+
path: pathname
|
|
298
|
+
};
|
|
299
|
+
}
|
|
300
|
+
return {
|
|
301
|
+
method: "get",
|
|
302
|
+
path: key
|
|
303
|
+
};
|
|
304
|
+
};
|
|
305
|
+
var getMockData_default = function(filepath) {
|
|
306
|
+
var mockModule = compatRequire(filepath);
|
|
307
|
+
if (!mockModule) {
|
|
308
|
+
throw new Error("Mock file ".concat(filepath, " parsed failed!"));
|
|
309
|
+
}
|
|
310
|
+
var data = normalizeConfig(mockModule);
|
|
311
|
+
return data;
|
|
312
|
+
};
|
|
313
|
+
var getMatched = function(context, mockApiList) {
|
|
314
|
+
var targetPathname = context.path, targetMethod = context.method;
|
|
315
|
+
var matched = mockApiList.find(function(mockApi) {
|
|
316
|
+
var method = mockApi.method, pathname = mockApi.path;
|
|
317
|
+
if (method.toLowerCase() === targetMethod.toLowerCase()) {
|
|
318
|
+
return match(pathname, {
|
|
319
|
+
encode: encodeURI,
|
|
320
|
+
decode: decodeURIComponent
|
|
321
|
+
})(targetPathname);
|
|
322
|
+
}
|
|
323
|
+
return false;
|
|
324
|
+
});
|
|
325
|
+
return matched;
|
|
326
|
+
};
|
|
327
|
+
export { getMockData_default as default, getMatched };
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
2
|
+
try {
|
|
3
|
+
var info = gen[key](arg);
|
|
4
|
+
var value = info.value;
|
|
5
|
+
} catch (error) {
|
|
6
|
+
reject(error);
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
if (info.done) {
|
|
10
|
+
resolve(value);
|
|
11
|
+
} else {
|
|
12
|
+
Promise.resolve(value).then(_next, _throw);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
function _asyncToGenerator(fn) {
|
|
16
|
+
return function() {
|
|
17
|
+
var self = this, args = arguments;
|
|
18
|
+
return new Promise(function(resolve, reject) {
|
|
19
|
+
var gen = fn.apply(self, args);
|
|
20
|
+
function _next(value) {
|
|
21
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
22
|
+
}
|
|
23
|
+
function _throw(err) {
|
|
24
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
25
|
+
}
|
|
26
|
+
_next(undefined);
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
var __generator = this && this.__generator || function(thisArg, body) {
|
|
31
|
+
var f, y, t, g, _ = {
|
|
32
|
+
label: 0,
|
|
33
|
+
sent: function() {
|
|
34
|
+
if (t[0] & 1) throw t[1];
|
|
35
|
+
return t[1];
|
|
36
|
+
},
|
|
37
|
+
trys: [],
|
|
38
|
+
ops: []
|
|
39
|
+
};
|
|
40
|
+
return(g = {
|
|
41
|
+
next: verb(0),
|
|
42
|
+
"throw": verb(1),
|
|
43
|
+
"return": verb(2)
|
|
44
|
+
}, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
|
|
45
|
+
return this;
|
|
46
|
+
}), g);
|
|
47
|
+
function verb(n) {
|
|
48
|
+
return function(v) {
|
|
49
|
+
return step([
|
|
50
|
+
n,
|
|
51
|
+
v
|
|
52
|
+
]);
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
function step(op) {
|
|
56
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
57
|
+
while(_)try {
|
|
58
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
59
|
+
if (y = 0, t) op = [
|
|
60
|
+
op[0] & 2,
|
|
61
|
+
t.value
|
|
62
|
+
];
|
|
63
|
+
switch(op[0]){
|
|
64
|
+
case 0:
|
|
65
|
+
case 1:
|
|
66
|
+
t = op;
|
|
67
|
+
break;
|
|
68
|
+
case 4:
|
|
69
|
+
_.label++;
|
|
70
|
+
return {
|
|
71
|
+
value: op[1],
|
|
72
|
+
done: false
|
|
73
|
+
};
|
|
74
|
+
case 5:
|
|
75
|
+
_.label++;
|
|
76
|
+
y = op[1];
|
|
77
|
+
op = [
|
|
78
|
+
0
|
|
79
|
+
];
|
|
80
|
+
continue;
|
|
81
|
+
case 7:
|
|
82
|
+
op = _.ops.pop();
|
|
83
|
+
_.trys.pop();
|
|
84
|
+
continue;
|
|
85
|
+
default:
|
|
86
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
87
|
+
_ = 0;
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
91
|
+
_.label = op[1];
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
94
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
95
|
+
_.label = t[1];
|
|
96
|
+
t = op;
|
|
97
|
+
break;
|
|
98
|
+
}
|
|
99
|
+
if (t && _.label < t[2]) {
|
|
100
|
+
_.label = t[2];
|
|
101
|
+
_.ops.push(op);
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
if (t[2]) _.ops.pop();
|
|
105
|
+
_.trys.pop();
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
op = body.call(thisArg, _);
|
|
109
|
+
} catch (e) {
|
|
110
|
+
op = [
|
|
111
|
+
6,
|
|
112
|
+
e
|
|
113
|
+
];
|
|
114
|
+
y = 0;
|
|
115
|
+
} finally{
|
|
116
|
+
f = t = 0;
|
|
117
|
+
}
|
|
118
|
+
if (op[0] & 5) throw op[1];
|
|
119
|
+
return {
|
|
120
|
+
value: op[0] ? op[1] : void 0,
|
|
121
|
+
done: true
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
import path from "path";
|
|
126
|
+
import { fs } from "@modern-js/utils";
|
|
127
|
+
import { AGGRED_DIR } from "@modern-js/prod-server";
|
|
128
|
+
import getMockData, { getMatched } from "./getMockData";
|
|
129
|
+
var createMockHandler = function(param) {
|
|
130
|
+
var pwd = param.pwd;
|
|
131
|
+
var exts = [
|
|
132
|
+
".ts",
|
|
133
|
+
".js"
|
|
134
|
+
];
|
|
135
|
+
var filepath = "";
|
|
136
|
+
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
137
|
+
try {
|
|
138
|
+
for(var _iterator = exts[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
139
|
+
var ext = _step.value;
|
|
140
|
+
var maybeMatch = path.join(pwd, "".concat(AGGRED_DIR.mock, "/index").concat(ext));
|
|
141
|
+
if (fs.existsSync(maybeMatch)) {
|
|
142
|
+
filepath = maybeMatch;
|
|
143
|
+
break;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
} catch (err) {
|
|
147
|
+
_didIteratorError = true;
|
|
148
|
+
_iteratorError = err;
|
|
149
|
+
} finally{
|
|
150
|
+
try {
|
|
151
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
152
|
+
_iterator.return();
|
|
153
|
+
}
|
|
154
|
+
} finally{
|
|
155
|
+
if (_didIteratorError) {
|
|
156
|
+
throw _iteratorError;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
if (!filepath) {
|
|
161
|
+
return null;
|
|
162
|
+
}
|
|
163
|
+
var apiList = getMockData(filepath);
|
|
164
|
+
if (!apiList || apiList.length === 0) {
|
|
165
|
+
return null;
|
|
166
|
+
}
|
|
167
|
+
return function() {
|
|
168
|
+
var _ref = _asyncToGenerator(function(context, next) {
|
|
169
|
+
var res, matched;
|
|
170
|
+
return __generator(this, function(_state) {
|
|
171
|
+
res = context.res;
|
|
172
|
+
matched = getMatched(context, apiList);
|
|
173
|
+
if (!matched) {
|
|
174
|
+
return [
|
|
175
|
+
2,
|
|
176
|
+
next()
|
|
177
|
+
];
|
|
178
|
+
}
|
|
179
|
+
res.setHeader("Access-Control-Allow-Origin", "*");
|
|
180
|
+
return [
|
|
181
|
+
2,
|
|
182
|
+
matched.handler(context, next)
|
|
183
|
+
];
|
|
184
|
+
});
|
|
185
|
+
});
|
|
186
|
+
return function(context, next) {
|
|
187
|
+
return _ref.apply(this, arguments);
|
|
188
|
+
};
|
|
189
|
+
}();
|
|
190
|
+
};
|
|
191
|
+
export { createMockHandler };
|