Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feat] Removing Axios for Native Fetch #1278

Draft
wants to merge 27 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
ca76896
remove axios package
sapiderman Mar 15, 2024
c57e074
Merge branch 'main' into feat/1248-remove-axios
sapiderman Apr 1, 2024
7ff1074
Merge branch 'main' into feat/1248-remove-axios
sapiderman Apr 17, 2024
c9951f5
remove send http via axios
sapiderman Apr 19, 2024
3489c54
convert insomnia
sapiderman Apr 30, 2024
54072f4
update symon worker to use fetch
sapiderman May 3, 2024
ed87495
update symon module
sapiderman May 10, 2024
5ee4caf
Merge branch 'main' into feat/1248-remove-axios
sapiderman May 10, 2024
db981d7
fix conflict
sapiderman May 10, 2024
0834377
Merge branch 'main' into feat/1248-remove-axios
sapiderman May 13, 2024
e46e6a2
fix prometheus test
sapiderman May 15, 2024
7ac9cfa
add insomnia unit test
sapiderman May 17, 2024
80ec4fe
Merge branch 'main' into feat/1248-remove-axios
sapiderman May 17, 2024
91dbaf0
fix config file return
sapiderman May 21, 2024
ccd9b41
add handler for json config files
sapiderman May 31, 2024
d6c1095
cleanup console.logs
sapiderman May 31, 2024
cd400a1
fix symon mode tests
sapiderman Jun 22, 2024
775de38
feat(http prober): #1285 implement cache http response (#1296)
syamsudotdev Jun 11, 2024
c1d30f1
feat: disable cache by default (#1297)
haricnugraha Jun 21, 2024
83d7e41
Feat: Handle CERT_HAS_EXPIRED_ERROR (#1299)
dennypradipta Jun 21, 2024
4409fbc
convert insomnia
sapiderman Apr 30, 2024
92adfe5
update symon module
sapiderman May 10, 2024
a14a848
define apiversion
sapiderman Jun 23, 2024
269e0eb
Merge branch 'main' into feat/1248-remove-axios
sapiderman Jul 8, 2024
e37a55b
tweak insomnia test
sapiderman Jul 11, 2024
6d2fac3
add explicit follow redir
sapiderman Jul 12, 2024
67482fa
remove .only
sapiderman Jul 12, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file added .scannerwork/.sonar_lock
Empty file.
6 changes: 6 additions & 0 deletions .scannerwork/report-task.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
projectKey=monika
serverUrl=http://localhost:9000
serverVersion=10.2.1.78527
dashboardUrl=http://localhost:9000/dashboard?id=monika
ceTaskId=AYuVyJ5oxsq2T6uOigBP
ceTaskUrl=http://localhost:9000/api/ce/task?id=AYuVyJ5oxsq2T6uOigBP
41 changes: 41 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Launch via NPM",
"request": "launch",
"runtimeArgs": ["run-script", "debug"],
"runtimeExecutable": "npm ",
"skipFiles": ["<node_internals>/**"],
"type": "node",
"args": ["-h"]
},
{
"name": "Launch Simon Mode",
"type": "node-terminal",
"request": "launch",
"command": "npm start -- --symonUrl=http://localhost:3000 --symonKey=d6b9ef1c-7d44-4ffc-aa02-446821d4d616 --symonLocationId=6f8a6285-9c45-4d6b-a656-7c3c9446beee"
},
{
"type": "node",
"request": "launch",
"name": "Launch with Args",
"skipFiles": ["<node_internals>/**"],
"program": "${workspaceFolder}/lib/index.js",
"preLaunchTask": "tsc: build - tsconfig.json",
"outFiles": ["${workspaceFolder}/lib/**/*.js"],
"args": ["-c", "/home/budhi/project/monika/test.yaml", "-s", "-1"],
"sourceMaps": true
},
{
"type": "node",
"request": "launch",
"name": "testing testing",
"program": "${workspaceFolder}/bin/dev.js",
"args": ["-h"]
}
]
}
41 changes: 41 additions & 0 deletions gov.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
probes:
- id: 'kemenperin.go.id'
name: 'kemenperin.go.id website'
requests:
- url: https://kemenperin.go.id/
alerts:
- assertion: response.status != 200
message: kemenperin.go.id website

