youzanyun-devtool-worker
Version:
58 lines (57 loc) • 2.08 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
require("./module-hack");
const path_1 = tslib_1.__importDefault(require("path"));
const spring4js_nodejs_1 = require("spring4js-nodejs");
const index_1 = tslib_1.__importDefault(require("web/server/index"));
const index_2 = tslib_1.__importDefault(require("web/proxy/index"));
const fast_glob_1 = tslib_1.__importDefault(require("fast-glob"));
const lodash_1 = require("lodash");
const delay_1 = tslib_1.__importDefault(require("delay"));
process.on("SIGINT", async () => {
try {
let container = global.container;
let lifecyleService = await container.getServiceInstance('lifecyleService');
await lifecyleService.shutdown();
}
catch (e) {
console.error(e);
}
await (0, delay_1.default)(1000);
process.exit();
});
process.on("uncaughtException", function (err) {
console.error(err);
});
process.on('unhandledRejection', (reason, p) => {
console.error("Unhandled Rejection at: Promise ", p, " reason: ", reason);
});
async function launch() {
let container = new spring4js_nodejs_1.Container();
let dirList = [
path_1.default.resolve(__dirname, 'controller'),
path_1.default.resolve(__dirname, 'service'),
path_1.default.resolve(__dirname, 'dao'),
];
for (let dir of dirList) {
let jsFileList = await (0, fast_glob_1.default)(['**/*.js'], {
cwd: dir
});
for (let jsFile of jsFileList) {
let obj = require(path_1.default.join(dir, jsFile));
if (!(0, lodash_1.isObject)(obj) || !(0, lodash_1.isObject)(obj.default)) {
continue;
}
let clazz = obj.default;
clazz.jsFile = jsFile;
container.registServiceClazz(clazz);
}
}
global.container = container;
let httpServer = new index_1.default({ container });
await httpServer.start();
let proxy = new index_2.default({ container });
await proxy.start();
}
launch();