UNPKG

3.57 kBJavaScriptView Raw
1// Generated by LiveScript 1.4.0
2var AppRunner, ref$, bold, cyan, dim, green, red, yaml, Logger, fs, version, util, 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;
9util = require('util');
10console.log(dim("Exosphere SDK " + version + "\n"));
11appConfig = yaml.safeLoad(fs.readFileSync('application.yml', 'utf8'));
12console.log("Running " + green(appConfig.name) + " " + cyan(appConfig.version) + "\n");
13logger = new Logger(Object.keys(appConfig.services));
14x$ = appRunner = new AppRunner(appConfig);
15x$.on('error', function(err){
16 return console.log(red(error));
17});
18x$.on('output', function(data){
19 return logger.log(data);
20});
21x$.on('exocom-online', function(port){
22 return logger.log({
23 name: 'exocom',
24 text: "online at port " + port
25 });
26});
27x$.on('service-online', function(name){
28 return logger.log({
29 name: 'exorun',
30 text: "'" + name + "' is running using exorelay port " + appRunner.portFor(name)
31 });
32});
33x$.on('routing-setup', function(){
34 var command, ref$, routing, text, receivers, res$, i$, ref1$, len$, receiver, results$ = [];
35 logger.log({
36 name: 'exocom',
37 text: 'received routing setup'
38 });
39 for (command in ref$ = appRunner.exocom.clientRegistry.routes) {
40 routing = ref$[command];
41 text = " [ " + bold(command) + " ] --> ";
42 res$ = [];
43 for (i$ = 0, len$ = (ref1$ = routing.receivers).length; i$ < len$; ++i$) {
44 receiver = ref1$[i$];
45 res$.push(bold(receiver.name) + " (" + receiver.host + ":" + receiver.port + ")");
46 }
47 receivers = res$;
48 text += receivers.join(' & ');
49 results$.push(logger.log({
50 name: 'exocom',
51 text: text
52 }));
53 }
54 return results$;
55});
56x$.on('message', function(arg$){
57 var messages, receivers, message, indent, i$, ref$, len$, line, results$ = [];
58 messages = arg$.messages, receivers = arg$.receivers;
59 message = messages[0];
60 if (message.name !== message.originalName) {
61 logger.log({
62 name: 'exocom',
63 text: bold(message.sender) + " --[ " + bold(message.originalName) + " ]-[ " + bold(message.name) + " ]-> " + bold(receivers.join(' and '))
64 });
65 } else {
66 logger.log({
67 name: 'exocom',
68 text: bold(message.sender) + " --[ " + bold(message.name) + " ]-> " + bold(receivers.join(' and '))
69 });
70 }
71 indent = repeatString$(' ', message.sender.length + 2);
72 if (message.payload != null) {
73 for (i$ = 0, len$ = (ref$ = util.inspect(message.payload, {
74 showHidden: false,
75 depth: null
76 }).split('\n')).length; i$ < len$; ++i$) {
77 line = ref$[i$];
78 results$.push(logger.log({
79 name: 'exocom',
80 text: indent + "" + dim(line),
81 trim: false
82 }));
83 }
84 return results$;
85 } else {
86 return logger.log({
87 name: 'exocom',
88 text: indent + "" + dim('(no payload)'),
89 trim: false
90 });
91 }
92});
93x$.startExocom();
94x$.startServices();
95x$.on('all-services-online', function(){
96 var x$;
97 logger.log({
98 name: 'exorun',
99 text: 'all services online'
100 });
101 x$ = appRunner;
102 x$.on('routing-done', function(){
103 return logger.log({
104 name: 'exorun',
105 text: "application ready"
106 });
107 });
108 x$.sendServiceConfiguration();
109 return x$;
110});
111function repeatString$(str, n){
112 for (var r = ''; n > 0; (n >>= 1) && (str += str)) if (n & 1) r += str;
113 return r;
114}
\No newline at end of file