UNPKG

insomnia-importers

Version:

Various data importers for Insomnia

47 lines (37 loc) 1.19 kB
import { Converter, ImportRequest } from '../entities'; import { Insomnia1Data } from './insomnia-1'; export const id = 'insomnia-2'; export const name = 'Insomnia v2'; export const description = 'Insomnia export format 2'; export interface Insomnia2Data extends Omit<Insomnia1Data, '__export_format'> { __export_format: 2; resources: ImportRequest[]; } export const convert: Converter = rawData => { let data: Insomnia2Data | null = null; try { data = JSON.parse(rawData) as Insomnia2Data; } catch (error) { return null; } if (data.__export_format !== 2) { // Exit early if it's not the legacy format return null; } // The only difference between 2 and 3 is the request body object for (const resource of data.resources) { if (resource._type !== 'request') { continue; } // Convert old String request bodies to new (HAR) schema const contentTypeHeader = resource.headers?.find( ({ name }) => name.toLowerCase() === 'content-type', ); const mimeType = contentTypeHeader?.value.split(';')[0] ?? ''; resource.body = { mimeType, text: resource.body as string, }; } return data.resources; };