UNPKG

3.64 kBJavaScriptView Raw
1
2var http = require( "http" ),
3 path = require( "path" ),
4 color = require( "colors" ),
5 Q = require( "q" ),
6 fs = require( "fs" ),
7 socketIO = require( "socket.io" ),
8 CoreModule = require( "./core/core" );
9
10var deferred = Q.defer(),
11 loadPromise = deferred.promise;
12
13
14// Main Class
15var Fast = function( options ){
16
17 console.log( '\n----------------------------'.yellow );
18 console.log( 'Preparing everything...'.yellow );
19
20 Core = CoreModule( path.join( __dirname, "core" ) );
21
22 CoreModule.load( options || {}, function(){
23
24 modulesLoader();
25
26 // Make Core object immutable
27 // Preventing malicious altering
28 CoreModule.lock();
29
30 deferred.resolve();
31 });
32
33 return {
34 listen : listen
35 };
36};
37
38var modulesLoader = function(){
39 var extraModules = Core.config.globals.extraModules;
40
41 Core.environment.load();
42 Core.db.load();
43 Core.config.load();
44 Core.auth.load();
45 Core.api.load();
46
47 if( fs.existsSync( Core.config.globals.viewRoot ) )
48 Core.view.load();
49
50 if( extraModules && !Core[ extraModules ] && fs.existsSync( extraModules ) ) {
51 Core.modules.load( extraModules );
52 Core[extraModules] = Core.modules.modules;
53 }
54
55 Core.subscribers = Core.api.subscribers;
56 Core.api = Core.api.services;
57 Core.db = Core.db.connections;
58
59};
60
61var listen = function( port, callback ){
62
63 var server,
64 io;
65
66 loadPromise.then( function(){
67
68 if( typeof port == "function" || !port || isNaN( port ) ) {
69 callback = port;
70 port = Core.config.globals.port;
71
72 } else
73 Core.config.globals.port = port;
74
75 if( !callback ){
76 callback = function(){
77 console.log( 'Success!'.green );
78 console.log( '\nFast is running on port '.cyan + port.toString().cyan );
79 console.log( '\nAPI root folder path is '.cyan + Core.config.globals.apiRoot.cyan );
80 console.log( '----------------------------\n'.yellow );
81 }
82 }
83
84 if( Core.config.globals.useSSL ){
85 if( Core.config.globals.SSLKeys && Core.config.globals.SSLKeys.key && Core.config.globals.SSLKeys.cert )
86 server = https.createServer( Core.config.globals.SSLKeys, Core.app );
87 else
88 Core.error( "SSL keys are missing", true );
89
90 } else {
91 server = http.createServer( Core.app );
92 }
93
94 if( server ){
95 if( Core.config.globals.enableWebSocket ){
96 io = socketIO.listen( server, { log: Core.config.globals.environment != "production" } );
97
98 Core.socket.listenForConnections( io, Core.subscribers );
99 }
100
101 server.listen( port, callback );
102// var x= Core.models.talk.getTalksByUserID("guy");
103// x.then(function(a){
104// console.log(a)
105// },function(a){
106// console.log(a)
107// }
108// );
109// var x= Core.models.message.setPublic({
110// talk_id : "124",
111// sender_id : "guy",
112// media_type : 1,
113// content : "YYYYOOOOO" ,
114// timestamp : Core.date().unix(),
115// sent : 1,
116// ballon_color: "#754778",
117// text_color: "#ffffff",
118// likes: [
119// { "user_id" : 876 },
120// { "user_id" : 555 }
121// ]
122// }
123// var x= Core.models.message.setPrivate({
124// sender_id : "nir",
125// receiver_id : "guy" ,
126// content : "good" ,
127// timestamp : Core.date().unix(),
128// sent : 1,
129// received : 0,
130// media_type : 1,
131// ballon_color: "#754778",
132// text_color: "#ffffff",
133// likes: [
134// { "user_id" : 876 },
135// { "user_id" : 555 }
136// ]
137// });
138// var x = Core.models.message.getPrivateMessages("nir","guy");
139// x.then(function(a){
140//// a.title = "test";
141//// a.name = 2;
142//// Core.models.talk.set(a);
143// console.log(a)
144// },function(a){
145// console.log(a)
146// }
147// );
148 }
149 });
150};
151
152module.exports.createServer = Fast;
153module.exports.listen = listen;
\No newline at end of file