UNPKG

@loopback/socketio

Version:

LoopBack's WebSocket server based on socket.io

67 lines 2.91 kB
"use strict"; // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. // Node module: @loopback/socketio // This file is licensed under the MIT License. // License text available at https://opensource.org/licenses/MIT Object.defineProperty(exports, "__esModule", { value: true }); exports.SocketIoControllerDefaults = exports.SocketIoBooter = void 0; const tslib_1 = require("tslib"); // This file is based on https://github.com/loopbackio/loopback-next/blob/master/packages/boot/src/booters/repository.booter.ts const boot_1 = require("@loopback/boot"); const core_1 = require("@loopback/core"); const keys_1 = require("../keys"); const socketio_server_1 = require("../socketio.server"); /** * A class that extends {@link @loopback/boot#BaseArtifactBooter} to boot the * {@link SocketIoController} artifact type. * * @remarks * Discovered controllers are bound using * {@link @loopback/core#Application.controller}. * * Supported phases: `configure`, `discover`, `load` * * @param app - {@link @loopback/core#Application} instance * @param projectRoot - Root of User Project relative to which all paths are * resolved * @param socketioControllerConfig - Controller Artifact Options Object */ let SocketIoBooter = class SocketIoBooter extends boot_1.BaseArtifactBooter { constructor(app, projectRoot, socketioControllerConfig = {}, socketioServer) { super(projectRoot, // Set Controller Booter Options if passed in via bootConfig Object.assign({}, exports.SocketIoControllerDefaults, socketioControllerConfig)); this.app = app; this.socketioControllerConfig = socketioControllerConfig; this.socketioServer = socketioServer; } /** * Uses super method to get a list of Artifact classes. Boot each class by * binding it to the application using `app.controller(controller);`. */ async load() { await super.load(); const wsServer = await this.app.get(keys_1.SocketIoBindings.SERVER); this.classes.forEach(cls => { wsServer.route(cls); }); } }; exports.SocketIoBooter = SocketIoBooter; exports.SocketIoBooter = SocketIoBooter = tslib_1.__decorate([ (0, boot_1.booter)('socketioControllers'), tslib_1.__param(0, (0, core_1.inject)(core_1.CoreBindings.APPLICATION_INSTANCE)), tslib_1.__param(1, (0, core_1.inject)(boot_1.BootBindings.PROJECT_ROOT)), tslib_1.__param(2, (0, core_1.config)()), tslib_1.__param(3, (0, core_1.inject)(keys_1.SocketIoBindings.SERVER)), tslib_1.__metadata("design:paramtypes", [core_1.Application, String, Object, socketio_server_1.SocketIoServer]) ], SocketIoBooter); /** * Default ArtifactOptions for SocketIoControllerBooter. */ exports.SocketIoControllerDefaults = { dirs: ['ws-controllers'], extensions: ['.controller.js'], nested: true, }; //# sourceMappingURL=socketio.booter.js.map