| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 | "use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.init = exports.plugin = void 0;const socket_io_1 = require("socket.io");const utils = require("./server/utils");/** * Plugin interface * @returns {*|function(this:exports)} */function plugin(server, clientEvents, bs) {    return exports.init(server, clientEvents, bs);}exports.plugin = plugin;/** * @param {http.Server} server * @param clientEvents * @param {BrowserSync} bs */function init(server, clientEvents, bs) {    var emitter = bs.events;    var socketConfig = bs.options.get("socket").toJS();    if (bs.options.get("mode") === "proxy" &&        bs.options.getIn(["proxy", "ws"])) {        server = utils.getServer(null, bs.options).server;        server.listen(bs.options.getIn(["socket", "port"]));        bs.registerCleanupTask(function () {            server.close();        });    }    var socketIoConfig = socketConfig.socketIoOptions;    socketIoConfig.path = socketConfig.path;    const io = new socket_io_1.Server();    io.attach(server, Object.assign(Object.assign({}, socketIoConfig), { pingTimeout: socketConfig.clients.heartbeatTimeout, cors: {            credentials: true,            "origin": (origin, cb) => {                return cb(null, origin);            },        } }));    io.of(socketConfig.namespace).on('connection', (socket) => {        handleConnection(socket);    });    /**     * Handle each new connection     * @param {Object} client     */    function handleConnection(client) {        // set ghostmode callbacks        if (bs.options.get("ghostMode")) {            addGhostMode(client);        }        client.emit("connection", bs.options.toJS()); //todo - trim the amount of options sent to clients        emitter.emit("client:connected", {            ua: client.handshake.headers["user-agent"]        });    }    /**     * @param client     */    function addGhostMode(client) {        clientEvents.forEach(addEvent);        function addEvent(event) {            client.on(event, data => {                client.broadcast.emit(event, data);            });        }    }    // @ts-ignore    io.sockets = io.of(socketConfig.namespace);    return io;}exports.init = init;//# sourceMappingURL=sockets.js.map
 |