Skip to content

Commit c44831a

Browse files
authored
chore: april maintenance (#229)
1 parent 7382c33 commit c44831a

File tree

8 files changed

+189
-287
lines changed

8 files changed

+189
-287
lines changed

package-lock.json

Lines changed: 150 additions & 221 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@
2424
"#utils/*": "./src/utils/*"
2525
},
2626
"dependencies": {
27-
"@logtail/node": "^0.4.16",
28-
"@sentry/node": "^7.80.1",
27+
"@logtail/node": "^0.4.21",
28+
"@sentry/node": "^7.112.2",
2929
"@teknologi-umum/nedb-promises": "^5.0.3",
3030
"@teknologi-umum/pesto": "^1.0.0",
3131
"carret": "^1.0.4",
@@ -35,9 +35,9 @@
3535
"got": "^12.6.0",
3636
"kleur": "^4.1.5",
3737
"mongoose": "^8.2.4",
38-
"qrcode": "^1.5.1",
39-
"sanitize-html": "^2.12.1",
40-
"telegraf": "^4.15.0",
38+
"qrcode": "^1.5.3",
39+
"sanitize-html": "^2.13.0",
40+
"telegraf": "^4.16.3",
4141
"tempura": "^0.4.0"
4242
},
4343
"devDependencies": {

src/app.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,10 @@ Sentry.init({
3636
enabled: process.env.NODE_ENV === "production",
3737
environment: process.env.NODE_ENV,
3838
sampleRate: 1.0,
39-
tracesSampleRate: 0.2,
39+
tracesSampleRate: 0.5,
4040
integrations: [
41-
new Sentry.Integrations.Http({ tracing: true }),
42-
new Sentry.Integrations.Undici(),
41+
Sentry.nativeNodeFetchIntegration(),
42+
Sentry.httpIntegration({ tracing: true }),
4343
...Sentry.autoDiscoverNodePerformanceMonitoringIntegrations()
4444
]
4545
});

src/services/eval/crypto.js

Lines changed: 14 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,29 @@
1-
import got from "got";
2-
31
export async function fetchCryptoCurrency(cryptoSymbol) {
42
if (typeof cryptoSymbol !== "string") {
53
throw "Simbol mata uang crypto harus berupa string";
64
}
75
if (!/^[A-Z]{3,8}(?:IDR|USDT)$/.test(cryptoSymbol)) {
86
throw `Simbol mata uang crypto ${cryptoSymbol} tidak valid`;
97
}
8+
const requestSearchParams = new URLSearchParams();
9+
requestSearchParams.set("symbol", cryptoSymbol.toUpperCase());
10+
const response = await fetch(`https://gold.teknologiumum.com/crypto?${requestSearchParams.toString()}`);
1011

11-
const { statusCode, body } = await got.get(
12-
`https://indodax.com/api/ticker/${cryptoSymbol.toLowerCase()}`,
13-
{
14-
responseType: "json",
15-
throwHttpErrors: false
16-
}
17-
);
18-
19-
if (statusCode !== 200) {
12+
if (response.status !== 200) {
2013
throw `Gagal mendapatkan data crypto ${cryptoSymbol}`;
2114
}
2215

23-
24-
if (body.error_description !== undefined) {
25-
throw body.error_description;
26-
}
27-
16+
const body = await response.json();
2817

2918
return {
30-
last: parseFloat(body.ticker.last),
31-
buy: parseFloat(body.ticker.buy),
32-
sell: parseFloat(body.ticker.sell),
33-
high: parseFloat(body.ticker.high),
34-
low: parseFloat(body.ticker.low)
19+
symbol: body.symbol,
20+
base_currency: body.base_currency,
21+
quote_currency: body.quote_currency,
22+
open: parseFloat(body.open),
23+
high: parseFloat(body.high),
24+
low: parseFloat(body.low),
25+
last: parseFloat(body.last),
26+
volume: parseFloat(body.volume),
27+
date: new Date(body.date)
3528
};
3629
}

src/services/eval/currency.js

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import got from "got";
21
import { SingleValueCache } from "#utils/cache.js";
32

43
// cache TTL: 10 minutes
@@ -9,18 +8,13 @@ const cache = new SingleValueCache(cacheTtl);
98

109
async function getCurrencyDictionary() {
1110
const c = await cache.getOrCreate(async () => {
12-
const { statusCode, body } = await got.get(
13-
"https://gold.teknologiumum.com/currencies",
14-
{
15-
responseType: "json",
16-
throwHttpErrors: false
17-
}
18-
);
11+
const response = await fetch("https://gold.teknologiumum.com/currencies");
1912

20-
if (statusCode !== 200) {
13+
if (response.status !== 200) {
2114
throw "Gagal mendapatkan data forex";
2215
}
2316

17+
const body = await response.json();
2418

2519
return body.reduce((currencyBySymbol, currency) => {
2620
currencyBySymbol[currency.name] = currency;

src/services/eval/stock.js

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import got from "got";
2-
31
export async function fetchStock(stockCode) {
42
if (typeof stockCode !== "string") throw "Kode saham harus berupa string";
53
if (!/^[A-Z]{4}(?:-[A-Z][A-Z\d]{0,2})?$/.test(stockCode)) {
@@ -9,19 +7,17 @@ export async function fetchStock(stockCode) {
97
const requestSearchParams = new URLSearchParams();
108
requestSearchParams.set("stockCode", stockCode);
119

12-
const { statusCode, body } = await got.get(
13-
`https://gold.teknologiumum.com/stock?${requestSearchParams.toString()}`,
14-
{
15-
responseType: "json",
16-
throwHttpErrors: false
17-
}
10+
const response = await fetch(
11+
`https://gold.teknologiumum.com/stock?${requestSearchParams.toString()}`
1812
);
1913

20-
if (statusCode !== 200) {
14+
if (response.status !== 200) {
2115
throw `Gagal mendapatkan data saham ${stockCode}`;
2216
}
2317

24-
const response = {
18+
const body = await response.json();
19+
20+
const mappedResponse = {
2521
name: body.symbol,
2622
close: body.close,
2723
previous: body.open,
@@ -31,8 +27,7 @@ export async function fetchStock(stockCode) {
3127
value: body.close
3228
};
3329

30+
if (mappedResponse.name === "") throw stockCode;
3431

35-
if (response.name === "") throw stockCode;
36-
37-
return response;
32+
return mappedResponse;
3833
}

src/services/snap/utils.js

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import got from "got";
21
import { DEFAULT_HEADERS } from "#utils/http.js";
32
import {
43
ERR_EMPTY_CODE,
@@ -27,10 +26,9 @@ export async function generateImage(code, lang) {
2726
}
2827

2928
const linenr = code.split("\n").length;
30-
const { body } = await got.post("https://graphene.teknologiumum.com/api", {
29+
const response = await fetch("https://graphene.teknologiumum.com/api", {
3130
headers: DEFAULT_HEADERS,
32-
http2: true,
33-
json: {
31+
body: JSON.stringify({
3432
code: code.replace(/^\s+|\s+$/g, ""), // trim extranous whitespace at the end of the code
3533
lang: lang === "" ? null : lang,
3634
theme: "github-dark-dimmed",
@@ -41,15 +39,9 @@ export async function generateImage(code, lang) {
4139
colour: "#A0ADB6",
4240
radius: 4
4341
}
44-
},
45-
responseType: "buffer",
46-
timeout: {
47-
request: 60_000
48-
},
49-
retry: {
50-
limit: 3
51-
}
42+
}),
43+
cache: "no-cache"
5244
});
5345

54-
return body;
46+
return Buffer.from(await response.arrayBuffer());
5547
}

src/uptime.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import dotenv from "dotenv";
2-
import got from "got";
32
import * as Sentry from "@sentry/node";
43
import { pathTo } from "#utils/path.js";
54

@@ -17,7 +16,7 @@ async function run(url) {
1716
searchParams.set("ping", "0");
1817
searchParams.set("status", "up");
1918

20-
await got.get(url + "?" + searchParams.toString());
19+
await fetch(url + "?" + searchParams.toString());
2120
}
2221

2322
for (;;) {

0 commit comments

Comments
 (0)