@anansi/core 0.3.1 → 0.4.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 +15 -0
- package/lib/floodSpouts.js +1 -1
- package/lib/laySpouts.d.ts.map +1 -1
- package/lib/laySpouts.js +2 -2
- package/lib/scripts/startDevserver.d.ts.map +1 -1
- package/lib/scripts/startDevserver.js +75 -56
- package/lib/spouts/restHooks.js +1 -1
- package/lib/spouts/restHooks.server.js +1 -1
- package/lib/spouts/router.js +1 -1
- package/lib/spouts/router.server.js +1 -1
- package/package.json +10 -7
- package/src/laySpouts.tsx +1 -1
- package/src/scripts/startDevserver.ts +82 -53
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,21 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [0.4.0](https://github.com/ntucker/anansi/compare/@anansi/core@0.3.1...@anansi/core@0.4.0) (2022-05-17)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### 🚀 Features
|
|
10
|
+
|
|
11
|
+
* SSR uses webpack devserver and responds to code changes ([#1504](https://github.com/ntucker/anansi/issues/1504)) ([25803a5](https://github.com/ntucker/anansi/commit/25803a5b49316c7e73846efbe774d5cbe3eb28a3))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### 📦 Package
|
|
15
|
+
|
|
16
|
+
* Update babel monorepo to v7.17.12 ([#1505](https://github.com/ntucker/anansi/issues/1505)) ([cdf449c](https://github.com/ntucker/anansi/commit/cdf449c234da377c6968847a500ef77d7340c5bb))
|
|
17
|
+
* Update jest monorepo to ^28.1.0 ([#1493](https://github.com/ntucker/anansi/issues/1493)) ([7cc9df4](https://github.com/ntucker/anansi/commit/7cc9df4a439a0743bf243a5ad8393c62c067aa44))
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
6
21
|
### [0.3.1](https://github.com/ntucker/anansi/compare/@anansi/core@0.3.0...@anansi/core@0.3.1) (2022-05-04)
|
|
7
22
|
|
|
8
23
|
|
package/lib/floodSpouts.js
CHANGED
|
@@ -11,4 +11,4 @@ async function floodSpouts(spouts) {
|
|
|
11
11
|
} = await spouts();
|
|
12
12
|
(0, _client.hydrateRoot)(document, app);
|
|
13
13
|
}
|
|
14
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmbG9vZFNwb3V0cyIsInNwb3V0cyIsImFwcCIsImh5ZHJhdGVSb290IiwiZG9jdW1lbnQiXSwic291cmNlcyI6WyIuLi9zcmMvZmxvb2RTcG91dHMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGh5ZHJhdGVSb290IH0gZnJvbSAncmVhY3QtZG9tL2NsaWVudCc7XG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIGZsb29kU3BvdXRzKFxuICBzcG91dHM6ICgpID0+IFByb21pc2U8e1xuICAgIGFwcDogSlNYLkVsZW1lbnQ7XG4gIH0+LFxuKSB7XG4gIGNvbnN0IHsgYXBwIH0gPSBhd2FpdCBzcG91dHMoKTtcblxuICBoeWRyYXRlUm9vdChkb2N1bWVudCwgYXBwKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7QUFFZSxlQUFlQSxXQUFmLENBQ2JDLE1BRGEsRUFJYjtFQUNBLE1BQU07SUFBRUM7RUFBRixJQUFVLE1BQU1ELE1BQU0sRUFBNUI7RUFFQSxJQUFBRSxtQkFBQSxFQUFZQyxRQUFaLEVBQXNCRixHQUF0QjtBQUNEIn0=
|
package/lib/laySpouts.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"laySpouts.d.ts","sourceRoot":"","sources":["../src/laySpouts.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,MAAM,CAAC,OAAO,UAAU,SAAS,CAC/B,MAAM,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,CAAC;IACtC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC;CAClB,CAAC,EACF,EAAE,
|
|
1
|
+
{"version":3,"file":"laySpouts.d.ts","sourceRoot":"","sources":["../src/laySpouts.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,MAAM,CAAC,OAAO,UAAU,SAAS,CAC/B,MAAM,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,CAAC;IACtC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC;CAClB,CAAC,EACF,EAAE,SAAe,EAAE,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,UAkDjD"}
|
package/lib/laySpouts.js
CHANGED
|
@@ -6,7 +6,7 @@ exports.default = laySpouts;
|
|
|
6
6
|
var _server = require("react-dom/server");
|
|
7
7
|
|
|
8
8
|
function laySpouts(spouts, {
|
|
9
|
-
timeoutMS =
|
|
9
|
+
timeoutMS = 100
|
|
10
10
|
} = {}) {
|
|
11
11
|
const render = async (clientManifest, req, res) => {
|
|
12
12
|
const {
|
|
@@ -68,4 +68,4 @@ function laySpouts(spouts, {
|
|
|
68
68
|
|
|
69
69
|
return render;
|
|
70
70
|
}
|
|
71
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJsYXlTcG91dHMiLCJzcG91dHMiLCJ0aW1lb3V0TVMiLCJyZW5kZXIiLCJjbGllbnRNYW5pZmVzdCIsInJlcSIsInJlcyIsImFwcCIsImRpZEVycm9yIiwicGlwZSIsImFib3J0IiwicmVhY3RSZW5kZXIiLCJvblNoZWxsUmVhZHkiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwib25TaGVsbEVycm9yIiwib25FcnJvciIsIngiLCJjb25zb2xlIiwiZXJyb3IiLCJzZXRUaW1lb3V0Il0sInNvdXJjZXMiOlsiLi4vc3JjL2xheVNwb3V0cy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyVG9QaXBlYWJsZVN0cmVhbSBhcyByZWFjdFJlbmRlciB9IGZyb20gJ3JlYWN0LWRvbS9zZXJ2ZXInO1xuXG5pbXBvcnQgeyBSZW5kZXIgfSBmcm9tICcuL3NjcmlwdHMvdHlwZXMnO1xuaW1wb3J0IHsgU2VydmVyUHJvcHMgfSBmcm9tICcuL3Nwb3V0cy90eXBlcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGxheVNwb3V0cyhcbiAgc3BvdXRzOiAocHJvcHM6IFNlcnZlclByb3BzKSA9PiBQcm9taXNlPHtcbiAgICBhcHA6IEpTWC5FbGVtZW50O1xuICB9PixcbiAgeyB0aW1lb3V0TVMgPSAxMDAgfTogeyB0aW1lb3V0TVM/OiBudW1iZXIgfSA9IHt9LFxuKSB7XG4gIGNvbnN0IHJlbmRlcjogUmVuZGVyID0gYXN5bmMgKGNsaWVudE1hbmlmZXN0LCByZXEsIHJlcykgPT4ge1xuICAgIGNvbnN0IHsgYXBwIH0gPSBhd2FpdCBzcG91dHMoeyBjbGllbnRNYW5pZmVzdCwgcmVxLCByZXMgfSk7XG4gICAgbGV0IGRpZEVycm9yID0gZmFsc2U7XG4gICAgY29uc3QgeyBwaXBlLCBhYm9ydCB9ID0gcmVhY3RSZW5kZXIoXG4gICAgICBhcHAsXG4gICAgICAvKlxuICAgICAgVGhpcyBpcyBub3QgZG9jdW1lbnRlZCwgc28gaW5jbHVkZWQgdGhlIHR5cGVzIGhlcmUgZm9yIHJlZmVyZW5jZTpcbnR5cGUgT3B0aW9ucyA9IHt8XG4gIGlkZW50aWZpZXJQcmVmaXg/OiBzdHJpbmcsXG4gIG5hbWVzcGFjZVVSST86IHN0cmluZyxcbiAgbm9uY2U/OiBzdHJpbmcsXG4gIGJvb3RzdHJhcFNjcmlwdENvbnRlbnQ/OiBzdHJpbmcsXG4gIGJvb3RzdHJhcFNjcmlwdHM/OiBBcnJheTxzdHJpbmc+LFxuICBib290c3RyYXBNb2R1bGVzPzogQXJyYXk8c3RyaW5nPixcbiAgcHJvZ3Jlc3NpdmVDaHVua1NpemU/OiBudW1iZXIsXG4gIG9uU2hlbGxSZWFkeT86ICgpID0+IHZvaWQsXG4gIG9uU2hlbGxFcnJvcj86ICgpID0+IHZvaWQsXG4gIG9uQWxsUmVhZHk/OiAoKSA9PiB2b2lkLFxuICBvbkVycm9yPzogKGVycm9yOiBtaXhlZCkgPT4gdm9pZCxcbnx9O1xuICAqL1xuICAgICAge1xuICAgICAgICAvL2Jvb3RzdHJhcFNjcmlwdHM6IGFzc2V0cy5maWx0ZXIoYXNzZXQgPT4gYXNzZXQuZW5kc1dpdGgoJy5qcycpKSxcbiAgICAgICAgb25TaGVsbFJlYWR5KCkge1xuICAgICAgICAgIC8vbWFuYWdlcnMuZm9yRWFjaChtYW5hZ2VyID0+IG1hbmFnZXIuY2xlYW51cCgpKTtcbiAgICAgICAgICAvLyBJZiBzb21ldGhpbmcgZXJyb3JlZCBiZWZvcmUgd2Ugc3RhcnRlZCBzdHJlYW1pbmcsIHdlIHNldCB0aGUgZXJyb3IgY29kZSBhcHByb3ByaWF0ZWx5LlxuICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gZGlkRXJyb3IgPyA1MDAgOiAyMDA7XG4gICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC10eXBlJywgJ3RleHQvaHRtbCcpO1xuICAgICAgICAgIHBpcGUocmVzKTtcbiAgICAgICAgfSxcbiAgICAgICAgb25TaGVsbEVycm9yKCkge1xuICAgICAgICAgIGRpZEVycm9yID0gdHJ1ZTtcbiAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcbiAgICAgICAgICBwaXBlKHJlcyk7XG4gICAgICAgIH0sXG4gICAgICAgIG9uRXJyb3IoeDogYW55KSB7XG4gICAgICAgICAgZGlkRXJyb3IgPSB0cnVlO1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoeCk7XG4gICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA1MDA7XG4gICAgICAgICAgcGlwZShyZXMpO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICApO1xuICAgIC8vIEFiYW5kb24gYW5kIHN3aXRjaCB0byBjbGllbnQgcmVuZGVyaW5nIGlmIGVub3VnaCB0aW1lIHBhc3Nlcy5cbiAgICAvLyBUcnkgbG93ZXJpbmcgdGhpcyB0byBzZWUgdGhlIGNsaWVudCByZWNvdmVyLlxuICAgIHNldFRpbWVvdXQoYWJvcnQsIHRpbWVvdXRNUyk7XG4gIH07XG4gIHJldHVybiByZW5kZXI7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7O0FBS2UsU0FBU0EsU0FBVCxDQUNiQyxNQURhLEVBSWI7RUFBRUMsU0FBUyxHQUFHO0FBQWQsSUFBOEMsRUFKakMsRUFLYjtFQUNBLE1BQU1DLE1BQWMsR0FBRyxPQUFPQyxjQUFQLEVBQXVCQyxHQUF2QixFQUE0QkMsR0FBNUIsS0FBb0M7SUFDekQsTUFBTTtNQUFFQztJQUFGLElBQVUsTUFBTU4sTUFBTSxDQUFDO01BQUVHLGNBQUY7TUFBa0JDLEdBQWxCO01BQXVCQztJQUF2QixDQUFELENBQTVCO0lBQ0EsSUFBSUUsUUFBUSxHQUFHLEtBQWY7SUFDQSxNQUFNO01BQUVDLElBQUY7TUFBUUM7SUFBUixJQUFrQixJQUFBQyw4QkFBQSxFQUN0QkosR0FEc0I7SUFFdEI7QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFDTTtNQUNFO01BQ0FLLFlBQVksR0FBRztRQUNiO1FBQ0E7UUFDQU4sR0FBRyxDQUFDTyxVQUFKLEdBQWlCTCxRQUFRLEdBQUcsR0FBSCxHQUFTLEdBQWxDO1FBQ0FGLEdBQUcsQ0FBQ1EsU0FBSixDQUFjLGNBQWQsRUFBOEIsV0FBOUI7UUFDQUwsSUFBSSxDQUFDSCxHQUFELENBQUo7TUFDRCxDQVJIOztNQVNFUyxZQUFZLEdBQUc7UUFDYlAsUUFBUSxHQUFHLElBQVg7UUFDQUYsR0FBRyxDQUFDTyxVQUFKLEdBQWlCLEdBQWpCO1FBQ0FKLElBQUksQ0FBQ0gsR0FBRCxDQUFKO01BQ0QsQ0FiSDs7TUFjRVUsT0FBTyxDQUFDQyxDQUFELEVBQVM7UUFDZFQsUUFBUSxHQUFHLElBQVg7UUFDQVUsT0FBTyxDQUFDQyxLQUFSLENBQWNGLENBQWQ7UUFDQVgsR0FBRyxDQUFDTyxVQUFKLEdBQWlCLEdBQWpCO1FBQ0FKLElBQUksQ0FBQ0gsR0FBRCxDQUFKO01BQ0Q7O0lBbkJILENBbEJzQixDQUF4QixDQUh5RCxDQTJDekQ7SUFDQTs7SUFDQWMsVUFBVSxDQUFDVixLQUFELEVBQVFSLFNBQVIsQ0FBVjtFQUNELENBOUNEOztFQStDQSxPQUFPQyxNQUFQO0FBQ0QifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startDevserver.d.ts","sourceRoot":"","sources":["../../src/scripts/startDevserver.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"startDevserver.d.ts","sourceRoot":"","sources":["../../src/scripts/startDevserver.ts"],"names":[],"mappings":";AAmBA,OAAO,sBAAsB,CAAC"}
|
|
@@ -11,8 +11,6 @@ var _path = _interopRequireDefault(require("path"));
|
|
|
11
11
|
|
|
12
12
|
var _webpack = _interopRequireDefault(require("webpack"));
|
|
13
13
|
|
|
14
|
-
var _webpackHotMiddleware = _interopRequireDefault(require("webpack-hot-middleware"));
|
|
15
|
-
|
|
16
14
|
var _memfs = require("memfs");
|
|
17
15
|
|
|
18
16
|
var _express = _interopRequireDefault(require("express"));
|
|
@@ -29,8 +27,16 @@ var _unionfs = require("unionfs");
|
|
|
29
27
|
|
|
30
28
|
var _compression = _interopRequireDefault(require("compression"));
|
|
31
29
|
|
|
30
|
+
var _webpackDevServer = _interopRequireDefault(require("webpack-dev-server"));
|
|
31
|
+
|
|
32
|
+
var _importFresh = _interopRequireDefault(require("import-fresh"));
|
|
33
|
+
|
|
34
|
+
var _chalk = _interopRequireDefault(require("chalk"));
|
|
35
|
+
|
|
32
36
|
require("cross-fetch/polyfill");
|
|
33
37
|
|
|
38
|
+
var _webpackConfigs$, _webpackConfigs$$devS;
|
|
39
|
+
|
|
34
40
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
35
41
|
const webpackConfig = require(require.resolve( // TODO: use normal resolution algorithm to find webpack file
|
|
36
42
|
_path.default.join(process.cwd(), 'webpack.config')));
|
|
@@ -45,7 +51,8 @@ if (!entrypoint) {
|
|
|
45
51
|
process.exit(-1);
|
|
46
52
|
}
|
|
47
53
|
|
|
48
|
-
|
|
54
|
+
console.log(_chalk.default.greenBright(`Starting SSR at`), _chalk.default.cyanBright(process.env.WEBPACK_PUBLIC_HOST));
|
|
55
|
+
const loader = (0, _ora.default)().start(); // Set up in memory filesystem
|
|
49
56
|
|
|
50
57
|
const volume = new _memfs.Volume();
|
|
51
58
|
const fs = (0, _memfs.createFsFromVolume)(volume);
|
|
@@ -82,17 +89,18 @@ const webpackConfigs = [webpackConfig({
|
|
|
82
89
|
}, {
|
|
83
90
|
mode: 'development'
|
|
84
91
|
}), webpackConfig({
|
|
85
|
-
entrypoint:
|
|
92
|
+
entrypoint: entrypoint.replace('.tsx', '.server.tsx'),
|
|
86
93
|
name: 'server'
|
|
87
94
|
}, {
|
|
88
95
|
mode: 'development',
|
|
89
96
|
target: 'node'
|
|
90
|
-
})]; //
|
|
97
|
+
})]; // only have one output for server so we can avoid cached modules
|
|
98
|
+
|
|
99
|
+
webpackConfigs[1].plugins.push(new _webpack.default.optimize.LimitChunkCountPlugin({
|
|
100
|
+
maxChunks: 1
|
|
101
|
+
})); // initialize the webpack compiler
|
|
91
102
|
|
|
92
103
|
const compiler = (0, _webpack.default)(webpackConfigs);
|
|
93
|
-
compiler.outputFileSystem = { ...fs,
|
|
94
|
-
join: _path.default.join
|
|
95
|
-
};
|
|
96
104
|
|
|
97
105
|
_sourceMapSupport.default.install({
|
|
98
106
|
hookRequire: true
|
|
@@ -115,20 +123,22 @@ function handleErrors(fn) {
|
|
|
115
123
|
next(x);
|
|
116
124
|
}
|
|
117
125
|
};
|
|
118
|
-
}
|
|
126
|
+
}
|
|
119
127
|
|
|
128
|
+
let render; // Start the express server after the first compilation
|
|
120
129
|
|
|
121
130
|
function initializeApp(stats) {
|
|
122
131
|
var _clientStats$compilat, _clientStats$compilat2, _serverStats$compilat, _serverStats$compilat2;
|
|
123
132
|
|
|
124
|
-
loader.info('Launching server');
|
|
125
133
|
const [clientStats, serverStats] = stats;
|
|
126
134
|
|
|
127
135
|
if (clientStats !== null && clientStats !== void 0 && (_clientStats$compilat = clientStats.compilation) !== null && _clientStats$compilat !== void 0 && (_clientStats$compilat2 = _clientStats$compilat.errors) !== null && _clientStats$compilat2 !== void 0 && _clientStats$compilat2.length || serverStats !== null && serverStats !== void 0 && (_serverStats$compilat = serverStats.compilation) !== null && _serverStats$compilat !== void 0 && (_serverStats$compilat2 = _serverStats$compilat.errors) !== null && _serverStats$compilat2 !== void 0 && _serverStats$compilat2.length) {
|
|
128
|
-
|
|
129
|
-
|
|
136
|
+
loader.fail('Errors for client build: ' + clientStats.compilation.errors);
|
|
137
|
+
loader.fail('Errors for server build: ' + serverStats.compilation.errors); // TODO: handle more gracefully
|
|
130
138
|
|
|
131
139
|
process.exit(-1);
|
|
140
|
+
} else {
|
|
141
|
+
loader.info('Launching server');
|
|
132
142
|
}
|
|
133
143
|
|
|
134
144
|
const wrappingApp = (0, _express.default)(); // eslint-disable-next-line
|
|
@@ -136,19 +146,12 @@ function initializeApp(stats) {
|
|
|
136
146
|
|
|
137
147
|
wrappingApp.use((0, _compression.default)()); // ASSETS
|
|
138
148
|
|
|
139
|
-
wrappingApp.use((0, _webpackHotMiddleware.default)(compiler.compilers[0], {
|
|
140
|
-
log: console.log,
|
|
141
|
-
path: '/__webpack_hmr',
|
|
142
|
-
heartbeat: 10 * 1000 //noInfo: true,
|
|
143
|
-
//name: 'client',
|
|
144
|
-
|
|
145
|
-
}));
|
|
146
149
|
const clientManifest = clientStats.toJson();
|
|
147
150
|
|
|
148
151
|
const assetRoute = async (req, res) => {
|
|
149
|
-
var _req$url$
|
|
152
|
+
var _req$url$substring$sp, _req$url, _clientManifest$outpu;
|
|
150
153
|
|
|
151
|
-
const filename = (_req$url$
|
|
154
|
+
const filename = (_req$url$substring$sp = (_req$url = req.url) === null || _req$url === void 0 ? void 0 : _req$url.substring(process.env.WEBPACK_PUBLIC_PATH.length).split('?')[0]) != null ? _req$url$substring$sp : '';
|
|
152
155
|
|
|
153
156
|
const assetPath = _path.default.join((_clientManifest$outpu = clientManifest.outputPath) != null ? _clientManifest$outpu : '', filename);
|
|
154
157
|
|
|
@@ -166,8 +169,7 @@ function initializeApp(stats) {
|
|
|
166
169
|
wrappingApp.get(`${process.env.WEBPACK_PUBLIC_PATH}*`, assetRoute); // SERVER SIDE RENDERING
|
|
167
170
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
168
171
|
|
|
169
|
-
|
|
170
|
-
|
|
172
|
+
render = require(getServerBundle(serverStats)).default;
|
|
171
173
|
wrappingApp.get('/*', handleErrors(async function (req, res) {
|
|
172
174
|
if (req.url.endsWith('favicon.ico')) {
|
|
173
175
|
res.statusCode = 404;
|
|
@@ -182,7 +184,7 @@ function initializeApp(stats) {
|
|
|
182
184
|
await render(clientManifest, req, res);
|
|
183
185
|
}));
|
|
184
186
|
server = wrappingApp.listen(PORT, () => {
|
|
185
|
-
|
|
187
|
+
loader.succeed(`SSR Running`);
|
|
186
188
|
}).on('error', function (error) {
|
|
187
189
|
if (error.syscall !== 'listen') {
|
|
188
190
|
throw error;
|
|
@@ -207,44 +209,61 @@ function initializeApp(stats) {
|
|
|
207
209
|
throw error;
|
|
208
210
|
}
|
|
209
211
|
});
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
+
}
|
|
212
213
|
|
|
213
|
-
const
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
214
|
+
const devServer = new _webpackDevServer.default( // write to memory filesystem so we can import
|
|
215
|
+
{ ...webpackConfigs[0].devServer,
|
|
216
|
+
|
|
217
|
+
/*client: {
|
|
218
|
+
...webpackConfigs[0].devServer?.client,
|
|
219
|
+
webSocketURL: {
|
|
220
|
+
...webpackConfigs[0].devServer?.client.webSocketURL,
|
|
221
|
+
port: 8080,
|
|
222
|
+
},
|
|
223
|
+
},*/
|
|
224
|
+
devMiddleware: { ...((_webpackConfigs$ = webpackConfigs[0]) === null || _webpackConfigs$ === void 0 ? void 0 : (_webpackConfigs$$devS = _webpackConfigs$.devServer) === null || _webpackConfigs$$devS === void 0 ? void 0 : _webpackConfigs$$devS.devMiddleware),
|
|
225
|
+
outputFileSystem: { ...fs,
|
|
226
|
+
join: _path.default.join
|
|
227
|
+
}
|
|
217
228
|
}
|
|
229
|
+
}, compiler);
|
|
230
|
+
|
|
231
|
+
const runServer = async () => {
|
|
232
|
+
await devServer.start();
|
|
233
|
+
devServer.compiler.hooks.done.tap('Anansi Server', multiStats => {
|
|
234
|
+
if (!multiStats) {
|
|
235
|
+
loader.fail('stats not send');
|
|
236
|
+
process.exit(-1);
|
|
237
|
+
}
|
|
218
238
|
|
|
219
|
-
|
|
220
|
-
console.error('Error in compilation');
|
|
221
|
-
console.error(err);
|
|
222
|
-
process.exit(-1);
|
|
223
|
-
}
|
|
239
|
+
if (!Object.hasOwn(multiStats, 'stats')) return;
|
|
224
240
|
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
241
|
+
if (server && multiStats.stats.length > 1) {
|
|
242
|
+
render = (0, _importFresh.default)(getServerBundle(multiStats.stats[1])).default;
|
|
243
|
+
return;
|
|
244
|
+
}
|
|
229
245
|
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
|
|
246
|
+
if (!server) {
|
|
247
|
+
try {
|
|
248
|
+
initializeApp(multiStats.stats);
|
|
249
|
+
} catch (e) {
|
|
250
|
+
loader.fail('Failed to initialize app');
|
|
251
|
+
console.error(e);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
});
|
|
255
|
+
};
|
|
256
|
+
|
|
257
|
+
const stopServer = async () => {
|
|
258
|
+
loader.info('Stopping server...');
|
|
259
|
+
await devServer.stop();
|
|
260
|
+
loader.info('Server closed');
|
|
261
|
+
};
|
|
239
262
|
|
|
263
|
+
process.on('SIGINT', () => {
|
|
240
264
|
loader.warn('Received SIGINT, devserver shutting down');
|
|
241
|
-
|
|
242
|
-
(_server = server) === null || _server === void 0 ? void 0 : _server.close(() => {
|
|
243
|
-
loader.info('Server closed');
|
|
244
|
-
});
|
|
245
|
-
watcher.close(() => {
|
|
246
|
-
loader.info('webpack build stopped');
|
|
247
|
-
});
|
|
265
|
+
stopServer();
|
|
248
266
|
process.exit(-1);
|
|
249
267
|
});
|
|
250
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ3ZWJwYWNrQ29uZmlnIiwicmVxdWlyZSIsInJlc29sdmUiLCJwYXRoIiwiam9pbiIsInByb2Nlc3MiLCJjd2QiLCJlbnRyeXBvaW50IiwiYXJndiIsIlBPUlQiLCJlbnYiLCJXRUJQQUNLX1BVQkxJQ19IT1NUIiwiV0VCUEFDS19QVUJMSUNfUEFUSCIsImNvbnNvbGUiLCJsb2ciLCJleGl0IiwibG9hZGVyIiwic3RhcnQiLCJ2b2x1bWUiLCJWb2x1bWUiLCJmcyIsInVmcyIsInVzZSIsImRpc2tGcyIsInJlYWRGaWxlIiwic2VydmVyIiwiaG90RW50cnkiLCJlbnRyeVBhdGgiLCJnZW5lcmF0ZWRFbnRyeXBvaW50IiwidG1wIiwiZmlsZVN5bmMiLCJwb3N0Zml4Iiwid3JpdGVTeW5jIiwiZmQiLCJ3ZWJwYWNrQ29uZmlncyIsIm5hbWUiLCJtb2RlIiwicmVwbGFjZSIsInRhcmdldCIsImNvbXBpbGVyIiwib3V0cHV0RmlsZVN5c3RlbSIsInNvdXJjZU1hcFN1cHBvcnQiLCJpbnN0YWxsIiwiaG9va1JlcXVpcmUiLCJnZXRTZXJ2ZXJCdW5kbGUiLCJzZXJ2ZXJTdGF0cyIsInNlcnZlckpzb24iLCJ0b0pzb24iLCJhc3NldHMiLCJvdXRwdXRQYXRoIiwiaGFuZGxlRXJyb3JzIiwiZm4iLCJyZXEiLCJyZXMiLCJuZXh0IiwieCIsImluaXRpYWxpemVBcHAiLCJzdGF0cyIsImluZm8iLCJjbGllbnRTdGF0cyIsImNvbXBpbGF0aW9uIiwiZXJyb3JzIiwibGVuZ3RoIiwid3JhcHBpbmdBcHAiLCJjb21waWxlcnMiLCJoZWFydGJlYXQiLCJjbGllbnRNYW5pZmVzdCIsImFzc2V0Um91dGUiLCJmaWxlbmFtZSIsInVybCIsInN1YnN0ciIsImFzc2V0UGF0aCIsImZpbGVDb250ZW50IiwidG9TdHJpbmciLCJjb250ZW50VHlwZSIsInNlbmQiLCJlIiwic3RhdHVzIiwiZ2V0IiwicmVuZGVyIiwiZGVmYXVsdCIsImVuZHNXaXRoIiwic3RhdHVzQ29kZSIsInNldEhlYWRlciIsInNvY2tldCIsIm9uIiwiZXJyb3IiLCJsaXN0ZW4iLCJzeXNjYWxsIiwiaXNQaXBlIiwicG9ydE9yUGlwZSIsIk51bWJlciIsImlzTmFOIiwiYmluZCIsImNvZGUiLCJ3YXRjaGVyIiwid2F0Y2giLCJlcnIiLCJtdWx0aVN0YXRzIiwic3VjY2VlZCIsIndhcm4iLCJjbG9zZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL3N0YXJ0RGV2c2VydmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcblxuaW1wb3J0IHsgcHJvbWlzaWZ5IH0gZnJvbSAndXRpbCc7XG5pbXBvcnQgZGlza0ZzIGZyb20gJ2ZzJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHdlYnBhY2ssIHsgTXVsdGlDb21waWxlciB9IGZyb20gJ3dlYnBhY2snO1xuaW1wb3J0IHdlYnBhY2tIb3RNaWRkbGV3YXJlIGZyb20gJ3dlYnBhY2staG90LW1pZGRsZXdhcmUnO1xuaW1wb3J0IHsgY3JlYXRlRnNGcm9tVm9sdW1lLCBWb2x1bWUgfSBmcm9tICdtZW1mcyc7XG5pbXBvcnQgeyBTZXJ2ZXIsIEluY29taW5nTWVzc2FnZSwgU2VydmVyUmVzcG9uc2UgfSBmcm9tICdodHRwJztcbmltcG9ydCBleHByZXNzLCB7IE5leHRGdW5jdGlvbiB9IGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IG9yYSBmcm9tICdvcmEnO1xuaW1wb3J0IHsgcGF0Y2hSZXF1aXJlIH0gZnJvbSAnZnMtbW9ua2V5JztcbmltcG9ydCB0bXAgZnJvbSAndG1wJztcbmltcG9ydCBzb3VyY2VNYXBTdXBwb3J0IGZyb20gJ3NvdXJjZS1tYXAtc3VwcG9ydCc7XG5pbXBvcnQgeyB1ZnMgfSBmcm9tICd1bmlvbmZzJztcbmltcG9ydCBjb21wcmVzcyBmcm9tICdjb21wcmVzc2lvbic7XG5cbmltcG9ydCAnY3Jvc3MtZmV0Y2gvcG9seWZpbGwnO1xuaW1wb3J0IHsgUmVuZGVyIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdmFyLXJlcXVpcmVzXG5jb25zdCB3ZWJwYWNrQ29uZmlnID0gcmVxdWlyZShyZXF1aXJlLnJlc29sdmUoXG4gIC8vIFRPRE86IHVzZSBub3JtYWwgcmVzb2x1dGlvbiBhbGdvcml0aG0gdG8gZmluZCB3ZWJwYWNrIGZpbGVcbiAgcGF0aC5qb2luKHByb2Nlc3MuY3dkKCksICd3ZWJwYWNrLmNvbmZpZycpLFxuKSk7XG5cbmNvbnN0IGVudHJ5cG9pbnQgPSBwcm9jZXNzLmFyZ3ZbMl07XG5jb25zdCBQT1JUID0gcHJvY2Vzcy5lbnYuUE9SVCB8fCAzMDAwO1xucHJvY2Vzcy5lbnYuV0VCUEFDS19QVUJMSUNfSE9TVCA9IGBodHRwOi8vbG9jYWxob3N0OiR7UE9SVH1gO1xucHJvY2Vzcy5lbnYuV0VCUEFDS19QVUJMSUNfUEFUSCA9ICcvYXNzZXRzLyc7XG5cbmlmICghZW50cnlwb2ludCkge1xuICBjb25zb2xlLmxvZyhgVXNhZ2U6ICR7cHJvY2Vzcy5hcmd2WzBdfSA8ZW50cnlwb2ludC1maWxlPmApO1xuICBwcm9jZXNzLmV4aXQoLTEpO1xufVxuXG5jb25zdCBsb2FkZXIgPSBvcmEoJ0J1aWxkaW5nIHRoZSBhc3NldHMnKS5zdGFydCgpO1xuXG4vLyBTZXQgdXAgaW4gbWVtb3J5IGZpbGVzeXN0ZW1cbmNvbnN0IHZvbHVtZSA9IG5ldyBWb2x1bWUoKTtcbmNvbnN0IGZzID0gY3JlYXRlRnNGcm9tVm9sdW1lKHZvbHVtZSk7XG51ZnMudXNlKGRpc2tGcykudXNlKGZzIGFzIGFueSk7XG5cbnBhdGNoUmVxdWlyZSh1ZnMpO1xuY29uc3QgcmVhZEZpbGUgPSBwcm9taXNpZnkodWZzLnJlYWRGaWxlKTtcbmxldCBzZXJ2ZXI6IFNlcnZlciB8IHVuZGVmaW5lZDtcblxuLy8gR2VuZXJhdGUgYSB0ZW1wb3JhcnkgZmlsZSBzbyB3ZSBjYW4gaG90IHJlbG9hZCBmcm9tIHRoZSByb290IG9mIHRoZSBhcHBsaWNhdGlvblxuZnVuY3Rpb24gaG90RW50cnkoZW50cnlQYXRoOiBzdHJpbmcpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gIC8vIEB0cy1pZ25vcmUgZm9yIHNvbWUgcmVhc29uIGl0J3Mgbm90IHBpY2tpbmcgdXAgdGhhdCBvdGhlciBvcHRpb25zIGFyZSBvcHRpb25hbFxuICBjb25zdCBnZW5lcmF0ZWRFbnRyeXBvaW50ID0gdG1wLmZpbGVTeW5jKHsgcG9zdGZpeDogJy5qcycgfSk7XG4gIGRpc2tGcy53cml0ZVN5bmMoXG4gICAgZ2VuZXJhdGVkRW50cnlwb2ludC5mZCxcbiAgICBgXG5pbXBvcnQgZW50cnkgZnJvbSBcIiR7cGF0aC5yZXNvbHZlKHByb2Nlc3MuY3dkKCksIGVudHJ5UGF0aCl9XCI7XG5cbmlmIChtb2R1bGUuaG90KSB7XG4gIG1vZHVsZS5ob3QuYWNjZXB0KCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGVudHJ5O1xuICBgLFxuICApO1xuICByZXR1cm4gZ2VuZXJhdGVkRW50cnlwb2ludDtcbn1cblxuY29uc3Qgd2VicGFja0NvbmZpZ3MgPSBbXG4gIHdlYnBhY2tDb25maWcoXG4gICAge1xuICAgICAgZW50cnlwb2ludDogaG90RW50cnkoZW50cnlwb2ludCkubmFtZSxcbiAgICAgIG5hbWU6ICdjbGllbnQnLFxuICAgIH0sXG4gICAgeyBtb2RlOiAnZGV2ZWxvcG1lbnQnIH0sXG4gICksXG4gIHdlYnBhY2tDb25maWcoXG4gICAge1xuICAgICAgZW50cnlwb2ludDogaG90RW50cnkoZW50cnlwb2ludC5yZXBsYWNlKCcudHN4JywgJy5zZXJ2ZXIudHN4JykpLm5hbWUsXG4gICAgICBuYW1lOiAnc2VydmVyJyxcbiAgICB9LFxuICAgIHsgbW9kZTogJ2RldmVsb3BtZW50JywgdGFyZ2V0OiAnbm9kZScgfSxcbiAgKSxcbl0gYXMgY29uc3Q7XG4vLyBpbml0aWFsaXplIHRoZSB3ZWJwYWNrIGNvbXBpbGVyXG5jb25zdCBjb21waWxlcjogTXVsdGlDb21waWxlciA9IHdlYnBhY2sod2VicGFja0NvbmZpZ3MpO1xuXG5jb21waWxlci5vdXRwdXRGaWxlU3lzdGVtID0ge1xuICAuLi5mcyxcbiAgam9pbjogcGF0aC5qb2luIGFzIGFueSxcbn0gYXMgYW55IGFzIHR5cGVvZiBmcztcblxuc291cmNlTWFwU3VwcG9ydC5pbnN0YWxsKHsgaG9va1JlcXVpcmU6IHRydWUgfSk7XG5cbmZ1bmN0aW9uIGdldFNlcnZlckJ1bmRsZShzZXJ2ZXJTdGF0czogd2VicGFjay5TdGF0cykge1xuICBjb25zdCBzZXJ2ZXJKc29uID0gc2VydmVyU3RhdHMudG9Kc29uKHsgYXNzZXRzOiB0cnVlIH0pO1xuICByZXR1cm4gcGF0aC5qb2luKHNlcnZlckpzb24ub3V0cHV0UGF0aCA/PyAnJywgJ21haW4uanMnKTtcbn1cbmZ1bmN0aW9uIGhhbmRsZUVycm9yczxcbiAgRiBleHRlbmRzIChcbiAgICByZXE6IFJlcXVlc3QgfCBJbmNvbWluZ01lc3NhZ2UsXG4gICAgcmVzOiBSZXNwb25zZSB8IFNlcnZlclJlc3BvbnNlLFxuICApID0+IFByb21pc2U8dm9pZD4sXG4+KGZuOiBGKSB7XG4gIHJldHVybiBhc3luYyBmdW5jdGlvbiAoXG4gICAgcmVxOiBSZXF1ZXN0IHwgSW5jb21pbmdNZXNzYWdlLFxuICAgIHJlczogUmVzcG9uc2UgfCBTZXJ2ZXJSZXNwb25zZSxcbiAgICBuZXh0OiBOZXh0RnVuY3Rpb24sXG4gICkge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYXdhaXQgZm4ocmVxLCByZXMpO1xuICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgIG5leHQoeCk7XG4gICAgfVxuICB9O1xufVxuXG4vLyBTdGFydCB0aGUgZXhwcmVzcyBzZXJ2ZXIgYWZ0ZXIgdGhlIGZpcnN0IGNvbXBpbGF0aW9uXG5mdW5jdGlvbiBpbml0aWFsaXplQXBwKHN0YXRzOiB3ZWJwYWNrLlN0YXRzW10pIHtcbiAgbG9hZGVyLmluZm8oJ0xhdW5jaGluZyBzZXJ2ZXInKTtcbiAgY29uc3QgW2NsaWVudFN0YXRzLCBzZXJ2ZXJTdGF0c10gPSBzdGF0cztcbiAgaWYgKFxuICAgIGNsaWVudFN0YXRzPy5jb21waWxhdGlvbj8uZXJyb3JzPy5sZW5ndGggfHxcbiAgICBzZXJ2ZXJTdGF0cz8uY29tcGlsYXRpb24/LmVycm9ycz8ubGVuZ3RoXG4gICkge1xuICAgIGNvbnNvbGUubG9nKCdFcnJvcnMgZm9yIGNsaWVudCBidWlsZDogJywgY2xpZW50U3RhdHMuY29tcGlsYXRpb24uZXJyb3JzKTtcbiAgICBjb25zb2xlLmxvZygnRXJyb3JzIGZvciBzZXJ2ZXIgYnVpbGQ6Jywgc2VydmVyU3RhdHMuY29tcGlsYXRpb24uZXJyb3JzKTtcbiAgICAvLyBUT0RPOiBoYW5kbGUgbW9yZSBncmFjZWZ1bGx5XG4gICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgfVxuXG4gIGNvbnN0IHdyYXBwaW5nQXBwID0gZXhwcmVzcygpO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgLy9AdHMtaWdub3JlXG4gIHdyYXBwaW5nQXBwLnVzZShjb21wcmVzcygpKTtcblxuICAvLyBBU1NFVFNcbiAgd3JhcHBpbmdBcHAudXNlKFxuICAgIHdlYnBhY2tIb3RNaWRkbGV3YXJlKGNvbXBpbGVyLmNvbXBpbGVyc1swXSwge1xuICAgICAgbG9nOiBjb25zb2xlLmxvZyxcbiAgICAgIHBhdGg6ICcvX193ZWJwYWNrX2htcicsXG4gICAgICBoZWFydGJlYXQ6IDEwICogMTAwMCxcbiAgICAgIC8vbm9JbmZvOiB0cnVlLFxuICAgICAgLy9uYW1lOiAnY2xpZW50JyxcbiAgICB9KSxcbiAgKTtcbiAgY29uc3QgY2xpZW50TWFuaWZlc3QgPSBjbGllbnRTdGF0cy50b0pzb24oKTtcbiAgY29uc3QgYXNzZXRSb3V0ZSA9IGFzeW5jIChyZXE6IFJlcXVlc3QgfCBJbmNvbWluZ01lc3NhZ2UsIHJlczogYW55KSA9PiB7XG4gICAgY29uc3QgZmlsZW5hbWUgPVxuICAgICAgcmVxLnVybD8uc3Vic3RyKChwcm9jZXNzLmVudi5XRUJQQUNLX1BVQkxJQ19QQVRIIGFzIHN0cmluZykubGVuZ3RoKSA/PyAnJztcbiAgICBjb25zdCBhc3NldFBhdGggPSBwYXRoLmpvaW4oY2xpZW50TWFuaWZlc3Qub3V0cHV0UGF0aCA/PyAnJywgZmlsZW5hbWUpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGZpbGVDb250ZW50ID0gKGF3YWl0IHJlYWRGaWxlKGFzc2V0UGF0aCkpLnRvU3RyaW5nKCk7XG4gICAgICByZXMuY29udGVudFR5cGUoZmlsZW5hbWUpO1xuICAgICAgcmVzLnNlbmQoZmlsZUNvbnRlbnQpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJlcy5zdGF0dXMoNDA0KTtcbiAgICAgIHJlcy5zZW5kKGUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfTtcbiAgd3JhcHBpbmdBcHAuZ2V0KGAke3Byb2Nlc3MuZW52LldFQlBBQ0tfUFVCTElDX1BBVEh9KmAsIGFzc2V0Um91dGUpO1xuXG4gIC8vIFNFUlZFUiBTSURFIFJFTkRFUklOR1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXZhci1yZXF1aXJlc1xuICBjb25zdCByZW5kZXI6IFJlbmRlciA9IHJlcXVpcmUoZ2V0U2VydmVyQnVuZGxlKHNlcnZlclN0YXRzKSkuZGVmYXVsdDtcbiAgd3JhcHBpbmdBcHAuZ2V0KFxuICAgICcvKicsXG4gICAgaGFuZGxlRXJyb3JzKGFzeW5jIGZ1bmN0aW9uIChyZXE6IGFueSwgcmVzOiBhbnkpIHtcbiAgICAgIGlmIChyZXEudXJsLmVuZHNXaXRoKCdmYXZpY29uLmljbycpKSB7XG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xuICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LXR5cGUnLCAndGV4dC9odG1sJyk7XG4gICAgICAgIHJlcy5zZW5kKCdub3QgZm91bmQnKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgcmVzLnNvY2tldC5vbignZXJyb3InLCAoZXJyb3I6IHVua25vd24pID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRmF0YWwnLCBlcnJvcik7XG4gICAgICB9KTtcblxuICAgICAgYXdhaXQgcmVuZGVyKGNsaWVudE1hbmlmZXN0LCByZXEsIHJlcyk7XG4gICAgfSksXG4gICk7XG5cbiAgc2VydmVyID0gd3JhcHBpbmdBcHBcbiAgICAubGlzdGVuKFBPUlQsICgpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKGBMaXN0ZW5pbmcgYXQgJHtQT1JUfS4uLmApO1xuICAgIH0pXG4gICAgLm9uKCdlcnJvcicsIGZ1bmN0aW9uIChlcnJvcjogYW55KSB7XG4gICAgICBpZiAoZXJyb3Iuc3lzY2FsbCAhPT0gJ2xpc3RlbicpIHtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG4gICAgICBjb25zdCBpc1BpcGUgPSAocG9ydE9yUGlwZTogc3RyaW5nIHwgbnVtYmVyKSA9PiBOdW1iZXIuaXNOYU4ocG9ydE9yUGlwZSk7XG4gICAgICBjb25zdCBiaW5kID0gaXNQaXBlKFBPUlQpID8gJ1BpcGUgJyArIFBPUlQgOiAnUG9ydCAnICsgUE9SVDtcbiAgICAgIHN3aXRjaCAoZXJyb3IuY29kZSkge1xuICAgICAgICBjYXNlICdFQUNDRVMnOlxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYmluZCArICcgcmVxdWlyZXMgZWxldmF0ZWQgcHJpdmlsZWdlcycpO1xuICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnRUFERFJJTlVTRSc6XG4gICAgICAgICAgY29uc29sZS5lcnJvcihiaW5kICsgJyBpcyBhbHJlYWR5IGluIHVzZScpO1xuICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cbiAgICB9KTtcbn1cblxuLy8gV2F0Y2ggdGhlIGZpbGVzIGZvciBjaGFuZ2VzXG5jb25zdCB3YXRjaGVyID0gY29tcGlsZXIud2F0Y2goe30sIChlcnIsIG11bHRpU3RhdHMpID0+IHtcbiAgaWYgKCFtdWx0aVN0YXRzKSB7XG4gICAgY29uc29sZS5lcnJvcignc3RhdHMgbm90IHNlbmQnKTtcbiAgICBwcm9jZXNzLmV4aXQoLTEpO1xuICB9XG4gIGlmIChlcnIpIHtcbiAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbiBjb21waWxhdGlvbicpO1xuICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICBwcm9jZXNzLmV4aXQoLTEpO1xuICB9XG4gIGlmIChzZXJ2ZXIpIHtcbiAgICBsb2FkZXIuc3VjY2VlZCgnV2VicGFjayBidW5kbGUgdXBkYXRlZCcpO1xuICAgIHJldHVybjtcbiAgfVxuICB0cnkge1xuICAgIGluaXRpYWxpemVBcHAobXVsdGlTdGF0cy5zdGF0cyk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gaW5pdGlhbGl6ZSBhcHAnKTtcbiAgICBjb25zb2xlLmVycm9yKGUpO1xuICB9XG59KTtcblxucHJvY2Vzcy5vbignU0lHSU5UJywgKCkgPT4ge1xuICBsb2FkZXIud2FybignUmVjZWl2ZWQgU0lHSU5ULCBkZXZzZXJ2ZXIgc2h1dHRpbmcgZG93bicpO1xuICBpZiAoc2VydmVyKSBjb25zb2xlLmxvZygnQ2xvc2luZyBzZXJ2ZXInKTtcbiAgc2VydmVyPy5jbG9zZSgoKSA9PiB7XG4gICAgbG9hZGVyLmluZm8oJ1NlcnZlciBjbG9zZWQnKTtcbiAgfSk7XG4gIHdhdGNoZXIuY2xvc2UoKCkgPT4ge1xuICAgIGxvYWRlci5pbmZvKCd3ZWJwYWNrIGJ1aWxkIHN0b3BwZWQnKTtcbiAgfSk7XG4gIHByb2Nlc3MuZXhpdCgtMSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBR0E7QUFDQSxNQUFNQSxh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
|
|
268
|
+
runServer();
|
|
269
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ3ZWJwYWNrQ29uZmlnIiwicmVxdWlyZSIsInJlc29sdmUiLCJwYXRoIiwiam9pbiIsInByb2Nlc3MiLCJjd2QiLCJlbnRyeXBvaW50IiwiYXJndiIsIlBPUlQiLCJlbnYiLCJXRUJQQUNLX1BVQkxJQ19IT1NUIiwiV0VCUEFDS19QVUJMSUNfUEFUSCIsImNvbnNvbGUiLCJsb2ciLCJleGl0IiwiY2hhbGsiLCJncmVlbkJyaWdodCIsImN5YW5CcmlnaHQiLCJsb2FkZXIiLCJvcmEiLCJzdGFydCIsInZvbHVtZSIsIlZvbHVtZSIsImZzIiwiY3JlYXRlRnNGcm9tVm9sdW1lIiwidWZzIiwidXNlIiwiZGlza0ZzIiwicGF0Y2hSZXF1aXJlIiwicmVhZEZpbGUiLCJwcm9taXNpZnkiLCJzZXJ2ZXIiLCJob3RFbnRyeSIsImVudHJ5UGF0aCIsImdlbmVyYXRlZEVudHJ5cG9pbnQiLCJ0bXAiLCJmaWxlU3luYyIsInBvc3RmaXgiLCJ3cml0ZVN5bmMiLCJmZCIsIndlYnBhY2tDb25maWdzIiwibmFtZSIsIm1vZGUiLCJyZXBsYWNlIiwidGFyZ2V0IiwicGx1Z2lucyIsInB1c2giLCJ3ZWJwYWNrIiwib3B0aW1pemUiLCJMaW1pdENodW5rQ291bnRQbHVnaW4iLCJtYXhDaHVua3MiLCJjb21waWxlciIsInNvdXJjZU1hcFN1cHBvcnQiLCJpbnN0YWxsIiwiaG9va1JlcXVpcmUiLCJnZXRTZXJ2ZXJCdW5kbGUiLCJzZXJ2ZXJTdGF0cyIsInNlcnZlckpzb24iLCJ0b0pzb24iLCJhc3NldHMiLCJvdXRwdXRQYXRoIiwiaGFuZGxlRXJyb3JzIiwiZm4iLCJyZXEiLCJyZXMiLCJuZXh0IiwieCIsInJlbmRlciIsImluaXRpYWxpemVBcHAiLCJzdGF0cyIsImNsaWVudFN0YXRzIiwiY29tcGlsYXRpb24iLCJlcnJvcnMiLCJsZW5ndGgiLCJmYWlsIiwiaW5mbyIsIndyYXBwaW5nQXBwIiwiZXhwcmVzcyIsImNvbXByZXNzIiwiY2xpZW50TWFuaWZlc3QiLCJhc3NldFJvdXRlIiwiZmlsZW5hbWUiLCJ1cmwiLCJzdWJzdHJpbmciLCJzcGxpdCIsImFzc2V0UGF0aCIsImZpbGVDb250ZW50IiwidG9TdHJpbmciLCJjb250ZW50VHlwZSIsInNlbmQiLCJlIiwic3RhdHVzIiwiZ2V0IiwiZGVmYXVsdCIsImVuZHNXaXRoIiwic3RhdHVzQ29kZSIsInNldEhlYWRlciIsInNvY2tldCIsIm9uIiwiZXJyb3IiLCJsaXN0ZW4iLCJzdWNjZWVkIiwic3lzY2FsbCIsImlzUGlwZSIsInBvcnRPclBpcGUiLCJOdW1iZXIiLCJpc05hTiIsImJpbmQiLCJjb2RlIiwiZGV2U2VydmVyIiwiV2VicGFja0RldlNlcnZlciIsImRldk1pZGRsZXdhcmUiLCJvdXRwdXRGaWxlU3lzdGVtIiwicnVuU2VydmVyIiwiaG9va3MiLCJkb25lIiwidGFwIiwibXVsdGlTdGF0cyIsIk9iamVjdCIsImhhc093biIsImltcG9ydEZyZXNoIiwic3RvcFNlcnZlciIsInN0b3AiLCJ3YXJuIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvc3RhcnREZXZzZXJ2ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuXG5pbXBvcnQgeyBwcm9taXNpZnkgfSBmcm9tICd1dGlsJztcbmltcG9ydCBkaXNrRnMgZnJvbSAnZnMnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgd2VicGFjaywgeyBNdWx0aUNvbXBpbGVyIH0gZnJvbSAnd2VicGFjayc7XG5pbXBvcnQgeyBjcmVhdGVGc0Zyb21Wb2x1bWUsIFZvbHVtZSB9IGZyb20gJ21lbWZzJztcbmltcG9ydCB7IFNlcnZlciwgSW5jb21pbmdNZXNzYWdlLCBTZXJ2ZXJSZXNwb25zZSB9IGZyb20gJ2h0dHAnO1xuaW1wb3J0IGV4cHJlc3MsIHsgTmV4dEZ1bmN0aW9uIH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgb3JhIGZyb20gJ29yYSc7XG5pbXBvcnQgeyBwYXRjaFJlcXVpcmUgfSBmcm9tICdmcy1tb25rZXknO1xuaW1wb3J0IHRtcCBmcm9tICd0bXAnO1xuaW1wb3J0IHNvdXJjZU1hcFN1cHBvcnQgZnJvbSAnc291cmNlLW1hcC1zdXBwb3J0JztcbmltcG9ydCB7IHVmcyB9IGZyb20gJ3VuaW9uZnMnO1xuaW1wb3J0IGNvbXByZXNzIGZyb20gJ2NvbXByZXNzaW9uJztcbmltcG9ydCBXZWJwYWNrRGV2U2VydmVyIGZyb20gJ3dlYnBhY2stZGV2LXNlcnZlcic7XG5pbXBvcnQgaW1wb3J0RnJlc2ggZnJvbSAnaW1wb3J0LWZyZXNoJztcbmltcG9ydCBjaGFsayBmcm9tICdjaGFsayc7XG5cbmltcG9ydCAnY3Jvc3MtZmV0Y2gvcG9seWZpbGwnO1xuaW1wb3J0IHsgUmVuZGVyIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdmFyLXJlcXVpcmVzXG5jb25zdCB3ZWJwYWNrQ29uZmlnID0gcmVxdWlyZShyZXF1aXJlLnJlc29sdmUoXG4gIC8vIFRPRE86IHVzZSBub3JtYWwgcmVzb2x1dGlvbiBhbGdvcml0aG0gdG8gZmluZCB3ZWJwYWNrIGZpbGVcbiAgcGF0aC5qb2luKHByb2Nlc3MuY3dkKCksICd3ZWJwYWNrLmNvbmZpZycpLFxuKSk7XG5cbmNvbnN0IGVudHJ5cG9pbnQgPSBwcm9jZXNzLmFyZ3ZbMl07XG5jb25zdCBQT1JUID0gcHJvY2Vzcy5lbnYuUE9SVCB8fCAzMDAwO1xucHJvY2Vzcy5lbnYuV0VCUEFDS19QVUJMSUNfSE9TVCA9IGBodHRwOi8vbG9jYWxob3N0OiR7UE9SVH1gO1xucHJvY2Vzcy5lbnYuV0VCUEFDS19QVUJMSUNfUEFUSCA9ICcvYXNzZXRzLyc7XG5cbmlmICghZW50cnlwb2ludCkge1xuICBjb25zb2xlLmxvZyhgVXNhZ2U6ICR7cHJvY2Vzcy5hcmd2WzBdfSA8ZW50cnlwb2ludC1maWxlPmApO1xuICBwcm9jZXNzLmV4aXQoLTEpO1xufVxuXG5jb25zb2xlLmxvZyhcbiAgY2hhbGsuZ3JlZW5CcmlnaHQoYFN0YXJ0aW5nIFNTUiBhdGApLFxuICBjaGFsay5jeWFuQnJpZ2h0KHByb2Nlc3MuZW52LldFQlBBQ0tfUFVCTElDX0hPU1QpLFxuKTtcbmNvbnN0IGxvYWRlciA9IG9yYSgpLnN0YXJ0KCk7XG5cbi8vIFNldCB1cCBpbiBtZW1vcnkgZmlsZXN5c3RlbVxuY29uc3Qgdm9sdW1lID0gbmV3IFZvbHVtZSgpO1xuY29uc3QgZnMgPSBjcmVhdGVGc0Zyb21Wb2x1bWUodm9sdW1lKTtcbnVmcy51c2UoZGlza0ZzKS51c2UoZnMgYXMgYW55KTtcblxucGF0Y2hSZXF1aXJlKHVmcyk7XG5jb25zdCByZWFkRmlsZSA9IHByb21pc2lmeSh1ZnMucmVhZEZpbGUpO1xubGV0IHNlcnZlcjogU2VydmVyIHwgdW5kZWZpbmVkO1xuXG4vLyBHZW5lcmF0ZSBhIHRlbXBvcmFyeSBmaWxlIHNvIHdlIGNhbiBob3QgcmVsb2FkIGZyb20gdGhlIHJvb3Qgb2YgdGhlIGFwcGxpY2F0aW9uXG5mdW5jdGlvbiBob3RFbnRyeShlbnRyeVBhdGg6IHN0cmluZykge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgLy8gQHRzLWlnbm9yZSBmb3Igc29tZSByZWFzb24gaXQncyBub3QgcGlja2luZyB1cCB0aGF0IG90aGVyIG9wdGlvbnMgYXJlIG9wdGlvbmFsXG4gIGNvbnN0IGdlbmVyYXRlZEVudHJ5cG9pbnQgPSB0bXAuZmlsZVN5bmMoeyBwb3N0Zml4OiAnLmpzJyB9KTtcbiAgZGlza0ZzLndyaXRlU3luYyhcbiAgICBnZW5lcmF0ZWRFbnRyeXBvaW50LmZkLFxuICAgIGBcbmltcG9ydCBlbnRyeSBmcm9tIFwiJHtwYXRoLnJlc29sdmUocHJvY2Vzcy5jd2QoKSwgZW50cnlQYXRoKX1cIjtcblxuaWYgKG1vZHVsZS5ob3QpIHtcbiAgbW9kdWxlLmhvdC5hY2NlcHQoKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZW50cnk7XG4gIGAsXG4gICk7XG4gIHJldHVybiBnZW5lcmF0ZWRFbnRyeXBvaW50O1xufVxuXG5jb25zdCB3ZWJwYWNrQ29uZmlncyA9IFtcbiAgd2VicGFja0NvbmZpZyhcbiAgICB7XG4gICAgICBlbnRyeXBvaW50OiBob3RFbnRyeShlbnRyeXBvaW50KS5uYW1lLFxuICAgICAgbmFtZTogJ2NsaWVudCcsXG4gICAgfSxcbiAgICB7IG1vZGU6ICdkZXZlbG9wbWVudCcgfSxcbiAgKSxcbiAgd2VicGFja0NvbmZpZyhcbiAgICB7XG4gICAgICBlbnRyeXBvaW50OiBlbnRyeXBvaW50LnJlcGxhY2UoJy50c3gnLCAnLnNlcnZlci50c3gnKSxcbiAgICAgIG5hbWU6ICdzZXJ2ZXInLFxuICAgIH0sXG4gICAgeyBtb2RlOiAnZGV2ZWxvcG1lbnQnLCB0YXJnZXQ6ICdub2RlJyB9LFxuICApLFxuXSBhcyBjb25zdDtcbi8vIG9ubHkgaGF2ZSBvbmUgb3V0cHV0IGZvciBzZXJ2ZXIgc28gd2UgY2FuIGF2b2lkIGNhY2hlZCBtb2R1bGVzXG53ZWJwYWNrQ29uZmlnc1sxXS5wbHVnaW5zLnB1c2goXG4gIG5ldyB3ZWJwYWNrLm9wdGltaXplLkxpbWl0Q2h1bmtDb3VudFBsdWdpbih7IG1heENodW5rczogMSB9KSxcbik7XG4vLyBpbml0aWFsaXplIHRoZSB3ZWJwYWNrIGNvbXBpbGVyXG5jb25zdCBjb21waWxlcjogTXVsdGlDb21waWxlciA9IHdlYnBhY2sod2VicGFja0NvbmZpZ3MpO1xuXG5zb3VyY2VNYXBTdXBwb3J0Lmluc3RhbGwoeyBob29rUmVxdWlyZTogdHJ1ZSB9KTtcblxuZnVuY3Rpb24gZ2V0U2VydmVyQnVuZGxlKHNlcnZlclN0YXRzOiB3ZWJwYWNrLlN0YXRzKSB7XG4gIGNvbnN0IHNlcnZlckpzb24gPSBzZXJ2ZXJTdGF0cy50b0pzb24oeyBhc3NldHM6IHRydWUgfSk7XG4gIHJldHVybiBwYXRoLmpvaW4oc2VydmVySnNvbi5vdXRwdXRQYXRoID8/ICcnLCAnbWFpbi5qcycpO1xufVxuZnVuY3Rpb24gaGFuZGxlRXJyb3JzPFxuICBGIGV4dGVuZHMgKFxuICAgIHJlcTogUmVxdWVzdCB8IEluY29taW5nTWVzc2FnZSxcbiAgICByZXM6IFJlc3BvbnNlIHwgU2VydmVyUmVzcG9uc2UsXG4gICkgPT4gUHJvbWlzZTx2b2lkPixcbj4oZm46IEYpIHtcbiAgcmV0dXJuIGFzeW5jIGZ1bmN0aW9uIChcbiAgICByZXE6IFJlcXVlc3QgfCBJbmNvbWluZ01lc3NhZ2UsXG4gICAgcmVzOiBSZXNwb25zZSB8IFNlcnZlclJlc3BvbnNlLFxuICAgIG5leHQ6IE5leHRGdW5jdGlvbixcbiAgKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCBmbihyZXEsIHJlcyk7XG4gICAgfSBjYXRjaCAoeCkge1xuICAgICAgbmV4dCh4KTtcbiAgICB9XG4gIH07XG59XG5sZXQgcmVuZGVyOiBSZW5kZXI7XG4vLyBTdGFydCB0aGUgZXhwcmVzcyBzZXJ2ZXIgYWZ0ZXIgdGhlIGZpcnN0IGNvbXBpbGF0aW9uXG5mdW5jdGlvbiBpbml0aWFsaXplQXBwKHN0YXRzOiB3ZWJwYWNrLlN0YXRzW10pIHtcbiAgY29uc3QgW2NsaWVudFN0YXRzLCBzZXJ2ZXJTdGF0c10gPSBzdGF0cztcbiAgaWYgKFxuICAgIGNsaWVudFN0YXRzPy5jb21waWxhdGlvbj8uZXJyb3JzPy5sZW5ndGggfHxcbiAgICBzZXJ2ZXJTdGF0cz8uY29tcGlsYXRpb24/LmVycm9ycz8ubGVuZ3RoXG4gICkge1xuICAgIGxvYWRlci5mYWlsKCdFcnJvcnMgZm9yIGNsaWVudCBidWlsZDogJyArIGNsaWVudFN0YXRzLmNvbXBpbGF0aW9uLmVycm9ycyk7XG4gICAgbG9hZGVyLmZhaWwoJ0Vycm9ycyBmb3Igc2VydmVyIGJ1aWxkOiAnICsgc2VydmVyU3RhdHMuY29tcGlsYXRpb24uZXJyb3JzKTtcbiAgICAvLyBUT0RPOiBoYW5kbGUgbW9yZSBncmFjZWZ1bGx5XG4gICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgfSBlbHNlIHtcbiAgICBsb2FkZXIuaW5mbygnTGF1bmNoaW5nIHNlcnZlcicpO1xuICB9XG5cbiAgY29uc3Qgd3JhcHBpbmdBcHAgPSBleHByZXNzKCk7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAvL0B0cy1pZ25vcmVcbiAgd3JhcHBpbmdBcHAudXNlKGNvbXByZXNzKCkpO1xuXG4gIC8vIEFTU0VUU1xuICBjb25zdCBjbGllbnRNYW5pZmVzdCA9IGNsaWVudFN0YXRzLnRvSnNvbigpO1xuICBjb25zdCBhc3NldFJvdXRlID0gYXN5bmMgKHJlcTogUmVxdWVzdCB8IEluY29taW5nTWVzc2FnZSwgcmVzOiBhbnkpID0+IHtcbiAgICBjb25zdCBmaWxlbmFtZSA9XG4gICAgICByZXEudXJsXG4gICAgICAgID8uc3Vic3RyaW5nKChwcm9jZXNzLmVudi5XRUJQQUNLX1BVQkxJQ19QQVRIIGFzIHN0cmluZykubGVuZ3RoKVxuICAgICAgICAuc3BsaXQoJz8nKVswXSA/PyAnJztcbiAgICBjb25zdCBhc3NldFBhdGggPSBwYXRoLmpvaW4oY2xpZW50TWFuaWZlc3Qub3V0cHV0UGF0aCA/PyAnJywgZmlsZW5hbWUpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGZpbGVDb250ZW50ID0gKGF3YWl0IHJlYWRGaWxlKGFzc2V0UGF0aCkpLnRvU3RyaW5nKCk7XG4gICAgICByZXMuY29udGVudFR5cGUoZmlsZW5hbWUpO1xuICAgICAgcmVzLnNlbmQoZmlsZUNvbnRlbnQpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJlcy5zdGF0dXMoNDA0KTtcbiAgICAgIHJlcy5zZW5kKGUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfTtcbiAgd3JhcHBpbmdBcHAuZ2V0KGAke3Byb2Nlc3MuZW52LldFQlBBQ0tfUFVCTElDX1BBVEh9KmAsIGFzc2V0Um91dGUpO1xuXG4gIC8vIFNFUlZFUiBTSURFIFJFTkRFUklOR1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXZhci1yZXF1aXJlc1xuICByZW5kZXIgPSByZXF1aXJlKGdldFNlcnZlckJ1bmRsZShzZXJ2ZXJTdGF0cykpLmRlZmF1bHQ7XG4gIHdyYXBwaW5nQXBwLmdldChcbiAgICAnLyonLFxuICAgIGhhbmRsZUVycm9ycyhhc3luYyBmdW5jdGlvbiAocmVxOiBhbnksIHJlczogYW55KSB7XG4gICAgICBpZiAocmVxLnVybC5lbmRzV2l0aCgnZmF2aWNvbi5pY28nKSkge1xuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC10eXBlJywgJ3RleHQvaHRtbCcpO1xuICAgICAgICByZXMuc2VuZCgnbm90IGZvdW5kJyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHJlcy5zb2NrZXQub24oJ2Vycm9yJywgKGVycm9yOiB1bmtub3duKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhdGFsJywgZXJyb3IpO1xuICAgICAgfSk7XG5cbiAgICAgIGF3YWl0IHJlbmRlcihjbGllbnRNYW5pZmVzdCwgcmVxLCByZXMpO1xuICAgIH0pLFxuICApO1xuXG4gIHNlcnZlciA9IHdyYXBwaW5nQXBwXG4gICAgLmxpc3RlbihQT1JULCAoKSA9PiB7XG4gICAgICBsb2FkZXIuc3VjY2VlZChgU1NSIFJ1bm5pbmdgKTtcbiAgICB9KVxuICAgIC5vbignZXJyb3InLCBmdW5jdGlvbiAoZXJyb3I6IGFueSkge1xuICAgICAgaWYgKGVycm9yLnN5c2NhbGwgIT09ICdsaXN0ZW4nKSB7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfVxuICAgICAgY29uc3QgaXNQaXBlID0gKHBvcnRPclBpcGU6IHN0cmluZyB8IG51bWJlcikgPT4gTnVtYmVyLmlzTmFOKHBvcnRPclBpcGUpO1xuICAgICAgY29uc3QgYmluZCA9IGlzUGlwZShQT1JUKSA/ICdQaXBlICcgKyBQT1JUIDogJ1BvcnQgJyArIFBPUlQ7XG4gICAgICBzd2l0Y2ggKGVycm9yLmNvZGUpIHtcbiAgICAgICAgY2FzZSAnRUFDQ0VTJzpcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGJpbmQgKyAnIHJlcXVpcmVzIGVsZXZhdGVkIHByaXZpbGVnZXMnKTtcbiAgICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ0VBRERSSU5VU0UnOlxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYmluZCArICcgaXMgYWxyZWFkeSBpbiB1c2UnKTtcbiAgICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG4gICAgfSk7XG59XG5cbmNvbnN0IGRldlNlcnZlciA9IG5ldyBXZWJwYWNrRGV2U2VydmVyKFxuICAvLyB3cml0ZSB0byBtZW1vcnkgZmlsZXN5c3RlbSBzbyB3ZSBjYW4gaW1wb3J0XG4gIHtcbiAgICAuLi53ZWJwYWNrQ29uZmlnc1swXS5kZXZTZXJ2ZXIsXG4gICAgLypjbGllbnQ6IHtcbiAgICAgIC4uLndlYnBhY2tDb25maWdzWzBdLmRldlNlcnZlcj8uY2xpZW50LFxuICAgICAgd2ViU29ja2V0VVJMOiB7XG4gICAgICAgIC4uLndlYnBhY2tDb25maWdzWzBdLmRldlNlcnZlcj8uY2xpZW50LndlYlNvY2tldFVSTCxcbiAgICAgICAgcG9ydDogODA4MCxcbiAgICAgIH0sXG4gICAgfSwqL1xuICAgIGRldk1pZGRsZXdhcmU6IHtcbiAgICAgIC4uLndlYnBhY2tDb25maWdzWzBdPy5kZXZTZXJ2ZXI/LmRldk1pZGRsZXdhcmUsXG4gICAgICBvdXRwdXRGaWxlU3lzdGVtOiB7XG4gICAgICAgIC4uLmZzLFxuICAgICAgICBqb2luOiBwYXRoLmpvaW4gYXMgYW55LFxuICAgICAgfSBhcyBhbnkgYXMgdHlwZW9mIGZzLFxuICAgIH0sXG4gIH0sXG4gIGNvbXBpbGVyLFxuKTtcbmNvbnN0IHJ1blNlcnZlciA9IGFzeW5jICgpID0+IHtcbiAgYXdhaXQgZGV2U2VydmVyLnN0YXJ0KCk7XG4gIGRldlNlcnZlci5jb21waWxlci5ob29rcy5kb25lLnRhcChcbiAgICAnQW5hbnNpIFNlcnZlcicsXG4gICAgKG11bHRpU3RhdHM6IHdlYnBhY2suTXVsdGlTdGF0cyB8IHdlYnBhY2suU3RhdHMpID0+IHtcbiAgICAgIGlmICghbXVsdGlTdGF0cykge1xuICAgICAgICBsb2FkZXIuZmFpbCgnc3RhdHMgbm90IHNlbmQnKTtcbiAgICAgICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFPYmplY3QuaGFzT3duKG11bHRpU3RhdHMsICdzdGF0cycpKSByZXR1cm47XG4gICAgICBpZiAoc2VydmVyICYmIChtdWx0aVN0YXRzIGFzIHdlYnBhY2suTXVsdGlTdGF0cykuc3RhdHMubGVuZ3RoID4gMSkge1xuICAgICAgICByZW5kZXIgPSAoXG4gICAgICAgICAgaW1wb3J0RnJlc2goXG4gICAgICAgICAgICBnZXRTZXJ2ZXJCdW5kbGUoKG11bHRpU3RhdHMgYXMgd2VicGFjay5NdWx0aVN0YXRzKS5zdGF0c1sxXSksXG4gICAgICAgICAgKSBhcyBhbnlcbiAgICAgICAgKS5kZWZhdWx0O1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoIXNlcnZlcikge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGluaXRpYWxpemVBcHAoKG11bHRpU3RhdHMgYXMgd2VicGFjay5NdWx0aVN0YXRzKS5zdGF0cyk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBsb2FkZXIuZmFpbCgnRmFpbGVkIHRvIGluaXRpYWxpemUgYXBwJyk7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICk7XG59O1xuY29uc3Qgc3RvcFNlcnZlciA9IGFzeW5jICgpID0+IHtcbiAgbG9hZGVyLmluZm8oJ1N0b3BwaW5nIHNlcnZlci4uLicpO1xuICBhd2FpdCBkZXZTZXJ2ZXIuc3RvcCgpO1xuICBsb2FkZXIuaW5mbygnU2VydmVyIGNsb3NlZCcpO1xufTtcblxucHJvY2Vzcy5vbignU0lHSU5UJywgKCkgPT4ge1xuICBsb2FkZXIud2FybignUmVjZWl2ZWQgU0lHSU5ULCBkZXZzZXJ2ZXIgc2h1dHRpbmcgZG93bicpO1xuICBzdG9wU2VydmVyKCk7XG4gIHByb2Nlc3MuZXhpdCgtMSk7XG59KTtcblxucnVuU2VydmVyKCk7XG4iXSwibWFwcGluZ3MiOiJBQUFBOzs7OztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOzs7O0FBR0E7QUFDQSxNQUFNQSxhQUFhLEdBQUdDLE9BQU8sQ0FBQ0EsT0FBTyxDQUFDQyxPQUFSLEVBQzVCO0FBQ0FDLGFBQUEsQ0FBS0MsSUFBTCxDQUFVQyxPQUFPLENBQUNDLEdBQVIsRUFBVixFQUF5QixnQkFBekIsQ0FGNEIsQ0FBRCxDQUE3Qjs7QUFLQSxNQUFNQyxVQUFVLEdBQUdGLE9BQU8sQ0FBQ0csSUFBUixDQUFhLENBQWIsQ0FBbkI7QUFDQSxNQUFNQyxJQUFJLEdBQUdKLE9BQU8sQ0FBQ0ssR0FBUixDQUFZRCxJQUFaLElBQW9CLElBQWpDO0FBQ0FKLE9BQU8sQ0FBQ0ssR0FBUixDQUFZQyxtQkFBWixHQUFtQyxvQkFBbUJGLElBQUssRUFBM0Q7QUFDQUosT0FBTyxDQUFDSyxHQUFSLENBQVlFLG1CQUFaLEdBQWtDLFVBQWxDOztBQUVBLElBQUksQ0FBQ0wsVUFBTCxFQUFpQjtFQUNmTSxPQUFPLENBQUNDLEdBQVIsQ0FBYSxVQUFTVCxPQUFPLENBQUNHLElBQVIsQ0FBYSxDQUFiLENBQWdCLG9CQUF0QztFQUNBSCxPQUFPLENBQUNVLElBQVIsQ0FBYSxDQUFDLENBQWQ7QUFDRDs7QUFFREYsT0FBTyxDQUFDQyxHQUFSLENBQ0VFLGNBQUEsQ0FBTUMsV0FBTixDQUFtQixpQkFBbkIsQ0FERixFQUVFRCxjQUFBLENBQU1FLFVBQU4sQ0FBaUJiLE9BQU8sQ0FBQ0ssR0FBUixDQUFZQyxtQkFBN0IsQ0FGRjtBQUlB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
|
package/lib/spouts/restHooks.js
CHANGED
|
@@ -31,4 +31,4 @@ function restHooksSpout(options = {
|
|
|
31
31
|
};
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZXN0SG9va3NTcG91dCIsIm9wdGlvbnMiLCJnZXRNYW5hZ2VycyIsIk5ldHdvcmtNYW5hZ2VyIiwibmV4dCIsImRhdGEiLCJnZXREYXRhZnJvbURPTSIsIm5leHRQcm9wcyIsImFwcCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zcG91dHMvcmVzdEhvb2tzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDYWNoZVByb3ZpZGVyLCBNYW5hZ2VyLCBOZXR3b3JrTWFuYWdlciB9IGZyb20gJ0ByZXN0LWhvb2tzL2NvcmUnO1xuaW1wb3J0IHsgU2VydmVyRGF0YUNvbXBvbmVudCwgZ2V0RGF0YWZyb21ET00gfSBmcm9tICdAcmVzdC1ob29rcy9zc3InO1xuXG5pbXBvcnQgdHlwZSB7IFJlc29sdmVQcm9wcyB9IGZyb20gJy4vdHlwZXMnO1xuXG50eXBlIE5lZWRlZFByb3BzID0gUmVzb2x2ZVByb3BzO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiByZXN0SG9va3NTcG91dChcbiAgb3B0aW9uczoge1xuICAgIGdldE1hbmFnZXJzOiAoKSA9PiBNYW5hZ2VyW107XG4gIH0gPSB7IGdldE1hbmFnZXJzOiAoKSA9PiBbbmV3IE5ldHdvcmtNYW5hZ2VyKCldIH0sXG4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIDxUIGV4dGVuZHMgTmVlZGVkUHJvcHM+KG5leHQ6ICgpID0+IFByb21pc2U8VD4pIHtcbiAgICByZXR1cm4gYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZGF0YSA9IGdldERhdGFmcm9tRE9NKCk7XG5cbiAgICAgIGNvbnN0IG5leHRQcm9wcyA9IGF3YWl0IG5leHQoKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ubmV4dFByb3BzLFxuICAgICAgICBhcHA6IChcbiAgICAgICAgICA8Q2FjaGVQcm92aWRlciBpbml0aWFsU3RhdGU9e2RhdGF9IG1hbmFnZXJzPXtvcHRpb25zLmdldE1hbmFnZXJzKCl9PlxuICAgICAgICAgICAge25leHRQcm9wcy5hcHB9XG4gICAgICAgICAgICA8U2VydmVyRGF0YUNvbXBvbmVudCBkYXRhPXtkYXRhfSAvPlxuICAgICAgICAgIDwvQ2FjaGVQcm92aWRlcj5cbiAgICAgICAgKSxcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFNZSxTQUFTQSxjQUFULENBQ2JDLE9BRUMsR0FBRztFQUFFQyxXQUFXLEVBQUUsTUFBTSxDQUFDLElBQUlDLG9CQUFKLEVBQUQ7QUFBckIsQ0FIUyxFQUliO0VBQ0EsT0FBTyxVQUFpQ0MsSUFBakMsRUFBeUQ7SUFDOUQsT0FBTyxZQUFZO01BQ2pCLE1BQU1DLElBQUksR0FBRyxJQUFBQyxtQkFBQSxHQUFiO01BRUEsTUFBTUMsU0FBUyxHQUFHLE1BQU1ILElBQUksRUFBNUI7TUFFQSxPQUFPLEVBQ0wsR0FBR0csU0FERTtRQUVMQyxHQUFHLGVBQ0QsbUJBQUMsbUJBQUQ7VUFBZSxZQUFZLEVBQUVILElBQTdCO1VBQW1DLFFBQVEsRUFBRUosT0FBTyxDQUFDQyxXQUFSO1FBQTdDLFdBQ0dLLFNBQVMsQ0FBQ0MsR0FEYixlQUVFLG1CQUFDLHdCQUFEO1VBQXFCLElBQUksRUFBRUg7UUFBM0IsRUFGRjtNQUhHLENBQVA7SUFTRCxDQWREO0VBZUQsQ0FoQkQ7QUFpQkQifQ==
|
|
@@ -27,4 +27,4 @@ function restHooksSpout(options = {
|
|
|
27
27
|
};
|
|
28
28
|
};
|
|
29
29
|
}
|
|
30
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZXN0SG9va3NTcG91dCIsIm9wdGlvbnMiLCJnZXRNYW5hZ2VycyIsIk5ldHdvcmtNYW5hZ2VyIiwibmV4dCIsInByb3BzIiwiU2VydmVyQ2FjaGVQcm92aWRlciIsImNvbnRyb2xsZXIiLCJjcmVhdGVQZXJzaXN0ZWRTdG9yZSIsIm5leHRQcm9wcyIsImFwcCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zcG91dHMvcmVzdEhvb2tzLnNlcnZlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWFuYWdlciwgTmV0d29ya01hbmFnZXIgfSBmcm9tICdAcmVzdC1ob29rcy9jb3JlJztcbmltcG9ydCB7IGNyZWF0ZVBlcnNpc3RlZFN0b3JlIH0gZnJvbSAnQHJlc3QtaG9va3Mvc3NyJztcblxuaW1wb3J0IHR5cGUgeyBSZXNvbHZlUHJvcHMsIFNlcnZlclByb3BzIH0gZnJvbSAnLi90eXBlcyc7XG5cbnR5cGUgTmVlZGVkUHJvcHMgPSBSZXNvbHZlUHJvcHM7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlc3RIb29rc1Nwb3V0KFxuICBvcHRpb25zOiB7XG4gICAgZ2V0TWFuYWdlcnM6ICgpID0+IE1hbmFnZXJbXTtcbiAgfSA9IHsgZ2V0TWFuYWdlcnM6ICgpID0+IFtuZXcgTmV0d29ya01hbmFnZXIoKV0gfSxcbikge1xuICByZXR1cm4gZnVuY3Rpb24gPFQgZXh0ZW5kcyBOZWVkZWRQcm9wcz4oXG4gICAgbmV4dDogKHByb3BzOiBTZXJ2ZXJQcm9wcykgPT4gUHJvbWlzZTxUPixcbiAgKSB7XG4gICAgcmV0dXJuIGFzeW5jIChwcm9wczogU2VydmVyUHJvcHMpID0+IHtcbiAgICAgIGNvbnN0IFtTZXJ2ZXJDYWNoZVByb3ZpZGVyLCBjb250cm9sbGVyXSA9IGNyZWF0ZVBlcnNpc3RlZFN0b3JlKFxuICAgICAgICBvcHRpb25zLmdldE1hbmFnZXJzKCksXG4gICAgICApO1xuXG4gICAgICBjb25zdCBuZXh0UHJvcHMgPSBhd2FpdCBuZXh0KHByb3BzKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ubmV4dFByb3BzLFxuICAgICAgICBjb250cm9sbGVyLFxuICAgICAgICBhcHA6IDxTZXJ2ZXJDYWNoZVByb3ZpZGVyPntuZXh0UHJvcHMuYXBwfTwvU2VydmVyQ2FjaGVQcm92aWRlcj4sXG4gICAgICB9O1xuICAgIH07XG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBTWUsU0FBU0EsY0FBVCxDQUNiQyxPQUVDLEdBQUc7RUFBRUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxJQUFJQyxvQkFBSixFQUFEO0FBQXJCLENBSFMsRUFJYjtFQUNBLE9BQU8sVUFDTEMsSUFESyxFQUVMO0lBQ0EsT0FBTyxNQUFPQyxLQUFQLElBQThCO01BQ25DLE1BQU0sQ0FBQ0MsbUJBQUQsRUFBc0JDLFVBQXRCLElBQW9DLElBQUFDLHlCQUFBLEVBQ3hDUCxPQUFPLENBQUNDLFdBQVIsRUFEd0MsQ0FBMUM7TUFJQSxNQUFNTyxTQUFTLEdBQUcsTUFBTUwsSUFBSSxDQUFDQyxLQUFELENBQTVCO01BRUEsT0FBTyxFQUNMLEdBQUdJLFNBREU7UUFFTEYsVUFGSztRQUdMRyxHQUFHLGVBQUUsbUJBQUMsbUJBQUQsY0FBc0JELFNBQVMsQ0FBQ0MsR0FBaEM7TUFIQSxDQUFQO0lBS0QsQ0FaRDtFQWFELENBaEJEO0FBaUJEIn0=
|
package/lib/spouts/router.js
CHANGED
|
@@ -38,4 +38,4 @@ function routerSpout(options) {
|
|
|
38
38
|
};
|
|
39
39
|
};
|
|
40
40
|
}
|
|
41
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyb3V0ZXJTcG91dCIsIm9wdGlvbnMiLCJjcmVhdGVSb3V0ZUNvbXBvbmVudCIsInJvdXRlciIsIlJvdXRlciIsImNoaWxkcmVuIiwicmVzb2x2ZVdpdGgiLCJ1c2VSZXNvbHZlV2l0aCIsIm5leHQiLCJoaXN0b3J5IiwiY3JlYXRlQnJvd3Nlckhpc3RvcnkiLCJjcmVhdGVSb3V0ZXIiLCJtYXRjaGVkUm91dGVzIiwiZ2V0TWF0Y2hlZFJvdXRlcyIsImxvY2F0aW9uIiwicGF0aG5hbWUiLCJuZXh0UHJvcHMiLCJhcHAiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc3BvdXRzL3JvdXRlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm91dGUsIFJvdXRlUHJvdmlkZXIsIFJvdXRlQ29udHJvbGxlciB9IGZyb20gJ0BhbmFuc2kvcm91dGVyJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjcmVhdGVCcm93c2VySGlzdG9yeSB9IGZyb20gJ2hpc3RvcnknO1xuXG5pbXBvcnQgdHlwZSB7IFJlc29sdmVQcm9wcywgQ3JlYXRlUm91dGVyIH0gZnJvbSAnLi90eXBlcyc7XG5cbnR5cGUgTmVlZGVkUHJvcHMgPSBSZXNvbHZlUHJvcHM7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJvdXRlclNwb3V0PFJlc29sdmVXaXRoPihvcHRpb25zOiB7XG4gIHJlc29sdmVXaXRoPzogYW55O1xuICB1c2VSZXNvbHZlV2l0aDogKCkgPT4gUmVzb2x2ZVdpdGg7XG4gIGNyZWF0ZVJvdXRlcjogQ3JlYXRlUm91dGVyPFJlc29sdmVXaXRoPjtcbn0pIHtcbiAgY29uc3QgY3JlYXRlUm91dGVDb21wb25lbnQgPSAoXG4gICAgcm91dGVyOiBSb3V0ZUNvbnRyb2xsZXI8Um91dGU8UmVzb2x2ZVdpdGgsIGFueT4+LFxuICApID0+XG4gICAgZnVuY3Rpb24gUm91dGVyKHsgY2hpbGRyZW4gfTogeyBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlIH0pIHtcbiAgICAgIGNvbnN0IHJlc29sdmVXaXRoID0gb3B0aW9ucy51c2VSZXNvbHZlV2l0aCgpO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8Um91dGVQcm92aWRlciByb3V0ZXI9e3JvdXRlcn0gcmVzb2x2ZVdpdGg9e3Jlc29sdmVXaXRofT5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvUm91dGVQcm92aWRlcj5cbiAgICAgICk7XG4gICAgfTtcblxuICByZXR1cm4gZnVuY3Rpb24gPFQgZXh0ZW5kcyBOZWVkZWRQcm9wcz4obmV4dDogKCkgPT4gUHJvbWlzZTxUPikge1xuICAgIHJldHVybiBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBoaXN0b3J5ID0gY3JlYXRlQnJvd3Nlckhpc3RvcnkoKTtcbiAgICAgIGNvbnN0IHJvdXRlciA9IG9wdGlvbnMuY3JlYXRlUm91dGVyKGhpc3RvcnkpO1xuICAgICAgY29uc3QgbWF0Y2hlZFJvdXRlcyA9IHJvdXRlci5nZXRNYXRjaGVkUm91dGVzKGhpc3RvcnkubG9jYXRpb24ucGF0aG5hbWUpO1xuXG4gICAgICBjb25zdCBuZXh0UHJvcHMgPSBhd2FpdCBuZXh0KCk7XG5cbiAgICAgIGNvbnN0IFJvdXRlciA9IGNyZWF0ZVJvdXRlQ29tcG9uZW50KHJvdXRlcik7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5uZXh0UHJvcHMsXG4gICAgICAgIG1hdGNoZWRSb3V0ZXMsXG4gICAgICAgIGFwcDogPFJvdXRlcj57bmV4dFByb3BzLmFwcH08L1JvdXRlcj4sXG4gICAgICB9O1xuICAgIH07XG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQU1lLFNBQVNBLFdBQVQsQ0FBa0NDLE9BQWxDLEVBSVo7RUFDRCxNQUFNQyxvQkFBb0IsR0FDeEJDLE1BRDJCLElBRzNCLFNBQVNDLE1BQVQsQ0FBZ0I7SUFBRUM7RUFBRixDQUFoQixFQUE2RDtJQUMzRCxNQUFNQyxXQUFXLEdBQUdMLE9BQU8sQ0FBQ00sY0FBUixFQUFwQjtJQUVBLG9CQUNFLG1CQUFDLHFCQUFEO01BQWUsTUFBTSxFQUFFSixNQUF2QjtNQUErQixXQUFXLEVBQUVHO0lBQTVDLFdBQ0dELFFBREgsQ0FERjtFQUtELENBWEg7O0VBYUEsT0FBTyxVQUFpQ0csSUFBakMsRUFBeUQ7SUFDOUQsT0FBTyxZQUFZO01BQ2pCLE1BQU1DLE9BQU8sR0FBRyxJQUFBQyw2QkFBQSxHQUFoQjtNQUNBLE1BQU1QLE1BQU0sR0FBR0YsT0FBTyxDQUFDVSxZQUFSLENBQXFCRixPQUFyQixDQUFmO01BQ0EsTUFBTUcsYUFBYSxHQUFHVCxNQUFNLENBQUNVLGdCQUFQLENBQXdCSixPQUFPLENBQUNLLFFBQVIsQ0FBaUJDLFFBQXpDLENBQXRCO01BRUEsTUFBTUMsU0FBUyxHQUFHLE1BQU1SLElBQUksRUFBNUI7TUFFQSxNQUFNSixNQUFNLEdBQUdGLG9CQUFvQixDQUFDQyxNQUFELENBQW5DO01BQ0EsT0FBTyxFQUNMLEdBQUdhLFNBREU7UUFFTEosYUFGSztRQUdMSyxHQUFHLGVBQUUsbUJBQUMsTUFBRCxjQUFTRCxTQUFTLENBQUNDLEdBQW5CO01BSEEsQ0FBUDtJQUtELENBYkQ7RUFjRCxDQWZEO0FBZ0JEIn0=
|
|
@@ -40,4 +40,4 @@ function routerSpout(options) {
|
|
|
40
40
|
};
|
|
41
41
|
};
|
|
42
42
|
}
|
|
43
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyb3V0ZXJTcG91dCIsIm9wdGlvbnMiLCJjcmVhdGVSb3V0ZUNvbXBvbmVudCIsInJvdXRlciIsIlJvdXRlciIsImNoaWxkcmVuIiwicmVzb2x2ZVdpdGgiLCJ1c2VSZXNvbHZlV2l0aCIsIm5leHQiLCJwcm9wcyIsInVybCIsInJlcSIsImNyZWF0ZVJvdXRlciIsImNyZWF0ZU1lbW9yeUhpc3RvcnkiLCJpbml0aWFsRW50cmllcyIsIm1hdGNoZWRSb3V0ZXMiLCJnZXRNYXRjaGVkUm91dGVzIiwibmV4dFByb3BzIiwiYXBwIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Nwb3V0cy9yb3V0ZXIuc2VydmVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3V0ZSwgUm91dGVQcm92aWRlciwgUm91dGVDb250cm9sbGVyIH0gZnJvbSAnQGFuYW5zaS9yb3V0ZXInO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNyZWF0ZU1lbW9yeUhpc3RvcnkgfSBmcm9tICdoaXN0b3J5JztcblxuaW1wb3J0IHR5cGUgeyBSZXNvbHZlUHJvcHMsIFNlcnZlclByb3BzLCBDcmVhdGVSb3V0ZXIgfSBmcm9tICcuL3R5cGVzJztcblxudHlwZSBOZWVkZWRQcm9wcyA9IFJlc29sdmVQcm9wcztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcm91dGVyU3BvdXQ8UmVzb2x2ZVdpdGg+KG9wdGlvbnM6IHtcbiAgcmVzb2x2ZVdpdGg/OiBhbnk7XG4gIHVzZVJlc29sdmVXaXRoOiAoKSA9PiBSZXNvbHZlV2l0aDtcbiAgY3JlYXRlUm91dGVyOiBDcmVhdGVSb3V0ZXI8UmVzb2x2ZVdpdGg+O1xufSkge1xuICBjb25zdCBjcmVhdGVSb3V0ZUNvbXBvbmVudCA9IChcbiAgICByb3V0ZXI6IFJvdXRlQ29udHJvbGxlcjxSb3V0ZTxSZXNvbHZlV2l0aCwgYW55Pj4sXG4gICkgPT5cbiAgICBmdW5jdGlvbiBSb3V0ZXIoeyBjaGlsZHJlbiB9OiB7IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGUgfSkge1xuICAgICAgY29uc3QgcmVzb2x2ZVdpdGggPSBvcHRpb25zLnVzZVJlc29sdmVXaXRoKCk7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxSb3V0ZVByb3ZpZGVyIHJvdXRlcj17cm91dGVyfSByZXNvbHZlV2l0aD17cmVzb2x2ZVdpdGh9PlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9Sb3V0ZVByb3ZpZGVyPlxuICAgICAgKTtcbiAgICB9O1xuXG4gIHJldHVybiBmdW5jdGlvbiA8VCBleHRlbmRzIE5lZWRlZFByb3BzPihcbiAgICBuZXh0OiAocHJvcHM6IFNlcnZlclByb3BzKSA9PiBQcm9taXNlPFQ+LFxuICApIHtcbiAgICByZXR1cm4gYXN5bmMgKHByb3BzOiBTZXJ2ZXJQcm9wcykgPT4ge1xuICAgICAgY29uc3QgdXJsID0gcHJvcHMucmVxLnVybCB8fCAnJztcbiAgICAgIGNvbnN0IHJvdXRlciA9IG9wdGlvbnMuY3JlYXRlUm91dGVyKFxuICAgICAgICBjcmVhdGVNZW1vcnlIaXN0b3J5KHsgaW5pdGlhbEVudHJpZXM6IFt1cmxdIH0pLFxuICAgICAgKTtcbiAgICAgIGNvbnN0IG1hdGNoZWRSb3V0ZXM6IFJvdXRlPFJlc29sdmVXaXRoPltdID0gcm91dGVyLmdldE1hdGNoZWRSb3V0ZXModXJsKTtcblxuICAgICAgY29uc3QgbmV4dFByb3BzID0gYXdhaXQgbmV4dChwcm9wcyk7XG5cbiAgICAgIGNvbnN0IFJvdXRlciA9IGNyZWF0ZVJvdXRlQ29tcG9uZW50KHJvdXRlcik7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5uZXh0UHJvcHMsXG4gICAgICAgIG1hdGNoZWRSb3V0ZXMsXG4gICAgICAgIGFwcDogPFJvdXRlcj57bmV4dFByb3BzLmFwcH08L1JvdXRlcj4sXG4gICAgICB9O1xuICAgIH07XG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQU1lLFNBQVNBLFdBQVQsQ0FBa0NDLE9BQWxDLEVBSVo7RUFDRCxNQUFNQyxvQkFBb0IsR0FDeEJDLE1BRDJCLElBRzNCLFNBQVNDLE1BQVQsQ0FBZ0I7SUFBRUM7RUFBRixDQUFoQixFQUE2RDtJQUMzRCxNQUFNQyxXQUFXLEdBQUdMLE9BQU8sQ0FBQ00sY0FBUixFQUFwQjtJQUVBLG9CQUNFLG1CQUFDLHFCQUFEO01BQWUsTUFBTSxFQUFFSixNQUF2QjtNQUErQixXQUFXLEVBQUVHO0lBQTVDLFdBQ0dELFFBREgsQ0FERjtFQUtELENBWEg7O0VBYUEsT0FBTyxVQUNMRyxJQURLLEVBRUw7SUFDQSxPQUFPLE1BQU9DLEtBQVAsSUFBOEI7TUFDbkMsTUFBTUMsR0FBRyxHQUFHRCxLQUFLLENBQUNFLEdBQU4sQ0FBVUQsR0FBVixJQUFpQixFQUE3QjtNQUNBLE1BQU1QLE1BQU0sR0FBR0YsT0FBTyxDQUFDVyxZQUFSLENBQ2IsSUFBQUMsNEJBQUEsRUFBb0I7UUFBRUMsY0FBYyxFQUFFLENBQUNKLEdBQUQ7TUFBbEIsQ0FBcEIsQ0FEYSxDQUFmO01BR0EsTUFBTUssYUFBbUMsR0FBR1osTUFBTSxDQUFDYSxnQkFBUCxDQUF3Qk4sR0FBeEIsQ0FBNUM7TUFFQSxNQUFNTyxTQUFTLEdBQUcsTUFBTVQsSUFBSSxDQUFDQyxLQUFELENBQTVCO01BRUEsTUFBTUwsTUFBTSxHQUFHRixvQkFBb0IsQ0FBQ0MsTUFBRCxDQUFuQztNQUNBLE9BQU8sRUFDTCxHQUFHYyxTQURFO1FBRUxGLGFBRks7UUFHTEcsR0FBRyxlQUFFLG1CQUFDLE1BQUQsY0FBU0QsU0FBUyxDQUFDQyxHQUFuQjtNQUhBLENBQVA7SUFLRCxDQWZEO0VBZ0JELENBbkJEO0FBb0JEIn0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@anansi/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "React 18 Framework",
|
|
5
5
|
"homepage": "https://github.com/ntucker/anansi/tree/master/packages/core#readme",
|
|
6
6
|
"repository": {
|
|
@@ -56,25 +56,27 @@
|
|
|
56
56
|
"browser"
|
|
57
57
|
],
|
|
58
58
|
"devDependencies": {
|
|
59
|
-
"@anansi/babel-preset": "^3.1.
|
|
59
|
+
"@anansi/babel-preset": "^3.1.2",
|
|
60
60
|
"@anansi/browserslist-config": "1.3.3",
|
|
61
61
|
"@babel/cli": "7.17.10",
|
|
62
|
-
"@babel/core": "7.17.
|
|
62
|
+
"@babel/core": "7.17.12",
|
|
63
63
|
"@types/compression": "^1.7.2",
|
|
64
64
|
"@types/source-map-support": "^0.5.4",
|
|
65
65
|
"@types/tmp": "^0.2.3",
|
|
66
66
|
"@types/webpack-hot-middleware": "^2.25.6",
|
|
67
|
-
"jest": "28.0
|
|
67
|
+
"jest": "28.1.0",
|
|
68
68
|
"rimraf": "^3.0.0"
|
|
69
69
|
},
|
|
70
70
|
"dependencies": {
|
|
71
|
-
"@anansi/router": "^0.4.
|
|
71
|
+
"@anansi/router": "^0.4.2",
|
|
72
72
|
"@babel/runtime": "^7.10.5",
|
|
73
73
|
"@rest-hooks/ssr": "^0.1.3",
|
|
74
|
+
"chalk": "^4.0.0",
|
|
74
75
|
"compression": "^1.7.4",
|
|
75
76
|
"cross-fetch": "^3.1.5",
|
|
76
77
|
"express": "^4.17.3",
|
|
77
78
|
"fs-monkey": "^1.0.3",
|
|
79
|
+
"import-fresh": "^3.3.0",
|
|
78
80
|
"memfs": "^3.4.1",
|
|
79
81
|
"ora": "^5.0.0",
|
|
80
82
|
"redux": "^4.1.2",
|
|
@@ -82,14 +84,15 @@
|
|
|
82
84
|
"source-map-support": "^0.5.21",
|
|
83
85
|
"tmp": "^0.2.1",
|
|
84
86
|
"unionfs": "^4.4.0",
|
|
85
|
-
"webpack-
|
|
87
|
+
"webpack-dev-server": "^4.9.0",
|
|
86
88
|
"whatwg-fetch": "^3.6.2"
|
|
87
89
|
},
|
|
88
90
|
"peerDependencies": {
|
|
89
91
|
"@types/react": "^17.0.40 || ^18.0.0-0",
|
|
90
92
|
"@types/react-dom": "^17.0.40 || ^18.0.0-0",
|
|
91
93
|
"react": "^18.0.0-0",
|
|
92
|
-
"react-dom": "^18.0.0-0"
|
|
94
|
+
"react-dom": "^18.0.0-0",
|
|
95
|
+
"webpack": "^5.60.0"
|
|
93
96
|
},
|
|
94
97
|
"peerDependenciesMeta": {
|
|
95
98
|
"@types/react": {
|
package/src/laySpouts.tsx
CHANGED
|
@@ -7,7 +7,7 @@ export default function laySpouts(
|
|
|
7
7
|
spouts: (props: ServerProps) => Promise<{
|
|
8
8
|
app: JSX.Element;
|
|
9
9
|
}>,
|
|
10
|
-
{ timeoutMS =
|
|
10
|
+
{ timeoutMS = 100 }: { timeoutMS?: number } = {},
|
|
11
11
|
) {
|
|
12
12
|
const render: Render = async (clientManifest, req, res) => {
|
|
13
13
|
const { app } = await spouts({ clientManifest, req, res });
|
|
@@ -4,7 +4,6 @@ import { promisify } from 'util';
|
|
|
4
4
|
import diskFs from 'fs';
|
|
5
5
|
import path from 'path';
|
|
6
6
|
import webpack, { MultiCompiler } from 'webpack';
|
|
7
|
-
import webpackHotMiddleware from 'webpack-hot-middleware';
|
|
8
7
|
import { createFsFromVolume, Volume } from 'memfs';
|
|
9
8
|
import { Server, IncomingMessage, ServerResponse } from 'http';
|
|
10
9
|
import express, { NextFunction } from 'express';
|
|
@@ -14,6 +13,9 @@ import tmp from 'tmp';
|
|
|
14
13
|
import sourceMapSupport from 'source-map-support';
|
|
15
14
|
import { ufs } from 'unionfs';
|
|
16
15
|
import compress from 'compression';
|
|
16
|
+
import WebpackDevServer from 'webpack-dev-server';
|
|
17
|
+
import importFresh from 'import-fresh';
|
|
18
|
+
import chalk from 'chalk';
|
|
17
19
|
|
|
18
20
|
import 'cross-fetch/polyfill';
|
|
19
21
|
import { Render } from './types';
|
|
@@ -34,7 +36,11 @@ if (!entrypoint) {
|
|
|
34
36
|
process.exit(-1);
|
|
35
37
|
}
|
|
36
38
|
|
|
37
|
-
|
|
39
|
+
console.log(
|
|
40
|
+
chalk.greenBright(`Starting SSR at`),
|
|
41
|
+
chalk.cyanBright(process.env.WEBPACK_PUBLIC_HOST),
|
|
42
|
+
);
|
|
43
|
+
const loader = ora().start();
|
|
38
44
|
|
|
39
45
|
// Set up in memory filesystem
|
|
40
46
|
const volume = new Volume();
|
|
@@ -75,20 +81,19 @@ const webpackConfigs = [
|
|
|
75
81
|
),
|
|
76
82
|
webpackConfig(
|
|
77
83
|
{
|
|
78
|
-
entrypoint:
|
|
84
|
+
entrypoint: entrypoint.replace('.tsx', '.server.tsx'),
|
|
79
85
|
name: 'server',
|
|
80
86
|
},
|
|
81
87
|
{ mode: 'development', target: 'node' },
|
|
82
88
|
),
|
|
83
89
|
] as const;
|
|
90
|
+
// only have one output for server so we can avoid cached modules
|
|
91
|
+
webpackConfigs[1].plugins.push(
|
|
92
|
+
new webpack.optimize.LimitChunkCountPlugin({ maxChunks: 1 }),
|
|
93
|
+
);
|
|
84
94
|
// initialize the webpack compiler
|
|
85
95
|
const compiler: MultiCompiler = webpack(webpackConfigs);
|
|
86
96
|
|
|
87
|
-
compiler.outputFileSystem = {
|
|
88
|
-
...fs,
|
|
89
|
-
join: path.join as any,
|
|
90
|
-
} as any as typeof fs;
|
|
91
|
-
|
|
92
97
|
sourceMapSupport.install({ hookRequire: true });
|
|
93
98
|
|
|
94
99
|
function getServerBundle(serverStats: webpack.Stats) {
|
|
@@ -113,19 +118,20 @@ function handleErrors<
|
|
|
113
118
|
}
|
|
114
119
|
};
|
|
115
120
|
}
|
|
116
|
-
|
|
121
|
+
let render: Render;
|
|
117
122
|
// Start the express server after the first compilation
|
|
118
123
|
function initializeApp(stats: webpack.Stats[]) {
|
|
119
|
-
loader.info('Launching server');
|
|
120
124
|
const [clientStats, serverStats] = stats;
|
|
121
125
|
if (
|
|
122
126
|
clientStats?.compilation?.errors?.length ||
|
|
123
127
|
serverStats?.compilation?.errors?.length
|
|
124
128
|
) {
|
|
125
|
-
|
|
126
|
-
|
|
129
|
+
loader.fail('Errors for client build: ' + clientStats.compilation.errors);
|
|
130
|
+
loader.fail('Errors for server build: ' + serverStats.compilation.errors);
|
|
127
131
|
// TODO: handle more gracefully
|
|
128
132
|
process.exit(-1);
|
|
133
|
+
} else {
|
|
134
|
+
loader.info('Launching server');
|
|
129
135
|
}
|
|
130
136
|
|
|
131
137
|
const wrappingApp = express();
|
|
@@ -134,19 +140,12 @@ function initializeApp(stats: webpack.Stats[]) {
|
|
|
134
140
|
wrappingApp.use(compress());
|
|
135
141
|
|
|
136
142
|
// ASSETS
|
|
137
|
-
wrappingApp.use(
|
|
138
|
-
webpackHotMiddleware(compiler.compilers[0], {
|
|
139
|
-
log: console.log,
|
|
140
|
-
path: '/__webpack_hmr',
|
|
141
|
-
heartbeat: 10 * 1000,
|
|
142
|
-
//noInfo: true,
|
|
143
|
-
//name: 'client',
|
|
144
|
-
}),
|
|
145
|
-
);
|
|
146
143
|
const clientManifest = clientStats.toJson();
|
|
147
144
|
const assetRoute = async (req: Request | IncomingMessage, res: any) => {
|
|
148
145
|
const filename =
|
|
149
|
-
req.url
|
|
146
|
+
req.url
|
|
147
|
+
?.substring((process.env.WEBPACK_PUBLIC_PATH as string).length)
|
|
148
|
+
.split('?')[0] ?? '';
|
|
150
149
|
const assetPath = path.join(clientManifest.outputPath ?? '', filename);
|
|
151
150
|
|
|
152
151
|
try {
|
|
@@ -163,7 +162,7 @@ function initializeApp(stats: webpack.Stats[]) {
|
|
|
163
162
|
|
|
164
163
|
// SERVER SIDE RENDERING
|
|
165
164
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
166
|
-
|
|
165
|
+
render = require(getServerBundle(serverStats)).default;
|
|
167
166
|
wrappingApp.get(
|
|
168
167
|
'/*',
|
|
169
168
|
handleErrors(async function (req: any, res: any) {
|
|
@@ -183,7 +182,7 @@ function initializeApp(stats: webpack.Stats[]) {
|
|
|
183
182
|
|
|
184
183
|
server = wrappingApp
|
|
185
184
|
.listen(PORT, () => {
|
|
186
|
-
|
|
185
|
+
loader.succeed(`SSR Running`);
|
|
187
186
|
})
|
|
188
187
|
.on('error', function (error: any) {
|
|
189
188
|
if (error.syscall !== 'listen') {
|
|
@@ -206,37 +205,67 @@ function initializeApp(stats: webpack.Stats[]) {
|
|
|
206
205
|
});
|
|
207
206
|
}
|
|
208
207
|
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
208
|
+
const devServer = new WebpackDevServer(
|
|
209
|
+
// write to memory filesystem so we can import
|
|
210
|
+
{
|
|
211
|
+
...webpackConfigs[0].devServer,
|
|
212
|
+
/*client: {
|
|
213
|
+
...webpackConfigs[0].devServer?.client,
|
|
214
|
+
webSocketURL: {
|
|
215
|
+
...webpackConfigs[0].devServer?.client.webSocketURL,
|
|
216
|
+
port: 8080,
|
|
217
|
+
},
|
|
218
|
+
},*/
|
|
219
|
+
devMiddleware: {
|
|
220
|
+
...webpackConfigs[0]?.devServer?.devMiddleware,
|
|
221
|
+
outputFileSystem: {
|
|
222
|
+
...fs,
|
|
223
|
+
join: path.join as any,
|
|
224
|
+
} as any as typeof fs,
|
|
225
|
+
},
|
|
226
|
+
},
|
|
227
|
+
compiler,
|
|
228
|
+
);
|
|
229
|
+
const runServer = async () => {
|
|
230
|
+
await devServer.start();
|
|
231
|
+
devServer.compiler.hooks.done.tap(
|
|
232
|
+
'Anansi Server',
|
|
233
|
+
(multiStats: webpack.MultiStats | webpack.Stats) => {
|
|
234
|
+
if (!multiStats) {
|
|
235
|
+
loader.fail('stats not send');
|
|
236
|
+
process.exit(-1);
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
if (!Object.hasOwn(multiStats, 'stats')) return;
|
|
240
|
+
if (server && (multiStats as webpack.MultiStats).stats.length > 1) {
|
|
241
|
+
render = (
|
|
242
|
+
importFresh(
|
|
243
|
+
getServerBundle((multiStats as webpack.MultiStats).stats[1]),
|
|
244
|
+
) as any
|
|
245
|
+
).default;
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
248
|
+
if (!server) {
|
|
249
|
+
try {
|
|
250
|
+
initializeApp((multiStats as webpack.MultiStats).stats);
|
|
251
|
+
} catch (e) {
|
|
252
|
+
loader.fail('Failed to initialize app');
|
|
253
|
+
console.error(e);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
},
|
|
257
|
+
);
|
|
258
|
+
};
|
|
259
|
+
const stopServer = async () => {
|
|
260
|
+
loader.info('Stopping server...');
|
|
261
|
+
await devServer.stop();
|
|
262
|
+
loader.info('Server closed');
|
|
263
|
+
};
|
|
231
264
|
|
|
232
265
|
process.on('SIGINT', () => {
|
|
233
266
|
loader.warn('Received SIGINT, devserver shutting down');
|
|
234
|
-
|
|
235
|
-
server?.close(() => {
|
|
236
|
-
loader.info('Server closed');
|
|
237
|
-
});
|
|
238
|
-
watcher.close(() => {
|
|
239
|
-
loader.info('webpack build stopped');
|
|
240
|
-
});
|
|
267
|
+
stopServer();
|
|
241
268
|
process.exit(-1);
|
|
242
269
|
});
|
|
270
|
+
|
|
271
|
+
runServer();
|