etherproxy-lite 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +36 -4
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -2,6 +2,8 @@
2
2
  "use strict";
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  const cafe_utility_1 = require("cafe-utility");
5
+ const console_1 = require("console");
6
+ const fs_1 = require("fs");
5
7
  const http_1 = require("http");
6
8
  let lastErrorReport = 0;
7
9
  const sequence = cafe_utility_1.Numbers.createSequence();
@@ -10,8 +12,29 @@ const port = cafe_utility_1.Arrays.requireNumberArgument(process.argv, 'port');
10
12
  const target = cafe_utility_1.Arrays.requireStringArgument(process.argv, 'target');
11
13
  const ttl = cafe_utility_1.Arrays.requireNumberArgument(process.argv, 'ttl');
12
14
  const timeout = cafe_utility_1.Arrays.requireNumberArgument(process.argv, 'timeout');
13
- const telegramToken = cafe_utility_1.Arrays.requireStringArgument(process.argv, 'telegram-token', process.env, 'TELEGRAM_TOKEN');
14
- const telegramChatId = cafe_utility_1.Arrays.requireStringArgument(process.argv, 'telegram-chat-id', process.env, 'TELEGRAM_CHAT_ID');
15
+ const telegramToken = cafe_utility_1.Arrays.getArgument(process.argv, 'telegram-token', process.env, 'TELEGRAM_TOKEN');
16
+ const telegramChatId = cafe_utility_1.Arrays.getArgument(process.argv, 'telegram-chat-id', process.env, 'TELEGRAM_CHAT_ID');
17
+ const verbose = cafe_utility_1.Arrays.getBooleanArgument(process.argv, 'verbose');
18
+ const record = cafe_utility_1.Arrays.getBooleanArgument(process.argv, 'record');
19
+ if (record) {
20
+ const writeStream = (0, fs_1.createWriteStream)(`etherproxy-${new Date().toISOString()}.log`);
21
+ const originalConsoleLog = console.log;
22
+ const originalConsoleError = console.error;
23
+ const logger = new console_1.Console({
24
+ stdout: writeStream,
25
+ stderr: writeStream
26
+ });
27
+ console.log = (...args) => {
28
+ const date = new Date();
29
+ logger.log(date.toISOString(), 'info', ...args);
30
+ originalConsoleLog(date.toISOString(), 'info', ...args);
31
+ };
32
+ console.error = (...args) => {
33
+ const date = new Date();
34
+ logger.error(date.toISOString(), 'error', ...args);
35
+ originalConsoleError(date.toISOString(), 'info', ...args);
36
+ };
37
+ }
15
38
  cafe_utility_1.System.forever(async () => {
16
39
  cafe_utility_1.Cache.deleteExpired();
17
40
  }, cafe_utility_1.Dates.seconds(ttl));
@@ -30,14 +53,17 @@ const server = (0, http_1.createServer)(async (request, response) => {
30
53
  try {
31
54
  const body = JSON.parse(Buffer.concat(chunks).toString('utf-8'));
32
55
  const id = body.id;
33
- delete body.id;
56
+ body.id = sequence.next();
57
+ if (verbose) {
58
+ console.log('>', body);
59
+ }
34
60
  const key = JSON.stringify(body);
35
61
  const promise = await cafe_utility_1.Cache.get(key, cafe_utility_1.Dates.seconds(ttl), async () => {
36
62
  const init = {
37
63
  method: 'POST',
38
64
  signal: AbortSignal.timeout(cafe_utility_1.Dates.seconds(timeout)),
39
65
  headers: { 'Content-Type': 'application/json' },
40
- body: JSON.stringify({ ...body, id: sequence.next() })
66
+ body: JSON.stringify(body)
41
67
  };
42
68
  return {
43
69
  data: fetch(target, init)
@@ -46,6 +72,9 @@ const server = (0, http_1.createServer)(async (request, response) => {
46
72
  };
47
73
  });
48
74
  const json = await promise.data;
75
+ if (verbose) {
76
+ console.log('<', json);
77
+ }
49
78
  response.end(JSON.stringify({ ...json, id }));
50
79
  }
51
80
  catch (error) {
@@ -62,6 +91,9 @@ const server = (0, http_1.createServer)(async (request, response) => {
62
91
  server.listen(port, hostname);
63
92
  console.log(`Etherproxy-Lite is running on port ${hostname}:${port}`);
64
93
  async function sendTelegramAlert(text) {
94
+ if (!telegramToken || !telegramChatId) {
95
+ return;
96
+ }
65
97
  await fetch(`https://api.telegram.org/bot${telegramToken}/sendMessage`, {
66
98
  method: 'POST',
67
99
  headers: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "etherproxy-lite",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "bin": {
5
5
  "etherproxy-lite": "./dist/index.js"
6
6
  },