From 116e050987f787544df906579dbf63883aa69900 Mon Sep 17 00:00:00 2001 From: Anoop M D Date: Fri, 22 Sep 2023 00:42:48 +0530 Subject: [PATCH] chore(#197): ran prettier on packages/bruno-lang --- packages/bruno-lang/src/index.js | 9 +- packages/bruno-lang/v1/src/body-tag.js | 36 ++-- packages/bruno-lang/v1/src/env-vars-tag.js | 7 +- packages/bruno-lang/v1/src/headers-tag.js | 5 +- packages/bruno-lang/v1/src/index.js | 130 +++++------- packages/bruno-lang/v1/src/inline-tag.js | 29 +-- packages/bruno-lang/v1/src/key-val-lines.js | 53 ++--- packages/bruno-lang/v1/src/params-tag.js | 5 +- packages/bruno-lang/v1/src/script-tag.js | 6 +- packages/bruno-lang/v1/src/tests-tag.js | 6 +- packages/bruno-lang/v1/src/utils.js | 14 +- packages/bruno-lang/v1/tests/body-tag.spec.js | 1 - .../v1/tests/bru-to-env-json.spec.js | 41 ++-- .../bruno-lang/v1/tests/bru-to-json.spec.js | 106 +++++----- .../v1/tests/env-json-to-bru.spec.js | 41 ++-- .../bruno-lang/v1/tests/inline-tag.spec.js | 10 +- .../bruno-lang/v1/tests/json-to-bru.spec.js | 104 +++++----- .../bruno-lang/v1/tests/key-val-lines.spec.js | 190 ++++++++++-------- packages/bruno-lang/v1/tests/utils.spec.js | 17 +- packages/bruno-lang/v2/src/bruToJson.js | 50 ++--- packages/bruno-lang/v2/src/dotenvToJson.js | 16 +- packages/bruno-lang/v2/src/envToJson.js | 28 +-- packages/bruno-lang/v2/src/jsonToBru.js | 189 +++++++++-------- packages/bruno-lang/v2/src/jsonToEnv.js | 2 +- packages/bruno-lang/v2/tests/assert.spec.js | 18 +- packages/bruno-lang/v2/tests/defaults.spec.js | 42 ++-- .../bruno-lang/v2/tests/dictionary.spec.js | 92 +++++---- .../bruno-lang/v2/tests/dotenvToJson.spec.js | 2 +- .../bruno-lang/v2/tests/envToJson.spec.js | 109 +++++----- .../bruno-lang/v2/tests/fixtures/request.json | 34 ++-- packages/bruno-lang/v2/tests/index.spec.js | 20 +- .../bruno-lang/v2/tests/jsonToEnv.spec.js | 45 +++-- packages/bruno-lang/v2/tests/script.spec.js | 16 +- 33 files changed, 732 insertions(+), 741 deletions(-) diff --git a/packages/bruno-lang/src/index.js b/packages/bruno-lang/src/index.js index 2b51fee0d..bb7f35a80 100644 --- a/packages/bruno-lang/src/index.js +++ b/packages/bruno-lang/src/index.js @@ -1,9 +1,4 @@ -const { - bruToJson, - jsonToBru, - bruToEnvJson, - envJsonToBru -} = require('../v1/src'); +const { bruToJson, jsonToBru, bruToEnvJson, envJsonToBru } = require('../v1/src'); const bruToJsonV2 = require('../v2/src/bruToJson'); const jsonToBruV2 = require('../v2/src/jsonToBru'); @@ -20,4 +15,4 @@ module.exports = { jsonToBruV2, bruToEnvJsonV2, envJsonToBruV2 -}; \ No newline at end of file +}; diff --git a/packages/bruno-lang/v1/src/body-tag.js b/packages/bruno-lang/v1/src/body-tag.js index c51f435e2..8f89e4912 100644 --- a/packages/bruno-lang/v1/src/body-tag.js +++ b/packages/bruno-lang/v1/src/body-tag.js @@ -1,8 +1,4 @@ -const { - between, - regex, - everyCharUntil -} = require("arcsecond"); +const { between, regex, everyCharUntil } = require('arcsecond'); const keyvalLines = require('./key-val-lines'); // body(type=json) @@ -37,7 +33,7 @@ const bodyGraphqlTag = between(bodyGraphqlBegin)(bodyEnd)(everyCharUntil(bodyEnd query: bodyGraphql } } - } + }; }); const bodyGraphqlVarsTag = between(bodyGraphqlVarsBegin)(bodyEnd)(everyCharUntil(bodyEnd)).map((varsGraphql) => { @@ -47,7 +43,7 @@ const bodyGraphqlVarsTag = between(bodyGraphqlVarsBegin)(bodyEnd)(everyCharUntil variables: varsGraphql } } - } + }; }); const bodyTextTag = between(bodyTextBegin)(bodyEnd)(everyCharUntil(bodyEnd)).map((bodyText) => { @@ -55,7 +51,7 @@ const bodyTextTag = between(bodyTextBegin)(bodyEnd)(everyCharUntil(bodyEnd)).map body: { text: bodyText } - } + }; }); const bodyXmlTag = between(bodyXmlBegin)(bodyEnd)(everyCharUntil(bodyEnd)).map((bodyXml) => { @@ -63,16 +59,16 @@ const bodyXmlTag = between(bodyXmlBegin)(bodyEnd)(everyCharUntil(bodyEnd)).map(( body: { xml: bodyXml } - } + }; }); /** * We have deprecated form-url-encoded type in body tag, it was a misspelling on my part * The new type is form-urlencoded - * + * * Very few peope would have used this. I launched this to the public on 22 Jan 2023 * And I am making the change on 23 Jan 2023 - * + * * This deprecated tag can be removed on 1 April 2023 */ @@ -90,20 +86,22 @@ const bodyMultipartForm = regex(/^body\s*\(\s*type\s*=\s*multipart-form\s*\)\s*\ // todo: fix this const bodyEndRelaxed = regex(/^[\r?\n]*\/body\s*[\r?\n]*/); -const bodyFormUrlEncodedTagDeprecated = between(bodyFormUrlEncodedDeprecated)(bodyEndRelaxed)(keyvalLines).map(([result]) => { - return { - body: { - formUrlEncoded: result - } +const bodyFormUrlEncodedTagDeprecated = between(bodyFormUrlEncodedDeprecated)(bodyEndRelaxed)(keyvalLines).map( + ([result]) => { + return { + body: { + formUrlEncoded: result + } + }; } -}); +); const bodyFormUrlEncodedTag = between(bodyFormUrlEncoded)(bodyEndRelaxed)(keyvalLines).map(([result]) => { return { body: { formUrlEncoded: result } - } + }; }); const bodyMultipartFormTag = between(bodyMultipartForm)(bodyEndRelaxed)(keyvalLines).map(([result]) => { @@ -111,7 +109,7 @@ const bodyMultipartFormTag = between(bodyMultipartForm)(bodyEndRelaxed)(keyvalLi body: { multipartForm: result } - } + }; }); module.exports = { diff --git a/packages/bruno-lang/v1/src/env-vars-tag.js b/packages/bruno-lang/v1/src/env-vars-tag.js index 1ae9d9cd6..f4098906a 100644 --- a/packages/bruno-lang/v1/src/env-vars-tag.js +++ b/packages/bruno-lang/v1/src/env-vars-tag.js @@ -1,7 +1,4 @@ -const { - between, - regex, -} = require("arcsecond"); +const { between, regex } = require('arcsecond'); const { each } = require('lodash'); const keyValLines = require('./key-val-lines'); @@ -10,7 +7,7 @@ const end = regex(/^[\r?\n]*\/vars\s*[\r?\n]*/); const envVarsTag = between(begin)(end)(keyValLines).map(([variables]) => { each(variables, (variable) => { - variable.type = "text" + variable.type = 'text'; }); return { diff --git a/packages/bruno-lang/v1/src/headers-tag.js b/packages/bruno-lang/v1/src/headers-tag.js index f40bcb814..fe98c46e8 100644 --- a/packages/bruno-lang/v1/src/headers-tag.js +++ b/packages/bruno-lang/v1/src/headers-tag.js @@ -1,7 +1,4 @@ -const { - between, - regex -} = require("arcsecond"); +const { between, regex } = require('arcsecond'); const keyValLines = require('./key-val-lines'); const begin = regex(/^headers\s*\r?\n/); diff --git a/packages/bruno-lang/v1/src/index.js b/packages/bruno-lang/v1/src/index.js index ccd90a249..07de838c1 100644 --- a/packages/bruno-lang/v1/src/index.js +++ b/packages/bruno-lang/v1/src/index.js @@ -1,16 +1,9 @@ -const { - many, - choice, - anyChar -} = require("arcsecond"); +const { many, choice, anyChar } = require('arcsecond'); const _ = require('lodash'); -const { - indentString, - outdentString -} = require('./utils'); +const { indentString, outdentString } = require('./utils'); -const inlineTag = require('./inline-tag'); -const paramsTag = require('./params-tag'); +const inlineTag = require('./inline-tag'); +const paramsTag = require('./params-tag'); const headersTag = require('./headers-tag'); const { bodyJsonTag, @@ -22,31 +15,30 @@ const { bodyFormUrlEncodedTag, bodyMultipartFormTag } = require('./body-tag'); -const scriptTag = require('./script-tag'); -const testsTag = require('./tests-tag'); +const scriptTag = require('./script-tag'); +const testsTag = require('./tests-tag'); const bruToJson = (fileContents) => { - const parser = many(choice([ - inlineTag, - paramsTag, - headersTag, - bodyJsonTag, - bodyGraphqlTag, - bodyGraphqlVarsTag, - bodyTextTag, - bodyXmlTag, - bodyFormUrlEncodedTagDeprecated, - bodyFormUrlEncodedTag, - bodyMultipartFormTag, - scriptTag, - testsTag, - anyChar - ])); + const parser = many( + choice([ + inlineTag, + paramsTag, + headersTag, + bodyJsonTag, + bodyGraphqlTag, + bodyGraphqlVarsTag, + bodyTextTag, + bodyXmlTag, + bodyFormUrlEncodedTagDeprecated, + bodyFormUrlEncodedTag, + bodyMultipartFormTag, + scriptTag, + testsTag, + anyChar + ]) + ); - const parsed = parser - .run(fileContents) - .result - .reduce((acc, item) => _.merge(acc, item), {}); + const parsed = parser.run(fileContents).result.reduce((acc, item) => _.merge(acc, item), {}); const json = { type: parsed.type || '', @@ -57,7 +49,7 @@ const bruToJson = (fileContents) => { url: parsed.url || '', params: parsed.params || [], headers: parsed.headers || [], - body: parsed.body || {mode: 'none'}, + body: parsed.body || { mode: 'none' }, script: parsed.script ? outdentString(parsed.script) : '', tests: parsed.tests ? outdentString(parsed.tests) : '' } @@ -65,23 +57,23 @@ const bruToJson = (fileContents) => { const body = _.get(json, 'request.body'); - if(body && body.text) { + if (body && body.text) { body.text = outdentString(body.text); } - if(body && body.json) { + if (body && body.json) { body.json = outdentString(body.json); } - if(body && body.xml) { + if (body && body.xml) { body.xml = outdentString(body.xml); } - if(body && body.graphql && body.graphql.query) { + if (body && body.graphql && body.graphql.query) { body.graphql.query = outdentString(body.graphql.query); } - if(body && body.graphql && body.graphql.variables) { + if (body && body.graphql && body.graphql.variables) { body.graphql.variables = outdentString(body.graphql.variables); } @@ -93,15 +85,7 @@ const jsonToBru = (json) => { type, name, seq, - request: { - method, - url, - params, - headers, - body, - script, - tests - } + request: { method, url, params, headers, body, script, tests } } = json; let bru = `name ${name} @@ -112,23 +96,23 @@ body-mode ${body ? body.mode : 'none'} seq ${seq ? seq : 1} `; - if(params && params.length) { + if (params && params.length) { bru += ` params -${params.map(param => ` ${param.enabled ? 1 : 0} ${param.name} ${param.value}`).join('\n')} +${params.map((param) => ` ${param.enabled ? 1 : 0} ${param.name} ${param.value}`).join('\n')} /params `; } - if(headers && headers.length) { + if (headers && headers.length) { bru += ` headers -${headers.map(header => ` ${header.enabled ? 1 : 0} ${header.name} ${header.value}`).join('\n')} +${headers.map((header) => ` ${header.enabled ? 1 : 0} ${header.name} ${header.value}`).join('\n')} /headers `; } - if(body && body.json && body.json.length) { + if (body && body.json && body.json.length) { bru += ` body(type=json) ${indentString(body.json)} @@ -136,7 +120,7 @@ ${indentString(body.json)} `; } - if(body && body.graphql && body.graphql.query) { + if (body && body.graphql && body.graphql.query) { bru += ` body(type=graphql) ${indentString(body.graphql.query)} @@ -144,7 +128,7 @@ ${indentString(body.graphql.query)} `; } - if(body && body.graphql && body.graphql.variables) { + if (body && body.graphql && body.graphql.variables) { bru += ` body(type=graphql-vars) ${indentString(body.graphql.variables)} @@ -152,7 +136,7 @@ ${indentString(body.graphql.variables)} `; } - if(body && body.text && body.text.length) { + if (body && body.text && body.text.length) { bru += ` body(type=text) ${indentString(body.text)} @@ -160,7 +144,7 @@ ${indentString(body.text)} `; } - if(body && body.xml && body.xml.length) { + if (body && body.xml && body.xml.length) { bru += ` body(type=xml) ${indentString(body.xml)} @@ -168,23 +152,23 @@ ${indentString(body.xml)} `; } - if(body && body.formUrlEncoded && body.formUrlEncoded.length) { + if (body && body.formUrlEncoded && body.formUrlEncoded.length) { bru += ` body(type=form-urlencoded) -${body.formUrlEncoded.map(item => ` ${item.enabled ? 1 : 0} ${item.name} ${item.value}`).join('\n')} +${body.formUrlEncoded.map((item) => ` ${item.enabled ? 1 : 0} ${item.name} ${item.value}`).join('\n')} /body `; } - if(body && body.multipartForm && body.multipartForm.length) { + if (body && body.multipartForm && body.multipartForm.length) { bru += ` body(type=multipart-form) -${body.multipartForm.map(item => ` ${item.enabled ? 1 : 0} ${item.name} ${item.value}`).join('\n')} +${body.multipartForm.map((item) => ` ${item.enabled ? 1 : 0} ${item.name} ${item.value}`).join('\n')} /body `; } - if(script && script.length) { + if (script && script.length) { bru += ` script ${indentString(script)} @@ -192,7 +176,7 @@ ${indentString(script)} `; } - if(tests && tests.length) { + if (tests && tests.length) { bru += ` tests ${indentString(tests)} @@ -207,15 +191,9 @@ ${indentString(tests)} const envVarsTag = require('./env-vars-tag'); const bruToEnvJson = (fileContents) => { - const parser = many(choice([ - envVarsTag, - anyChar - ])); + const parser = many(choice([envVarsTag, anyChar])); - const parsed = parser - .run(fileContents) - .result - .reduce((acc, item) => _.merge(acc, item), {}); + const parsed = parser.run(fileContents).result.reduce((acc, item) => _.merge(acc, item), {}); const json = { variables: parsed.variables || [] @@ -225,15 +203,13 @@ const bruToEnvJson = (fileContents) => { }; const envJsonToBru = (json) => { - const { - variables - } = json; + const { variables } = json; let bru = ''; - if(variables && variables.length) { + if (variables && variables.length) { bru += `vars -${variables.map(item => ` ${item.enabled ? 1 : 0} ${item.name} ${item.value}`).join('\n')} +${variables.map((item) => ` ${item.enabled ? 1 : 0} ${item.name} ${item.value}`).join('\n')} /vars `; } @@ -246,4 +222,4 @@ module.exports = { jsonToBru, bruToEnvJson, envJsonToBru -}; \ No newline at end of file +}; diff --git a/packages/bruno-lang/v1/src/inline-tag.js b/packages/bruno-lang/v1/src/inline-tag.js index bb738708f..4790998fb 100644 --- a/packages/bruno-lang/v1/src/inline-tag.js +++ b/packages/bruno-lang/v1/src/inline-tag.js @@ -1,36 +1,19 @@ -const { - sequenceOf, - str, - regex, - choice, - endOfInput, - everyCharUntil -} = require("arcsecond"); +const { sequenceOf, str, regex, choice, endOfInput, everyCharUntil } = require('arcsecond'); -const whitespace = regex(/^[ \t]*/) +const whitespace = regex(/^[ \t]*/); const newline = regex(/^\r?\n/); const newLineOrEndOfInput = choice([endOfInput, newline]); const inlineTag = sequenceOf([ - choice([ - str('type'), - str('name'), - str('method'), - str('url'), - str('seq'), - str('body-mode') - ]), + choice([str('type'), str('name'), str('method'), str('url'), str('seq'), str('body-mode')]), whitespace, - choice([ - newline, - everyCharUntil(newLineOrEndOfInput) - ]) + choice([newline, everyCharUntil(newLineOrEndOfInput)]) ]).map(([key, _, val]) => { - if(val === '\n' || val === '\r\n') { + if (val === '\n' || val === '\r\n') { val = ''; } - if(key === 'body-mode') { + if (key === 'body-mode') { return { body: { mode: val diff --git a/packages/bruno-lang/v1/src/key-val-lines.js b/packages/bruno-lang/v1/src/key-val-lines.js index b6ecf9668..0d3153eef 100644 --- a/packages/bruno-lang/v1/src/key-val-lines.js +++ b/packages/bruno-lang/v1/src/key-val-lines.js @@ -1,13 +1,4 @@ -const { - sequenceOf, - whitespace, - optionalWhitespace, - choice, - digit, - many, - regex, - sepBy, -} = require("arcsecond"); +const { sequenceOf, whitespace, optionalWhitespace, choice, digit, many, regex, sepBy } = require('arcsecond'); const newline = regex(/^\r?\n/); const wordWithoutWhitespace = regex(/^[^\s\r?\t\n]+/g); @@ -23,37 +14,29 @@ const line = sequenceOf([ wordWithWhitespace ]).map(([_, enabled, __, key, ___, value]) => { return { - "enabled": Number(enabled) ? true : false, - "name": key ? key.trim() : "", - "value": value ? value.trim() : "" + enabled: Number(enabled) ? true : false, + name: key ? key.trim() : '', + value: value ? value.trim() : '' }; }); // matching lines like: 1 key follows by [whitespaces] and a newline -const line2 = sequenceOf([ - optionalWhitespace, - digit, - whitespace, - wordWithoutWhitespace, - regex(/^\s*\r?\n/) -]).map(([_, enabled, __, key]) => { - return { - "enabled": Number(enabled) ? true : false, - "name": key, - "value": "" - }; -}); +const line2 = sequenceOf([optionalWhitespace, digit, whitespace, wordWithoutWhitespace, regex(/^\s*\r?\n/)]).map( + ([_, enabled, __, key]) => { + return { + enabled: Number(enabled) ? true : false, + name: key, + value: '' + }; + } +); // matching lines like: 1 followed by [whitespaces] and a newline -const line3 = sequenceOf([ - optionalWhitespace, - digit, - regex(/^\s*\r?\n/) -]).map(([_, enabled]) => { +const line3 = sequenceOf([optionalWhitespace, digit, regex(/^\s*\r?\n/)]).map(([_, enabled]) => { return { - "enabled": Number(enabled) ? true : false, - "name": "", - "value": "" + enabled: Number(enabled) ? true : false, + name: '', + value: '' }; }); @@ -61,4 +44,4 @@ const lines = many(choice([line3, line2, line])); const keyValLines = sepBy(newline)(lines); -module.exports = keyValLines; \ No newline at end of file +module.exports = keyValLines; diff --git a/packages/bruno-lang/v1/src/params-tag.js b/packages/bruno-lang/v1/src/params-tag.js index 39867e5f1..490566d95 100644 --- a/packages/bruno-lang/v1/src/params-tag.js +++ b/packages/bruno-lang/v1/src/params-tag.js @@ -1,7 +1,4 @@ -const { - between, - regex -} = require("arcsecond"); +const { between, regex } = require('arcsecond'); const keyValLines = require('./key-val-lines'); const begin = regex(/^params\s*\r?\n/); diff --git a/packages/bruno-lang/v1/src/script-tag.js b/packages/bruno-lang/v1/src/script-tag.js index 8bc7e6de9..f38b09161 100644 --- a/packages/bruno-lang/v1/src/script-tag.js +++ b/packages/bruno-lang/v1/src/script-tag.js @@ -1,8 +1,4 @@ -const { - between, - regex, - everyCharUntil -} = require("arcsecond"); +const { between, regex, everyCharUntil } = require('arcsecond'); const scriptBegin = regex(/^script\s*\r?\n/); const scriptEnd = regex(/^[\r?\n]+\/script[\s\r?\n]*/); diff --git a/packages/bruno-lang/v1/src/tests-tag.js b/packages/bruno-lang/v1/src/tests-tag.js index a2c0d573f..ec808de77 100644 --- a/packages/bruno-lang/v1/src/tests-tag.js +++ b/packages/bruno-lang/v1/src/tests-tag.js @@ -1,8 +1,4 @@ -const { - between, - regex, - everyCharUntil -} = require("arcsecond"); +const { between, regex, everyCharUntil } = require('arcsecond'); const testsBegin = regex(/^tests\s*\r?\n/); const testsEnd = regex(/^[\r?\n]+\/tests[\s\r?\n]*/); diff --git a/packages/bruno-lang/v1/src/utils.js b/packages/bruno-lang/v1/src/utils.js index 7a0ebb551..ef9307c8b 100644 --- a/packages/bruno-lang/v1/src/utils.js +++ b/packages/bruno-lang/v1/src/utils.js @@ -8,19 +8,25 @@ const safeParseJson = (json) => { }; const indentString = (str) => { - if(!str || !str.length) { + if (!str || !str.length) { return str; } - return str.split("\n").map(line => " " + line).join("\n"); + return str + .split('\n') + .map((line) => ' ' + line) + .join('\n'); }; const outdentString = (str) => { - if(!str || !str.length) { + if (!str || !str.length) { return str; } - return str.split("\n").map(line => line.replace(/^ /, '')).join("\n"); + return str + .split('\n') + .map((line) => line.replace(/^ /, '')) + .join('\n'); }; module.exports = { diff --git a/packages/bruno-lang/v1/tests/body-tag.spec.js b/packages/bruno-lang/v1/tests/body-tag.spec.js index 10c161a96..9e0fa0f8b 100644 --- a/packages/bruno-lang/v1/tests/body-tag.spec.js +++ b/packages/bruno-lang/v1/tests/body-tag.spec.js @@ -1,6 +1,5 @@ const { bodyJsonTag } = require('../src/body-tag'); - describe('bodyJsonTag', () => { const testbodyJson = (input, expected) => { const result = bodyJsonTag.run(input); diff --git a/packages/bruno-lang/v1/tests/bru-to-env-json.spec.js b/packages/bruno-lang/v1/tests/bru-to-env-json.spec.js index 67d633b59..ea5b47c67 100644 --- a/packages/bruno-lang/v1/tests/bru-to-env-json.spec.js +++ b/packages/bruno-lang/v1/tests/bru-to-env-json.spec.js @@ -1,9 +1,7 @@ const fs = require('fs'); const path = require('path'); -const { - bruToEnvJson -} = require('../src'); +const { bruToEnvJson } = require('../src'); describe('bruToEnvJson', () => { it('should parse .bru file contents', () => { @@ -11,23 +9,26 @@ describe('bruToEnvJson', () => { const result = bruToEnvJson(requestFile); expect(result).toEqual({ - "variables": [{ - "enabled": true, - "name": "host", - "value": "https://www.google.com", - "type": "text" - }, { - "enabled": true, - "name": "jwt", - "value": "secret", - "type": "text" - }, { - "enabled": false, - "name": "Content-type", - "value": "application/json", - "type": "text" - }] + variables: [ + { + enabled: true, + name: 'host', + value: 'https://www.google.com', + type: 'text' + }, + { + enabled: true, + name: 'jwt', + value: 'secret', + type: 'text' + }, + { + enabled: false, + name: 'Content-type', + value: 'application/json', + type: 'text' + } + ] }); }); }); - diff --git a/packages/bruno-lang/v1/tests/bru-to-json.spec.js b/packages/bruno-lang/v1/tests/bru-to-json.spec.js index 3fb2e685d..b2d48d21a 100644 --- a/packages/bruno-lang/v1/tests/bru-to-json.spec.js +++ b/packages/bruno-lang/v1/tests/bru-to-json.spec.js @@ -1,9 +1,7 @@ const fs = require('fs'); const path = require('path'); -const { - bruToJson -} = require('../src'); +const { bruToJson } = require('../src'); describe('bruToJson', () => { it('should parse .bru file contents', () => { @@ -11,81 +9,81 @@ describe('bruToJson', () => { const result = bruToJson(requestFile); expect(result).toEqual({ - "type": "http-request", - "name": "Send Bulk SMS", - "seq": 1, - "request": { - "method": "GET", - "url": "https://api.textlocal.in/bulk_json?apiKey=secret=&numbers=919988776655&message=hello&sender=600010", - "params": [ + type: 'http-request', + name: 'Send Bulk SMS', + seq: 1, + request: { + method: 'GET', + url: 'https://api.textlocal.in/bulk_json?apiKey=secret=&numbers=919988776655&message=hello&sender=600010', + params: [ { - "enabled": true, - "name": "apiKey", - "value": "secret" + enabled: true, + name: 'apiKey', + value: 'secret' }, { - "enabled": true, - "name": "numbers", - "value": "998877665" + enabled: true, + name: 'numbers', + value: '998877665' }, { - "enabled": true, - "name": "message", - "value": "hello" + enabled: true, + name: 'message', + value: 'hello' } ], - "headers": [ + headers: [ { - "enabled": true, - "name": "content-type", - "value": "application/json" + enabled: true, + name: 'content-type', + value: 'application/json' }, { - "enabled": true, - "name": "accept-language", - "value": "en-US,en;q=0.9,hi;q=0.8" + enabled: true, + name: 'accept-language', + value: 'en-US,en;q=0.9,hi;q=0.8' }, { - "enabled": false, - "name": "transaction-id", - "value": "{{transactionId}}" + enabled: false, + name: 'transaction-id', + value: '{{transactionId}}' } ], - "body": { - "mode": "json", - "json": '{\n "apikey": "secret",\n "numbers": "+91998877665"\n}', - "graphql": { - "query": "{\n launchesPast {\n launch_success\n }\n}" + body: { + mode: 'json', + json: '{\n "apikey": "secret",\n "numbers": "+91998877665"\n}', + graphql: { + query: '{\n launchesPast {\n launch_success\n }\n}' }, - "text": "Hello, there. You must be from the past", - "xml": "back to the ice age", - "formUrlEncoded": [ + text: 'Hello, there. You must be from the past', + xml: 'back to the ice age', + formUrlEncoded: [ { - "enabled": true, - "name": "username", - "value": "john" + enabled: true, + name: 'username', + value: 'john' }, { - "enabled": false, - "name": "password", - "value": "{{password}}" + enabled: false, + name: 'password', + value: '{{password}}' } ], - "multipartForm": [ + multipartForm: [ { - "enabled": true, - "name": "username", - "value": "nash" + enabled: true, + name: 'username', + value: 'nash' }, { - "enabled": false, - "name": "password", - "value": "governingdynamics" + enabled: false, + name: 'password', + value: 'governingdynamics' } ] }, - "script": "const foo='bar';", - "tests": "bruno.test('200 ok', () => {});" + script: "const foo='bar';", + tests: "bruno.test('200 ok', () => {});" } }); }); @@ -113,8 +111,8 @@ seq 1 params: [], headers: [], body: { mode: 'none' }, - script: "", - tests: "" + script: '', + tests: '' } }); }); diff --git a/packages/bruno-lang/v1/tests/env-json-to-bru.spec.js b/packages/bruno-lang/v1/tests/env-json-to-bru.spec.js index ea96beb2a..80ac1be33 100644 --- a/packages/bruno-lang/v1/tests/env-json-to-bru.spec.js +++ b/packages/bruno-lang/v1/tests/env-json-to-bru.spec.js @@ -1,29 +1,31 @@ const fs = require('fs'); const path = require('path'); -const { - envJsonToBru -} = require('../src'); +const { envJsonToBru } = require('../src'); describe('envJsonToBru', () => { it('should convert json file into .bru file', () => { const env = { - "variables": [{ - "enabled": true, - "name": "host", - "value": "https://www.google.com", - "type": "text" - }, { - "enabled": true, - "name": "jwt", - "value": "secret", - "type": "text" - }, { - "enabled": false, - "name": "Content-type", - "value": "application/json", - "type": "text" - }] + variables: [ + { + enabled: true, + name: 'host', + value: 'https://www.google.com', + type: 'text' + }, + { + enabled: true, + name: 'jwt', + value: 'secret', + type: 'text' + }, + { + enabled: false, + name: 'Content-type', + value: 'application/json', + type: 'text' + } + ] }; const expectedBruFile = fs.readFileSync(path.join(__dirname, 'fixtures', 'env.bru'), 'utf8'); @@ -32,4 +34,3 @@ describe('envJsonToBru', () => { expect(expectedBruFile).toEqual(actualBruFile); }); }); - diff --git a/packages/bruno-lang/v1/tests/inline-tag.spec.js b/packages/bruno-lang/v1/tests/inline-tag.spec.js index bf98a7db3..9d53ff850 100644 --- a/packages/bruno-lang/v1/tests/inline-tag.spec.js +++ b/packages/bruno-lang/v1/tests/inline-tag.spec.js @@ -1,9 +1,5 @@ const inlineTag = require('../src/inline-tag'); -const { - sepBy, - char, - many -} = require('arcsecond'); +const { sepBy, char, many } = require('arcsecond'); describe('type', () => { it('should parse the type', () => { @@ -54,5 +50,5 @@ body-mode json [{ body: { mode: 'json' } }], [] ]); - }) -}); \ No newline at end of file + }); +}); diff --git a/packages/bruno-lang/v1/tests/json-to-bru.spec.js b/packages/bruno-lang/v1/tests/json-to-bru.spec.js index 2f48ce8cb..9b2b71356 100644 --- a/packages/bruno-lang/v1/tests/json-to-bru.spec.js +++ b/packages/bruno-lang/v1/tests/json-to-bru.spec.js @@ -1,88 +1,86 @@ const fs = require('fs'); const path = require('path'); -const { - jsonToBru -} = require('../src'); +const { jsonToBru } = require('../src'); describe('bruToJson', () => { it('should convert json file into .bru file', () => { const request = { - "type": "http-request", - "name": "Send Bulk SMS", - "seq": 1, - "request": { - "method": "GET", - "url": "https://api.textlocal.in/bulk_json?apiKey=secret=&numbers=919988776655&message=hello&sender=600010", - "params": [ + type: 'http-request', + name: 'Send Bulk SMS', + seq: 1, + request: { + method: 'GET', + url: 'https://api.textlocal.in/bulk_json?apiKey=secret=&numbers=919988776655&message=hello&sender=600010', + params: [ { - "enabled": true, - "name": "apiKey", - "value": "secret" + enabled: true, + name: 'apiKey', + value: 'secret' }, { - "enabled": true, - "name": "numbers", - "value": "998877665" + enabled: true, + name: 'numbers', + value: '998877665' }, { - "enabled": true, - "name": "message", - "value": "hello" + enabled: true, + name: 'message', + value: 'hello' } ], - "headers": [ + headers: [ { - "enabled": true, - "name": "content-type", - "value": "application/json" + enabled: true, + name: 'content-type', + value: 'application/json' }, { - "enabled": true, - "name": "accept-language", - "value": "en-US,en;q=0.9,hi;q=0.8" + enabled: true, + name: 'accept-language', + value: 'en-US,en;q=0.9,hi;q=0.8' }, { - "enabled": false, - "name": "transaction-id", - "value": "{{transactionId}}" + enabled: false, + name: 'transaction-id', + value: '{{transactionId}}' } ], - "body": { - "mode": "json", - "json": '{\n "apikey": "secret",\n "numbers": "+91998877665"\n}', - "graphql": { - "query": "{\n launchesPast {\n launch_success\n }\n}" + body: { + mode: 'json', + json: '{\n "apikey": "secret",\n "numbers": "+91998877665"\n}', + graphql: { + query: '{\n launchesPast {\n launch_success\n }\n}' }, - "text": "Hello, there. You must be from the past", - "xml": "back to the ice age", - "formUrlEncoded": [ + text: 'Hello, there. You must be from the past', + xml: 'back to the ice age', + formUrlEncoded: [ { - "enabled": true, - "name": "username", - "value": "john" + enabled: true, + name: 'username', + value: 'john' }, { - "enabled": false, - "name": "password", - "value": "{{password}}" + enabled: false, + name: 'password', + value: '{{password}}' } ], - "multipartForm": [ + multipartForm: [ { - "enabled": true, - "name": "username", - "value": "nash" + enabled: true, + name: 'username', + value: 'nash' }, { - "enabled": false, - "name": "password", - "value": "governingdynamics" + enabled: false, + name: 'password', + value: 'governingdynamics' } ] }, - "script": "const foo='bar';", - "tests": "bruno.test('200 ok', () => {});" + script: "const foo='bar';", + tests: "bruno.test('200 ok', () => {});" } }; @@ -92,5 +90,3 @@ describe('bruToJson', () => { expect(expectedBruFile).toEqual(actualBruFile); }); }); - - diff --git a/packages/bruno-lang/v1/tests/key-val-lines.spec.js b/packages/bruno-lang/v1/tests/key-val-lines.spec.js index 88a2d6ad8..0ff2ddfe8 100644 --- a/packages/bruno-lang/v1/tests/key-val-lines.spec.js +++ b/packages/bruno-lang/v1/tests/key-val-lines.spec.js @@ -1,10 +1,4 @@ -const { - between, - regex, - anyChar, - many, - choice -} = require("arcsecond"); +const { between, regex, anyChar, many, choice } = require('arcsecond'); const _ = require('lodash'); const keyValLines = require('../src/key-val-lines'); @@ -19,15 +13,9 @@ const varsTag = between(begin)(end)(keyValLines).map(([variables]) => { }); const toJson = (fileContents) => { - const parser = many(choice([ - varsTag, - anyChar - ])); + const parser = many(choice([varsTag, anyChar])); - const parsed = parser - .run(fileContents) - .result - .reduce((acc, item) => _.merge(acc, item), {}); + const parsed = parser.run(fileContents).result.reduce((acc, item) => _.merge(acc, item), {}); const json = { variables: parsed.variables || [] @@ -46,11 +34,13 @@ vars const result = toJson(file); expect(result).toEqual({ - variables: [{ - enabled: true, - name: 'host', - value: 'https://www.google.com' - }] + variables: [ + { + enabled: true, + name: 'host', + value: 'https://www.google.com' + } + ] }); }); @@ -64,15 +54,18 @@ vars const result = toJson(file); expect(result).toEqual({ - variables: [{ - enabled: true, - name: 'host', - value: 'https://www.google.com' - }, { - enabled: true, - name: 'auth', - value: 'jwt secret' - }] + variables: [ + { + enabled: true, + name: 'host', + value: 'https://www.google.com' + }, + { + enabled: true, + name: 'auth', + value: 'jwt secret' + } + ] }); }); @@ -87,11 +80,13 @@ vars `; const result = toJson(file); expect(result).toEqual({ - variables: [{ - enabled: true, - name: '', - value: '' - }] + variables: [ + { + enabled: true, + name: '', + value: '' + } + ] }); }); @@ -104,11 +99,13 @@ vars `; const result = toJson(file); expect(result).toEqual({ - variables: [{ - enabled: true, - name: '', - value: '' - }] + variables: [ + { + enabled: true, + name: '', + value: '' + } + ] }); }); @@ -121,11 +118,13 @@ vars `; const result = toJson(file); expect(result).toEqual({ - variables: [{ - enabled: true, - name: 'host', - value: '' - }] + variables: [ + { + enabled: true, + name: 'host', + value: '' + } + ] }); }); @@ -138,11 +137,13 @@ vars `; const result = toJson(file); expect(result).toEqual({ - variables: [{ - enabled: true, - name: 'host', - value: '' - }] + variables: [ + { + enabled: true, + name: 'host', + value: '' + } + ] }); }); @@ -157,19 +158,23 @@ vars `; const result = toJson(file); expect(result).toEqual({ - variables: [{ - enabled: true, - name: 'host', - value: 'https://www.google.com' - }, { - enabled: true, - name: '', - value: '' - }, { - enabled: false, - name: 'Content-type', - value: 'application/json' - }] + variables: [ + { + enabled: true, + name: 'host', + value: 'https://www.google.com' + }, + { + enabled: true, + name: '', + value: '' + }, + { + enabled: false, + name: 'Content-type', + value: 'application/json' + } + ] }); }); @@ -184,19 +189,23 @@ vars `; const result = toJson(file); expect(result).toEqual({ - variables: [{ - enabled: true, - name: 'host', - value: 'https://www.google.com' - }, { - enabled: true, - name: '', - value: '' - }, { - enabled: false, - name: 'Content-type', - value: 'application/json' - }] + variables: [ + { + enabled: true, + name: 'host', + value: 'https://www.google.com' + }, + { + enabled: true, + name: '', + value: '' + }, + { + enabled: false, + name: 'Content-type', + value: 'application/json' + } + ] }); }); @@ -211,20 +220,23 @@ vars `; const result = toJson(file); expect(result).toEqual({ - variables: [{ - enabled: true, - name: 'host', - value: 'https://www.google.com' - }, { - enabled: true, - name: 'auth', - value: '' - }, { - enabled: false, - name: 'Content-type', - value: 'application/json' - }] + variables: [ + { + enabled: true, + name: 'host', + value: 'https://www.google.com' + }, + { + enabled: true, + name: 'auth', + value: '' + }, + { + enabled: false, + name: 'Content-type', + value: 'application/json' + } + ] }); }); }); - diff --git a/packages/bruno-lang/v1/tests/utils.spec.js b/packages/bruno-lang/v1/tests/utils.spec.js index d8103648b..4595f6a0f 100644 --- a/packages/bruno-lang/v1/tests/utils.spec.js +++ b/packages/bruno-lang/v1/tests/utils.spec.js @@ -1,9 +1,4 @@ -const { - safeParseJson, - indentString, - outdentString, - get -} = require('../src/utils'); +const { safeParseJson, indentString, outdentString, get } = require('../src/utils'); describe('utils', () => { describe('safeParseJson', () => { @@ -22,17 +17,17 @@ describe('utils', () => { describe('indentString', () => { it('correctly indents a multiline string', () => { - const input = "line1\nline2\nline3"; - const expectedOutput = " line1\n line2\n line3"; + const input = 'line1\nline2\nline3'; + const expectedOutput = ' line1\n line2\n line3'; expect(indentString(input)).toBe(expectedOutput); }); }); describe('outdentString', () => { it('correctly outdents a multiline string', () => { - const input = " line1\n line2\n line3"; - const expectedOutput = "line1\nline2\nline3"; + const input = ' line1\n line2\n line3'; + const expectedOutput = 'line1\nline2\nline3'; expect(outdentString(input)).toBe(expectedOutput); }); }); -}); \ No newline at end of file +}); diff --git a/packages/bruno-lang/v2/src/bruToJson.js b/packages/bruno-lang/v2/src/bruToJson.js index afbbbfb79..2241ca554 100644 --- a/packages/bruno-lang/v2/src/bruToJson.js +++ b/packages/bruno-lang/v2/src/bruToJson.js @@ -1,8 +1,6 @@ -const ohm = require("ohm-js"); +const ohm = require('ohm-js'); const _ = require('lodash'); -const { - outdentString -} = require('../../v1/src/utils'); +const { outdentString } = require('../../v1/src/utils'); /** * A Bru file is made up of blocks. @@ -13,7 +11,7 @@ const { * headers { * content-type: application/json * } - * + * * 2. Text Blocks - These are blocks that have text * ex: * body:json { @@ -21,7 +19,7 @@ const { * "username": "John Nash", * "password": "governingdynamics * } - * + * */ const grammar = ohm.grammar(`Bru { BruFile = (meta | http | query | headers | bodies | varsandassert | script | tests | docs)* @@ -95,14 +93,14 @@ const grammar = ohm.grammar(`Bru { }`); const mapPairListToKeyValPairs = (pairList = []) => { - if(!pairList.length) { + if (!pairList.length) { return []; } - return _.map(pairList[0], pair => { + return _.map(pairList[0], (pair) => { let name = _.keys(pair)[0]; let value = pair[name]; let enabled = true; - if (name && name.length && name.charAt(0) === "~") { + if (name && name.length && name.charAt(0) === '~') { name = name.slice(1); enabled = false; } @@ -122,22 +120,26 @@ const concatArrays = (objValue, srcValue) => { }; const mapPairListToKeyValPair = (pairList = []) => { - if(!pairList || !pairList.length) { + if (!pairList || !pairList.length) { return {}; } return _.merge({}, ...pairList[0]); -} +}; const sem = grammar.createSemantics().addAttribute('ast', { BruFile(tags) { - if(!tags || !tags.ast || !tags.ast.length) { + if (!tags || !tags.ast || !tags.ast.length) { return {}; } - return _.reduce(tags.ast, (result, item) => { - return _.mergeWith(result, item, concatArrays); - }, {}); + return _.reduce( + tags.ast, + (result, item) => { + return _.mergeWith(result, item, concatArrays); + }, + {} + ); }, dictionary(_1, _2, pairlist, _3) { return pairlist.ast; @@ -185,20 +187,20 @@ const sem = grammar.createSemantics().addAttribute('ast', { st(_) { return ''; }, - tagend(_1 ,_2) { + tagend(_1, _2) { return ''; }, _iter(...elements) { - return elements.map(e => e.ast); + return elements.map((e) => e.ast); }, meta(_1, dictionary) { let meta = mapPairListToKeyValPair(dictionary.ast); - if(!meta.seq) { + if (!meta.seq) { meta.seq = 1; } - if(!meta.type) { + if (!meta.type) { meta.type = 'http'; } @@ -347,7 +349,7 @@ const sem = grammar.createSemantics().addAttribute('ast', { const vars = mapPairListToKeyValPairs(dictionary.ast); _.each(vars, (v) => { let name = v.name; - if (name && name.length && name.charAt(0) === "@") { + if (name && name.length && name.charAt(0) === '@') { v.name = name.slice(1); v.local = true; } else { @@ -365,7 +367,7 @@ const sem = grammar.createSemantics().addAttribute('ast', { const vars = mapPairListToKeyValPairs(dictionary.ast); _.each(vars, (v) => { let name = v.name; - if (name && name.length && name.charAt(0) === "@") { + if (name && name.length && name.charAt(0) === '@') { v.name = name.slice(1); v.local = true; } else { @@ -401,7 +403,7 @@ const sem = grammar.createSemantics().addAttribute('ast', { tests(_1, _2, _3, _4, textblock, _5) { return { tests: outdentString(textblock.sourceString) - };; + }; }, docs(_1, _2, _3, _4, textblock, _5) { return { @@ -413,11 +415,11 @@ const sem = grammar.createSemantics().addAttribute('ast', { const parser = (input) => { const match = grammar.match(input); - if(match.succeeded()) { + if (match.succeeded()) { return sem(match).ast; } else { throw new Error(match.message); } -} +}; module.exports = parser; diff --git a/packages/bruno-lang/v2/src/dotenvToJson.js b/packages/bruno-lang/v2/src/dotenvToJson.js index 403230326..e83911a3d 100644 --- a/packages/bruno-lang/v2/src/dotenvToJson.js +++ b/packages/bruno-lang/v2/src/dotenvToJson.js @@ -1,4 +1,4 @@ -const ohm = require("ohm-js"); +const ohm = require('ohm-js'); const _ = require('lodash'); const grammar = ohm.grammar(`Env { @@ -20,9 +20,13 @@ const concatArrays = (objValue, srcValue) => { const sem = grammar.createSemantics().addAttribute('ast', { EnvFile(entries) { - return _.reduce(entries.ast, (result, item) => { - return _.mergeWith(result, item, concatArrays); - }, {}); + return _.reduce( + entries.ast, + (result, item) => { + return _.mergeWith(result, item, concatArrays); + }, + {} + ); }, entry(_1, key, _2, _3, _4, value, _5, _6) { return { [key.ast.trim()]: value.ast.trim() }; @@ -40,7 +44,7 @@ const sem = grammar.createSemantics().addAttribute('ast', { return ''; }, _iter(...elements) { - return elements.map(e => e.ast); + return elements.map((e) => e.ast); } }); @@ -53,7 +57,7 @@ const parser = (input) => { } else { throw new Error(match.message); } -} +}; function postProcessEntries(ast) { const processed = {}; diff --git a/packages/bruno-lang/v2/src/envToJson.js b/packages/bruno-lang/v2/src/envToJson.js index c040ea9a3..63bd7f2bf 100644 --- a/packages/bruno-lang/v2/src/envToJson.js +++ b/packages/bruno-lang/v2/src/envToJson.js @@ -1,4 +1,4 @@ -const ohm = require("ohm-js"); +const ohm = require('ohm-js'); const _ = require('lodash'); const grammar = ohm.grammar(`Bru { @@ -23,15 +23,15 @@ const grammar = ohm.grammar(`Bru { }`); const mapPairListToKeyValPairs = (pairList = []) => { - if(!pairList.length) { + if (!pairList.length) { return []; } - return _.map(pairList[0], pair => { + return _.map(pairList[0], (pair) => { let name = _.keys(pair)[0]; let value = pair[name]; let enabled = true; - if (name && name.length && name.charAt(0) === "~") { + if (name && name.length && name.charAt(0) === '~') { name = name.slice(1); enabled = false; } @@ -52,15 +52,19 @@ const concatArrays = (objValue, srcValue) => { const sem = grammar.createSemantics().addAttribute('ast', { BruEnvFile(tags) { - if(!tags || !tags.ast || !tags.ast.length) { + if (!tags || !tags.ast || !tags.ast.length) { return { variables: [] }; } - return _.reduce(tags.ast, (result, item) => { - return _.mergeWith(result, item, concatArrays); - }, {}); + return _.reduce( + tags.ast, + (result, item) => { + return _.mergeWith(result, item, concatArrays); + }, + {} + ); }, dictionary(_1, _2, pairlist, _3) { return pairlist.ast; @@ -85,11 +89,11 @@ const sem = grammar.createSemantics().addAttribute('ast', { st(_) { return ''; }, - tagend(_1 ,_2) { + tagend(_1, _2) { return ''; }, _iter(...elements) { - return elements.map(e => e.ast); + return elements.map((e) => e.ast); }, vars(_1, dictionary) { const vars = mapPairListToKeyValPairs(dictionary.ast); @@ -102,11 +106,11 @@ const sem = grammar.createSemantics().addAttribute('ast', { const parser = (input) => { const match = grammar.match(input); - if(match.succeeded()) { + if (match.succeeded()) { return sem(match).ast; } else { throw new Error(match.message); } -} +}; module.exports = parser; diff --git a/packages/bruno-lang/v2/src/jsonToBru.js b/packages/bruno-lang/v2/src/jsonToBru.js index d42961570..818d7c9cb 100644 --- a/packages/bruno-lang/v2/src/jsonToBru.js +++ b/packages/bruno-lang/v2/src/jsonToBru.js @@ -1,36 +1,23 @@ const _ = require('lodash'); -const { - indentString, -} = require('../../v1/src/utils'); +const { indentString } = require('../../v1/src/utils'); -const enabled = (items = []) => items.filter(item => item.enabled); -const disabled = (items = []) => items.filter(item => !item.enabled); +const enabled = (items = []) => items.filter((item) => item.enabled); +const disabled = (items = []) => items.filter((item) => !item.enabled); // remove the last line if two new lines are found const stripLastLine = (text) => { - if(!text || !text.length) return text; + if (!text || !text.length) return text; return text.replace(/(\r?\n)$/, ''); }; const jsonToBru = (json) => { - const { - meta, - http, - query, - headers, - body, - script, - tests, - vars, - assertions, - docs - } = json; + const { meta, http, query, headers, body, script, tests, vars, assertions, docs } = json; let bru = ''; - if(meta) { + if (meta) { bru += 'meta {\n'; for (const key in meta) { bru += ` ${key}: ${meta[key]}\n`; @@ -38,11 +25,11 @@ const jsonToBru = (json) => { bru += '}\n\n'; } - if(http && http.method) { + if (http && http.method) { bru += `${http.method} { url: ${http.url}`; - if(http.body && http.body.length) { + if (http.body && http.body.length) { bru += ` body: ${http.body}`; } @@ -53,97 +40,129 @@ const jsonToBru = (json) => { `; } - if(query && query.length) { + if (query && query.length) { bru += 'query {'; - if(enabled(query).length) { - bru += `\n${indentString(enabled(query).map(item => `${item.name}: ${item.value}`).join('\n'))}`; + if (enabled(query).length) { + bru += `\n${indentString( + enabled(query) + .map((item) => `${item.name}: ${item.value}`) + .join('\n') + )}`; } - if(disabled(query).length) { - bru += `\n${indentString(disabled(query).map(item => `~${item.name}: ${item.value}`).join('\n'))}`; + if (disabled(query).length) { + bru += `\n${indentString( + disabled(query) + .map((item) => `~${item.name}: ${item.value}`) + .join('\n') + )}`; } bru += '\n}\n\n'; } - if(headers && headers.length) { + if (headers && headers.length) { bru += 'headers {'; - if(enabled(headers).length) { - bru += `\n${indentString(enabled(headers).map(item => `${item.name}: ${item.value}`).join('\n'))}`; + if (enabled(headers).length) { + bru += `\n${indentString( + enabled(headers) + .map((item) => `${item.name}: ${item.value}`) + .join('\n') + )}`; } - if(disabled(headers).length) { - bru += `\n${indentString(disabled(headers).map(item => `~${item.name}: ${item.value}`).join('\n'))}`; + if (disabled(headers).length) { + bru += `\n${indentString( + disabled(headers) + .map((item) => `~${item.name}: ${item.value}`) + .join('\n') + )}`; } bru += '\n}\n\n'; } - if(body && body.json && body.json.length) { - bru += `body:json { + if (body && body.json && body.json.length) { + bru += `body:json { ${indentString(body.json)} } `; } - if(body && body.text && body.text.length) { - bru += `body:text { + if (body && body.text && body.text.length) { + bru += `body:text { ${indentString(body.text)} } `; } - if(body && body.xml && body.xml.length) { - bru += `body:xml { + if (body && body.xml && body.xml.length) { + bru += `body:xml { ${indentString(body.xml)} } `; } - if(body && body.formUrlEncoded && body.formUrlEncoded.length) { + if (body && body.formUrlEncoded && body.formUrlEncoded.length) { bru += `body:form-urlencoded {`; - if(enabled(body.formUrlEncoded).length) { - bru += `\n${indentString(enabled(body.formUrlEncoded).map(item => `${item.name}: ${item.value}`).join('\n'))}`; + if (enabled(body.formUrlEncoded).length) { + bru += `\n${indentString( + enabled(body.formUrlEncoded) + .map((item) => `${item.name}: ${item.value}`) + .join('\n') + )}`; } - if(disabled(body.formUrlEncoded).length) { - bru += `\n${indentString(disabled(body.formUrlEncoded).map(item => `~${item.name}: ${item.value}`).join('\n'))}`; + if (disabled(body.formUrlEncoded).length) { + bru += `\n${indentString( + disabled(body.formUrlEncoded) + .map((item) => `~${item.name}: ${item.value}`) + .join('\n') + )}`; } bru += '\n}\n\n'; } - if(body && body.multipartForm && body.multipartForm.length) { + if (body && body.multipartForm && body.multipartForm.length) { bru += `body:multipart-form {`; - if(enabled(body.multipartForm).length) { - bru += `\n${indentString(enabled(body.multipartForm).map(item => `${item.name}: ${item.value}`).join('\n'))}`; + if (enabled(body.multipartForm).length) { + bru += `\n${indentString( + enabled(body.multipartForm) + .map((item) => `${item.name}: ${item.value}`) + .join('\n') + )}`; } - if(disabled(body.multipartForm).length) { - bru += `\n${indentString(disabled(body.multipartForm).map(item => `~${item.name}: ${item.value}`).join('\n'))}`; + if (disabled(body.multipartForm).length) { + bru += `\n${indentString( + disabled(body.multipartForm) + .map((item) => `~${item.name}: ${item.value}`) + .join('\n') + )}`; } bru += '\n}\n\n'; } - if(body && body.graphql && body.graphql.query) { + if (body && body.graphql && body.graphql.query) { bru += `body:graphql {\n`; bru += `${indentString(body.graphql.query)}`; bru += '\n}\n\n'; } - if(body && body.graphql && body.graphql.variables) { + if (body && body.graphql && body.graphql.variables) { bru += `body:graphql:vars {\n`; - bru += `${indentString(body.graphql.variables)}` + bru += `${indentString(body.graphql.variables)}`; bru += '\n}\n\n'; } let reqvars = _.get(vars, 'req'); let resvars = _.get(vars, 'res'); - if(reqvars && reqvars.length) { + if (reqvars && reqvars.length) { const varsEnabled = _.filter(reqvars, (v) => v.enabled && !v.local); const varsDisabled = _.filter(reqvars, (v) => !v.enabled && !v.local); const varsLocalEnabled = _.filter(reqvars, (v) => v.enabled && v.local); @@ -151,25 +170,25 @@ ${indentString(body.xml)} bru += `vars:pre-request {`; - if(varsEnabled.length) { - bru += `\n${indentString(varsEnabled.map(item => `${item.name}: ${item.value}`).join('\n'))}`; + if (varsEnabled.length) { + bru += `\n${indentString(varsEnabled.map((item) => `${item.name}: ${item.value}`).join('\n'))}`; } - if(varsLocalEnabled.length) { - bru += `\n${indentString(varsLocalEnabled.map(item => `@${item.name}: ${item.value}`).join('\n'))}`; + if (varsLocalEnabled.length) { + bru += `\n${indentString(varsLocalEnabled.map((item) => `@${item.name}: ${item.value}`).join('\n'))}`; } - if(varsDisabled.length) { - bru += `\n${indentString(varsDisabled.map(item => `~${item.name}: ${item.value}`).join('\n'))}`; + if (varsDisabled.length) { + bru += `\n${indentString(varsDisabled.map((item) => `~${item.name}: ${item.value}`).join('\n'))}`; } - if(varsLocalDisabled.length) { - bru += `\n${indentString(varsLocalDisabled.map(item => `~@${item.name}: ${item.value}`).join('\n'))}`; + if (varsLocalDisabled.length) { + bru += `\n${indentString(varsLocalDisabled.map((item) => `~@${item.name}: ${item.value}`).join('\n'))}`; } bru += '\n}\n\n'; } - if(resvars && resvars.length) { + if (resvars && resvars.length) { const varsEnabled = _.filter(resvars, (v) => v.enabled && !v.local); const varsDisabled = _.filter(resvars, (v) => !v.enabled && !v.local); const varsLocalEnabled = _.filter(resvars, (v) => v.enabled && v.local); @@ -177,65 +196,73 @@ ${indentString(body.xml)} bru += `vars:post-response {`; - if(varsEnabled.length) { - bru += `\n${indentString(varsEnabled.map(item => `${item.name}: ${item.value}`).join('\n'))}`; + if (varsEnabled.length) { + bru += `\n${indentString(varsEnabled.map((item) => `${item.name}: ${item.value}`).join('\n'))}`; } - if(varsLocalEnabled.length) { - bru += `\n${indentString(varsLocalEnabled.map(item => `@${item.name}: ${item.value}`).join('\n'))}`; + if (varsLocalEnabled.length) { + bru += `\n${indentString(varsLocalEnabled.map((item) => `@${item.name}: ${item.value}`).join('\n'))}`; } - if(varsDisabled.length) { - bru += `\n${indentString(varsDisabled.map(item => `~${item.name}: ${item.value}`).join('\n'))}`; + if (varsDisabled.length) { + bru += `\n${indentString(varsDisabled.map((item) => `~${item.name}: ${item.value}`).join('\n'))}`; } - if(varsLocalDisabled.length) { - bru += `\n${indentString(varsLocalDisabled.map(item => `~@${item.name}: ${item.value}`).join('\n'))}`; + if (varsLocalDisabled.length) { + bru += `\n${indentString(varsLocalDisabled.map((item) => `~@${item.name}: ${item.value}`).join('\n'))}`; } bru += '\n}\n\n'; } - if(assertions && assertions.length) { + if (assertions && assertions.length) { bru += `assert {`; - if(enabled(assertions).length) { - bru += `\n${indentString(enabled(assertions).map(item => `${item.name}: ${item.value}`).join('\n'))}`; + if (enabled(assertions).length) { + bru += `\n${indentString( + enabled(assertions) + .map((item) => `${item.name}: ${item.value}`) + .join('\n') + )}`; } - if(disabled(assertions).length) { - bru += `\n${indentString(disabled(assertions).map(item => `~${item.name}: ${item.value}`).join('\n'))}`; + if (disabled(assertions).length) { + bru += `\n${indentString( + disabled(assertions) + .map((item) => `~${item.name}: ${item.value}`) + .join('\n') + )}`; } bru += '\n}\n\n'; } - if(script && script.req && script.req.length) { - bru += `script:pre-request { + if (script && script.req && script.req.length) { + bru += `script:pre-request { ${indentString(script.req)} } `; } - if(script && script.res && script.res.length) { - bru += `script:post-response { + if (script && script.res && script.res.length) { + bru += `script:post-response { ${indentString(script.res)} } `; } - if(tests && tests.length) { - bru += `tests { + if (tests && tests.length) { + bru += `tests { ${indentString(tests)} } `; } - if(docs && docs.length) { - bru += `docs { + if (docs && docs.length) { + bru += `docs { ${indentString(docs)} } diff --git a/packages/bruno-lang/v2/src/jsonToEnv.js b/packages/bruno-lang/v2/src/jsonToEnv.js index 9ae3d6e87..46106f336 100644 --- a/packages/bruno-lang/v2/src/jsonToEnv.js +++ b/packages/bruno-lang/v2/src/jsonToEnv.js @@ -8,7 +8,7 @@ const envToJson = (json) => { return ` ${prefix}${name}: ${value}`; }); - if(!vars || !vars.length) { + if (!vars || !vars.length) { return `vars { } `; diff --git a/packages/bruno-lang/v2/tests/assert.spec.js b/packages/bruno-lang/v2/tests/assert.spec.js index 373dad6ca..126c68c95 100644 --- a/packages/bruno-lang/v2/tests/assert.spec.js +++ b/packages/bruno-lang/v2/tests/assert.spec.js @@ -1,10 +1,10 @@ /** * This test file is used to test the text parser. */ -const parser = require("../src/bruToJson"); +const parser = require('../src/bruToJson'); -describe("assert parser", () => { - it("should parse assert statement", () => { +describe('assert parser', () => { + it('should parse assert statement', () => { const input = ` assert { res("data.airports").filter(a => a.code ==="BLR").name: "Bangalore International Airport" @@ -13,11 +13,13 @@ assert { const output = parser(input); const expected = { - "assertions": [{ - name: "res(\"data.airports\").filter(a => a.code ===\"BLR\").name", - value: '"Bangalore International Airport"', - enabled: true - }] + assertions: [ + { + name: 'res("data.airports").filter(a => a.code ==="BLR").name', + value: '"Bangalore International Airport"', + enabled: true + } + ] }; expect(output).toEqual(expected); }); diff --git a/packages/bruno-lang/v2/tests/defaults.spec.js b/packages/bruno-lang/v2/tests/defaults.spec.js index 98467d9da..42a5511b8 100644 --- a/packages/bruno-lang/v2/tests/defaults.spec.js +++ b/packages/bruno-lang/v2/tests/defaults.spec.js @@ -1,7 +1,7 @@ -const bruToJson = require("../src/bruToJson"); +const bruToJson = require('../src/bruToJson'); -describe("defaults", () => { - it("should parse the default type and seq", () => { +describe('defaults', () => { + it('should parse the default type and seq', () => { const input = ` meta { name: Create user @@ -12,21 +12,21 @@ post { } `; const expected = { - "meta": { - "name": "Create user", - "seq": 1, - "type": "http" + meta: { + name: 'Create user', + seq: 1, + type: 'http' }, - "http": { - "method": "post", - "url": "/users" + http: { + method: 'post', + url: '/users' } }; const output = bruToJson(input); expect(output).toEqual(expected); }); - it("should parse the default body mode as json if the body is found", () => { + it('should parse the default body mode as json if the body is found', () => { const input = ` meta { name: Create user @@ -45,18 +45,18 @@ body { `; const expected = { - "meta": { - "name": "Create user", - "seq": 1, - "type": "http" + meta: { + name: 'Create user', + seq: 1, + type: 'http' }, - "http": { - "method": "post", - "url": "/users", - "body": "json" + http: { + method: 'post', + url: '/users', + body: 'json' }, - "body": { - "json": "{\n name: John\n age: 30\n}" + body: { + json: '{\n name: John\n age: 30\n}' } }; diff --git a/packages/bruno-lang/v2/tests/dictionary.spec.js b/packages/bruno-lang/v2/tests/dictionary.spec.js index 616010092..dd9ddd472 100644 --- a/packages/bruno-lang/v2/tests/dictionary.spec.js +++ b/packages/bruno-lang/v2/tests/dictionary.spec.js @@ -2,35 +2,37 @@ * This test file is used to test the dictionary parser. */ -const parser = require("../src/bruToJson"); +const parser = require('../src/bruToJson'); const assertSingleHeader = (input) => { const output = parser(input); const expected = { - "headers": [{ - "name": "hello", - "value": "world", - "enabled": true - }] + headers: [ + { + name: 'hello', + value: 'world', + enabled: true + } + ] }; expect(output).toEqual(expected); }; -describe("headers parser", () => { - it("should parse empty header", () => { +describe('headers parser', () => { + it('should parse empty header', () => { const input = ` headers { }`; const output = parser(input); const expected = { - "headers": [] + headers: [] }; expect(output).toEqual(expected); }); - it("should parse single header", () => { + it('should parse single header', () => { const input = ` headers { hello: world @@ -39,7 +41,7 @@ headers { assertSingleHeader(input); }); - it("should parse single header with spaces", () => { + it('should parse single header with spaces', () => { const input = ` headers { hello: world @@ -48,7 +50,7 @@ headers { assertSingleHeader(input); }); - it("should parse single header with spaces and newlines", () => { + it('should parse single header with spaces and newlines', () => { const input = ` headers { @@ -60,7 +62,7 @@ headers { assertSingleHeader(input); }); - it("should parse single header with empty value", () => { + it('should parse single header with empty value', () => { const input = ` headers { hello: @@ -68,16 +70,18 @@ headers { const output = parser(input); const expected = { - "headers": [{ - "name": "hello", - "value": "", - "enabled": true - }] + headers: [ + { + name: 'hello', + value: '', + enabled: true + } + ] }; expect(output).toEqual(expected); }); - it("should parse multi headers", () => { + it('should parse multi headers', () => { const input = ` headers { content-type: application/json @@ -87,20 +91,23 @@ headers { const output = parser(input); const expected = { - "headers": [{ - "name": "content-type", - "value": "application/json", - "enabled": true - }, { - "name": "Authorization", - "value": "JWT secret", - "enabled": true - }] + headers: [ + { + name: 'content-type', + value: 'application/json', + enabled: true + }, + { + name: 'Authorization', + value: 'JWT secret', + enabled: true + } + ] }; expect(output).toEqual(expected); }); - it("should parse disabled headers", () => { + it('should parse disabled headers', () => { const input = ` headers { ~content-type: application/json @@ -108,16 +115,18 @@ headers { const output = parser(input); const expected = { - "headers": [{ - "name": "content-type", - "value": "application/json", - "enabled": false - }] + headers: [ + { + name: 'content-type', + value: 'application/json', + enabled: false + } + ] }; expect(output).toEqual(expected); }); - it("should parse empty url", () => { + it('should parse empty url', () => { const input = ` get { url: @@ -126,16 +135,16 @@ get { const output = parser(input); const expected = { - "http": { - "url": "", - "method": "get", - "body": "json", + http: { + url: '', + method: 'get', + body: 'json' } }; expect(output).toEqual(expected); }); - it("should throw error on invalid header", () => { + it('should throw error on invalid header', () => { const input = ` headers { hello: world @@ -145,7 +154,7 @@ headers { expect(() => parser(input)).toThrow(); }); - it("should throw error on invalid header", () => { + it('should throw error on invalid header', () => { const input = ` headers { hello: world @@ -154,4 +163,3 @@ headers { expect(() => parser(input)).toThrow(); }); }); - diff --git a/packages/bruno-lang/v2/tests/dotenvToJson.spec.js b/packages/bruno-lang/v2/tests/dotenvToJson.spec.js index 47b063639..81f07fe87 100644 --- a/packages/bruno-lang/v2/tests/dotenvToJson.spec.js +++ b/packages/bruno-lang/v2/tests/dotenvToJson.spec.js @@ -27,7 +27,7 @@ BEEP=false const expected = { FOO: 'bar', BAZ: 2, - BEEP: false, + BEEP: false }; const output = parser(input); expect(output).toEqual(expected); diff --git a/packages/bruno-lang/v2/tests/envToJson.spec.js b/packages/bruno-lang/v2/tests/envToJson.spec.js index 0eacb9115..a082e2cf4 100644 --- a/packages/bruno-lang/v2/tests/envToJson.spec.js +++ b/packages/bruno-lang/v2/tests/envToJson.spec.js @@ -1,20 +1,20 @@ -const parser = require("../src/envToJson"); +const parser = require('../src/envToJson'); -describe("env parser", () => { - it("should parse empty vars", () => { +describe('env parser', () => { + it('should parse empty vars', () => { const input = ` vars { }`; const output = parser(input); const expected = { - "variables": [] + variables: [] }; expect(output).toEqual(expected); }); - it("should parse single var line", () => { + it('should parse single var line', () => { const input = ` vars { url: http://localhost:3000 @@ -22,17 +22,19 @@ vars { const output = parser(input); const expected = { - "variables": [{ - "name": "url", - "value": "http://localhost:3000", - "enabled" : true, - }] + variables: [ + { + name: 'url', + value: 'http://localhost:3000', + enabled: true + } + ] }; expect(output).toEqual(expected); }); - it("should parse multiple var lines", () => { + it('should parse multiple var lines', () => { const input = ` vars { url: http://localhost:3000 @@ -42,25 +44,29 @@ vars { const output = parser(input); const expected = { - "variables": [{ - "name": "url", - "value": "http://localhost:3000", - "enabled" : true - }, { - "name": "port", - "value": "3000", - "enabled" : true - }, { - "name": "token", - "value": "secret", - "enabled" : false - }] + variables: [ + { + name: 'url', + value: 'http://localhost:3000', + enabled: true + }, + { + name: 'port', + value: '3000', + enabled: true + }, + { + name: 'token', + value: 'secret', + enabled: false + } + ] }; expect(output).toEqual(expected); }); - it("should gracefully handle empty lines and spaces", () => { + it('should gracefully handle empty lines and spaces', () => { const input = ` vars { @@ -72,21 +78,24 @@ vars { const output = parser(input); const expected = { - "variables": [{ - "name": "url", - "value": "http://localhost:3000", - "enabled" : true, - }, { - "name": "port", - "value": "3000", - "enabled" : true, - }] + variables: [ + { + name: 'url', + value: 'http://localhost:3000', + enabled: true + }, + { + name: 'port', + value: '3000', + enabled: true + } + ] }; expect(output).toEqual(expected); }); - it("should parse vars with empty values", () => { + it('should parse vars with empty values', () => { const input = ` vars { url: @@ -97,19 +106,23 @@ vars { const output = parser(input); const expected = { - "variables": [{ - "name": "url", - "value": "", - "enabled" : true, - }, { - "name": "phone", - "value": "", - "enabled" : true, - }, { - "name": "api-key", - "value": "", - "enabled" : true, - }] + variables: [ + { + name: 'url', + value: '', + enabled: true + }, + { + name: 'phone', + value: '', + enabled: true + }, + { + name: 'api-key', + value: '', + enabled: true + } + ] }; expect(output).toEqual(expected); diff --git a/packages/bruno-lang/v2/tests/fixtures/request.json b/packages/bruno-lang/v2/tests/fixtures/request.json index cc015557d..867229de8 100644 --- a/packages/bruno-lang/v2/tests/fixtures/request.json +++ b/packages/bruno-lang/v2/tests/fixtures/request.json @@ -9,19 +9,23 @@ "url": "https://api.textlocal.in/send", "body": "json" }, - "query": [{ - "name": "apiKey", - "value": "secret", - "enabled": true - }, { - "name": "numbers", - "value": "998877665", - "enabled": true - }, { - "name": "message", - "value": "hello", - "enabled": false - }], + "query": [ + { + "name": "apiKey", + "value": "secret", + "enabled": true + }, + { + "name": "numbers", + "value": "998877665", + "enabled": true + }, + { + "name": "message", + "value": "hello", + "enabled": false + } + ], "headers": [ { "name": "content-type", @@ -66,7 +70,7 @@ ], "multipartForm": [ { - "name": "apikey", + "name": "apikey", "value": "secret", "enabled": true }, @@ -141,4 +145,4 @@ }, "tests": "function onResponse(request, response) {\n expect(response.status).to.equal(200);\n}", "docs": "This request needs auth token to be set in the headers." -} \ No newline at end of file +} diff --git a/packages/bruno-lang/v2/tests/index.spec.js b/packages/bruno-lang/v2/tests/index.spec.js index 02c88fe1a..ecc970670 100644 --- a/packages/bruno-lang/v2/tests/index.spec.js +++ b/packages/bruno-lang/v2/tests/index.spec.js @@ -1,21 +1,21 @@ -const fs = require("fs"); -const path = require("path"); -const bruToJson = require("../src/bruToJson"); -const jsonToBru = require("../src/jsonToBru"); +const fs = require('fs'); +const path = require('path'); +const bruToJson = require('../src/bruToJson'); +const jsonToBru = require('../src/jsonToBru'); -describe("bruToJson", () => { - it("should parse the bru file", () => { +describe('bruToJson', () => { + it('should parse the bru file', () => { const input = fs.readFileSync(path.join(__dirname, 'fixtures', 'request.bru'), 'utf8'); - const expected = require("./fixtures/request.json"); + const expected = require('./fixtures/request.json'); const output = bruToJson(input); expect(output).toEqual(expected); }); }); -describe("jsonToBru", () => { - it("should parse the bru file", () => { - const input = require("./fixtures/request.json"); +describe('jsonToBru', () => { + it('should parse the bru file', () => { + const input = require('./fixtures/request.json'); const expected = fs.readFileSync(path.join(__dirname, 'fixtures', 'request.bru'), 'utf8'); const output = jsonToBru(input); diff --git a/packages/bruno-lang/v2/tests/jsonToEnv.spec.js b/packages/bruno-lang/v2/tests/jsonToEnv.spec.js index 4ff471f64..7aee11428 100644 --- a/packages/bruno-lang/v2/tests/jsonToEnv.spec.js +++ b/packages/bruno-lang/v2/tests/jsonToEnv.spec.js @@ -1,9 +1,9 @@ -const parser = require("../src/jsonToEnv"); +const parser = require('../src/jsonToEnv'); -describe("env parser", () => { - it("should parse empty vars", () => { +describe('env parser', () => { + it('should parse empty vars', () => { const input = { - "variables": [] + variables: [] }; const output = parser(input); @@ -14,13 +14,15 @@ describe("env parser", () => { expect(output).toEqual(expected); }); - it("should parse single var line", () => { + it('should parse single var line', () => { const input = { - "variables": [{ - "name": "url", - "value": "http://localhost:3000", - "enabled" : true, - }] + variables: [ + { + name: 'url', + value: 'http://localhost:3000', + enabled: true + } + ] }; const output = parser(input); @@ -31,17 +33,20 @@ describe("env parser", () => { expect(output).toEqual(expected); }); - it("should parse multiple var lines", () => { + it('should parse multiple var lines', () => { const input = { - "variables": [{ - "name": "url", - "value": "http://localhost:3000", - "enabled" : true - }, { - "name": "port", - "value": "3000", - "enabled" : false - }] + variables: [ + { + name: 'url', + value: 'http://localhost:3000', + enabled: true + }, + { + name: 'port', + value: '3000', + enabled: false + } + ] }; const expected = `vars { diff --git a/packages/bruno-lang/v2/tests/script.spec.js b/packages/bruno-lang/v2/tests/script.spec.js index 3ef9da9a2..7d4f50b53 100644 --- a/packages/bruno-lang/v2/tests/script.spec.js +++ b/packages/bruno-lang/v2/tests/script.spec.js @@ -1,10 +1,10 @@ /** * This test file is used to test the text parser. */ -const parser = require("../src/bruToJson"); +const parser = require('../src/bruToJson'); -describe("script parser", () => { - it("should parse request script", () => { +describe('script parser', () => { + it('should parse request script', () => { const input = ` script:pre-request { $req.setHeader('Content-Type', 'application/json'); @@ -13,14 +13,14 @@ script:pre-request { const output = parser(input); const expected = { - "script": { - "req": "$req.setHeader('Content-Type', 'application/json');" + script: { + req: "$req.setHeader('Content-Type', 'application/json');" } }; expect(output).toEqual(expected); }); - it("should parse response script", () => { + it('should parse response script', () => { const input = ` script:post-response { expect(response.status).to.equal(200); @@ -29,8 +29,8 @@ script:post-response { const output = parser(input); const expected = { - "script": { - "res": "expect(response.status).to.equal(200);" + script: { + res: 'expect(response.status).to.equal(200);' } }; expect(output).toEqual(expected);