@modern-js/plugin-express 2.0.0-beta.3 → 2.0.0-beta.6
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 +89 -0
- package/dist/js/modern/cli/index.js +28 -21
- package/dist/js/modern/context.js +4 -4
- package/dist/js/modern/index.js +4 -1
- package/dist/js/modern/plugin.js +114 -104
- package/dist/js/modern/registerRoutes.js +7 -8
- package/dist/js/modern/runtime/hook.js +4 -1
- package/dist/js/modern/runtime/index.js +8 -4
- package/dist/js/modern/runtime/operators.js +55 -41
- package/dist/js/modern/utils.js +75 -42
- package/dist/js/node/cli/index.js +54 -29
- package/dist/js/node/context.js +27 -10
- package/dist/js/node/index.js +33 -22
- package/dist/js/node/plugin.js +148 -121
- package/dist/js/node/registerRoutes.js +29 -16
- package/dist/js/node/runtime/hook.js +26 -7
- package/dist/js/node/runtime/index.js +29 -43
- package/dist/js/node/runtime/operators.js +79 -48
- package/dist/js/node/utils.js +110 -58
- package/dist/js/treeshaking/cli/index.js +58 -0
- package/dist/js/treeshaking/context.js +3 -0
- package/dist/js/treeshaking/index.js +4 -0
- package/dist/js/treeshaking/plugin.js +379 -0
- package/dist/js/treeshaking/registerRoutes.js +17 -0
- package/dist/js/treeshaking/runtime/hook.js +4 -0
- package/dist/js/treeshaking/runtime/index.js +5 -0
- package/dist/js/treeshaking/runtime/operators.js +197 -0
- package/dist/js/treeshaking/utils.js +514 -0
- package/dist/types/cli/index.d.ts +4 -1
- package/dist/types/plugin.d.ts +2 -0
- package/package.json +22 -22
- package/types.d.ts +2 -0
|
@@ -0,0 +1,379 @@
|
|
|
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 * as path from "path";
|
|
126
|
+
import express from "express";
|
|
127
|
+
import cookieParser from "cookie-parser";
|
|
128
|
+
import { fs, createDebugger, compatRequire } from "@modern-js/utils";
|
|
129
|
+
import finalhandler from "finalhandler";
|
|
130
|
+
import { run } from "./context";
|
|
131
|
+
import registerRoutes from "./registerRoutes";
|
|
132
|
+
var debug = createDebugger("express");
|
|
133
|
+
var findAppModule = function() {
|
|
134
|
+
var _ref = _asyncToGenerator(function(apiDir) {
|
|
135
|
+
var exts, paths, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, filename, err;
|
|
136
|
+
return __generator(this, function(_state) {
|
|
137
|
+
switch(_state.label){
|
|
138
|
+
case 0:
|
|
139
|
+
exts = [
|
|
140
|
+
".ts",
|
|
141
|
+
".js"
|
|
142
|
+
];
|
|
143
|
+
paths = exts.map(function(ext) {
|
|
144
|
+
return path.resolve(apiDir, "app".concat(ext));
|
|
145
|
+
});
|
|
146
|
+
_iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
147
|
+
_state.label = 1;
|
|
148
|
+
case 1:
|
|
149
|
+
_state.trys.push([
|
|
150
|
+
1,
|
|
151
|
+
6,
|
|
152
|
+
7,
|
|
153
|
+
8
|
|
154
|
+
]);
|
|
155
|
+
_iterator = paths[Symbol.iterator]();
|
|
156
|
+
_state.label = 2;
|
|
157
|
+
case 2:
|
|
158
|
+
if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
|
|
159
|
+
3,
|
|
160
|
+
5
|
|
161
|
+
];
|
|
162
|
+
filename = _step.value;
|
|
163
|
+
return [
|
|
164
|
+
4,
|
|
165
|
+
fs.pathExists(filename)
|
|
166
|
+
];
|
|
167
|
+
case 3:
|
|
168
|
+
if (_state.sent()) {
|
|
169
|
+
delete require.cache[filename];
|
|
170
|
+
return [
|
|
171
|
+
2,
|
|
172
|
+
[
|
|
173
|
+
compatRequire(filename),
|
|
174
|
+
require(filename)
|
|
175
|
+
]
|
|
176
|
+
];
|
|
177
|
+
}
|
|
178
|
+
_state.label = 4;
|
|
179
|
+
case 4:
|
|
180
|
+
_iteratorNormalCompletion = true;
|
|
181
|
+
return [
|
|
182
|
+
3,
|
|
183
|
+
2
|
|
184
|
+
];
|
|
185
|
+
case 5:
|
|
186
|
+
return [
|
|
187
|
+
3,
|
|
188
|
+
8
|
|
189
|
+
];
|
|
190
|
+
case 6:
|
|
191
|
+
err = _state.sent();
|
|
192
|
+
_didIteratorError = true;
|
|
193
|
+
_iteratorError = err;
|
|
194
|
+
return [
|
|
195
|
+
3,
|
|
196
|
+
8
|
|
197
|
+
];
|
|
198
|
+
case 7:
|
|
199
|
+
try {
|
|
200
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
201
|
+
_iterator.return();
|
|
202
|
+
}
|
|
203
|
+
} finally{
|
|
204
|
+
if (_didIteratorError) {
|
|
205
|
+
throw _iteratorError;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
return [
|
|
209
|
+
7
|
|
210
|
+
];
|
|
211
|
+
case 8:
|
|
212
|
+
return [
|
|
213
|
+
2,
|
|
214
|
+
[]
|
|
215
|
+
];
|
|
216
|
+
}
|
|
217
|
+
});
|
|
218
|
+
});
|
|
219
|
+
return function findAppModule(apiDir) {
|
|
220
|
+
return _ref.apply(this, arguments);
|
|
221
|
+
};
|
|
222
|
+
}();
|
|
223
|
+
var initMiddlewares = function(middleware, app) {
|
|
224
|
+
middleware.forEach(function(middlewareItem) {
|
|
225
|
+
var middlewareFunc = typeof middlewareItem === "string" ? compatRequire(middlewareItem) : middlewareItem;
|
|
226
|
+
app.use(middlewareFunc);
|
|
227
|
+
});
|
|
228
|
+
};
|
|
229
|
+
var useRun = function(app) {
|
|
230
|
+
app.use(function(req, res, next) {
|
|
231
|
+
run({
|
|
232
|
+
req: req,
|
|
233
|
+
res: res
|
|
234
|
+
}, next);
|
|
235
|
+
});
|
|
236
|
+
};
|
|
237
|
+
var initApp = function(app) {
|
|
238
|
+
app.use(cookieParser());
|
|
239
|
+
app.use(express.text());
|
|
240
|
+
app.use(express.urlencoded({
|
|
241
|
+
extended: true
|
|
242
|
+
}));
|
|
243
|
+
app.use(express.json());
|
|
244
|
+
return app;
|
|
245
|
+
};
|
|
246
|
+
var plugin_default = function() {
|
|
247
|
+
return {
|
|
248
|
+
name: "@modern-js/plugin-express",
|
|
249
|
+
pre: [
|
|
250
|
+
"@modern-js/plugin-bff"
|
|
251
|
+
],
|
|
252
|
+
post: [
|
|
253
|
+
"@modern-js/plugin-server"
|
|
254
|
+
],
|
|
255
|
+
setup: function(api) {
|
|
256
|
+
return {
|
|
257
|
+
prepareApiServer: function prepareApiServer(param) {
|
|
258
|
+
var pwd = param.pwd, config = param.config;
|
|
259
|
+
return _asyncToGenerator(function() {
|
|
260
|
+
var app, apiDir, appContext, apiHandlerInfos, mode, appModule, hooks, middleware, afterLambdaRegisted, middleware1;
|
|
261
|
+
return __generator(this, function(_state) {
|
|
262
|
+
switch(_state.label){
|
|
263
|
+
case 0:
|
|
264
|
+
apiDir = path.join(pwd, "./api");
|
|
265
|
+
appContext = api.useAppContext();
|
|
266
|
+
apiHandlerInfos = appContext.apiHandlerInfos;
|
|
267
|
+
mode = appContext.apiMode;
|
|
268
|
+
if (!(mode === "framework")) return [
|
|
269
|
+
3,
|
|
270
|
+
2
|
|
271
|
+
];
|
|
272
|
+
return [
|
|
273
|
+
4,
|
|
274
|
+
findAppModule(apiDir)
|
|
275
|
+
];
|
|
276
|
+
case 1:
|
|
277
|
+
appModule = _state.sent();
|
|
278
|
+
app = appModule[0];
|
|
279
|
+
hooks = appModule[1];
|
|
280
|
+
if (!app || !app.use) {
|
|
281
|
+
app = express();
|
|
282
|
+
}
|
|
283
|
+
initApp(app);
|
|
284
|
+
if (config) {
|
|
285
|
+
middleware = config.middleware;
|
|
286
|
+
initMiddlewares(middleware, app);
|
|
287
|
+
}
|
|
288
|
+
useRun(app);
|
|
289
|
+
registerRoutes(app, apiHandlerInfos);
|
|
290
|
+
if (hooks) {
|
|
291
|
+
afterLambdaRegisted = hooks.afterLambdaRegisted;
|
|
292
|
+
if (afterLambdaRegisted) {
|
|
293
|
+
afterLambdaRegisted(app);
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
return [
|
|
297
|
+
3,
|
|
298
|
+
3
|
|
299
|
+
];
|
|
300
|
+
case 2:
|
|
301
|
+
if (mode === "function") {
|
|
302
|
+
app = express();
|
|
303
|
+
initApp(app);
|
|
304
|
+
if (config) {
|
|
305
|
+
middleware1 = config.middleware;
|
|
306
|
+
initMiddlewares(middleware1, app);
|
|
307
|
+
}
|
|
308
|
+
useRun(app);
|
|
309
|
+
registerRoutes(app, apiHandlerInfos);
|
|
310
|
+
} else {
|
|
311
|
+
throw new Error("mode must be function or framework");
|
|
312
|
+
}
|
|
313
|
+
_state.label = 3;
|
|
314
|
+
case 3:
|
|
315
|
+
return [
|
|
316
|
+
2,
|
|
317
|
+
function(req, res) {
|
|
318
|
+
return new Promise(function(resolve, reject) {
|
|
319
|
+
var handler = function(err) {
|
|
320
|
+
if (err) {
|
|
321
|
+
return reject(err);
|
|
322
|
+
}
|
|
323
|
+
return finalhandler(req, res, {})(null);
|
|
324
|
+
};
|
|
325
|
+
res.on("finish", function(err) {
|
|
326
|
+
if (err) {
|
|
327
|
+
return reject(err);
|
|
328
|
+
}
|
|
329
|
+
return resolve();
|
|
330
|
+
});
|
|
331
|
+
return app(req, res, handler);
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
];
|
|
335
|
+
}
|
|
336
|
+
});
|
|
337
|
+
})();
|
|
338
|
+
},
|
|
339
|
+
prepareWebServer: function prepareWebServer(param, next) {
|
|
340
|
+
var config = param.config;
|
|
341
|
+
var ref;
|
|
342
|
+
var userConfig = api.useConfigContext();
|
|
343
|
+
if (userConfig === null || userConfig === void 0 ? void 0 : (ref = userConfig.server) === null || ref === void 0 ? void 0 : ref.disableFrameworkExt) {
|
|
344
|
+
return next();
|
|
345
|
+
}
|
|
346
|
+
var app = express();
|
|
347
|
+
initApp(app);
|
|
348
|
+
if (config) {
|
|
349
|
+
var middleware = config.middleware;
|
|
350
|
+
debug("web middleware", middleware);
|
|
351
|
+
initMiddlewares(middleware, app);
|
|
352
|
+
}
|
|
353
|
+
return function(ctx) {
|
|
354
|
+
return new Promise(function(resolve, reject) {
|
|
355
|
+
var _source = ctx.source, req = _source.req, res = _source.res;
|
|
356
|
+
var handler = function(err) {
|
|
357
|
+
if (err) {
|
|
358
|
+
return reject(err);
|
|
359
|
+
}
|
|
360
|
+
if (res.headersSent && res.statusCode !== 200) {
|
|
361
|
+
finalhandler(req, res, {})(null);
|
|
362
|
+
}
|
|
363
|
+
return resolve();
|
|
364
|
+
};
|
|
365
|
+
res.on("finish", function(err) {
|
|
366
|
+
if (err) {
|
|
367
|
+
return reject(err);
|
|
368
|
+
}
|
|
369
|
+
return resolve();
|
|
370
|
+
});
|
|
371
|
+
return app(req, res, handler);
|
|
372
|
+
});
|
|
373
|
+
};
|
|
374
|
+
}
|
|
375
|
+
};
|
|
376
|
+
}
|
|
377
|
+
};
|
|
378
|
+
};
|
|
379
|
+
export { plugin_default as default };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import "reflect-metadata";
|
|
2
|
+
import { createRouteHandler } from "./utils";
|
|
3
|
+
var registerRoutes = function(app, handlerInfos) {
|
|
4
|
+
handlerInfos.forEach(function(param) {
|
|
5
|
+
var routePath = param.routePath, handler = param.handler, httpMethod = param.httpMethod;
|
|
6
|
+
var routeHandler = createRouteHandler(handler);
|
|
7
|
+
var method = httpMethod.toLowerCase();
|
|
8
|
+
var routeMiddlwares = Reflect.getMetadata("middleware", handler) || [];
|
|
9
|
+
if (routeMiddlwares.length > 0) {
|
|
10
|
+
app[method](routePath, routeMiddlwares, routeHandler);
|
|
11
|
+
} else {
|
|
12
|
+
app[method](routePath, routeHandler);
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
var registerRoutes_default = registerRoutes;
|
|
17
|
+
export { registerRoutes_default as default };
|
|
@@ -0,0 +1,197 @@
|
|
|
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 { useContext } from "../context";
|
|
126
|
+
var Pipe = function(func) {
|
|
127
|
+
return {
|
|
128
|
+
name: "pipe",
|
|
129
|
+
execute: function execute(executeHelper, next) {
|
|
130
|
+
return _asyncToGenerator(function() {
|
|
131
|
+
var inputs, ctx, res, isPiped, end, output;
|
|
132
|
+
return __generator(this, function(_state) {
|
|
133
|
+
switch(_state.label){
|
|
134
|
+
case 0:
|
|
135
|
+
inputs = executeHelper.inputs;
|
|
136
|
+
ctx = useContext();
|
|
137
|
+
res = ctx.res;
|
|
138
|
+
if (!(typeof func === "function")) return [
|
|
139
|
+
3,
|
|
140
|
+
3
|
|
141
|
+
];
|
|
142
|
+
isPiped = true;
|
|
143
|
+
end = function(value) {
|
|
144
|
+
isPiped = false;
|
|
145
|
+
if (typeof value === "function") {
|
|
146
|
+
value(res);
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
return value;
|
|
150
|
+
};
|
|
151
|
+
return [
|
|
152
|
+
4,
|
|
153
|
+
func(inputs, end)
|
|
154
|
+
];
|
|
155
|
+
case 1:
|
|
156
|
+
output = _state.sent();
|
|
157
|
+
if (!isPiped) {
|
|
158
|
+
if (output) {
|
|
159
|
+
return [
|
|
160
|
+
2,
|
|
161
|
+
executeHelper.result = output
|
|
162
|
+
];
|
|
163
|
+
} else {
|
|
164
|
+
return [
|
|
165
|
+
2
|
|
166
|
+
];
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
executeHelper.inputs = output;
|
|
170
|
+
return [
|
|
171
|
+
4,
|
|
172
|
+
next()
|
|
173
|
+
];
|
|
174
|
+
case 2:
|
|
175
|
+
_state.sent();
|
|
176
|
+
_state.label = 3;
|
|
177
|
+
case 3:
|
|
178
|
+
return [
|
|
179
|
+
2
|
|
180
|
+
];
|
|
181
|
+
}
|
|
182
|
+
});
|
|
183
|
+
})();
|
|
184
|
+
}
|
|
185
|
+
};
|
|
186
|
+
};
|
|
187
|
+
var Middleware = function(middleware) {
|
|
188
|
+
return {
|
|
189
|
+
name: "middleware",
|
|
190
|
+
metadata: function metadata(helper) {
|
|
191
|
+
var middlewares = helper.getMetadata("pipe") || [];
|
|
192
|
+
middlewares.push(middleware);
|
|
193
|
+
helper.setMetadata("middleware", middlewares);
|
|
194
|
+
}
|
|
195
|
+
};
|
|
196
|
+
};
|
|
197
|
+
export { Middleware, Pipe };
|