From a645d1459c174925af60b3d92f5508ee102a0f2d Mon Sep 17 00:00:00 2001 From: Anoop M D Date: Sun, 15 Jan 2023 04:03:52 +0530 Subject: [PATCH] feat: bruno lang - support parsing text body --- packages/bruno-lang/src/body-tag.js | 14 +++++++++++++- packages/bruno-lang/src/index.js | 4 +++- packages/bruno-lang/tests/fixtures/request.bru | 4 ++++ packages/bruno-lang/tests/parser.spec.js | 3 ++- 4 files changed, 22 insertions(+), 3 deletions(-) diff --git a/packages/bruno-lang/src/body-tag.js b/packages/bruno-lang/src/body-tag.js index a14fad2c4..a837e6d06 100644 --- a/packages/bruno-lang/src/body-tag.js +++ b/packages/bruno-lang/src/body-tag.js @@ -12,6 +12,9 @@ const bodyJsonBegin = regex(/^body\s*\(\s*type\s*=\s*json\s*\)\s*\r?\n/); // body(type=graphql) const bodyGraphqlBegin = regex(/^body\s*\(\s*type\s*=\s*graphql\s*\)\s*\r?\n/); +// body(type=text) +const bodyTextBegin = regex(/^body\s*\(\s*type\s*=\s*text\s*\)\s*\r?\n/); + const bodyEnd = regex(/^\/body\s*[\r?\n]*/); const bodyJsonTag = between(bodyJsonBegin)(bodyEnd)(everyCharUntil(bodyEnd)).map((bodyJson) => { @@ -51,7 +54,16 @@ const bodyGraphqlTag = between(bodyGraphqlBegin)(bodyEnd)(everyCharUntil(bodyEnd } }); +const bodyTextTag = between(bodyTextBegin)(bodyEnd)(everyCharUntil(bodyEnd)).map((bodyText) => { + return { + body: { + text: bodyText + } + } +}); + module.exports = { bodyJsonTag, - bodyGraphqlTag + bodyGraphqlTag, + bodyTextTag }; diff --git a/packages/bruno-lang/src/index.js b/packages/bruno-lang/src/index.js index 6e9a53eb8..9f9d04e94 100644 --- a/packages/bruno-lang/src/index.js +++ b/packages/bruno-lang/src/index.js @@ -10,7 +10,8 @@ const paramsTag = require('./params-tag'); const headersTag = require('./headers-tag'); const { bodyJsonTag, - bodyGraphqlTag + bodyGraphqlTag, + bodyTextTag } = require('./body-tag'); const bruToJson = (fileContents) => { @@ -20,6 +21,7 @@ const bruToJson = (fileContents) => { headersTag, bodyJsonTag, bodyGraphqlTag, + bodyTextTag, anyChar ])); diff --git a/packages/bruno-lang/tests/fixtures/request.bru b/packages/bruno-lang/tests/fixtures/request.bru index 205009d4b..aafabefe6 100644 --- a/packages/bruno-lang/tests/fixtures/request.bru +++ b/packages/bruno-lang/tests/fixtures/request.bru @@ -32,3 +32,7 @@ body(type=graphql) } /body +body(type=text) + Hello, there. You must be from the past +/body + diff --git a/packages/bruno-lang/tests/parser.spec.js b/packages/bruno-lang/tests/parser.spec.js index 7f28ce229..687b2ff2b 100644 --- a/packages/bruno-lang/tests/parser.spec.js +++ b/packages/bruno-lang/tests/parser.spec.js @@ -54,7 +54,8 @@ describe('bruToJson', () => { "json": '{"apikey":"secret","numbers":"+91998877665"}', "graphql": { "query": " {\n launchesPast {\n launch_success\n }\n }\n" - } + }, + "text": " Hello, there. You must be from the past\n" } }); });