UNPKG

2.54 kBJavaScriptView Raw
1// Generated by LiveScript 1.4.0
2var AppRunner, ref$, bold, cyan, dim, green, red, yaml, Logger, fs, version, appConfig, logger, x$, appRunner;
3AppRunner = require('./app-runner');
4ref$ = require('chalk'), bold = ref$.bold, cyan = ref$.cyan, dim = ref$.dim, green = ref$.green, red = ref$.red;
5yaml = require('js-yaml');
6Logger = require('../../logger');
7fs = require('fs');
8version = require('../../../package.json').version;
9console.log(dim("Exosphere SDK " + version + "\n"));
10appConfig = yaml.safeLoad(fs.readFileSync('application.yml', 'utf8'));
11console.log("Running " + green(appConfig.name) + " " + cyan(appConfig.version) + "\n");
12logger = new Logger(Object.keys(appConfig.services));
13x$ = appRunner = new AppRunner(appConfig);
14x$.on('error', function(err){
15 return console.log(red(error));
16});
17x$.on('output', function(data){
18 return logger.log(data);
19});
20x$.on('exocomm-online', function(port){
21 return logger.log({
22 name: 'exocomm',
23 text: "online at port " + port
24 });
25});
26x$.on('service-online', function(name){
27 return logger.log({
28 name: 'exorun',
29 text: "'" + name + "' is running using exorelay port " + appRunner.portFor(name)
30 });
31});
32x$.on('routing-setup', function(){
33 var command, ref$, routing, text, receivers, res$, i$, ref1$, len$, receiver, results$ = [];
34 logger.log({
35 name: 'exocomm',
36 text: 'received routing setup'
37 });
38 for (command in ref$ = appRunner.exocomm.clientRegistry.routes) {
39 routing = ref$[command];
40 text = " [ " + bold(command) + " ] --> ";
41 res$ = [];
42 for (i$ = 0, len$ = (ref1$ = routing.receivers).length; i$ < len$; ++i$) {
43 receiver = ref1$[i$];
44 res$.push(bold(receiver.name) + " (" + receiver.host + ":" + receiver.port + ")");
45 }
46 receivers = res$;
47 text += receivers.join(' & ');
48 results$.push(logger.log({
49 name: 'exocomm',
50 text: text
51 }));
52 }
53 return results$;
54});
55x$.on('message', function(arg$){
56 var sender, message, receivers;
57 sender = arg$.sender, message = arg$.message, receivers = arg$.receivers;
58 return logger.log({
59 name: 'exocomm',
60 text: sender + " --[ " + message + " ]-> " + receivers.join(' and ')
61 });
62});
63x$.startExocomm();
64x$.startServices();
65x$.on('all-services-online', function(){
66 var x$;
67 logger.log({
68 name: 'exorun',
69 text: 'all services online'
70 });
71 x$ = appRunner;
72 x$.on('routing-done', function(){
73 return logger.log({
74 name: 'exorun',
75 text: "application ready"
76 });
77 });
78 x$.sendServiceConfiguration();
79 return x$;
80});
\No newline at end of file