- id: 'kkp.go.id'
name: 'kkp.go.id website'
requests:
- url: https://kkp.go.id
alerts:
- assertion: response.status != 200
message: kkp.go.id website

- id: 'kemenag.go.id'
name: 'kemenag.go.id website'
requests:
- url: https://kemenag.go.id/
alerts:
- assertion: response.status != 200
message: kemenag.go.id website

- id: 'pu.go.id'
name: 'pu.go.id website'
requests:
- url: https://pu.go.id/
alerts:
- assertion: response.status != 200
message: pu.go.id website

notifications:
- id: desktop
type: desktop

- id: teams-001
type: teams
data:
url: https://hyperjump.webhook.office.com/webhookb2/006c847c-21b9-4ac2-85d4-454a722471d9@9def1f60-dd5b-4bb2-ba50-ecbd7a895ce2/IncomingWebhook/751e1056e0904257804c1b38b8903dd7/748ef655-7fd5-4525-9b26-7cdcf4fab8d8
1 change: 0 additions & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,6 @@
"@sendgrid/mail": "^7.4.2",
"@types/pg": "^8.10.9",
"ajv": "^8.11.0",
"axios": "^0.27.2",
"boxen": "^5.0.0",
"chalk": "^4.1.2",
"chokidar": "^3.5.1",
Expand Down
1 change: 1 addition & 0 deletions snapcraft-credential
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
eyJ0IjogInUxLW1hY2Fyb29uIiwgInYiOiB7InIiOiAiTURBeU9XeHZZMkYwYVc5dUlHMTVZWEJ3Y3k1a1pYWmxiRzl3WlhJdWRXSjFiblIxTG1OdmJRb3dNREUyYVdSbGJuUnBabWxsY2lCTmVVRndjSE1LTURBMFltTnBaQ0J0ZVdGd2NITXVaR1YyWld4dmNHVnlMblZpZFc1MGRTNWpiMjE4ZG1Gc2FXUmZjMmx1WTJWOE1qQXlOQzB3TWkweU1WUXhNVG96T1RvME9DNDBNVFU0TVRnS01ERTNaR05wWkNCN0luWmxjbk5wYjI0aU9pQXhMQ0FpYzJWamNtVjBJam9nSWt4dFVIWnlWVVYzUnpRdmREVnNha0kyVUdGUWVVaGpRVGhpZVZkbU5VbG9ZVm94TDBwWWN6UjRWMFZ5WTNJeFZTczJVazgzT1hWRGFHUTBWRVJrUlZOeU9VNVlaa3RyVGpReVZHMUhNME5oTkRVNEt6WmxRazVxUkU1d1QwZHZlVGxwSzFoT2IwSlJMMmRCUm5VcmNuSnlTV1pHUkZBM1pXUnBaMUl5YTJVNE9GaFZSMFJTVWpGd056SktjMloxTDA1T1dtbDZWalpQVmtwNlNpdG9Sa1EzTjBFM2JtOU1VazByVm1ob2RWTkNTVnBvTlZaTGVERmFPRVIwVDJSdWRFZEhSR2czU2sxQlF6UlFSR2R4TjJSeWNuRm1jV1pZVUhnemRVZFFkM0k1ZGtSbWRIaFJja3gwUzFoS05FMTJOREk0WlZsTWJHeG5kbUYyWW1WMU5uSlNiWEZhT0dNM1lXMUlPWGMzWmtGVVpDdHlSakJUYmt4bk1UQllWbnBvU25oMmFrVXdXakpCTVhCR1NYUnphamRvVlc4MVpuUldNR0pMT1N0U1VVcE9jR3hXVm5Fd04ybEhXV0pDT0daelJGWnhjalZTWnowOUluMEtNREExTVhacFpDQlJSN3JOb2RZeHdyX3N2ZkNjMHF6Ymd1M003akJ0c3VNZHRNS3dMMnRGdkNkUUp6QWZWdF9EbnZmZ2tFNEt5NWtqZFZWNXN5eGl4UVY5UXhHYUpnbENXdnU3Mkk4WmFOUUtNREF4T0dOc0lHeHZaMmx1TG5WaWRXNTBkUzVqYjIwS01EQmhPV05wWkNCdGVXRndjSE11WkdWMlpXeHZjR1Z5TG5WaWRXNTBkUzVqYjIxOFlXTnNmRnNpY0dGamEyRm5aVjloWTJObGMzTWlMQ0FpY0dGamEyRm5aVjl0WVc1aFoyVWlMQ0FpY0dGamEyRm5aVjl0WlhSeWFXTnpJaXdnSW5CaFkydGhaMlZmY0hWemFDSXNJQ0p3WVdOcllXZGxYM0psWjJsemRHVnlJaXdnSW5CaFkydGhaMlZmY21Wc1pXRnpaU0lzSUNKd1lXTnJZV2RsWDNWd1pHRjBaU0pkQ2pBd05EZGphV1FnYlhsaGNIQnpMbVJsZG1Wc2IzQmxjaTUxWW5WdWRIVXVZMjl0ZkdWNGNHbHlaWE44TWpBeU5TMHdNaTB5TUZReE1Ub3pPVG8wTnk0d01EQXdNVGNLTURBeVpuTnBaMjVoZEhWeVpTQklTcEx5YTBCbEVnNFk4c1hNNWFfaHktZFNmQjdoRFhRbm1YQmNMZWlNNUFvIiwgImQiOiAiTURBeFpXeHZZMkYwYVc5dUlHeHZaMmx1TG5WaWRXNTBkUzVqYjIwS01ERTROR2xrWlc1MGFXWnBaWElnZXlKMlpYSnphVzl1SWpvZ01Td2dJbk5sWTNKbGRDSTZJQ0pNYlZCMmNsVkZkMGMwTDNRMWJHcENObEJoVUhsSVkwRTRZbmxYWmpWSmFHRmFNUzlLV0hNMGVGZEZjbU55TVZVck5sSlBOemwxUTJoa05GUkVaRVZUY2psT1dHWkxhMDQwTWxSdFJ6TkRZVFExT0NzMlpVSk9ha1JPY0U5SGIzazVhU3RZVG05Q1VTOW5RVVoxSzNKeWNrbG1Sa1JRTjJWa2FXZFNNbXRsT0RoWVZVZEVVbEl4Y0RjeVNuTm1kUzlPVGxwcGVsWTJUMVpLZWtvcmFFWkVOemRCTjI1dlRGSk5LMVpvYUhWVFFrbGFhRFZXUzNneFdqaEVkRTlrYm5SSFIwUm9OMHBOUVVNMFVFUm5jVGRrY25KeFpuRm1XRkI0TTNWSFVIZHlPWFpFWm5SNFVYSk1kRXRZU2pSTmRqUXlPR1ZaVEd4c1ozWmhkbUpsZFRaeVVtMXhXamhqTjJGdFNEbDNOMlpCVkdRcmNrWXdVMjVNWnpFd1dGWjZhRXA0ZG1wRk1Gb3lRVEZ3UmtsMGMybzNhRlZ2TldaMFZqQmlTemtyVWxGS1RuQnNWbFp4TURkcFIxbGlRamhtYzBSV2NYSTFVbWM5UFNKOUNqQXdaREpqYVdRZ2JHOW5hVzR1ZFdKMWJuUjFMbU52Ylh4aFkyTnZkVzUwZkdWNVNtdGhXRTUzWWtkR05XSnRSblJhVTBrMlNVTktTV1ZZUW14amJYQXhZbGhCYVV4RFFXbGtXRTVzWTIwMWFHSlhWV2xQYVVGcFlVaHNkMXBZU25Ga1Z6RjNaRWRXYW1GRFNYTkpRMHB3WXpFNU1scFlTbkJhYld4c1drTkpOa2xJVW5sa1YxVnpTVU5LZG1OSFZuVmhWMUZwVDJsQmFXUXlXa05YU0doQ1ZWTkpjMGxEU214aVYwWndZa05KTmtsRFNtdGFWelYxWlZWQ2IyVllRbXhqYlhBeFlsaEJkV1JIVm1waFEwbzVDakF3TkRCamFXUWdiRzluYVc0dWRXSjFiblIxTG1OdmJYeDJZV3hwWkY5emFXNWpaWHd5TURJMExUQXlMVEl4VkRFeE9qTTVPalV3TGpJNU1UQXhNd293TURObFkybGtJR3h2WjJsdUxuVmlkVzUwZFM1amIyMThiR0Z6ZEY5aGRYUm9mREl3TWpRdE1ESXRNakZVTVRFNk16azZOVEF1TWpreE1ERXpDakF3TW1aemFXZHVZWFIxY21VZzQzM3piNmhoZTBsbVJnQUltU0E0N2NtSzVOZ0hhRU9wVmptaTlSajBobjRLIn19
1 change: 1 addition & 0 deletions snapcraft-credential-old
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
eyJ0IjogInUxLW1hY2Fyb29uIiwgInYiOiB7InIiOiAiTURBeU9XeHZZMkYwYVc5dUlHMTVZWEJ3Y3k1a1pYWmxiRzl3WlhJdWRXSjFiblIxTG1OdmJRb3dNREUyYVdSbGJuUnBabWxsY2lCTmVVRndjSE1LTURBMFltTnBaQ0J0ZVdGd2NITXVaR1YyWld4dmNHVnlMblZpZFc1MGRTNWpiMjE4ZG1Gc2FXUmZjMmx1WTJWOE1qQXlOQzB3TVMweE9WUXhNem93Tnpvd05DNHlPVGt6TURNS01ERTNaR05wWkNCN0luWmxjbk5wYjI0aU9pQXhMQ0FpYzJWamNtVjBJam9nSWxaaFNVRmpjalpDY1c0elJFb3JTVzFHUjA4MmQzTlZSV1l2Y0hGbE5uTnNTM0ppV1Vsd1NWQkJURE5tUWpWamFXOXZTbWwxVkZVME1FSndkVzA0YVRsRk9UUk1ibTE2T1RaTVQzbGpZV1k1ZVVSQ2EyaHdhRmd4ZFhVelozZFpXRzVNTkc1eVNFZ3pVV2hXVUhCSVNHazNXVnBzT0ROWFZXVTBSMWhPUTNaMU9VOWtNakZqV1Zod1JrTjFRbkZNTm5RM1FVMTVkVlZ3Y0VOUllsVnRUbVJOY1hGUlQwMXNPV3hhZUZrM2F6RlhPQzlLU3paYVNtcHhOMWxqUlVKMmEwOUdabWhyWVd0dFRDdG9NMkZRUm0xWVJqbEhZV3MyWVROMVNVOVJOa2x6WldwM05rUkZiR0ZIZHpaVVFrZHVORmd6VFZwQloyeFRWR05MUzFFNWNVdHVNMlkxUTAxMFNEbG9WM1ZYWjJSdldUTmxaR2RsVFhseGRYRlpVbWsxVHpCTmVFWkRSRko2WW05YVNEQXpORkpyUzNsUlpEQjBPSEpaUVd4elNXbHdOV3cwVmxkblRtWk5PWGhJV1N0a1pFOXNNbTF5VVQwOUluMEtNREExTVhacFpDQWtWWXJKbHZWS21vYVBkdVhSUTVJbjJZM3RqV242Q01UU1FFYlVmS044d0VkSnlfd1ZZVGdzUTlfOGhHSmZSTHV5Wm5rYWNkdkowczFSWGxEbzVYcnYwQ0wyekNkdU5mWUtNREF4T0dOc0lHeHZaMmx1TG5WaWRXNTBkUzVqYjIwS01EQmhPV05wWkNCdGVXRndjSE11WkdWMlpXeHZjR1Z5TG5WaWRXNTBkUzVqYjIxOFlXTnNmRnNpY0dGamEyRm5aVjloWTJObGMzTWlMQ0FpY0dGamEyRm5aVjl0WVc1aFoyVWlMQ0FpY0dGamEyRm5aVjl0WlhSeWFXTnpJaXdnSW5CaFkydGhaMlZmY0hWemFDSXNJQ0p3WVdOcllXZGxYM0psWjJsemRHVnlJaXdnSW5CaFkydGhaMlZmY21Wc1pXRnpaU0lzSUNKd1lXTnJZV2RsWDNWd1pHRjBaU0pkQ2pBd05EZGphV1FnYlhsaGNIQnpMbVJsZG1Wc2IzQmxjaTUxWW5WdWRIVXVZMjl0ZkdWNGNHbHlaWE44TWpBeU5TMHdNUzB4T0ZReE16b3dOem93TXk0d01EQXdNekFLTURBeVpuTnBaMjVoZEhWeVpTQkl2NUFyazJKV3ZYVy12S19YMUJ5S2RfQ1dTcVFqS3J1T0JBVWZmQ0FtZHdvIiwgImQiOiAiTURBeFpXeHZZMkYwYVc5dUlHeHZaMmx1TG5WaWRXNTBkUzVqYjIwS01ERTROR2xrWlc1MGFXWnBaWElnZXlKMlpYSnphVzl1SWpvZ01Td2dJbk5sWTNKbGRDSTZJQ0pXWVVsQlkzSTJRbkZ1TTBSS0swbHRSa2RQTm5kelZVVm1MM0J4WlRaemJFdHlZbGxKY0VsUVFVd3paa0kxWTJsdmIwcHBkVlJWTkRCQ2NIVnRPR2s1UlRrMFRHNXRlamsyVEU5NVkyRm1PWGxFUW10b2NHaFlNWFYxTTJkM1dWaHVURFJ1Y2toSU0xRm9WbEJ3U0VocE4xbGFiRGd6VjFWbE5FZFlUa04yZFRsUFpESXhZMWxZY0VaRGRVSnhURFowTjBGTmVYVlZjSEJEVVdKVmJVNWtUWEZ4VVU5TmJEbHNXbmhaTjJzeFZ6Z3ZTa3MyV2twcWNUZFpZMFZDZG10UFJtWm9hMkZyYlV3cmFETmhVRVp0V0VZNVIyRnJObUV6ZFVsUFVUWkpjMlZxZHpaRVJXeGhSM2MyVkVKSGJqUllNMDFhUVdkc1UxUmpTMHRST1hGTGJqTm1OVU5OZEVnNWFGZDFWMmRrYjFrelpXUm5aVTE1Y1hWeFdWSnBOVTh3VFhoR1EwUlNlbUp2V2tnd016UlNhMHQ1VVdRd2REaHlXVUZzYzBscGNEVnNORlpYWjA1bVRUbDRTRmtyWkdSUGJESnRjbEU5UFNKOUNqQXdaREpqYVdRZ2JHOW5hVzR1ZFdKMWJuUjFMbU52Ylh4aFkyTnZkVzUwZkdWNVNteGlWMFp3WWtOSk5rbERTbXRhVnpWMVpWVkNiMlZZUW14amJYQXhZbGhCZFdSSFZtcGhRMGx6U1VOS2RtTkhWblZoVjFGcFQybEJhV1F5V2tOWFNHaENWVk5KYzBsRFNqRmpNbFo1WW0xR2RGcFRTVFpKUTBwdlpWaENiR050Y0RGaVdFSXdXbGRPYjBscGQyZEpiVkp3WXpOQ2MxbFliSFZaVnpGc1NXcHZaMGxyYURWalIxWjVZVzVXZEdORFNYTkpRMHB3WXpFNU1scFlTbkJhYld4c1drTkpOa2xJVW5sa1YxWTVDakF3TkRCamFXUWdiRzluYVc0dWRXSjFiblIxTG1OdmJYeDJZV3hwWkY5emFXNWpaWHd5TURJMExUQXhMVEU1VkRFek9qQTNPakExTGpjeU9UTTFNZ293TURObFkybGtJR3h2WjJsdUxuVmlkVzUwZFM1amIyMThiR0Z6ZEY5aGRYUm9mREl3TWpRdE1ERXRNVGxVTVRNNk1EYzZNRFV1TnpJNU16VXlDakF3TW1aemFXZHVZWFIxY21VZ0l6NmJwZTBMcE5xU0VhTk9VX3VjeGl5NW9reUVuWGxWVVhtYzJua1FzNWdLIn19
9 changes: 5 additions & 4 deletions src/components/config/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,14 @@ import type { Config, ValidatedConfig } from '../../interfaces/config'
import { getContext, setContext } from '../../context'
import type { MonikaFlags } from '../../flag'
import { getEventEmitter } from '../../utils/events'
import { sendHttpRequest } from '../..//utils/http'
import { sendHttpRequestFetch } from '../../utils/http'
import { log } from '../../utils/pino'
import { getRawConfig } from './get'
import { getProbes, setProbes } from './probe'
import { sanitizeConfig } from './sanitize'
import { validateConfig } from './validate'

