1 | 'use strict';
|
2 |
|
3 | var _inherits = require('babel-runtime/helpers/inherits')['default'];
|
4 |
|
5 | var _get = require('babel-runtime/helpers/get')['default'];
|
6 |
|
7 | var _createClass = require('babel-runtime/helpers/create-class')['default'];
|
8 |
|
9 | var _classCallCheck = require('babel-runtime/helpers/class-call-check')['default'];
|
10 |
|
11 | var _core = require('babel-runtime/core-js')['default'];
|
12 |
|
13 | var _regeneratorRuntime = require('babel-runtime/regenerator')['default'];
|
14 |
|
15 | var _interopRequireWildcard = require('babel-runtime/helpers/interop-require-wildcard')['default'];
|
16 |
|
17 | _core.Object.defineProperty(exports, '__esModule', {
|
18 | value: true
|
19 | });
|
20 |
|
21 | exports.createServer = createServer;
|
22 |
|
23 | var _MissingConfigException = require('./Exception/MissingConfigException');
|
24 |
|
25 | var _sessionParser = require('./ExpressMiddleware/SessionParser');
|
26 |
|
27 | var _sessionParser2 = _interopRequireWildcard(_sessionParser);
|
28 |
|
29 | var _sessionManager = require('./Session/SessionManager');
|
30 |
|
31 | var _sessionManager2 = _interopRequireWildcard(_sessionManager);
|
32 |
|
33 | var _socketIOConnection = require('./ExpressMiddleware/SocketIOConnection');
|
34 |
|
35 | var _socketIOConnection2 = _interopRequireWildcard(_socketIOConnection);
|
36 |
|
37 | var _static2 = require('./ExpressMiddleware/Static');
|
38 |
|
39 | var _static3 = _interopRequireWildcard(_static2);
|
40 |
|
41 | var _proxy = require('./ExpressMiddleware/Proxy');
|
42 |
|
43 | var _proxy2 = _interopRequireWildcard(_proxy);
|
44 |
|
45 | var _controllerManager = require('./Controller/ControllerManager');
|
46 |
|
47 | var _controllerManager2 = _interopRequireWildcard(_controllerManager);
|
48 |
|
49 | var _router = require('./Routing/Router');
|
50 |
|
51 | var _router2 = _interopRequireWildcard(_router);
|
52 |
|
53 | var _configure = require('./Core/Configure');
|
54 |
|
55 | var _configure2 = _interopRequireWildcard(_configure);
|
56 |
|
57 | var events = require('events');
|
58 | var fs = require('fs');
|
59 | var path = require('path');
|
60 | var express = require('express');
|
61 | var http = require('http');
|
62 | var socketio = require('socket.io');
|
63 | var cookieParser = require('cookie-parser');
|
64 | var bodyParser = require('body-parser');
|
65 |
|
66 |
|
67 |
|
68 |
|
69 |
|
70 | var Server = (function (_events$EventEmitter) {
|
71 | |
72 |
|
73 |
|
74 |
|
75 |
|
76 |
|
77 |
|
78 | function Server(config) {
|
79 | _classCallCheck(this, Server);
|
80 |
|
81 | _get(_core.Object.getPrototypeOf(Server.prototype), 'constructor', this).call(this);
|
82 | this._app = express();
|
83 | this._http = http.Server(this._app);
|
84 | this._sio = socketio(this._http);
|
85 | if (typeof config !== 'undefined') this.config(config);
|
86 | }
|
87 |
|
88 | _inherits(Server, _events$EventEmitter);
|
89 |
|
90 | _createClass(Server, [{
|
91 | key: 'config',
|
92 |
|
93 | |
94 |
|
95 |
|
96 |
|
97 |
|
98 |
|
99 |
|
100 |
|
101 | value: (function (_config) {
|
102 | function config(_x) {
|
103 | return _config.apply(this, arguments);
|
104 | }
|
105 |
|
106 | config.toString = function () {
|
107 | return _config.toString();
|
108 | };
|
109 |
|
110 | return config;
|
111 | })(function (config) {
|
112 | _configure2['default'].config(config);
|
113 | })
|
114 | }, {
|
115 | key: 'start',
|
116 |
|
117 | |
118 |
|
119 |
|
120 |
|
121 |
|
122 | value: function start() {
|
123 | var javascriptLibraryContent;
|
124 | return _regeneratorRuntime.async(function start$(context$2$0) {
|
125 | var _this = this;
|
126 |
|
127 | while (1) switch (context$2$0.prev = context$2$0.next) {
|
128 | case 0:
|
129 | context$2$0.next = 2;
|
130 | return _controllerManager2['default'].load(path.resolve(_configure2['default'].get('CakeJS.src', path.resolve('.')), 'Controller'));
|
131 |
|
132 | case 2:
|
133 | context$2$0.next = 4;
|
134 | return _router2['default'].initialize();
|
135 |
|
136 | case 4:
|
137 |
|
138 |
|
139 | _sessionManager2['default'].config(_configure2['default'].get('Session.name', 'cakejs_sessid'), _configure2['default'].get('Session.ttl', 1000 * 60 * 60 * 24));
|
140 | this._app.use(cookieParser());
|
141 | this._app.use(_sessionParser2['default'](_configure2['default'].get('Session.name', 'cakejs_sessid'), _configure2['default'].get('Session.ttl', 1000 * 60 * 60 * 24)));
|
142 | this.emit('use', this._app);
|
143 | javascriptLibraryContent = fs.readFileSync(path.resolve(__filename, '..', 'Client', 'client.js'));
|
144 |
|
145 | this._app.get('/js/cakejs.js', function (request, response) {
|
146 | response.writeHead(200, { 'content-type': 'text/javascript' });
|
147 | response.write(javascriptLibraryContent);
|
148 | response.end();
|
149 | });
|
150 | if (_configure2['default'].get('Static') !== null) {
|
151 | this._app.use(bodyParser.urlencoded({ extended: false }));
|
152 | this._app.use(_static3['default'](_configure2['default'].get('Static.webroot', '/var/www')));
|
153 | } else if (_configure2['default'].get('Proxy') !== null) {
|
154 | this._app.use(_proxy2['default'](_configure2['default'].get('Proxy.host', '127.0.0.1'), _configure2['default'].get('Proxy.port', 80)));
|
155 | }
|
156 | this._sio.set('authorization', _sessionParser2['default']());
|
157 | this._sio.on('connection', _socketIOConnection2['default']());
|
158 | context$2$0.next = 15;
|
159 | return new _core.Promise(function (resolve) {
|
160 | return _this._http.listen(_configure2['default'].get('Listen.port', 8080), function () {
|
161 | resolve();
|
162 | });
|
163 | });
|
164 |
|
165 | case 15:
|
166 | case 'end':
|
167 | return context$2$0.stop();
|
168 | }
|
169 | }, null, this);
|
170 | }
|
171 | }, {
|
172 | key: 'stop',
|
173 |
|
174 | |
175 |
|
176 |
|
177 |
|
178 |
|
179 | value: function stop() {
|
180 | return _regeneratorRuntime.async(function stop$(context$2$0) {
|
181 | var _this2 = this;
|
182 |
|
183 | while (1) switch (context$2$0.prev = context$2$0.next) {
|
184 | case 0:
|
185 | context$2$0.next = 2;
|
186 | return new _core.Promise(function (resolve) {
|
187 | return _this2._http.close(resolve);
|
188 | });
|
189 |
|
190 | case 2:
|
191 | case 'end':
|
192 | return context$2$0.stop();
|
193 | }
|
194 | }, null, this);
|
195 | }
|
196 | }]);
|
197 |
|
198 | return Server;
|
199 | })(events.EventEmitter);
|
200 |
|
201 | exports.Server = Server;
|
202 |
|
203 | function createServer() {
|
204 | return new Server();
|
205 | }
|
206 |
|
207 |
|
208 |
|
209 |
|
\ | No newline at end of file |