This repository has been archived on 2023-11-14. You can view files and clone it, but cannot push or open issues/pull-requests.
valnet/relay/index.mjs

86 lines
1.5 KiB
JavaScript
Raw Normal View History

2021-04-11 01:53:16 -04:00
// process.env.DEBUG = 'xyz:valnet:*';
2021-04-11 19:53:39 -04:00
'use strict';
2021-04-08 20:38:05 -04:00
2021-04-11 19:53:39 -04:00
import { title } from '../src/lib/title.js';
import { Identity } from '../src/lib/Identity.js';
import { config } from '../src/lib/config/index.js';
import appdata from '../src/lib/appdata.js';
import Node from '../src/lib/node.js';
2021-04-01 01:04:17 -04:00
2021-04-11 19:53:39 -04:00
import Signale from 'signale';
import { ensureDirSync } from 'fs-extra';
import express from 'express';
title('relay', false);
const log = Signale.scope('RLAY');
2021-04-08 22:02:58 -04:00
const node = new Node();
2021-02-13 23:56:20 -05:00
2021-04-11 19:53:39 -04:00
(async () => {
2020-11-13 10:19:44 -05:00
// ==================================== [EXPRESS]
2021-04-11 19:53:39 -04:00
2020-11-11 22:21:35 -05:00
const app = express();
2021-04-11 19:53:39 -04:00
ensureDirSync(`${appdata}/valnet/relay`);
2020-11-11 21:47:54 -05:00
2020-11-11 22:21:35 -05:00
app.get('/', (req, res) => {
2020-11-18 11:18:39 -05:00
res.end(`
2021-02-13 23:56:20 -05:00
<table style="min-width: 300px">
2020-11-18 11:18:39 -05:00
<tr>
2021-02-13 23:56:20 -05:00
<th>Id</th>
<th>Address</th>
<th>loopback</th>
2020-11-18 11:18:39 -05:00
</tr>
2021-02-13 23:56:20 -05:00
${clients.map((client, index) => `
<tr>
<td><pre>${index}</pre></td>
<td><pre>${client.remoteAddress}</pre></td>
<td><pre>${client.loopback}</pre></td>
</tr>
`).join('')}
2020-11-18 11:18:39 -05:00
</table>
`);
2020-11-18 12:02:58 -05:00
});
2021-02-15 09:30:56 -05:00
app.use((req, res, next) => {
res.header('Access-Control-Allow-Origin', '*');
next();
})
app.get('/clients', (req, res) => {
res.json({
clients: clients.map((client, index) => {
return {
id: index,
address: client.remoteAddress,
loopback: client.loopback,
identity: client.identity.publicKey,
connected: client.secured
}
})
})
})
2020-11-18 12:02:58 -05:00
// app.post
2020-11-11 22:21:35 -05:00
2021-02-14 02:21:35 -05:00
app.listen(config.ports.http).on('error', e => {
2021-02-14 02:03:26 -05:00
log.warn(e);
setTimeout(_ => {
2021-02-14 02:21:35 -05:00
app.listen(config.ports.http).on('error', e => {
2021-02-14 02:03:26 -05:00
log.error(e);
});
2021-02-14 02:21:35 -05:00
}, config.ports.http);
2021-02-14 02:03:26 -05:00
});
2020-11-13 10:19:44 -05:00
})();