@copperjs/copper
Version:
A lightweight chromium grid
29 lines • 1.32 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.StandaloneServer = void 0;
const fastify_1 = require("fastify");
const routes_1 = require("./routes");
const websockets_1 = require("../common/websockets");
const sessionManager_1 = require("./sessionManager");
const errors_1 = require("../common/errors");
const utils_1 = require("../common/utils");
const config_1 = require("./config");
const commands_1 = require("./webdriver/commands");
class StandaloneServer {
constructor({ port, logLevel }) {
this.port = port;
this.app = fastify_1.default({ logger: { level: logLevel }, bodyLimit: 1024 * 1024 * 100 });
this.app.register(routes_1.registerRoutes, { prefix: config_1.copperConfig.value.routesPrefix });
this.app.register(websockets_1.registerWebsocket, sessionManager_1.sessionManager);
this.app.register(commands_1.webdriver, { prefix: `${config_1.copperConfig.value.routesPrefix}session/:sessionId/` });
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.StandaloneServer = StandaloneServer;
//# sourceMappingURL=server.js.map