Merged environment.ts and variables.ts

This commit is contained in:
isaiM6
2022-08-03 16:01:19 -07:00
parent 99f119d262
commit 775bf9a9c3
3 changed files with 24 additions and 9 deletions

View File

@@ -229,7 +229,6 @@ onMounted(() => {
if (editor.value) {
if (!view.value) initView(editor.value)
}
console.log("editor.value", editor.value)
})
watch(editor, () => {

View File

@@ -14,7 +14,6 @@ import {
HoppRESTHeader,
HoppRESTParam,
} from "@hoppscotch/data"
import { parseTemplateStringV } from "@hoppscotch/data/src/variables"
import { arrayFlatMap, arraySort } from "../functional/array"
import { toFormData } from "../functional/formData"
import { tupleToRecord } from "../functional/record"
@@ -306,7 +305,7 @@ export function getEffectiveRESTRequest(
return {
...request,
effectiveFinalURL: parseTemplateStringV(
effectiveFinalURL: parseTemplateString(
request.endpoint,
envVariables,
request.vars

View File

@@ -16,7 +16,7 @@ export type Variables = {
const REGEX_ENV_VAR = /<<([^>]*)>>/g // "<<myVariable>>"
const REGEX_PATH_VAR = /{{([^}]*)}}/g // "{{myVariable}}"
const REGEX_MY_VAR = /{{([^}]*)}}/g // "{{myVariable}}"
/**
* How much times can we expand environment variables
@@ -67,13 +67,20 @@ export const parseBodyEnvVariables = (
export function parseTemplateStringE(
str: string,
variables: Environment["variables"],
myVariables?: Variables
) {
/*
if (!variables || !str ) {
return E.right(str)
}
*/
if (!variables || !str || !myVariables) {
return E.right(str)
}
let result = str
let depth = 0
let errorBound = 0
while (result.match(REGEX_ENV_VAR) != null && depth <= ENV_MAX_EXPAND_LIMIT) {
result = decodeURI(encodeURI(result)).replace(
@@ -83,9 +90,18 @@ export function parseTemplateStringE(
depth++
}
return depth > ENV_MAX_EXPAND_LIMIT
? E.left(ENV_EXPAND_LOOP)
: E.right(result)
while (result.match(REGEX_MY_VAR) != null && errorBound <= ENV_MAX_EXPAND_LIMIT) {
result = decodeURI(encodeURI(result)).replace(
REGEX_MY_VAR,
(_, p1) => myVariables.find((x) => x.key === p1)?.value || ""
)
errorBound++
}
if(depth > ENV_MAX_EXPAND_LIMIT && errorBound <= ENV_MAX_EXPAND_LIMIT) {
return E.right(result)
}else{
return E.left(ENV_EXPAND_LOOP)
}
}
/**
@@ -93,9 +109,10 @@ export function parseTemplateStringE(
*/
export const parseTemplateString = (
str: string,
variables: Environment["variables"]
variables: Environment["variables"],
myVariables?: Variables
) =>
pipe(
parseTemplateStringE(str, variables),
parseTemplateStringE(str, variables, myVariables),
E.getOrElse(() => str)
)