@copperjs/copper
Version:
A lightweight chromium grid
31 lines • 1.41 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.HubServer = void 0;
const fastify_1 = require("fastify");
const sessionRoutes_1 = require("./sessionRoutes");
const websockets_1 = require("../common/websockets");
const errors_1 = require("../common/errors");
const gridRoutes_1 = require("./gridRoutes");
const grid_1 = require("./grid");
const sessionProxy_1 = require("./sessionProxy");
const utils_1 = require("../common/utils");
const config_1 = require("../standalone/config");
class HubServer {
constructor({ port, logLevel }) {
this.port = port;
this.app = fastify_1.default({ logger: { level: logLevel }, bodyLimit: 1024 * 1024 * 100 });
this.app.register(sessionRoutes_1.registerSessionRoutes, { prefix: config_1.copperConfig.value.routesPrefix });
this.app.register(sessionProxy_1.registerSessionProxy, { prefix: config_1.copperConfig.value.routesPrefix });
this.app.register(gridRoutes_1.registerGridRoutes, { prefix: '/grid/' });
this.app.register(websockets_1.registerWebsocket, grid_1.grid);
this.app.register(errors_1.registerErrorHandler);
}
async listen() {
return await this.app.listen(this.port, '0.0.0.0');
}
async stop() {
return await Promise.race([this.app.close(), utils_1.delay(5000)]);
}
}
exports.HubServer = HubServer;
//# sourceMappingURL=server.js.map