export async function initConfig() {
export async function initConfig(): Promise<void> {
const { flags } = getContext()
const hasConfig =
flags.config.length > 0 ||
Expand All @@ -61,8 +61,9 @@ async function createExampleConfigFile() {
'https://raw.githubusercontent.com/hyperjumptech/monika/main/monika.example.yml'

try {
const resp = await sendHttpRequest({ url })
await writeFile(outputFilePath, resp.data, { encoding: 'utf8' })
const resp = await sendHttpRequestFetch({ url })
const temp = await resp.text()
await writeFile(outputFilePath, temp, { encoding: 'utf8' })
} catch {
const ymlConfig = `
probes:
Expand Down
41 changes: 26 additions & 15 deletions src/components/config/parser/insomnia.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
import type { Config } from '../../../interfaces/config'
import yml from 'js-yaml'
import { compile as compileTemplate } from 'handlebars'
import type { AxiosRequestHeaders, Method } from 'axios'
import Joi from 'joi'

const envValidator = Joi.object({
Expand Down Expand Up @@ -110,10 +109,14 @@ export function parseInsomnia(configString: string, format: string): Config {
? `${env?.scheme?.[0] ?? 'http'}://${env?.host}${env?.base_path}`
: ''

return mapInsomniaToConfig(data)
return mapInsomniaToConfig(data, environmentVariables, baseUrl)
}

function mapInsomniaToConfig(data: unknown): Config {
function mapInsomniaToConfig(
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

for effectivity mapInsomniaToConfig and mapInsomniaRequestToConfig can be merged. By making mapInsomniaToConfig as a pure function that return insomniaRequests array, then call it from inside mapInsomniaRequestToConfig rather than just passing parameters to the next function.

data: unknown,
env: object | undefined,
baseUrl: string
): Config {
const res = Joi.array()
.items(resourceValidator)
.validate(data, { allowUnknown: true }).value
Expand All @@ -134,22 +137,26 @@ function mapInsomniaToConfig(data: unknown): Config {
)

const probes = insomniaRequests.map((probe: unknown) =>
mapInsomniaRequestToConfig(probe)
mapInsomniaRequestToConfig(probe, env, baseUrl)
)

return { probes }
}

function mapInsomniaRequestToConfig(req: unknown) {
export function mapInsomniaRequestToConfig(
req: unknown,
env: object | undefined,
baseUrl: string
) {
const { value: res } = resourceValidator.validate(req, { allowUnknown: true })

// eslint-disable-next-line camelcase
const url = compileTemplate(res.url)({ base_url: baseUrl })
const authorization = getAuthorizationHeader(res)
let headers: AxiosRequestHeaders | undefined
if (authorization)
headers = {
authorization,
}
const authorization = getAuthorizationHeader(res, env)

let headers: Record<string, string> | undefined

// let headers: Headers | undefined
if (authorization) headers = { authorization }
if (res.headers) {
if (headers === undefined) headers = {}
for (const h of res.headers) {
Expand All @@ -164,7 +171,7 @@ function mapInsomniaRequestToConfig(req: unknown) {
requests: [
{
url,
method: (res?.method ?? 'GET') as Method,
method: res?.method ?? 'GET',
body: JSON.parse(res.body?.text ?? '{}'),
timeout: 10_000,
headers,
Expand All @@ -175,11 +182,15 @@ function mapInsomniaRequestToConfig(req: unknown) {
}
}

function getAuthorizationHeader(data: unknown): string | undefined {
export function getAuthorizationHeader(
data: unknown,
env: object | undefined
): string | undefined {
const { value: res } = resourceValidator.validate(data, {
allowUnknown: true,
})
let authorization: string | undefined

if (
res.authentication?.type === 'bearer' &&
(res.authentication?.disabled ?? false) === false
Expand All @@ -188,7 +199,7 @@ function getAuthorizationHeader(data: unknown): string | undefined {
authTemplate = authTemplate?.replace('_.', '')
authorization = `${
res.authentication?.prefix ?? 'bearer'
} ${compileTemplate(authTemplate)(environmentVariables ?? {})}`
} ${compileTemplate(authTemplate)(env ?? {})}`
}

return authorization
Expand Down
62 changes: 62 additions & 0 deletions src/components/config/parser/insomnia_test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
{
_type: 'export',
__export_format: 4,
__export_date: '2024-04-16T12:55:23.577Z',
__export_source: 'insomnia.desktop.app:v2023.5.8',
resources:
[
{
_id: 'req_5ae8f9fea8b9496db25e9c19a6d7783e',
parentId: 'fld_d68c7a6657c14354807fce49c34f3bdd',
modified: 1708668487313,
created: 1708668309457,
url: 'http://localhost:3000/api/v1/monika',
name: 'Send Report',
description: '',
method: 'POST',
body:
{
mimeType: 'application/json',
text: "{\n\t\"monikaId\": \"8d992f11-c6e8-48d2-bc84-750ff2242b88\",\n\t\"data\": {\n\t\t\"notifications\": \"\",\n\t\t\"requests\": \"\"\n\t}\n}",
},
parameters: [],
headers:
[
{ name: 'Content-Type', value: 'application/json' },
{
name: 'User-Agent',
value: 'insomnia/2023.5.8',
id: 'pair_2c39a294777648bdb5e253492b6b2b7f',
},
{
id: 'pair_3e9d9fb53b3142278f81855a1dfe3caf',
name: 'x-api-key',
value: 'd6b9ef1c-7d44-4ffc-aa02-446821d4d616',
description: '',
},
],
authentication: {},
metaSortKey: -1708668309457,
isPrivate: false,
settingStoreCookies: true,
settingSendCookies: true,
settingDisableRenderRequestBody: false,
settingEncodeUrl: true,
settingRebuildPath: true,
settingFollowRedirects: 'global',
_type: 'request',
},
{
_id: 'fld_d68c7a6657c14354807fce49c34f3bdd',
parentId: 'wrk_489cc6eaf693423a95da99025886a1c7',
modified: 1708668270651,
created: 1708668270651,
name: 'symon',
description: '',
environment: {},
environmentPropertyOrder: null,
metaSortKey: -1708668270651,
_type: 'request_group',
},
],
}
Loading
Loading