diff --git a/packages/bruno-electron/src/app/watcher.js b/packages/bruno-electron/src/app/watcher.js index 7b5f1de69..f6c2cae76 100644 --- a/packages/bruno-electron/src/app/watcher.js +++ b/packages/bruno-electron/src/app/watcher.js @@ -6,8 +6,6 @@ const { hasJsonExtension, hasBruExtension, writeFile } = require('../utils/files const { bruToEnvJson, envJsonToBru, -} = require('@usebruno/lang'); -const { bruToJson, jsonToBru } = require('../bru'); diff --git a/packages/bruno-electron/src/bru/index.js b/packages/bruno-electron/src/bru/index.js index 011c19a76..f3b0a65f9 100644 --- a/packages/bruno-electron/src/bru/index.js +++ b/packages/bruno-electron/src/bru/index.js @@ -1,9 +1,41 @@ const _ = require('lodash'); const { + bruToEnvJson: bruToEnvJsonV1, + envJsonToBru: envJsonToBruV1, bruToJson: bruToJsonV1, + bruToJsonV2, - jsonToBruV2 + jsonToBruV2, + bruToEnvJsonV2, + envJsonToBruV2 } = require('@usebruno/lang'); +const { each } = require('lodash'); + +const bruToEnvJson = (bru) => { + try { + const json = bruToEnvJsonV2(bru); + + // the app env format requires each variable to have a type + // this need to be evaulated and safely removed + // i don't see it being used in schema validation + if(json && json.variables && json.variables.length) { + each(json.variables, (v) => v.type = "text"); + } + + return json; + } catch (error) { + return Promise.reject(e); + } +} + +const envJsonToBru = (json) => { + try { + const bru = envJsonToBruV2(json); + return bru; + } catch (error) { + return Promise.reject(e); + } +} /** * The transformer function for converting a BRU file to JSON. @@ -48,7 +80,7 @@ const bruToJson = (bru) => { return transformedJson; } catch (e) { - return bruToJsonV1(bru); + return Promise.reject(e); } }; /** @@ -93,5 +125,7 @@ const jsonToBru = (json) => { module.exports = { bruToJson, - jsonToBru + jsonToBru, + bruToEnvJson, + envJsonToBru, }; diff --git a/packages/bruno-electron/src/ipc/collection.js b/packages/bruno-electron/src/ipc/collection.js index 4df6100ba..2f339e362 100644 --- a/packages/bruno-electron/src/ipc/collection.js +++ b/packages/bruno-electron/src/ipc/collection.js @@ -4,8 +4,6 @@ const path = require('path'); const { ipcMain } = require('electron'); const { envJsonToBru, -} = require('@usebruno/lang'); -const { bruToJson, jsonToBru } = require('../bru'); diff --git a/packages/bruno-lang/src/index.js b/packages/bruno-lang/src/index.js index 36a3375ec..2b51fee0d 100644 --- a/packages/bruno-lang/src/index.js +++ b/packages/bruno-lang/src/index.js @@ -7,6 +7,8 @@ const { const bruToJsonV2 = require('../v2/src/bruToJson'); const jsonToBruV2 = require('../v2/src/jsonToBru'); +const bruToEnvJsonV2 = require('../v2/src/envToJson'); +const envJsonToBruV2 = require('../v2/src/jsonToEnv'); module.exports = { bruToJson, @@ -15,5 +17,7 @@ module.exports = { envJsonToBru, bruToJsonV2, - jsonToBruV2 + jsonToBruV2, + bruToEnvJsonV2, + envJsonToBruV2 }; \ No newline at end of file diff --git a/packages/bruno-lang/v2/src/envToJson.js b/packages/bruno-lang/v2/src/envToJson.js index ec638fe35..997cfef99 100644 --- a/packages/bruno-lang/v2/src/envToJson.js +++ b/packages/bruno-lang/v2/src/envToJson.js @@ -51,7 +51,9 @@ const concatArrays = (objValue, srcValue) => { const sem = grammar.createSemantics().addAttribute('ast', { BruEnvFile(tags) { if(!tags || !tags.ast || !tags.ast.length) { - return {}; + return { + variables: [] + }; } return _.reduce(tags.ast, (result, item) => {