Replace node-fetch with axios

This commit is contained in:
Nicolas Meienberger 2022-06-01 22:52:17 +02:00
parent ac65a0b9d2
commit e008487e74
5 changed files with 95 additions and 52 deletions

View file

@ -17,6 +17,7 @@ services:
api:
image: meienberger/tipi-api:${TIPI_VERSION}
restart: unless-stopped
container_name: api
ports:
- 3001:3001
@ -35,6 +36,7 @@ services:
dashboard:
image: meienberger/tipi-dashboard:${TIPI_VERSION}
restart: unless-stopped
container_name: dashboard
ports:
- 3000:3000

View file

@ -20,7 +20,7 @@ RUN apt-get update
RUN apt-get install -y docker-ce docker-ce-cli containerd.io
# Install node
RUN curl -sL https://deb.nodesource.com/setup_14.x | bash -
RUN curl -sL https://deb.nodesource.com/setup_18.x | bash -
RUN apt-get install -y nodejs
# Install docker-compose

View file

@ -22,6 +22,7 @@
"license": "ISC",
"dependencies": {
"argon2": "^0.28.5",
"axios": "^0.26.1",
"compression": "^1.7.4",
"cookie-parser": "^1.4.6",
"cors": "^2.8.5",
@ -32,7 +33,6 @@
"jsonwebtoken": "^8.5.1",
"mock-fs": "^5.1.2",
"node-cache": "^5.1.2",
"node-fetch": "^3.2.4",
"node-port-scanner": "^3.0.1",
"p-iteration": "^1.1.8",
"passport": "^0.5.2",

View file

@ -1,5 +1,5 @@
import axios from 'axios';
import { Request, Response } from 'express';
import fetch from 'node-fetch';
import config from '../../config';
import TipiCache from '../../config/cache';
import { readJsonFile } from '../fs/fs.helpers';
@ -65,19 +65,19 @@ const getMemoryInfo = async (req: Request, res: Response<MemoryData>) => {
res.status(200).json(result);
};
const getVersion = async (req: Request, res: Response<{ current: string; latest: string }>) => {
const getVersion = async (req: Request, res: Response<{ current: string; latest?: string }>) => {
let version = TipiCache.get<string>('latestVersion');
if (!version) {
const response = await fetch('https://api.github.com/repos/meienberger/runtipi/releases/latest');
const json = (await response.json()) as { name: string };
TipiCache.set('latestVersion', json.name);
version = json.name.replace('v', '');
const { data } = await axios.get('https://api.github.com/repos/meienberger/runtipi/releases/latest');
TipiCache.set('latestVersion', data.name);
version = data.name.replace('v', '');
}
TipiCache.set('latestVersion', version.replace('v', ''));
TipiCache.set('latestVersion', version?.replace('v', ''));
res.status(200).send({ current: config.VERSION, latest: version.replace('v', '') });
res.status(200).send({ current: config.VERSION, latest: version?.replace('v', '') });
};
export default { getCpuInfo, getDiskInfo, getMemoryInfo, getVersion };

125
pnpm-lock.yaml generated
View file

@ -113,6 +113,7 @@ importers:
'@typescript-eslint/eslint-plugin': ^5.18.0
'@typescript-eslint/parser': ^5.22.0
argon2: ^0.28.5
axios: ^0.26.1
compression: ^1.7.4
concurrently: ^7.1.0
cookie-parser: ^1.4.6
@ -131,7 +132,6 @@ importers:
jsonwebtoken: ^8.5.1
mock-fs: ^5.1.2
node-cache: ^5.1.2
node-fetch: ^3.2.4
node-port-scanner: ^3.0.1
nodemon: ^2.0.15
p-iteration: ^1.1.8
@ -147,6 +147,7 @@ importers:
typescript: 4.6.4
dependencies:
argon2: 0.28.5
axios: 0.26.1
compression: 1.7.4
cookie-parser: 1.4.6
cors: 2.8.5
@ -157,7 +158,6 @@ importers:
jsonwebtoken: 8.5.1
mock-fs: 5.1.2
node-cache: 5.1.2
node-fetch: 3.2.4
node-port-scanner: 3.0.1
p-iteration: 1.1.8
passport: 0.5.2
@ -2889,6 +2889,8 @@ packages:
raw-body: 2.5.1
type-is: 1.6.18
unpipe: 1.0.0
transitivePeerDependencies:
- supports-color
dev: false
/boxen/5.1.2:
@ -3160,6 +3162,8 @@ packages:
on-headers: 1.0.2
safe-buffer: 5.1.2
vary: 1.1.2
transitivePeerDependencies:
- supports-color
dev: false
/compute-scroll-into-view/1.0.14:
@ -3305,11 +3309,6 @@ packages:
resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
dev: true
/data-uri-to-buffer/4.0.0:
resolution: {integrity: sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==}
engines: {node: '>= 12'}
dev: false
/date-fns/2.28.0:
resolution: {integrity: sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==}
engines: {node: '>=0.11'}
@ -3327,10 +3326,27 @@ packages:
/debug/3.2.7:
resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
peerDependencies:
supports-color: '*'
peerDependenciesMeta:
supports-color:
optional: true
dependencies:
ms: 2.1.3
dev: true
/debug/3.2.7_supports-color@5.5.0:
resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
peerDependencies:
supports-color: '*'
peerDependenciesMeta:
supports-color:
optional: true
dependencies:
ms: 2.1.3
supports-color: 5.5.0
dev: true
/debug/4.3.1:
resolution: {integrity: sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==}
engines: {node: '>=6.0'}
@ -3941,6 +3957,8 @@ packages:
dependencies:
debug: 2.6.9
resolve: 1.22.0
transitivePeerDependencies:
- supports-color
dev: true
/eslint-import-resolver-node/0.3.6:
@ -3948,6 +3966,8 @@ packages:
dependencies:
debug: 3.2.7
resolve: 1.22.0
transitivePeerDependencies:
- supports-color
dev: true
/eslint-import-resolver-typescript/2.4.0_l3k33lf43msdtqtpwrwceacqke:
@ -3987,8 +4007,12 @@ packages:
optional: true
dependencies:
'@typescript-eslint/parser': 5.10.1_uhoeudlwl7kc47h4kncsfowede
debug: 3.2.7
eslint-import-resolver-node: 0.3.6
eslint-import-resolver-typescript: 2.4.0_l3k33lf43msdtqtpwrwceacqke
find-up: 2.1.0
transitivePeerDependencies:
- supports-color
dev: true
/eslint-module-utils/2.7.3_wex3ustmkv4ospy3s77r6ihlwq:
@ -4010,7 +4034,11 @@ packages:
optional: true
dependencies:
'@typescript-eslint/parser': 5.22.0_uhoeudlwl7kc47h4kncsfowede
debug: 3.2.7
eslint-import-resolver-node: 0.3.6
find-up: 2.1.0
transitivePeerDependencies:
- supports-color
dev: true
/eslint-plugin-import/2.25.2_svocbphju65ulgskrkawser2je:
@ -4424,6 +4452,8 @@ packages:
type-is: 1.6.18
utils-merge: 1.0.1
vary: 1.1.2
transitivePeerDependencies:
- supports-color
dev: false
/fast-deep-equal/3.1.3:
@ -4465,14 +4495,6 @@ packages:
bser: 2.1.1
dev: true
/fetch-blob/3.1.5:
resolution: {integrity: sha512-N64ZpKqoLejlrwkIAnb9iLSA3Vx/kjgzpcDhygcqJ2KKjky8nCgUQ+dzXtbrLaWZGZNmNfQTsiQ0weZ1svglHg==}
engines: {node: ^12.20 || >= 14.13}
dependencies:
node-domexception: 1.0.0
web-streams-polyfill: 3.2.1
dev: false
/file-entry-cache/6.0.1:
resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
engines: {node: ^10.12.0 || >=12.0.0}
@ -4504,12 +4526,21 @@ packages:
parseurl: 1.3.3
statuses: 2.0.1
unpipe: 1.0.0
transitivePeerDependencies:
- supports-color
dev: false
/find-root/1.1.0:
resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==}
dev: false
/find-up/2.1.0:
resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==}
engines: {node: '>=4'}
dependencies:
locate-path: 2.0.0
dev: true
/find-up/4.1.0:
resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
engines: {node: '>=8'}
@ -4551,13 +4582,6 @@ packages:
resolution: {integrity: sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==}
dev: false
/formdata-polyfill/4.0.10:
resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==}
engines: {node: '>=12.20.0'}
dependencies:
fetch-blob: 3.1.5
dev: false
/forwarded/0.2.0:
resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
engines: {node: '>= 0.6'}
@ -5915,6 +5939,14 @@ packages:
/lines-and-columns/1.2.4:
resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
/locate-path/2.0.0:
resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==}
engines: {node: '>=4'}
dependencies:
p-locate: 2.0.0
path-exists: 3.0.0
dev: true
/locate-path/5.0.0:
resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
engines: {node: '>=8'}
@ -6180,11 +6212,6 @@ packages:
clone: 2.1.2
dev: false
/node-domexception/1.0.0:
resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
engines: {node: '>=10.5.0'}
dev: false
/node-fetch/2.6.7:
resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==}
engines: {node: 4.x || >=6.0.0}
@ -6197,15 +6224,6 @@ packages:
whatwg-url: 5.0.0
dev: false
/node-fetch/3.2.4:
resolution: {integrity: sha512-WvYJRN7mMyOLurFR2YpysQGuwYrJN+qrrpHjJDuKMcSPdfFccRUla/kng2mz6HWSBxJcqPbvatS6Gb4RhOzCJw==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
dependencies:
data-uri-to-buffer: 4.0.0
fetch-blob: 3.1.5
formdata-polyfill: 4.0.10
dev: false
/node-int64/0.4.0:
resolution: {integrity: sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=}
dev: true
@ -6225,7 +6243,7 @@ packages:
requiresBuild: true
dependencies:
chokidar: 3.5.3
debug: 3.2.7
debug: 3.2.7_supports-color@5.5.0
ignore-by-default: 1.0.1
minimatch: 3.1.2
pstree.remy: 1.1.8
@ -6409,6 +6427,13 @@ packages:
engines: {node: '>=8.0.0'}
dev: false
/p-limit/1.3.0:
resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==}
engines: {node: '>=4'}
dependencies:
p-try: 1.0.0
dev: true
/p-limit/2.3.0:
resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
engines: {node: '>=6'}
@ -6416,6 +6441,13 @@ packages:
p-try: 2.2.0
dev: true
/p-locate/2.0.0:
resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==}
engines: {node: '>=4'}
dependencies:
p-limit: 1.3.0
dev: true
/p-locate/4.1.0:
resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
engines: {node: '>=8'}
@ -6430,6 +6462,11 @@ packages:
p-finally: 1.0.0
dev: false
/p-try/1.0.0:
resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==}
engines: {node: '>=4'}
dev: true
/p-try/2.2.0:
resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
engines: {node: '>=6'}
@ -6492,6 +6529,11 @@ packages:
pause: 0.0.1
dev: false
/path-exists/3.0.0:
resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==}
engines: {node: '>=4'}
dev: true
/path-exists/4.0.0:
resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
engines: {node: '>=8'}
@ -7064,6 +7106,8 @@ packages:
on-finished: 2.4.1
range-parser: 1.2.1
statuses: 2.0.1
transitivePeerDependencies:
- supports-color
dev: false
/serve-static/1.15.0:
@ -7074,6 +7118,8 @@ packages:
escape-html: 1.0.3
parseurl: 1.3.3
send: 0.18.0
transitivePeerDependencies:
- supports-color
dev: false
/set-blocking/2.0.0:
@ -7698,11 +7744,6 @@ packages:
makeerror: 1.0.12
dev: true
/web-streams-polyfill/3.2.1:
resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==}
engines: {node: '>= 8'}
dev: false
/webidl-conversions/3.0.1:
resolution: {integrity: sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=}
dev: false