feat(common): support importing environments individually (#3691)

This commit is contained in:
James George
2023-12-24 12:12:02 +05:30
committed by GitHub
parent 8f503479b6
commit c6c220091a
2 changed files with 14 additions and 3 deletions

View File

@@ -1,13 +1,24 @@
import * as O from "fp-ts/Option"
import { flow } from "fp-ts/function"
type SafeParseJSON = {
(str: string, convertToArray: true): O.Option<Array<unknown>>
(str: string, convertToArray?: false): O.Option<Record<string, unknown>>
}
/**
* Checks and Parses JSON string
* @param str Raw JSON data to be parsed
* @returns Option type with some(JSON data) or none
*/
export const safeParseJSON = (str: string): O.Option<object> =>
O.tryCatch(() => JSON.parse(str))
export const safeParseJSON: SafeParseJSON = (str, convertToArray = false) =>
O.tryCatch(() => {
const data = JSON.parse(str)
if (convertToArray) {
return Array.isArray(data) ? data : [data]
}
return data
})
/**
* Checks if given string is a JSON string

View File

@@ -18,7 +18,7 @@ const hoppEnvSchema = z.object({
})
export const hoppEnvImporter = (content: string) => {
const parsedContent = safeParseJSON(content)
const parsedContent = safeParseJSON(content, true)
// parse json from the environments string
if (O.isNone(parsedContent)) {