UNPKG

2.52 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
8
9var _util = require("util");
10
11var _util2 = _interopRequireDefault(_util);
12
13var _delegates = require("delegates");
14
15var _delegates2 = _interopRequireDefault(_delegates);
16
17var _session = require("./session");
18
19var _session2 = _interopRequireDefault(_session);
20
21function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22
23function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
24
25/**
26 * Context class.
27 */
28
29var Context = function () {
30 function Context(session, data) {
31 _classCallCheck(this, Context);
32
33 if (!session instanceof _session2.default) throw new TypeError("whisper context should attached to a session");
34 if (!data) throw new Error("whisper context should have request data");
35
36 this.seq = session.genSeq();
37 this.data = data;
38 this.session = session;
39 this.app = session.app;
40 this.socket = session.socket;
41 }
42
43 /**
44 * Default error handling.
45 *
46 * @param {Error} err
47 * @api private
48 */
49
50 _createClass(Context, [{
51 key: "onerror",
52 value: function onerror(err) {
53 // don't do anything if there is no error.
54 // this allows you to pass `this.onerror`
55 // to node-style callbacks.
56 if (null === err) return;
57 if (!(err instanceof Error)) err = new Error(_util2.default.format("non-error thrown: %j", err));
58
59 // delegate
60 this.app.emit("error", err, this);
61 }
62 }]);
63
64 return Context;
65}();
66
67/**
68 * Socket delegation.
69 */
70
71exports.default = Context;
72(0, _delegates2.default)(Context.prototype, "socket").getter("bufferSize").getter("bytesRead").getter("bytesWritten").getter("localAddress").getter("localPort").getter("remoteAddress").getter("remotePort").method("address").method("pause").method("resume").method("setTimeout").method("write");
\No newline at end of file