@lskjs/server
Version:
LSK server.
127 lines (104 loc) • 13.3 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
var _socket = _interopRequireDefault(require("socket.io-as-promised"));
var _cookieParser = _interopRequireDefault(require("cookie-parser"));
var _socket2 = _interopRequireDefault(require("socket.io"));
var _isFunction = _interopRequireDefault(require("lodash/isFunction"));
var _socket2req = _interopRequireDefault(require("./middlewares/socket2req"));
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
var _default = function _default(app) {
try {
var ws = (0, _socket2["default"])();
ws.wrapExpressMiddleware = function (middleware, name) {
return function (socket, next) {
// console.log('wrapExpressMiddleware ', socket, next);
if (!(0, _isFunction["default"])(middleware)) {
console.log('wrapExpressMiddleware middleware is not function ', name);
console.log('middleware ', middleware);
console.log('typeof middleware', (0, _typeof2["default"])(middleware));
return null;
} // console.log('socket.req', socket.req)
// console.log('socket.res', socket.res)
middleware(socket.req, socket.res, next);
};
};
ws.middlewares = [// expressMiddlewares
'reqLog', // 'accessLogger',
'parseToken', 'parseUser'].reduce(function (r, name) {
return _objectSpread(_objectSpread({}, r), {}, (0, _defineProperty2["default"])({}, name, ws.wrapExpressMiddleware(app.middlewares[name], name)));
}, {
// socketio middlewares
cookieParser: ws.wrapExpressMiddleware((0, _cookieParser["default"])(), 'cookieParser'),
socket2req: (0, _socket2req["default"])(app),
socketAsPromised: (0, _socket["default"])()
});
app.log.debug('WS middlewares', Object.keys(ws.middlewares));
ws.usedMiddlewares = ['socket2req' // 'cookieParser',
// 'reqLog',
// // 'accessLogger',
// 'parseToken',
// 'parseUser',
// 'socketAsPromised',
].map(function (m) {
return ws.middlewares[m];
}).filter(function (m) {
return m;
});
ws.atachMiddlwares = function (namespace) {
ws.usedMiddlewares.map(function (middleware) {
return middleware && namespace.use(middleware);
});
};
ws.wrapExpress = function (express) {
express.ws = function (route, callback) {
// eslint-disable-line no-param-reassign
// console.log('express WS', route);
// if (!ws) {
// this.log.error('!this.ws');
// return null;
// }
var namespace = ws.of(route); // namespace.use((socket, next) => {
// console.log(12312312);
// next();
// });
// ws.atachMiddlwares(namespace);
// @TODO: may be in middleware
namespace.originalOn = namespace.on;
namespace.on = function (event, nsCallback) {
// console.log('ns.on', event);
return namespace.originalOn(event, function (socket) {
// socket.on()
// app.log.debug('WS.' + event, {err});
// console.log('ns.originalOn', event);
try {
return nsCallback(socket);
} catch (err) {
app.log.error('ws.on error', {
err: err
});
namespace.emit('err', err.message);
return {
err: err
};
}
});
};
if (typeof callback === 'function') ws.on('connection', callback);
return namespace;
};
};
return ws;
} catch (err) {
app.log.error('ws init', err);
}
};
exports["default"] = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93cy9pbmRleC5qcyJdLCJuYW1lcyI6WyJhcHAiLCJ3cyIsIndyYXBFeHByZXNzTWlkZGxld2FyZSIsIm1pZGRsZXdhcmUiLCJuYW1lIiwic29ja2V0IiwibmV4dCIsImNvbnNvbGUiLCJsb2ciLCJyZXEiLCJyZXMiLCJtaWRkbGV3YXJlcyIsInJlZHVjZSIsInIiLCJjb29raWVQYXJzZXIiLCJzb2NrZXQycmVxIiwic29ja2V0QXNQcm9taXNlZCIsImRlYnVnIiwiT2JqZWN0Iiwia2V5cyIsInVzZWRNaWRkbGV3YXJlcyIsIm1hcCIsIm0iLCJmaWx0ZXIiLCJhdGFjaE1pZGRsd2FyZXMiLCJuYW1lc3BhY2UiLCJ1c2UiLCJ3cmFwRXhwcmVzcyIsImV4cHJlc3MiLCJyb3V0ZSIsImNhbGxiYWNrIiwib2YiLCJvcmlnaW5hbE9uIiwib24iLCJldmVudCIsIm5zQ2FsbGJhY2siLCJlcnIiLCJlcnJvciIsImVtaXQiLCJtZXNzYWdlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBSUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7OztlQUVlLGtCQUFDQSxHQUFELEVBQVM7QUFDdEIsTUFBSTtBQUNGLFFBQU1DLEVBQUUsR0FBRywwQkFBWDs7QUFFQUEsSUFBQUEsRUFBRSxDQUFDQyxxQkFBSCxHQUEyQixVQUFDQyxVQUFELEVBQWFDLElBQWI7QUFBQSxhQUFzQixVQUFVQyxNQUFWLEVBQWtCQyxJQUFsQixFQUF3QjtBQUN2RTtBQUNBLFlBQUksQ0FBQyw0QkFBV0gsVUFBWCxDQUFMLEVBQTZCO0FBQzNCSSxVQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWSxtREFBWixFQUFpRUosSUFBakU7QUFDQUcsVUFBQUEsT0FBTyxDQUFDQyxHQUFSLENBQVksYUFBWixFQUEyQkwsVUFBM0I7QUFDQUksVUFBQUEsT0FBTyxDQUFDQyxHQUFSLENBQVksb0JBQVosMkJBQXlDTCxVQUF6QztBQUNBLGlCQUFPLElBQVA7QUFDRCxTQVBzRSxDQVF2RTtB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UUFBUCxLQUFvQixVQUF4QixFQUFvQzdCLEVBQUUsQ0FBQ2dDLEVBQUgsQ0FBTSxZQUFOLEVBQW9CSCxRQUFwQjtBQUNwQyxlQUFPTCxTQUFQO0FBQ0QsT0FqQ0Q7QUFrQ0QsS0FuQ0Q7O0FBb0NBLFdBQU94QixFQUFQO0FBQ0QsR0FyRkQsQ0FxRkUsT0FBT21DLEdBQVAsRUFBWTtBQUNacEMsSUFBQUEsR0FBRyxDQUFDUSxHQUFKLENBQVE2QixLQUFSLENBQWMsU0FBZCxFQUF5QkQsR0FBekI7QUFDRDtBQUNGLEMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBpbXBvcnQgcGFyc2VVc2VyIGZyb20gJy4vbWlkZGxld2FyZXMvcGFyc2VVc2VyJztcbi8vIC8vIGltcG9ydCBhY2Nlc3NMb2dnZXIgZnJvbSAnLi9taWRkbGV3YXJlcy9hY2Nlc3NMb2dnZXInO1xuLy8gLy8gaW1wb3J0IGlzQXV0aCBmcm9tICcuL21pZGRsZXdhcmUvaXNBdXRoJ1xuLy8gaW1wb3J0IGFkZENoYXROYW1lc3BhY2UgZnJvbSAnLi9uYW1lc3BhY2VzL2NoYXQnXG5pbXBvcnQgc29ja2V0QXNQcm9taXNlZCBmcm9tICdzb2NrZXQuaW8tYXMtcHJvbWlzZWQnO1xuaW1wb3J0IGNvb2tpZVBhcnNlciBmcm9tICdjb29raWUtcGFyc2VyJztcbmltcG9ydCBzb2NrZXRzIGZyb20gJ3NvY2tldC5pbyc7XG5pbXBvcnQgaXNGdW5jdGlvbiBmcm9tICdsb2Rhc2gvaXNGdW5jdGlvbic7XG5pbXBvcnQgc29ja2V0MnJlcSBmcm9tICcuL21pZGRsZXdhcmVzL3NvY2tldDJyZXEnO1xuXG5leHBvcnQgZGVmYXVsdCAoYXBwKSA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3Qgd3MgPSBzb2NrZXRzKCk7XG5cbiAgICB3cy53cmFwRXhwcmVzc01pZGRsZXdhcmUgPSAobWlkZGxld2FyZSwgbmFtZSkgPT4gZnVuY3Rpb24gKHNvY2tldCwgbmV4dCkge1xuICAgICAgLy8gY29uc29sZS5sb2coJ3dyYXBFeHByZXNzTWlkZGxld2FyZSAnLCBzb2NrZXQsIG5leHQpO1xuICAgICAgaWYgKCFpc0Z1bmN0aW9uKG1pZGRsZXdhcmUpKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCd3cmFwRXhwcmVzc01pZGRsZXdhcmUgbWlkZGxld2FyZSBpcyBub3QgZnVuY3Rpb24gJywgbmFtZSk7XG4gICAgICAgIGNvbnNvbGUubG9nKCdtaWRkbGV3YXJlICcsIG1pZGRsZXdhcmUpO1xuICAgICAgICBjb25zb2xlLmxvZygndHlwZW9mICBtaWRkbGV3YXJlJywgdHlwZW9mIG1pZGRsZXdhcmUpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIC8vIGNvbnNvbGUubG9nKCdzb2NrZXQucmVxJywgc29ja2V0LnJlcSlcbiAgICAgIC8vIGNvbnNvbGUubG9nKCdzb2NrZXQucmVzJywgc29ja2V0LnJlcylcblxuICAgICAgbWlkZGxld2FyZShzb2NrZXQucmVxLCBzb2NrZXQucmVzLCBuZXh0KTtcbiAgICB9O1xuXG4gICAgd3MubWlkZGxld2FyZXMgPSBbXG4gICAgICAvLyBleHByZXNzTWlkZGxld2FyZXNcbiAgICAgICdyZXFMb2cnLFxuICAgICAgLy8gJ2FjY2Vzc0xvZ2dlcicsXG4gICAgICAncGFyc2VUb2tlbicsXG4gICAgICAncGFyc2VVc2VyJyxcbiAgICBdLnJlZHVjZSgociwgbmFtZSkgPT4gKHtcbiAgICAgIC4uLnIsXG4gICAgICBbbmFtZV06IHdzLndyYXBFeHByZXNzTWlkZGxld2FyZShhcHAubWlkZGxld2FyZXNbbmFtZV0sIG5hbWUpLFxuICAgIH0pLCB7XG4gICAgICAvLyBzb2NrZXRpbyBtaWRkbGV3YXJlc1xuICAgICAgY29va2llUGFyc2VyOiB3cy53cmFwRXhwcmVzc01pZGRsZXdhcmUoY29va2llUGFyc2VyKCksICdjb29raWVQYXJzZXInKSxcbiAgICAgIHNvY2tldDJyZXE6IHNvY2tldDJyZXEoYXBwKSxcbiAgICAgIHNvY2tldEFzUHJvbWlzZWQ6IHNvY2tldEFzUHJvbWlzZWQoKSxcbiAgICB9KTtcblxuICAgIGFwcC5sb2cuZGVidWcoJ1dTIG1pZGRsZXdhcmVzJywgT2JqZWN0LmtleXMod3MubWlkZGxld2FyZXMpKTtcblxuICAgIHdzLnVzZWRNaWRkbGV3YXJlcyA9IFtcbiAgICAgICdzb2NrZXQycmVxJyxcbiAgICAgIC8vICdjb29raWVQYXJzZXInLFxuICAgICAgLy8gJ3JlcUxvZycsXG4gICAgICAvLyAvLyAnYWNjZXNzTG9nZ2VyJyxcbiAgICAgIC8vICdwYXJzZVRva2VuJyxcbiAgICAgIC8vICdwYXJzZVVzZXInLFxuICAgICAgLy8gJ3NvY2tldEFzUHJvbWlzZWQnLFxuICAgIF0ubWFwKG0gPT4gd3MubWlkZGxld2FyZXNbbV0pLmZpbHRlcihtID0+IG0pO1xuXG4gICAgd3MuYXRhY2hNaWRkbHdhcmVzID0gKG5hbWVzcGFjZSkgPT4ge1xuICAgICAgd3MudXNlZE1pZGRsZXdhcmVzLm1hcChtaWRkbGV3YXJlID0+IG1pZGRsZXdhcmUgJiYgbmFtZXNwYWNlLnVzZShtaWRkbGV3YXJlKSk7XG4gICAgfTtcbiAgICB3cy53cmFwRXhwcmVzcyA9IChleHByZXNzKSA9PiB7XG4gICAgICBleHByZXNzLndzID0gKHJvdXRlLCBjYWxsYmFjaykgPT4geyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdleHByZXNzIFdTJywgcm91dGUpO1xuICAgICAgICBcbiAgICAgICAgLy8gaWYgKCF3cykge1xuICAgICAgICAvLyAgIHRoaXMubG9nLmVycm9yKCchdGhpcy53cycpO1xuICAgICAgICAvLyAgIHJldHVybiBudWxsO1xuICAgICAgICAvLyB9XG4gICAgICAgIGNvbnN0IG5hbWVzcGFjZSA9IHdzLm9mKHJvdXRlKTtcbiAgICAgICAgLy8gbmFtZXNwYWNlLnVzZSgoc29ja2V0LCBuZXh0KSA9PiB7XG4gICAgICAgIC8vICAgY29uc29sZS5sb2coMTIzMTIzMTIpO1xuICAgICAgICAvLyAgIG5leHQoKTtcbiAgICAgICAgLy8gfSk7XG4gICAgICAgIC8vIHdzLmF0YWNoTWlkZGx3YXJlcyhuYW1lc3BhY2UpO1xuICAgICAgICAvLyBAVE9ETzogbWF5IGJlIGluIG1pZGRsZXdhcmVcbiAgICAgICAgbmFtZXNwYWNlLm9yaWdpbmFsT24gPSBuYW1lc3BhY2Uub247XG4gICAgICAgIG5hbWVzcGFjZS5vbiA9IGZ1bmN0aW9uIChldmVudCwgbnNDYWxsYmFjaykge1xuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCducy5vbicsIGV2ZW50KTtcbiAgICAgICAgICByZXR1cm4gbmFtZXNwYWNlLm9yaWdpbmFsT24oZXZlbnQsIChzb2NrZXQpID0+IHtcbiAgICAgICAgICAgIC8vIHNvY2tldC5vbigpXG4gICAgICAgICAgICAvLyBhcHAubG9nLmRlYnVnKCdXUy4nICsgZXZlbnQsIHtlcnJ9KTtcblxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ25zLm9yaWdpbmFsT24nLCBldmVudCk7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICByZXR1cm4gbnNDYWxsYmFjayhzb2NrZXQpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgIGFwcC5sb2cuZXJyb3IoJ3dzLm9uIGVycm9yJywgeyBlcnIgfSk7XG4gICAgICAgICAgICAgIG5hbWVzcGFjZS5lbWl0KCdlcnInLCBlcnIubWVzc2FnZSk7XG4gICAgICAgICAgICAgIHJldHVybiB7IGVyciB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB3cy5vbignY29ubmVjdGlvbicsIGNhbGxiYWNrKTtcbiAgICAgICAgcmV0dXJuIG5hbWVzcGFjZTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXR1cm4gd3M7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGFwcC5sb2cuZXJyb3IoJ3dzIGluaXQnLCBlcnIpO1xuICB9XG59O1xuIl19
//# sourceMappingURL=index.js.map