From 799dc9a1ca046e74aade0a5cc5749b4b58fba5cc Mon Sep 17 00:00:00 2001 From: Pooja Date: Fri, 16 May 2025 17:26:40 +0530 Subject: [PATCH] feat: add function in bruno converters package (#4669) * feat: add function in bruno converters package * add: example for openapi yaml to bruno conversion * add: converting json to yaml in converters * fix --- packages/bruno-converters/src/insomnia/insomnia-to-bruno.js | 4 ++++ packages/bruno-converters/src/openapi/openapi-to-bruno.js | 5 +++++ .../tests/insomnia/insomnia-collection-v5.spec.js | 3 +-- .../bruno-converters/tests/openapi/openapi-to-bruno.spec.js | 4 +--- 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/packages/bruno-converters/src/insomnia/insomnia-to-bruno.js b/packages/bruno-converters/src/insomnia/insomnia-to-bruno.js index 63af45d77..d4d829e7b 100644 --- a/packages/bruno-converters/src/insomnia/insomnia-to-bruno.js +++ b/packages/bruno-converters/src/insomnia/insomnia-to-bruno.js @@ -1,5 +1,6 @@ import each from 'lodash/each'; import get from 'lodash/get'; +import jsyaml from 'js-yaml'; import { validateSchema, transformItemsInCollection, hydrateSeqInCollection, uuid } from '../common'; const parseGraphQL = (text) => { @@ -288,6 +289,9 @@ const parseInsomniaCollection = (data) => { export const insomniaToBruno = (insomniaCollection) => { try { + if(typeof insomniaCollection !== 'object') { + insomniaCollection = jsyaml.load(insomniaCollection); + } let collection; if (isInsomniaV5Export(insomniaCollection)) { collection = parseInsomniaV5Collection(insomniaCollection); diff --git a/packages/bruno-converters/src/openapi/openapi-to-bruno.js b/packages/bruno-converters/src/openapi/openapi-to-bruno.js index 73d7d0890..59929277f 100644 --- a/packages/bruno-converters/src/openapi/openapi-to-bruno.js +++ b/packages/bruno-converters/src/openapi/openapi-to-bruno.js @@ -1,5 +1,6 @@ import each from 'lodash/each'; import get from 'lodash/get'; +import jsyaml from 'js-yaml'; import { validateSchema, transformItemsInCollection, hydrateSeqInCollection, uuid } from '../common'; const ensureUrl = (url) => { @@ -422,6 +423,10 @@ export const parseOpenApiCollection = (data) => { export const openApiToBruno = (openApiSpecification) => { try { + if(typeof openApiSpecification !== 'object') { + openApiSpecification = jsyaml.load(openApiSpecification); + } + const collection = parseOpenApiCollection(openApiSpecification); const transformedCollection = transformItemsInCollection(collection); const hydratedCollection = hydrateSeqInCollection(transformedCollection); diff --git a/packages/bruno-converters/tests/insomnia/insomnia-collection-v5.spec.js b/packages/bruno-converters/tests/insomnia/insomnia-collection-v5.spec.js index dfd93044a..c09065fa6 100644 --- a/packages/bruno-converters/tests/insomnia/insomnia-collection-v5.spec.js +++ b/packages/bruno-converters/tests/insomnia/insomnia-collection-v5.spec.js @@ -1,10 +1,9 @@ import { describe, it, expect } from '@jest/globals'; import insomniaToBruno from '../../src/insomnia/insomnia-to-bruno'; -import jsyaml from 'js-yaml'; describe('insomnia-collection', () => { it('should correctly import a valid Insomnia v5 collection file', async () => { - const brunoCollection = insomniaToBruno(jsyaml.load(insomniaCollection)); + const brunoCollection = insomniaToBruno(insomniaCollection); expect(brunoCollection).toMatchObject(expectedOutput) }); diff --git a/packages/bruno-converters/tests/openapi/openapi-to-bruno.spec.js b/packages/bruno-converters/tests/openapi/openapi-to-bruno.spec.js index a491f0c5c..f4a06fc44 100644 --- a/packages/bruno-converters/tests/openapi/openapi-to-bruno.spec.js +++ b/packages/bruno-converters/tests/openapi/openapi-to-bruno.spec.js @@ -1,11 +1,9 @@ -import jsyaml from 'js-yaml'; import { describe, it, expect } from '@jest/globals'; import openApiToBruno from '../../src/openapi/openapi-to-bruno'; describe('openapi-collection', () => { it('should correctly import a valid OpenAPI file', async () => { - const openApiSpecification = jsyaml.load(openApiCollectionString); - const brunoCollection = openApiToBruno(openApiSpecification); + const brunoCollection = openApiToBruno(openApiCollectionString); expect(brunoCollection).toMatchObject(expectedOutput); });